[RESOLU]Ajouter un type de gabarit - Version imprimable
+- Forum CMS Made Simple FR (
https://forum.cmsmadesimple.fr)
+-- Forum : Général (
https://forum.cmsmadesimple.fr/forum-3.html)
+--- Forum : Modules, Tags (
https://forum.cmsmadesimple.fr/forum-14.html)
+--- Sujet : [RESOLU]Ajouter un type de gabarit (
/thread-3795.html)
[RESOLU]Ajouter un type de gabarit -
bobjo - 14/03/2016
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 2.1.2
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~
Bonjour,
Pour un module j'ai besoin de créer des type de gabarit
J'ai regardé dans le module news et j'ai appliqué ce que j'ai trouvé
Code :
[== PHP ==]
try {
$flag_template_type = new CmsLayoutTemplateType();
$flag_template_type->set_originator($this->GetName());
$flag_template_type->set_name('flag');
$flag_template_type->set_dflt_flag(TRUE);
$flag_template_type->set_lang_callback('Multilang::page_type_lang_callback');
$flag_template_type->set_content_callback('Multilang::reset_page_type_defaults');
$flag_template_type->reset_content_to_factory();
$flag_template_type->save();
}catch( CmsException $e ) {
// log it
debug_to_log(__FILE__.':'.__LINE__.' '.$e->GetMessage());
audit('',$this->GetName(),'Installation Error: '.$e->GetMessage());
}
Mais cela ne marche pas cela me retourne
Installation Error: No callback information to reset content
Et bien sur les gabarit que je veux créer ne fonctionne pas car le type n'est pas créé.
J'ai fais un tour sur le forum anglais et pourtant il semble que ce soit la bonne méthode ???
lien forum anglais
http://forum.cmsmadesimple.org/viewtopic.php?f=6&t=74067
Si vous aviez des précisions sur comment créer un type de gabarit et les gabarit à l'installation d'un module cela m'aiderai beaucoup
Cordialement
bobjo
[RESOLU]Ajouter un type de gabarit -
jce76350 - 14/03/2016
dans le fichier method.install.php
avant ton try un truc dans le genre
Code :
// ADD template
$fn = cms_join_path(dirname(__FILE__),'templates','ton_fichier.tpl');
if( file_exists( $fn ) ) {
$template = @file_get_contents($fn);
$tpl = new CmsLayoutTemplate(); $tpl->set_name(CmsLayoutTemplate::generate_unique_name('nom_de_ton_gabarit'));
$tpl->set_description(' une info de description ');
$tpl->set_owner($uid);
$tpl->set_content($template);
$tpl->set_type($menu_template_type);
$tpl->set_type_dflt(TRUE);
$tpl->save();
}
[RESOLU]Ajouter un type de gabarit -
bobjo - 14/03/2016
C'est bon j'ai trouvé !
Il faut dans le fichier du module mettre les fonctions :
page_type_lang_callback
et
getTplType
a adapter selon les besoins.
Cordialement
bobjo