Forum CMS Made Simple FR
[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