Creation de dictionnaire pour nouveau module

Bonjour,

Je cherche à utiliser le principe de dictionnaire afin de pouvoir paramétrer facilement des types d’élément dans un module que je suis en train de développer.
Je cherche avant tout à me faire la main sur le développement de module spécifiques donc je n’ai pas de données particulières à traiter mais surtout je cherche à bien comprendre le fonctionnement.

Merci par avance

il faut regarder la partie développeur du wiki et les squelettes dans /dev/skeletons

Désolé du délai de réponse :wink:

Dans les skeletons, j’ai touvé ceci

// Dictionnaries
        if (! isset($conf->mymodule->enabled)) $conf->mymodule->enabled=0;
		$this->dictionnaries=array();
        /* Example:
        if (! isset($conf->mymodule->enabled)) $conf->mymodule->enabled=0;	// This is to avoid warnings
        $this->dictionnaries=array(
            'langs'=>'[email protected]',
            'tabname'=>array(MAIN_DB_PREFIX."table1",MAIN_DB_PREFIX."table2",MAIN_DB_PREFIX."table3"),		// List of tables we want to see into dictonnary editor
            'tablib'=>array("Table1","Table2","Table3"),													// Label of tables
            'tabsql'=>array('SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'table1 as f','SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'table2 as f','SELECT f.rowid as rowid, f.code, f.label, f.active FROM '.MAIN_DB_PREFIX.'table3 as f'),	// Request to select fields
            'tabsqlsort'=>array("label ASC","label ASC","label ASC"),																					// Sort order
            'tabfield'=>array("code,label","code,label","code,label"),																					// List of fields (result of select to show dictionnary)
            'tabfieldvalue'=>array("code,label","code,label","code,label"),																				// List of fields (list of fields to edit a record)
            'tabfieldinsert'=>array("code,label","code,label","code,label"),																			// List of fields (list of fields for insert)
            'tabrowid'=>array("rowid","rowid","rowid"),																									// Name of columns with primary key (try to always name it 'rowid')
            'tabcond'=>array($conf->mymodule->enabled,$conf->mymodule->enabled,$conf->mymodule->enabled)												// Condition to show each dictionnary
        );
        */

mais je n’ai pas trouvé de documentation sur l’utilisation de ces lignes… Faut-il créer une table en BD destinée à recevoir les valeurs du dictionnaire ? est-elle créée automatiquement à l’activation du module ? Que doit-être son nom ?

Par avance, merci.

J’ai trouvé d’où venait mon problème : mon module avait un _ dans le nom et donc les dictionnaires n’étaient pas chargés…
Il faut donc bien créer les sql des dictionnaires dans le dossier sql du module et les préciser dans $this->dictionnaries.

Ça fonctionne nickel !

Je poursuis la conception de mon module ;-), @ bientôt !