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.