Série de conseil pour migrer vos modules V1.x -> V2.x

Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
#1
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}
Répondre
#1
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}
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)