Forum CMS Made Simple FR
Conditionner un traitement au mode "Preview" de CmsMadeSimple - 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 : Conditionner un traitement au mode "Preview" de CmsMadeSimple (/thread-2702.html)



Conditionner un traitement au mode "Preview" de CmsMadeSimple - bess - 18/04/2013

Article également publié sur mon blog Wink

Depuis quelques mois et quelques versions maintenant, CmsMadeSimple vous propose un mode de prévisualisation des modifications de vos contenus. Les plus connus sont bien évidement les pages, mais également le module News.

Il est parfois intéressant de conditionner l'appel à un module, à un script JS selon si vous êtes en mode prévisualisation, je vous donnerais en exemple mon UDT Disquss qui permet d'avoir les commentaires sur le blog et qui a tendance à déconner à cause du mode preview (une longue histoire...)

Bref en cherchant un moyen simple de distinguer les deux modes : preview ou affichage normal, j'ai créé ce script très simple d'utilisation.

Créez une udt nommée "isPreview"

Code :
$prevs = array('_preview_', '__CMS_PREVIEW_PAGE__');
$isHere = false;
foreach($prevs as $prev){
  if(strpos($_SERVER['REQUEST_URI'], $prev) !== FALSE){
    $isHere = true;
    break;
  }
}

cmsms()->GetSmarty()->assign('isPreview', $isHere);
return;

Dans le code de votre page, de votre gabarit de news, appelez l'udt ainsi :

Code :
{isPreview}

{if $isPreview}
   vous êtes en mode preview
{else}
   [...] traitement à ne réaliser qu'en mode normal [...]
{/if}

C'est déjà finit. Vous couvrez ainsi la prévisualisation des modules News, Content et CgBlog

Mon script Disqus va prochainement sortir sous la forme d'un module pour plus de souplesse, il incorporera cette amélioration.