Les avertissements suivants se sont produits :
Warning [2] Undefined array key 0 - Line: 1640 - File: showthread.php PHP 8.2.18 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/showthread.php 1640 errorHandler->error_callback
/showthread.php 915 buildtree




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Nouveau plugin : ponctuation insécable
#7
Voici les nouveaux codes pour 1.10.3 et pour 1.11 svn 8200+
Ils semblent fonctionner avec les ! et ; comme demandé par Kraygoon (il supprime les  +ponctuation ajoutés dans les scripts).

Je ne dis pas qu'il englobe TOUS les cas, mais il évitera un très grand % de ponctuation en tête de ligne.
Lien pour la 1.11 svn 8200+ :http://menus-cmsms-madesimple.be/bizbuzz...acters.zip
OU
Code :
<?php
// put into the 'plugins' directory and name it 'postfilter.nonbreaking_characters.php'
function smarty_postfilter_nonbreaking_characters($tpl_output, &$template)
{
    $smarty = $template->smarty;
    $result = explode(':', $smarty->_current_file);
    if (count($result) > 0)
    {
        if( startswith($result[0],'tmp_') ) $result[0] = 'template';
        if ($result[0] == 'content' || $result[0] == 'globalcontent' || $result[0] == 'template' || strlen($result[0]) == '40')
        // evaluated template a disparu depuis cmsms 1.10.3 et a été remplacé par une string de 40 caractères
        //Si un global content block pose problème, vous empêcher le plugin d'y entrer en ajoutant && $result[1] != 'nom du GCB'
        {        
            $patterns = array ('#\b(\s)+([:?!;])(?=\s|<)#', '#«\s#', '#\s»#', '#(<script.*)(&nbsp;)([:?!;])(.*</script)#si');
            $replace = array ('&nbsp;$2', '«&nbsp;', '&nbsp;»', '$1 $3$4');
            $tpl_output = preg_replace($patterns, $replace, $tpl_output);        
        }
    }    
    return $tpl_output;        
}

function smarty_cms_about_postfilter_nonbreaking_characters()
{
    ?>
    <p>Author: Jean le Chauve&lt;jeanlechauve@gmail.com&gt;</p>
    <p>Version: 1.0</p>
    <p>
    Change History:<br/>
    None
    </p>
    <?php
}
?>
Merci de me donner vos retours.
ps : pour insérer des guillemets français, vous pouvez utiliser la combinaison Alt + 174 et Alt + 175

Et la version 1.10.3 : à dézipper dans /plugins
OU
Créer un fichier postfilter.nonbreaking_characters.php avec le code ci-dessous et placez-le dans /plugins
Code :
<?php
// put into the 'plugins' directory and name it 'postfilter.nonbreaking_characters.php'
function smarty_cms_postfilter_nonbreaking_characters($tpl_output, &$smarty)
{    
    $result = explode(':', $smarty->_current_file);
    if (count($result) > 0)
    {
        $patterns = array ('#\b(\s)+([:?!;])(?=\s|<)#', '#«\s#', '#\s»#', '#(<script.*)(&nbsp;)([:?!;])(.*</script)#s');
        $replace = array ('&nbsp;$2', '«&nbsp;', '&nbsp;»', '$1 $3$4');
            
        if ($result[0] == 'content' || $result[0] == 'temporary template' || $result[0] == 'globalcontent' || $result[0] == 'evaluated template')
//Si un global content block pose problème, vous empêcher le plugin d'y entrer en ajoutant && $result[1] != 'nom du GCB'
        {            
            $tpl_output = preg_replace($patterns, $replace, $tpl_output);
        }
    }    
    return $tpl_output;
        
}

function smarty_cms_about_postfilter_nonbreaking_characters()
{
    ?>
    <p>Author: Jean le Chauve&lt;jeanlechauve@gmail.com&gt;</p>
    <p>Version: 1.0</p>
    <p>
    Change History:<br/>
    None
    </p>
    <?php
}
?>
Répondre


Messages dans ce sujet

Atteindre :


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