Bienvenue, Invité
Nom d'utilisateur : Mot de passe : Se souvenir de moi

SUJET : Creation de dictionnaire pour nouveau module

Creation de dictionnaire pour nouveau module il y a 7 ans 4 mois #34122

  • xcl.saian
  • Portrait de xcl.saian
  • Hors ligne
  • Gold Boarder
  • Messages : 172
  • Remerciements reçus 18
  • Karma: 8
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
L'administrateur a désactivé l'accès en écriture pour le public.

Re: Creation de dictionnaire pour nouveau module il y a 7 ans 4 mois #34125

  • regis
  • Portrait de regis
  • Hors ligne
  • Administrateur
  • Messages : 2073
  • Remerciements reçus 103
  • Karma: 140
il faut regarder la partie développeur du wiki et les squelettes dans /dev/skeletons
L'administrateur a désactivé l'accès en écriture pour le public.

Re: Creation de dictionnaire pour nouveau module il y a 7 ans 2 mois #34900

  • xcl.saian
  • Portrait de xcl.saian
  • Hors ligne
  • Gold Boarder
  • Messages : 172
  • Remerciements reçus 18
  • Karma: 8
Désolé du délai de réponse ;-)

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.
L'administrateur a désactivé l'accès en écriture pour le public.

Re: Creation de dictionnaire pour nouveau module il y a 7 ans 2 mois #34905

  • xcl.saian
  • Portrait de xcl.saian
  • Hors ligne
  • Gold Boarder
  • Messages : 172
  • Remerciements reçus 18
  • Karma: 8
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 !
L'administrateur a désactivé l'accès en écriture pour le public.