Forum CMS Made Simple FR

Version complète : Série de conseil pour migrer vos modules V1.x -> V2.x
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
La migration de vos modules vers la nouvelle API de CmsMadeSimple ne sera pas compliquées. Voici pour vous aider une série de conseil tirée du forum anglais

Sommaire :

* Créer une feuille de style CSS via son module
* Remplacer global $gCms
* Remplacer $gCms->variables
* Fixer vos onglets qui déconnent

-----------------------------------------------------------------------------------------


[h]Créer une feuille de style CSS via son module[/h]

Avant :

Code :
// setup sample stylesheet
$stylesheetops = cmsms()->GetStylesheetOperations();
$fn = cms_join_path(dirname(__FILE__), 'templates', 'stylesheet.css');
if( !$stylesheetops->CheckExistingStylesheetName('nameofstylesheet') && file_exists($fn) )
{
        $stylesheet = new Stylesheet();
        $stylesheet->name = 'nameofstylesheet';
        $stylesheet->value = @file_get_contents($fn);  
        $stylesheet->media_type = 'screen';
        $stylesheetops->InsertStylesheet($stylesheet);
}

Après

Code :
$txt = file_get_contents($some_file);
$css = new CmsLayoutStylesheet;
$css->set_name('Some Stylesheet Name');
$css->set_description('A nice description for the stylesheet');
$css->set_content($txt);
$css->save();

+ d'info

[h]Remplacer global $gCms[/h]

L'utilisation de cette variable était déjà à proscrire depuis la V1.11, et est maintenant complètement supprimée.

remplacer

Code :
global $gCms;

par

Code :
$gCms = cmsms();

[h]Remplacer $gCms->variables[/h]

Idem qu'au dessus

remplacer

Code :
$gCms->variables['admintheme']

par

Code :
cms_utils::get_theme_object();

ou encore mieux dans vos gabarits, appelez directement les nouvelles balises adéquates dispo dans Cmsms 2.0 :

Code :
<a href="{cms_action_url module='MyModule' action='something'}">{admin_icon icon='newobject.gif'} {$mod->Lang('new_item')}</a>

[h]Fixer vos onglets qui déconnent (maintenant)[/h]

Le comportement de création des onglets a un peu changé, les fonctions $module->StartTabContent() et $module->EndTabContent() sont + malignes ce qui empêche de coder ceci

Code :
$smarty->assign('endtab',$this->EndTab());

puis de faire {endtab} dans vos gabarits. La solution très simple est d'écrire directement ceci dans vos gabarits :

Code :
{tab_header name='tab1' label='Tab 1'}
{tab_header name='tab2' label='Tab 2'}
{tab_start name='tab1'}
DU CONTENU
{tab_start name='tab2'}
PLUS DE CONTENU
{tab_end}