modifs.mineures sans commentaires

This commit is contained in:
Jephté Clain 2024-05-29 20:42:46 +04:00
parent 48d686f20c
commit b4992148fd
4 changed files with 73 additions and 1 deletions

View File

@ -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;

View File

@ -0,0 +1,51 @@
<?php
namespace nur\v\plugins;
use nur\v\BasePlugin;
use nur\v\js;
/**
* Class dblclickSelectPlugin: soumet le formulaire avec un bouton en particulier
* si on double-clique sur un élément d'une liste multi-select
*/
class dblclickSelectPlugin extends BasePlugin {
const HAVE_JQUERY = true;
function __construct(?string $selector, ?string $submit=null, ?bool $cond=null) {
if ($selector === null) $selector = "select:not(.no-dblclick)";
if ($cond === null) $cond = $selector? true: false;
$this->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;
?>
$(<?=js::qv($this->selector)?>).find("option").on("dblclick", function() {
let submit = <?=js::qv($this->submit)?>;
if (submit != "") {
$(submit).click();
} else {
$(this).closest("form").submit();
}
return false;
});
<?php
}
}

View File

@ -1,7 +1,9 @@
<?php
namespace nur\sery\file\web;
use nur\sery\cl;
use nur\sery\file\FileReader;
use nur\sery\os\path;
use nur\sery\php\coll\BaseArray;
use nur\sery\ValueException;
@ -84,6 +86,18 @@ class Upload extends BaseArray {
return $this->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;

View File

@ -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);