Au cas où tu n'aurais pas trouvé la solution, je viens de tester ce qui suit et ça fonctionne.
Dans le fichier helper.php j'ai remplacé ça
Code:
function striptagsandcut( $text, $chars=null )
{
// first strip html tags
$cleantext = strip_tags($text);
// clean additionnal plugin tags
$patterns = array();
$patterns[] = '#\[(.*?)\]#';
$patterns[] = '#{(.*?)}#';
$patterns[] = '#&(.*?);#';
foreach ($patterns as $pattern) {
$cleantext = preg_replace( $pattern, '', $cleantext );
}
$length = JString::strlen(htmlspecialchars( $cleantext ));
// cut the text if required
if ($chars) {
if ($length > $chars) {
$cleantext = JString::substr( htmlspecialchars($cleantext, ENT_QUOTES, 'UTF-8'), 0, $chars ).'...';
}
}
return $cleantext;
}
par ça :
Code:
function striptagsandcutlead( $text, $chars=null )
{
// first strip html tags
$cleantext = strip_tags($text);
// clean additionnal plugin tags
$patterns = array();
$patterns[] = '#\[(.*?)\]#';
$patterns[] = '#{(.*?)}#';
$patterns[] = '#&(.*?);#';
foreach ($patterns as $pattern) {
$cleantext = preg_replace( $pattern, '', $cleantext );
}
$max=600;
if (strlen($cleantext) > $max) {
$cleantext = substr($cleantext, 0, $max);
$espace = strrpos($cleantext, " ");
$cleantext = substr($cleantext, 0, $espace)."...";
}
return $cleantext;
}
function striptagsandcut( $text, $chars=null )
{
// first strip html tags
$cleantext = strip_tags($text);
// clean additionnal plugin tags
$patterns = array();
$patterns[] = '#\[(.*?)\]#';
$patterns[] = '#{(.*?)}#';
$patterns[] = '#&(.*?);#';
foreach ($patterns as $pattern) {
$cleantext = preg_replace( $pattern, '', $cleantext );
}
$max=250;
if (strlen($cleantext) > $max) {
$cleantext = substr($cleantext, 0, $max);
$espace = strrpos($cleantext, " ");
$cleantext = substr($cleantext, 0, $espace)."...";
}
return $cleantext;
}
et pour appeler les fonctions, en ce qui me concerne, c'était dans le fichier category_items.php, j'ai remplacé ça :
Code:
echo flexicontent_html::striptagsandcut( $items[$i]->introtext, $this->params->get('lead_cut_text', 400) );
par ça :
Code:
echo flexicontent_html::striptagsandcutlead( $items[$i]->introtext);
Je ne suis pas parvenu à coder de façon à pouvoir ajuster le nombre de caractères depuis l'admin de flexicontent, j'ai donc du créer une fonction pour les articles à la une (lead) et une autre fonction pour les articles normaux. Il y a sans doute plus efficace...