Compare commits

...

3 Commits

Author SHA1 Message Date
2d73f4d234 documenter showmorePlugin 2025-04-22 18:54:45 +04:00
3b13ef126c possiblité de forcer la suppression 2025-04-22 18:54:38 +04:00
3933fd1e72 corrections sur les controles 2025-04-22 18:54:21 +04:00
3 changed files with 27 additions and 9 deletions

View File

@ -287,10 +287,10 @@ abstract class FileCachedValue extends Parametrable implements ArrayAccess, Coun
} }
/** supprimer le fichier s'il a expiré */ /** supprimer le fichier s'il a expiré */
function deleteExpired(): bool { function deleteExpired(bool $force=false): bool {
try { try {
if ($this->shouldUpdate()) { if ($force || $this->shouldUpdate()) {
unlink($this->ppFile); @unlink($this->ppFile);
return true; return true;
} }
} finally { } finally {

View File

@ -599,16 +599,16 @@ class Form extends ComponentPrintable implements IParametrable, ArrayAccess, Cou
/** @var ?array */ /** @var ?array */
protected $hiddenControls; protected $hiddenControls;
function addHiddenControl($control, ?string $name=null): self { function addHiddenControl($control, ?string $id=null): self {
A::set($this->hiddenControls, $name, $control); A::set($this->hiddenControls, $id, $control);
return $this; return $this;
} }
/** @var ?array */ /** @var ?array */
protected $controls; protected $controls;
function addControl($control, ?string $name=null): self { function addControl($control, ?string $id=null): self {
A::set($this->controls, $name, $control); A::set($this->controls, $id, $control);
return $this; return $this;
} }
@ -660,7 +660,8 @@ class Form extends ComponentPrintable implements IParametrable, ArrayAccess, Cou
$param["value"] = $value; $param["value"] = $value;
#XXX en attendant le formattage ci-dessus, forcer la format texte pour que #XXX en attendant le formattage ci-dessus, forcer la format texte pour que
# la comparaison puisse se faire # la comparaison puisse se faire
$param["checked"] = strval($currentValue) === strval($value); #XXX si $name est un tableau e.g values[] le test ci-dessous ne fonctionne pas
$param["checked"] ??= strval($currentValue) === strval($value);
break; break;
case self::NV: case self::NV:
if ($value === null) $value = $this->get($key, $default); if ($value === null) $value = $this->get($key, $default);
@ -672,7 +673,7 @@ class Form extends ComponentPrintable implements IParametrable, ArrayAccess, Cou
if ($params === null) $params = $param; if ($params === null) $params = $param;
else A::update_n($params, $param); else A::update_n($params, $param);
return [new $controlClass($this, $params), $name]; return [new $controlClass($this, $params), $key];
} }
private function _prepareControls(): ?array { private function _prepareControls(): ?array {

View File

@ -5,6 +5,23 @@ use nur\v\BasePlugin;
use nur\v\v; use nur\v\v;
use nur\v\vo; use nur\v\vo;
/**
* Class showmorePlugin: un outil pour masquer par défaut un panneau de détails
* et donner la possibilité à l'utilisateur de l'afficher
*
* s'utilise de cette façon:
* <pre>
* $sm = new showmorePlugin();
* // le tout doit être dans le container startc-endc
* $sm->printStartc();
* // l'invite contient un lien pour afficher le panneau caché
* $sm->printInvite();
* // le panneau caché est dans le container startp-endp
* $sm->printStartp();
* $sm->printEndp();
* $sm->printEndc();
* </pre>
*/
class showmorePlugin extends BasePlugin { class showmorePlugin extends BasePlugin {
const HAVE_JQUERY = true; const HAVE_JQUERY = true;