Valeur d'un article dans un plugin pour l'afficher côté admin
Bonjour à tous,
Je modifie le plugin lockArticle en ajoutant une liste déroulante lors de l'édition d'un article. L'idée est de mixer le verrouillage par mot de passe pour accéder à une page et lister un dossier spécifique comme le fait kzDownload.
J'arrive à ajouter la liste, lister le contenue du répertoire medias/, enregistré la valeur souhaité dans le xml mais je n'arrive pas à récupérer cette dernière pour alimenter la variable selected pour l'input du select.
private function myGetAllDirs($dir, $level=0) {
# Initialisation
$folders = array();
$alldirs = scandir($dir);
natsort($alldirs);
foreach($alldirs as $folder) {
if($folder[0] != '.') {
if(is_dir(($dir!=''?$dir.'/':$dir).$folder)) {
$dir = (substr($dir, -1)!='/' AND $dir!='') ? $dir.'/' : $dir;
$path = str_replace($this->path, '',$dir.$folder);
$folders[] = array(
'level' => $level,
'name' => $folder,
'path' => $path
);
$folders = array_merge($folders, $this->myGetAllDirs($dir.$folder, $level+1) );
}
}
}
return $folders;
}
public function contentFolder() {
$plxMotor = plxMotor::getInstance();
$plxAdmin = plxAdmin::getInstance();
$this->path = PLX_ROOT.$plxAdmin->aConf['medias'].'/';
$this->aDirs = (is_dir($this->path)?$this->myGetAllDirs($this->path):"");
$str = "\n".'<select class="no-margin" id="id_lockdir" size="1" name="lockdir">'."\n";
$selected = (empty($lockdir)?'selected="selected" ':'');
$str .= '<option '.$selected.'value="">|. ('.L_PLXMEDIAS_ROOT.') </option>'."\n";
# Dir non vide
if(!empty($this->aDirs)) {
foreach($this->aDirs as $k => $v) {
$prefixe = '| ';
$i = 0;
while($i < $v['level']) {
$prefixe .= '_ ';
$i++;
}
$selected = ($v['path']==$lockdir?'selected="selected" ':'');
$str .= '<option '.$selected.'value="'.$v['path'].'">'.$prefixe.$v['name'].'</option>'."\n";
}
}
$str .= '</select>'."\n";
# On retourne la chaine
return $str;
}
/**
* Méthode qui ajoute le champs 'mot de passe' dans l'edition de l'article
*
* @return stdio
* @author Rockyhorror
**/
public function AdminArticleSidebar(){
$plxAdmin = plxAdmin::getInstance();
echo '<div class="grid">
<div class="col sml-12">
<label for="id_password">'.$this->getlang('L_PASSWORD_FIELD_LABEL').' :</label>
<?php $image = "<img src=\"".PLX_PLUGINS."lockArticles/locker.png\" alt=\"\" />";
if(!empty($password)) { echo $image; } plxUtils::printInput("password","","text","27-72"); ?>
<label for="id_resetpassword">'.$this->getlang('L_RESETPASSWORD_FIELD').' <input type="checkbox" name="resetpassword" />
<input type="hidden" name="passwordhash" value="<?php echo $password; ?>" />
</div>
<div class="col sml-12">
<label for="dir_crypt">'.$this->getlang('L_DIR_CRYPT').' :</label>
'.$this->contentFolder().'
</div>
</div>';
}
Je parie que c'est tout bête, est-ce que vous auriez une piste ?
J'ai un string de l'array
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Bonjour,
Au vu du code que tu présentes, je ne suis pas convaincu que le nom du dossier soit enregistré dans le fichier article.
Pour enregister ce nom, il faut utiliser le hook plxAdminEditArticleXml et concaténer le nouveau champ lockdir à la variable $xml.
Pour récupérer cette valeur, il faudra modifier le hook plxMotorParseArticle.
Vérifie que le champ lockdir est bien enregistré en éditant directement le fichier xml de l'article sans utiliser PluXml.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Bonjour,
La valeur est bien enregistré dans le fichier xml.
plxMotorParseArticle est déjà utilisé
J'ai un string de l'array
C'est bon j'ai trouvé
J'ai un string de l'array