diff --git a/nur_src/v/plugins/autosubmitSelectPlugin.php b/nur_src/v/plugins/autosubmitSelectPlugin.php index 9f7be3e..fc5a227 100644 --- a/nur_src/v/plugins/autosubmitSelectPlugin.php +++ b/nur_src/v/plugins/autosubmitSelectPlugin.php @@ -4,6 +4,9 @@ namespace nur\v\plugins; use nur\v\BasePlugin; use nur\v\js; +/** + * Class autosubmitSelectPlugin: soumet le formulaire si la sélection change + */ class autosubmitSelectPlugin extends BasePlugin { const HAVE_JQUERY = true; diff --git a/nur_src/v/plugins/dblclickSelectPlugin.php b/nur_src/v/plugins/dblclickSelectPlugin.php new file mode 100644 index 0000000..c8f7415 --- /dev/null +++ b/nur_src/v/plugins/dblclickSelectPlugin.php @@ -0,0 +1,51 @@ +selector = $selector; + $this->submit = $submit; + $this->cond = $cond; + } + + /** + * @var string sélecteur sur les options des composants concernés. par défaut, + * prendre tous les éléments select qui n'ont pas la classe no-dblclick + */ + private $selector; + + /** + * @var string|null sélecteur pour le bouton submit à activer. + * ci cette valeur est nulle, le formulaire est soumis directement + */ + private $submit; + + /** @var bool ce plugin est-il activé? */ + private $cond; + + function printJquery(): void { + if (!$this->cond) return; + ?> +$(selector)?>).find("option").on("dblclick", function() { + let submit = submit)?>; + if (submit != "") { + $(submit).click(); + } else { + $(this).closest("form").submit(); + } + return false; +}); +error === UPLOAD_ERR_OK; } + /** + * retourner true si le nom du fichier a une des extensions de $exts + * + * @param string|array $exts une ou plusieurs extensions qui sont vérifiées + */ + function isExt($exts): bool { + if ($exts === null) return false; + $ext = path::ext($this->name); + $exts = cl::with($exts); + return in_array($ext, $exts); + } + /** @var ?string chemin du fichier, s'il a été déplacé */ protected $file; diff --git a/src/os/path.php b/src/os/path.php index fa44eb3..0efeaff 100644 --- a/src/os/path.php +++ b/src/os/path.php @@ -156,7 +156,11 @@ class path { return $basename; } - /** obtenir l'extension du fichier. l'extension est retournée avec le '.' */ + /** + * obtenir l'extension du fichier. l'extension est retournée avec le '.' + * + * si le fichier n'a pas d'extension, retourner une chaine vide + */ static final function ext($path): ?string { if ($path === null || $path === false) return null; $ext = self::filename($path);