Série de conseil pour migrer vos modules V1.x -> V2.x -
bess - 20/05/2014
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
par
[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}