[resolu]création d'un module function DoAction inopérante - rusey - 26/12/2011
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.10.2
#~ Url du site : http://127.0.0.1
#~ Hébergeur / Soft : wampserver
#~ Informations Système :
#~ #~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ #~ Version du CMS: #1.10.2
#~ #~ Url du site : http://121.0.0.1
#~ #~ Hébergeur / Soft : wampserver
#~ #~ Informations Système :
#~ #~ Cms Version : 1.10.2
#~ #~ Modules installés :
#~ #~ CMSMailer: 2.0.2
#~ #~ CMSPrinting: 1.0
#~ #~ FileManager: 1.2.0
#~ #~ MenuManager: 1.7.7
#~ #~ MicroTiny: 1.1.1
#~ #~ ModuleManager: 1.5.3
#~ #~ Nouvelles: 2.12.3
#~ #~ Recherche: 1.7
#~ #~ ThemeManager: 1.1.4
#~ #~ FormBuilder: 0.7
#~ #~ Skeleton: 1.8.1
#~ #~ Mysqlmanager: 1.2.5
#~ #~ Captcha: 0.4.5
#~ #~ CGExtensions: 1.27.1
#~ #~ NEM: 2.3.8
#~ #~ Informations de configuration :
#~ #~ php_memory_limit:
#~ #~ process_whole_template: faux
#~ #~ output_compression: faux
#~ #~ max_upload_size: 10000000
#~ #~ default_upload_permission: 664
#~ #~ url_rewriting: aucune
#~ #~ page_extension:
#~ #~ query_var: page
#~ #~ image_manipulation_prog: GD
#~ #~ auto_alias_content: vrai
#~ #~ localisation:
#~ #~ default_encoding: UTF-8
#~ #~ admin_encoding: UTF-8
#~ #~ set_names: vrai
#~ #~ Informations sur PHP :
#~ #~ phpversion: 5.3.5
#~ #~ md5_function: Le (Vrai)
#~ #~ gd_version: 2
#~ #~ tempnam_function: Le (Vrai)
#~ #~ magic_quotes_runtime: Désactivé (Faux)
#~ #~ E_STRICT: 0
#~ #~ E_DEPRECATED: 0
#~ #~ memory_limit: 128M
#~ #~ max_execution_time: 60
#~ #~ output_buffering: 1
#~ #~ safe_mode: Désactivé (Faux)
#~ #~ file_uploads: Le (Vrai)
#~ #~ post_max_size: 10M
#~ #~ upload_max_filesize: 10M
#~ #~ session_save_path: c: / wamp / tmp (0777)
#~ #~ session_use_cookies: Le (Vrai)
#~ #~ xml_function: Le (Vrai)
#~ #~ Informations sur le serveur :
#~ #~ Server API: apache2handler
#~ #~ DServer Type: MySQL (MySQL)
#~ #~ DServer Version: 5.5.8
#~ #~ ----------------------------------------------
#~ #~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~
Bonjour,
Je suis en train de créer mon premier module en suivant les indications du tutoriel :
http://wiki.cmsmadesimple.org/index.php/User_Handbook/Developers_Guide/Module_Tutorial.
la phase de création du module c'est correctement déroulée et j'ai pu ainsi charger avec PhpMyAdmin 77 articles dans la table crée : "cms_module_catlist_products"
J'ai adapté comme c'est indiqué la fonction DoAction :
function DoAction($action, $id, $params, $returnid=-1)
{
if ($action == 'default')
{
$db =& $this->GetDb();
$sql = 'SELECT * FROM ' . cms_db_prefix().'module_catlist_products;';
$dbresult =& $db->Execute($sql);
$list = "<br /><br />\n";
$list .= "<ul>\n";
while ($dbresult && $row = $dbresult->FetchRow())
{
$list .= "<li><b>".$row['cata_categorie']." : ". $row['cata_materiel'] ." ". $row['cata_marque']." ". $row['cata_model'] .'</b><br />';
$list .= ''. '<br />';
$list .= "</li>\n";
}
$list .= "</ul>\n";
$list .= "<br /><br />\n";
}
// assign to Smarty
global $gCms;
$this->smarty->assign('list', $list);
/**
*Insert: {cms_module module='Catlist'}{$list}
*in your page template
*But there has to be a way for this to work without the {$list} tag...
**/
return;
}
} //end class
Voici mon problème:
et j'ai essayé de faire retourner cette fonction dans une page dans le contenu en l'appelant comme c'est indiqué par
{cms_module module='Catlist'}{$list} sans résutat;
puis même chose en modifiant le "return" de la fonction par "return $liste;" sans résutat
puis en appelant la fonction sans {$list} seulement par {cms_module module='Catlist'} sans résutat
puis j'ai vidé la fonction de toute condition et substance pour lui faire retourner un $list='hello world' toujours sans résultat
merci de m'aider à sortir de cette impasse.
[resolu]création d'un module function DoAction inopérante -
jissey - 27/12/2011
bonjour,
je viens de relire rapidement le tuto et il n'est pas à jour pour la version 1.10.x. A la place de
Code :
[== PHP ==]
global $gCms;
$this->smarty->assign('list', $list);
essaie :
Code :
[== PHP ==]
$gCms = cmsms();
$smarty = $gCms->GetSmarty();
$this->$smarty->assign('list', $list);
ou
$this->cmsms()->GetSmarty()->assign('list', $list);
Nota : C'est mieux de garder la variable $smarty pour un usage ultérieur.
[resolu]création d'un module function DoAction inopérante - rusey - 28/12/2011
Bonjour jissey
Merci pour ta réponse.
J'ai suivi tes indications
en remplaçant :
global $gCms;
$this->smarty->assign('list', $list);
par :
$gCms = cmsms();
$smarty = $gCms->GetSmarty();
$this->$smarty->assign('list',$list);
sans résultat.
puis par :
$this->cmsms()->GetSmarty()->assign('list', $list);
et le problème reste entier.
cette correction est sans doute nécessaire mais pas suffisante pour me sortir de mon impasse. :/
[resolu]création d'un module function DoAction inopérante -
jissey - 28/12/2011
re,
et tu n'as aucun messages d'erreur?
Je n'ai pas fait ce tuto et je n'en ai pas le temps mais :
1- remonte l'initialisation de $gCms = cmsms(); au début juste avant $db =& $this->GetDb();
2- remplace $db =& $this->GetDb(); par $db = $gCms->GetDb();
3- dans le fichier de config, modifie la variable $config['debug']=false/true
4- affiche la page et recherche la requête sql qui doit être exécutée (recherche ça =>module_catlist_products).
il doit y avoir un message d'erreur.
[resolu]création d'un module function DoAction inopérante -
bess - 03/01/2012
retire ton code doAction(...){...} de ton fichier et opte plutôt pour créer un fichier nommé action.default.php qui contiendra ce code :
Code :
<?php
$gCms = cmsms();
if (!isset($gCms)) exit;
$db = $gCms->GetDb();
$sql = 'SELECT * FROM ' . cms_db_prefix().'module_catlist_products;';
$dbresult =& $db->Execute($sql);
$list = "<br /><br />\n";
$list .= "<ul>\n";
while ($dbresult && $row = $dbresult->FetchRow())
{
$list .= "<li><b>".$row['cata_categorie']." : ". $row['cata_materiel'] ." ". $row['cata_marque']." ". $row['cata_model'] .'</b><br />';
$list .= ''. '<br />';
$list .= "</li>\n";
}
$list .= "</ul>\n";
$list .= "<br /><br />\n";
}
// assign to Smarty
$smarty = $gCms->GetSmarty();
$smarty->assign('list', $list);
/**
*Insert: {cms_module module='Catlist'}{$list}
*in your page template
*But there has to be a way for this to work without the {$list} tag...
**/
return;
?>
réduire le fichier principal ton module est la méthode préconisée depuis 2011. Le tuto que tu suis est obsolète. Préfère les tutos dispo sur wiki.cmsmadesimple.fr (pas tous présent, mais plus récents)
Si ton module ne fonctionne toujours pas après ces modifications (+ étude des erreurs de ta part) : tu me le zip et tu me l'envoie par email sur contact @ cmsmadesimple point fr je regarderais de plus prêt cette histoire
[resolu]création d'un module function DoAction inopérante - rusey - 04/01/2012
Merci à vous deux
tout fonctionne,
pour l'affichage des messages d'erreur j'ai eu droit à toutes les erreurs de pleins de modules que j'ai installé sans les utiliser j'ai donc renoncé à poursuivre mes recherches dans ce sens.
Du coup je me suis rabattu sur le solution de bess et cela fonctionne super je vais fermer le sujet