CMS Automne

Forum de la communauté du CMS Automne
Nous sommes actuellement le Sam Nov 23, 2024 9:01 pm

Le fuseau horaire est UTC [Heure d’été]




Publier un nouveau sujet Répondre au sujet  [ 3 messages ] 
Auteur Message
MessagePublié: Lun Mai 02, 2011 8:15 am 
Hors-ligne

Inscrit(e) le : Mar Sep 21, 2010 2:41 pm
Message(s) : 95
Bonjour,

suite à une question de ma part, j'avais eu l'occasion de tester le mode d'emploi pour créer un module PHP et l'utiliser dans un block à l'intérieur d'une rangée de contenu.

Mais ce que j'aimerais maintenant c'est faire apparaître ce module PHP dans le panneau d'administration avec les autres modules (tel que Alias, par exemple). En prévoyant un lien du genre 'Gérer mon module' (qui devrait apparaître juste en dessous du nom du module) cela me permettrait d'ouvrir une fenêtre et d'y mettre tout ce qui peut être nécessaire à l'administration du module. Libre à moi d'y prévoir tout ce dont j'ai besoin, bien sûr. 8)

Pourriez-vous m'indiquer la marche à suivre SVP, sachant que ce genre de tuto, quoiqu'un peu technique, pourrait aussi donner l'envie à d'autres développeurs de créer et même vous proposer des modules PHP.

En tout cas merci d'avance pour les infos. :wink:


Haut
 Profil  
 
MessagePublié: Lun Mai 02, 2011 8:44 am 
Hors-ligne
Administrateur
Avatar de l’utilisateur

Inscrit(e) le : Mer Juin 15, 2005 8:28 am
Message(s) : 759
Localisation : Sophia Antipolis
C'est une sacré question que tu pose là. Faire le tour de ce qu'il est possible de faire en PHP avec un module peut prendre des heures d'explications. Je vais commencer par te dire simplement comment créer un module basique qui offre un accès dans le panneau latéral. A toi ensuite de creuser (en te servant notamment des exemples de modules à télécharger) pour étendre les capacités de ce module.

Il te faut d'abord créer un module polymod via l'administration d'Automne. Libre à toi d'y créer ou pas des objets à l'intérieur ensuite. Note bien le codename que tu donnera à ton module, il te resservira ensuite.

Ensuite créé un répertoire /automne/admin/modules/CODENAME (ou CODENAME est à remplacer par le codename que tu aura donné à ton module. C'est valable à chaque fois que j'écrirai CODENAME plus bas.).

Puis créé le fichier /automne/classes/modules/CODENAME.php contenant le code suivant :
Code :
<?php
/**
  * Class CMS_module_**codename**
  *
  * Represent the **codename** module.
  *
  * @package CMS
  * @subpackage module
  * @author ...
  */

class CMS_module_**codename** extends CMS_polymod
{
   ...
}
?>


Cette classe te permettra d'étendre ton module polymod pour y ajouter des fonctions PHP qui te seront spécifiques.

On va ensuite y ajouter la fonction qui te permettra d'ajouter un élément dans le panneau latéral d'Automne :
Code :
/**
  * Return a list of objects infos to be displayed in module index according to user privileges
  *
  * @return string : HTML scripts infos
  * @access public
  */
function getObjectsInfos($user) {
   $objectsInfos = parent::getObjectsInfos($user); //get parent links details
   $cms_language = $user->getLanguage();
   //check user rights on module
   if ($user->hasModuleClearance($this->getCodename(), CLEARANCE_MODULE_EDIT)) {
      /*Add an element to the right panel*/
      $objectsInfos[] = array(
                  'label'         => 'Test',
                  'adminLabel'   => 'Test',
                  'description'   => 'Manage test element ...',
                  'objectId'      => 'object-test',
                  'url'         => PATH_ADMIN_MODULES_WR.'/'.$this->getCodename().'/test.php',
                  'module'      => $this->getCodename(),
                  'class'         => 'atm-elements',
                  'frame'         => true
               );
      /* ici il est possible d'ajouter d'autres éléments au panneau latéral via cette syntaxe :
      $objectsInfos[] = array(
                  'label'         => '...',               //Nom du lien
                  'adminLabel'   => '...',               //Nom de l'onglet
                  'description'   => '...',               //description de l'élément
                  'objectId'      => '...',               //identifiant unique du lien
                  'url'         => PATH_ADMIN_MODULES_WR.'/'.$this->getCodename().'/test.php', //url vers le fichier PHP à ouvrir dans l'onglet
                  'module'      => $this->getCodename(),   //codename du module
                  'class'         => 'atm-elements',         //icone dans le panneau latéral
                  'frame'         => true                //ouverture du fichier PHP dans une iframe
               );
      */
   }
   return $objectsInfos;
}


Cette fonction à ajouter dans la classe de ton module permet de déclarer les différents liens à ajouter dans le panneau latéral d'Automne. Ici ça ajoutera un simple lien de gestion d'un élément "Test" (modifie le code à ta convenance).

Ce lien te permettra d'ouvrir un fichier :
/automne/admin/modules/CODENAME/test.php dans une iframe. Libre à toi de mettre ce que tu veux ensuite dans ce fichier test.php.


Haut
 Profil  
 
MessagePublié: Lun Mai 02, 2011 1:00 pm 
Hors-ligne

Inscrit(e) le : Mar Sep 21, 2010 2:41 pm
Message(s) : 95
Merci Sébastien ! Super info :D

Je vais éplucher la question dès que possible, en espérant donner bientôt une bonne nouvelle.


Haut
 Profil  
 
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 3 messages ] 

Le fuseau horaire est UTC [Heure d’été]


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Bing [Bot] et 108 invité(s)


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Recherche de:
Aller vers :  
cron
Powered by phpBB® Forum Software © phpBB Group
Traduit par Maël Soucaze et Elglobo © phpBB.fr