135 lines
4.7 KiB
PHP
135 lines
4.7 KiB
PHP
|
<?php
|
||
|
namespace nur\v;
|
||
|
|
||
|
use nur\co;
|
||
|
use nur\str;
|
||
|
use nur\v\html5\Html5FormManager;
|
||
|
use nur\v\model\IFormManager;
|
||
|
|
||
|
/**
|
||
|
* Class fo: gestion globale des formulaires
|
||
|
*/
|
||
|
class fo {
|
||
|
const MANAGER_CLASS = Html5FormManager::class;
|
||
|
|
||
|
protected static $manager_class;
|
||
|
|
||
|
/**
|
||
|
* spécifier la classe à utiliser pour instancier le gestionnaire de
|
||
|
* formulaires
|
||
|
*
|
||
|
* cette méthode *doit* être appelée avant d'appeler la méthode
|
||
|
* {@link manager()}
|
||
|
*/
|
||
|
static final function set_manager_class(string $manager_class) {
|
||
|
self::$manager_class = $manager_class;
|
||
|
}
|
||
|
|
||
|
/** @var IFormManager */
|
||
|
protected static $manager;
|
||
|
|
||
|
static final function set_manager(IFormManager $manager) {
|
||
|
self::$manager = $manager;
|
||
|
}
|
||
|
|
||
|
/** obtenir l'instance globale de gestionnaire de formulaire */
|
||
|
static final function manager(): IFormManager {
|
||
|
if (self::$manager === null) {
|
||
|
$manager_class = self::$manager_class;
|
||
|
if ($manager_class === null) $manager_class = static::MANAGER_CLASS;
|
||
|
self::$manager = new $manager_class();
|
||
|
}
|
||
|
return self::$manager;
|
||
|
}
|
||
|
|
||
|
static final function __callStatic($name, $args) {
|
||
|
$name = str::us2camel($name);
|
||
|
return call_user_func_array([self::manager(), $name], $args);
|
||
|
}
|
||
|
|
||
|
#############################################################################
|
||
|
|
||
|
static final function reset_manager($options=null, ?array $schema=null): void { self::manager()->resetManager($options, $schema);}
|
||
|
|
||
|
static final function push($options=null, ?array $schema=null): void { self::manager()->push($options, $schema); }
|
||
|
static final function pop(): void { self::manager()->pop(); }
|
||
|
|
||
|
static final function started(): bool { return self::manager()->started(); }
|
||
|
static final function start($options=null, ?array $schema=null): void {
|
||
|
co::_write(self::manager()->start($options, $schema));
|
||
|
}
|
||
|
static final function end(): void {
|
||
|
co::_print(self::manager()->end());
|
||
|
}
|
||
|
|
||
|
static final function section($options=null): void {
|
||
|
co::_write(self::manager()->section($options));
|
||
|
}
|
||
|
static final function end_section(): void {
|
||
|
co::_write(self::manager()->endSection());
|
||
|
}
|
||
|
|
||
|
static final function group($options=null): void {
|
||
|
co::_write(self::manager()->group($options));
|
||
|
}
|
||
|
static final function end_group(): void {
|
||
|
co::_write(self::manager()->endGroup());
|
||
|
}
|
||
|
|
||
|
static final function fixed($label, string $name, $value, ?array $options=null): void {
|
||
|
co::_write(self::manager()->fixed($label, $name, $value, $options));
|
||
|
}
|
||
|
|
||
|
static final function hidden(string $name, $value, ?array $options=null): void {
|
||
|
co::_write(self::manager()->hidden($name, $value, $options));
|
||
|
}
|
||
|
static final function hiddens(array $values, string ...$names): void {
|
||
|
co::_write(self::manager()->hiddens($values, ...$names));
|
||
|
}
|
||
|
|
||
|
static final function text($label, string $name, $value, ?array $options=null): void {
|
||
|
co::_write(self::manager()->text($label, $name, $value, $options));
|
||
|
}
|
||
|
static final function texts($label, array $values, string ...$names): void {
|
||
|
co::_write(self::manager()->texts($label, $values, ...$names));
|
||
|
}
|
||
|
|
||
|
static final function password($label, string $name, $value, ?array $options=null): void {
|
||
|
co::_write(self::manager()->password($label, $name, $value, $options));
|
||
|
}
|
||
|
|
||
|
static final function select($label, string $name, $value, ?array $options=null): void {
|
||
|
co::_write(self::manager()->select($label, $name, $value, $options));
|
||
|
}
|
||
|
|
||
|
static final function checkbox($text, string $name, $value, ?bool $checked=null, ?array $options=null): void {
|
||
|
co::_write(self::manager()->checkbox($text, $name, $value, $checked, $options));
|
||
|
}
|
||
|
static final function checkboxes($label, string $name, $values, ?array $options=null): void {
|
||
|
co::_write(self::manager()->checkboxes($label, $name, $values, $options));
|
||
|
}
|
||
|
|
||
|
static final function radiobutton($text, string $name, $value, ?bool $checked=null, ?array $options=null): void {
|
||
|
co::_write(self::manager()->radiobutton($text, $name, $value, $checked, $options));
|
||
|
}
|
||
|
static final function radiobuttons($label, string $name, $value, ?array $options=null): void {
|
||
|
co::_write(self::manager()->radiobuttons($label, $name, $value, $options));
|
||
|
}
|
||
|
|
||
|
static final function textarea($label, string $name, $value, ?array $options=null): void {
|
||
|
co::_write(self::manager()->textarea($label, $name, $value, $options));
|
||
|
}
|
||
|
|
||
|
static final function file($label, string $name, ?array $options=null): void {
|
||
|
co::_write(self::manager()->file($label, $name, $options));
|
||
|
}
|
||
|
|
||
|
static final function submit($options=null): void {
|
||
|
co::_write(self::manager()->submit($options));
|
||
|
}
|
||
|
|
||
|
static final function reset($options=null): void {
|
||
|
co::_write(self::manager()->reset($options));
|
||
|
}
|
||
|
}
|