Forum CMS Made Simple FR
Série de conseil pour migrer vos modules V1.x -> V2.x - Version imprimable

+- Forum CMS Made Simple FR (https://forum.cmsmadesimple.fr)
+-- Forum : Ressources (https://forum.cmsmadesimple.fr/forum-4.html)
+--- Forum : Développement et Astuces (https://forum.cmsmadesimple.fr/forum-15.html)
+--- Sujet : Série de conseil pour migrer vos modules V1.x -> V2.x (/thread-3222.html)



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

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}