Tweaking & Co
Par Sid,
jeudi 6 juillet 2006 à 13:35 :: Général
:: lu 4654 fois :: #103
:: rss
:: atom
Read it in english with Google

n peu de travail nocturne sur mon blog ces dernières semaines a produit pluisieurs résultats notables.
D'abord, je modère maintenant les commentaires avant parution[1]. En échange, pour faciliter la vie de mes fidèles lecteurs adorés qui participent à la vie de ce blog, j'ai passé la rédaction des commentaires en mode Wiki et installé la Wikibarre de Kozlika et Pep.
Et comme je vous le disais précédemment, pdf4dc ne fonctionne pas avec PHP 5. Je suis donc passé à une feuille de style papier (CSS print) très courte dont la principale utilité est de supprimer tout ce qui ne présente pas d'intérêt à l'impression (entête, barre latérale, décorations diverse, etc.) pour obtenir une impression claire et lisible.
L'effet transparent a été la mise à jour du blog vers la dernière version suite à la publication d'un trou de sécurité.
Notes
[1] Les habitudes qui reviennent aux galop diront les mauvaises langues...
Pour ceux qui souhaiteraient quelques détails et éventuellement un peu d'aide...
D'abord, sur la feuille d'impression, c'est le plus court. Son but est donc de supprimer les éléments superflus, à savoir :
- l'entête ;
- la barre latérale ;
- le prélude tout en haut de l'écran ;
- le pied de page ;
- l'élément de date ;
- les étoiles pour la notation ;
- les formulaires de commentaire et de captcha pour l'impression individuelle des billets.
J'ai préféré laisser les commentaires. Le code est alors le suivant :
h1 a span {
display : none;
}
a:link, a:visited {
color: #000;
background: transparent;
text-decoration: underline;
}
#top, #sidebar, #prelude, #footer, #comment-form, .unit-rating, #addco {
display : none;
}
Vous aurez remarqué le #addco. C'est un identificateur que j'ai ajouté à la ligne qui affiche le message "Ajouter un commentaire" de manière à pouvoir la supprimer, puisqu'elle ne fait pas partie du formulaire proprement dit. Juste un détail cosmétique...
Ce fichier s'appelle naturellement print.css et doit être appelé depuis votre template.php de la manière suivante :
<link rel="stylesheet" type="text/css" href="<?php dcInfo('theme'); ?>/print.css" media="print" />
L'installation de la Wikibarre est simple, même s'il ne s'agit pas d'un plugin. L'archive contient deux réprtoires, js et wikibtns, qu'il faut copier dans votre répertoire de thème courant. Ensuite, il faudrait remplacer les fichiers form.php et prepend.php par ceux fournis. Sauf que pas mal de gens les modifient, ce qui va les obliger soit à intégrer leurs modification dans ces deux nouveaux fichiers, soit à modifier leurs fichiers à partir des nouveaux. Bref, du bon patching à la mimine. Pour vous aider, voici le patch pour la version 1.2.4 de DotClear :
--- themes/default/form.php 2006-04-11 12:39:41.000000000 +0200
+++ themes/default/form.php.new 2006-07-03 15:57:57.000000000 +0200
@@ -46,8 +51,14 @@
</p>
</fieldset>
-<p class="form-help">Le code HTML dans le commentaire sera affiché comme du texte,
-les adresses internet seront converties automatiquement.</p>
+<?php dcWikiCommentToolbar(); ?>
+<p class="form-help">
+<?php if (dc_wiki_comments) { ?>
+Ce blog permet une syntaxe <strong>wiki</strong> simplifiée dans les commentaires.<br/>
+Si votre navigateur est compatible, vous pouvez vous aider de la barre d´outils.<br/>
+<?php } ?>
+Le code HTML sera affiché comme du texte.<br/>
+</p>
<fieldset>
<p><input type="checkbox" id="c_remember" name="c_remember" />
--- src/dotclear-1.2.4/themes/default/prepend.php 2006-04-11 12:39:41.000000000 +0200
+++ www/htdocs/blog/themes/default/prepend.php 2006-07-03 15:59:18.000000000 +0200
@@ -28,4 +28,57 @@
$mod_files = dirname(__FILE__).'/post.php';
$mod_files = dirname(__FILE__).'/form.php';
+/**
+ * dcWikiCommentToolbar([string $message])
+ *
+ * Affiche un barre d'outils pour la mise en forme des commentaires
+ * au format wiki.
+ * La barre ne sera affichée que si le format wiki des commentaires
+ * est activé dans le fichier de configuration dotclear.ini.
+ *
+ * ( Reportez vous au fichier install.html présent dans l'archive de
+ * la wikibarre. )
+ *
+ * @param string $message un message d'information optionnel.
+ *
+ */
+function dcWikiCommentToolbar($message = '') {
+ global $theme_path, $theme_uri, $__theme;
+
+ if (is_dir($theme_path.$__theme.'/wikibtns/')) {
+ $dc_url_wikibuttons = $theme_uri.$__theme.'/wikibtns/';
+ } else {
+ $dc_url_wikibuttons = $theme_uri.'default/wikibtns/';
+ }
+ if (file_exists($theme_path.$__theme.'/js/wikibar.js')) {
+ $dc_url_wikijs = $theme_uri.$__theme.'/js/wikibar.js';
+ } else {
+ $dc_url_wikijs = $theme_uri.'default/js/wikibar.js';
+ }
+ if (dc_wiki_comments) {
+ echo '<script type="text/javascript" src="'.$dc_url_wikijs.'"></script>'. "\n".
+'<script type="text/javascript">'. "\n".
+" if (document.getElementById) {
+ var tb = new dcWikiBar(document.getElementById('c_content'),'$dc_url_wikibuttons');
+
+ tb.btStrong('".str_replace("'","\'",__('Strong emphasis'))."');+ tb.btEm('".str_replace("'","\'",__('Emphasis'))."');
+ tb.btIns('".str_replace("'","\'",__('Inserted'))."');
+ tb.btDel('".str_replace("'","\'",__('Deleted'))."');
+ tb.btQ('".str_replace("'","\'",__('Inline quote'))."');
+ tb.btCode('".str_replace("'","\'",__('Code'))."');
+ tb.btBr('".str_replace("'","\'",__('Line break'))."');
+ tb.btPre('".str_replace("'","\'",__('Preformated text'))."');
+ tb.btList('".str_replace("'","\'",__('Unordered list'))."','ul');
+ tb.btList('".str_replace("'","\'",__('Ordered list'))."','ol');+ tb.btLink('".str_replace("'","\'",__('Link'))."',
+ '".str_replace("'","\'",__('URL?'))."',
+ '".str_replace("'","\'",__('Language?'))."',
+ '".DC_LANG."');
+ tb.addSpace(10);
+ tb.draw('$message');
+ }
+</script>\n";
+ }
+}
?>
Concernant la mise à jour du blog, le truc chiant, c'est qu'encore une fois, il n'y a pas de patch publié, ce qui peut rendre l'installation lourdes pour ceux qui personnalisent leur Dotclear. Heureusement, le projet est géré sous Trac, outil qui sait produire des diffs. Et comme on me l'a demandé plusieurs fois, voilà la recette pour obtenir un diff entre deux version.
- on va dans
Browse source; - puis dans
Branches; - et on sélectionne la dernière version, la
1.2.5-stableen l'occurence ; - ensuite on demande le
Revision log; - puis on demande alors les changements entre la version qui précèdente (sous
copied from branches/1.2.4-stable) et la version actuelle, ce qui permet d'avoir tous les changements ; - enfin, dans cette dernière page pleine de rectangles verts et rouges, on descend jusqu'en bas pour demander la même chose au format
Unified Diff;
Et hopla tralala, un patch qu'il ne reste plus qu'à appliquer consciencieusement sur votre blog. Magique :)
Commentaires
1. Le jeudi 6 juillet 2006 à 15:57, par Jeremy
Réponse de Sid
2. Le mardi 15 août 2006 à 03:09, par Ziolrooski
Ajouter un commentaire