Forum CMS Made Simple FR

Version complète : [RESOLU]Ajouter un type de gabarit
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
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...=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
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();
    }
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