Page statique de plugin en accueil

Bonjour,

Pour mon plugin StaticGaleries je voudrais ajouter la possibilité de définir une galerie comme page d'accueil. Petite info, le plugin utilise le même principe que plxMyContact, il génère des pages statiques à la volées.

Est-ce possible ?

J'ai un string de l'array

Réponses

  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour

    Dans le plugin plxMyContact, hook plxMotorPreChauffageBegin, tu as
    		$string = "
    		if(\$this->get && preg_match('/^contact\/?/',\$this->get) OR empty(\$this->get)) {
    			\$this->mode = 'contact';
    			\$this->cible = '../../plugins/plxMyContact/form';
    			\$this->template = '".$template."';
    			return true;
    		}
    		";
    

    il faut rajouter le code suivant sur la ligne du if
     OR empty(\$this->get)
    

    ce qui donne
    		$string = "
    		if(\$this->get && preg_match('/^contact\/?/',\$this->get) OR empty(\$this->get)) {
    			\$this->mode = 'contact';
    			\$this->cible = '../../plugins/plxMyContact/form';
    			\$this->template = '".$template."';
    			return true;
    		}
    		";
    

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Ah pas bête. S'il n'y a pas de paramètre demandé, c'est qu'on est sur l'index et donc la page d'accueil. Des fois, faut pas chercher très loin !
  • flipflipflipflip Member
    octobre 2012 modifié
    Merci pour la réponse, mais mon plugin peut générer plusieurs pages statiques. Ta modification tien compte ce ça ? Car la je vois pas trop comment dire que ma page id 0002 (id différent des pages statiques pluxml) est la page d'accueil du site.


    De mon côté j'ai commencé à intégrer la modification du paramètre homeStatic mais lorsque je valide mon formulaire le fichier parametres.xml est à moitié détruit et l'install de pluxml ce lance. Voila comment j'ai intégrer la modification dans ma class :

    351         // Mise à jour d'une galerie
    352         public function editGalerie($content) {
    353                 global $plxAdmin;
    354
    355                 if($plxShow->plxMotor->aConf['userfolders'] == 1) {
    356                         $gal_dir = PLX_ROOT.'data/images/'.$_SESSION['user'].'/'.$content['root_dir'].'/';
    357                 } else {
    358                         $gal_dir = PLX_ROOT.'data/images/'.$content['root_dir'].'/';
    359                 }
    360
    361                 if (!file_exists($gal_dir)) {
    362                         if (!mkdir($gal_dir)) {
    363                                 return plxMsg::Error($this->getLang('L_CREATE_GALERIE_ERR').' : '.$this->getLang('L_ERR_CREATE_DIR'));
    364                         }
    365                 }
    366
    367                 $this->aGaleries[$content['id']]['active'] = intval($content['active']);
    368                 $this->aGaleries[$content['id']]['menu'] = intval($content['menu']);
    369                 $this->aGaleries[$content['id']]['root_dir'] = $content['root_dir'];
    370                 $this->aGaleries[$content['id']]['first'] = $content['first'];
    371                 $this->aGaleries[$content['id']]['parent'] = $content['parent'];
    372                 $this->aGaleries[$content['id']]['extensions'] = trim($content['extensions']);
    373                 $this->aGaleries[$content['id']]['sort'] = trim($content['sort']);
    374                 $this->aGaleries[$content['id']]['prive'] = trim($content['prive']);
    375                 $this->aGaleries[$content['id']]['password'] = trim($content['password']);
    376                 $this->aGaleries[$content['id']]['menu_name'] = trim($content['menu_name']);
    377                 $this->aGaleries[$content['id']]['menu_position'] = trim($content['menu_position']);
    378                 $this->aGaleries[$content['id']]['activeSeparateur'] = $content['activeSeparateur'];
    379                 $this->aGaleries[$content['id']]['separateur'] = $content['separateur'];
    380                 $this->aGaleries[$content['id']]['representative'] = trim($content['representative']);
    381                 $this->aGaleries[$content['id']]['template'] = trim($content['template']);
    382                 $this->aGaleries[$content['id']]['displayName'] = trim($content['displayName']);
    383                 $this->aGaleries[$content['id']]['content'] = trim($content['content']);
    384
    385                 $plxAdmin->editConfiguration($plxShow->plxMotor->aConf, array('homestatic'=>$this->aGaleries[$content['id']]['homeStatic'][0]));
    386
    387                 return $this->editGaleries(null, true);
    388         }
    389 }
    

    J'ai un string de l'array

  • flipflipflipflip Member
    octobre 2012 modifié
    La version de la class qui arrive à écrire dans le fichier parametres.xml sans tout cassé :
    351         // Mise à jour d'une galerie
    352         public function editGalerie($content) {
    353                 global $plxAdmin;
    354
    355                 if($plxShow->plxMotor->aConf['userfolders'] == 1) {
    356                         $gal_dir = PLX_ROOT.'data/images/'.$_SESSION['user'].'/'.$content['root_dir'].'/';
    357                 } else {
    358                         $gal_dir = PLX_ROOT.'data/images/'.$content['root_dir'].'/';
    359                 }
    360
    361                 if (!file_exists($gal_dir)) {
    362                         if (!mkdir($gal_dir)) {
    363                                 return plxMsg::Error($this->getLang('L_CREATE_GALERIE_ERR').' : '.$this->getLang('L_ERR_CREATE_DIR'));
    364                         }
    365                 }
    366
    367                 $this->aGaleries[$content['id']]['active'] = intval($content['active']);
    368                 $this->aGaleries[$content['id']]['menu'] = intval($content['menu']);
    369                 $this->aGaleries[$content['id']]['root_dir'] = $content['root_dir'];
    370                 $this->aGaleries[$content['id']]['first'] = $content['first'];
    371                 $this->aGaleries[$content['id']]['parent'] = $content['parent'];
    372                 $this->aGaleries[$content['id']]['extensions'] = trim($content['extensions']);
    373                 $this->aGaleries[$content['id']]['sort'] = trim($content['sort']);
    374                 $this->aGaleries[$content['id']]['prive'] = trim($content['prive']);
    375                 $this->aGaleries[$content['id']]['password'] = trim($content['password']);
    376                 $this->aGaleries[$content['id']]['menu_name'] = trim($content['menu_name']);
    377                 $this->aGaleries[$content['id']]['menu_position'] = trim($content['menu_position']);
    378                 $this->aGaleries[$content['id']]['activeSeparateur'] = $content['activeSeparateur'];
    379                 $this->aGaleries[$content['id']]['separateur'] = $content['separateur'];
    380                 $this->aGaleries[$content['id']]['representative'] = trim($content['representative']);
    381                 $this->aGaleries[$content['id']]['template'] = trim($content['template']);
    382                 $this->aGaleries[$content['id']]['displayName'] = trim($content['displayName']);
    383                 $this->aGaleries[$content['id']]['content'] = trim($content['content']);
    384
    385                 $plxAdmin->editConfiguration($plxAdmin->aConf, array('homestatic'=>$content['homeStatic']));
    386
    387                 return $this->editGaleries(null, true);
    388         }
    389 }
    

    Le hic est que maintenant l'id 0002 n'est pas pris en compte par le core de pluxml pour afficher la page statique.

    Autre soucis dans la comparaison des id. actuellement dans la page statiques.php pour dire de cocher ou pas la case "Page d'accueil" lors du chargement de la page un simple == est utilisé.


    Par exemple j'ai défini une page statique ayant l'id 002 (une vrai du core de pluxml) tout va bien mais avec mon plugin j'utilise des id sur 4 caractères donc 0002. Avec le contrôle actuel 002 == 0002 > true il faudrait faire un 002 === 0002 > false.

    J'ai un string de l'array

Connectez-vous ou Inscrivez-vous pour répondre.