Dotclear 2ß7
Par Hadrien le dimanche, 23 décembre 2007, 22:59 - Général - Lien permanent -
Ça y est j'ai enfin fait la mise à jour vers la ßeta 7. Pas trop de difficulté mais une merdouille due au plugin 'Citations' qui empechait le chargement de 3 autre plugins avec l'erreur suivante : Invalid data type mediumint in schema et crachait une fatal en début de page. En fait il suffisait de modifier le type du champ "citation_id" de la table "dc_citation" en bigInt au lieu de mediumInt.
Maintenant, je pars fouiller ce qu'il y a d'intéressant dans cette version (plus si neuve que ça… ça fait un moment qu'elle est dispo…)
PS : Oh my god ! En fouillant dans le code pour essayer de bidouiller quelques trucs qui ne sont pas encore interfacés, je suis tombé sur des horreurs de codage. Du genre, abus d'utilisation de variables globales. Par exemple, lors de la génération d'une page, un objet $_ctx est créé et lui sont attribués les contenus à afficher récupérer par l'objet $core. Puis est appellée une autre méthode afin de traiter ces données. Là où ça devient drôle, c'est que chaque méthode commencent par ceci :
$_ctx =& $GLOBALS['_ctx'];
$core =& $GLOBALS['core'];
… ignoble.
PS2 : Rah, après 2 heures de fouille dans ce sac de nouilles, j'ai réussi à limiter la longueur des articles dans mes flux RSS. Si ça interresse quelqu'un, voici le hack :
- /inc/public/default_templates/rss2.xml
- ligne 31, ajouter l'attribut cut_string de la sorte :
tpl:EntryContent absolute_urls="1" encode_xml="1" cut_string="1000"
- ligne 31, ajouter l'attribut cut_string de la sorte :
- /clearbricks/common/lib.text.php
- Pour avoir un suffixe ([…] par exemple), modifiez la méthode cutString de cette classe :
public static function cutString($str,$l)
{
$s = preg_split('/([\s]+)/u',$str,-1,PREG_SPLIT_DELIM_CAPTURE);
$res = '';
$L = 0;
if (strlen($s[0]) >= $l) {
return substr($s[0],0,$l) . '[…]';
}
$suffix = '';
foreach ($s as $v)
{
$L = $L+strlen($v);
if ($L > $l) {
$suffix = ' […]';
break;
} else {
$res .= $v;
}
}
return trim($res) . $suffix;
}
Bon c'est du gros hack bien crade, mais j'ai pas trouvé de solution plus simple.
lu 483 fois
Commentaires
bonjour, j'ai trouvé ce billlet fort intéressan t:) je me demandais pourquoi cette précision :,mais j'ai pas trouve de solution plus simple ...
je te souhaite unebonne continuation !
Parceque j'aurais préféré ne pas avoir à hacker le cœur de Dotclear. J'aurais par exemple aimé pouvoir utiliser la valeur sauvegardée dans l'admin.