variable du dossier image
Bonsoir,
je planche sur un plugin qui crée automatiquement un dossier d'images associé à l'article.
L'objectif est d'afficher un diapo des images associées à l'article.
Cette manière évite au rédacteur de devoir
1/ crée un nouveau dossier
2/ renseigner dans un champ l'adresse du dossier
Le plugin se fait en 2 étapes:
1/ création du dossier
2/ renvoi de l'url du dossier dans le template
Le hic est que je n'arrive pas à renvoyer la variable de l'adresse du dossier d'images ... pourtant elle fonction bien dans la fonction AdminArticleTop()
Quelqu'un a-t-il une idée ?
Merci pour l'aide.
je planche sur un plugin qui crée automatiquement un dossier d'images associé à l'article.
L'objectif est d'afficher un diapo des images associées à l'article.
Cette manière évite au rédacteur de devoir
1/ crée un nouveau dossier
2/ renseigner dans un champ l'adresse du dossier
Le plugin se fait en 2 étapes:
1/ création du dossier
public function AdminArticleTop() {
$string = "
\$fileArt=array();
\$dossier_img = PLX_ROOT.\"/\".\$plxAdmin->aConf['images']; // url du dossier général images
\$fichiers = scandir(\$dossier_img); // lecture du dossier images
foreach(\$plxAdmin->aCats as \$cat_id => \$cat_name) {
if(is_array(\$catId) AND in_array(\$cat_id, \$catId)) {
if(!is_dir(\$dossier_img.\"/\".\$cat_name['url'])) { # Si le dossier de la catégorie de l'article n'existe pas on le crée
if(!@mkdir(\$dossier_img.\"/\".\$cat_name['url'],0755,true)){
return plxMsg::Error(L_PLXMEDIAS_NEW_FOLDER_ERR);
} else {}
if(!@mkdir(\$dossier_img.\"/\".\$cat_name['url'].\"/\".\$url,0755,true)){
return plxMsg::Error(L_PLXMEDIAS_NEW_FOLDER_ERR);
} else {}
} else { // si le dossier de la catégorie existe, on lit le contenu de son dossier
if(!is_dir(\$dossier_img.\"/\".\$cat_name['url'].\"/\".\$url)) { # Si le dossier de l'article n'existe pas on le crée
if(!@mkdir(\$dossier_img.\"/\".\$cat_name['url'].\"/\".\$url,0755,true)){
return plxMsg::Error(L_PLXMEDIAS_NEW_FOLDER_ERR);
} else {}
} else {}
}
}else{}
}
";
echo "<?php ".$string." ?>";
}
2/ renvoi de l'url du dossier dans le template
public function filesGenerator() {
$plxMotor = plxMotor::getInstance(); // permet de récupérer les champs de l'article
$catIds = explode(',', $plxMotor->plxRecord_arts->f('categorie'));
$filesArt = array();
$dossier_img = PLX_ROOT."/".$plxAdmin->aConf['images']; // url du dossier général images
# Initialisation de notre variable interne
$catIds = explode(',', $plxMotor->plxRecord_arts->f('categorie'));
foreach ($catIds as $idx => $catId) {
# On verifie que la categorie n'est pas "home"
if($catId != 'home') {
# On va verifier que la categorie existe
if(isset($plxMotor->aCats[ $catId ])) {
# On recupere les infos de la categorie
$url = $plxMotor->aCats[ $catId ]['url'];
$filesArt[] = $dossier_img."/".$url."/".$plxMotor->plxRecord_arts->f('url');
} else {}
} else {}
}
return $filesArt;
Le hic est que je n'arrive pas à renvoyer la variable de l'adresse du dossier d'images ... pourtant elle fonction bien dans la fonction AdminArticleTop()
$plxAdmin->aConf['images']
Quelqu'un a-t-il une idée ?
Merci pour l'aide.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
t'as une idée en tête ?
Sinon dans ta function filesGenerator(), passer par un $_GET[$_SESSION]
La function AdminArticleTop() s’exécute lors de l'édition d'un article en backoffice et function filesGenerator() lors de la consultation en frontoffice.
Pour l'instant j'ai mis "data/images", mais bon quitte à ce que la variable existe, autant l'utiliser ( surtout si quelqu'un la modifie par la suite ).
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
et comment je fais pour accéder à plxAdmin dans filegenerator ?
Merci
pas plus compliqué
et comme plxAdmin est une classe dérivée de plxMotor, tu auras aussi accès aux méthodes de plxMotor.
attention toutefois, si ton plugin est utilisé coté visiteur, plxAdmin n'est pas accessible.
Mais dans ton cas, il faut juste remplacer $plxAdmin->aConf par $plxMotor->aConf, surtout que tu l'utilises de cette façon plus bas dans ton code et que tu as déclaré une instance de plxMotor au début de ta fonction filegenerator.
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Merci ! ( c'est que j'ai un peu peur de créer une faille, alors j'préfère demander )
je suis soulagé !
( je fais passer un site sous joomla vers PluXml, 200 articles ... j'ai déjà ça de moins à faire ! ^^^)