Le blog de llaumgui

Linux en général, Fedora / CentOS en particulier...

Aller au contenu | Aller au menu | Aller à la recherche

lundi 21 avril 2008

Pimp my Dotclear ;-)

Dotclear est un logiciel simple et léger permettant de créer son blog (comme ici) ou de mettre en place une plateforme de blog pouvant héberger plusieurs blogs comme c'est le cas sur la plateforme de blog de fedora-fr.

Lire la suite...

mercredi 16 avril 2008

Utiliser mootools dans Dotclear 2.0

Dotclear, le gestionnaire de blog, dans sa version 2.0 (dont la RC1 devrait pointer le bout de son nez le 1er mai) utilise jQuery comme librairie javascript. Notons au passage que l'utilisation d'une telle librairie permet de gagner un temps de développement précieux et d'éviter d'éventuels problèmes de compatibilité entre les différents navigateurs.

Actuellement, l'utilisation du javascript dans le thème par défaut (Blowup) se limite à la gestion du cookie de la case "Se souvenir de moi sur ce blog".

J'aime beaucoup jQuery (je m'en suis servi dans mon précédent thème et sur d'autres projets) mais professionnellement j'utilise beaucoup mootools et j'ai acquis des facilités avec ce framework.
Pour mon dernier thème, Nodoka, c'est donc mootools que j'ai retenu et j'ai donc eu à entreprendre de porter le code de la gestion des cookies de jQuery vers mootools.
Histoire de vous faciliter la vie si vous aussi vous souhaitez utiliser mootools dans vos thèmes Dotclear, je vous mets mon bout de code à disposition ainsi que la documentation.

svn co https://svn.llaumgui.com/javascript/mootools_1.1.x/dc_remember/

On remarquera qu'il y a 2 fichiers : un fichier source avec le code lisible et commenté; et une version compressée avec YUI Compressor. D'ailleur, La compression des javascripts donnera bientôt lieu à un nouveau billet.

dimanche 13 avril 2008

Nouveau thème pour le blog

Après pas mal de temps passé, de recherche, de codage, d'effaçage puis de re-codage : voici la nouvelle version du blog.
Le thème s'appelle Nodoka et il est clairement inspiré du thème GTK2 de Fedora ;-). Pour le moment on est en version alphabêta mais il devrait s'enrichir au fil des jours.

Les nouveautés :

  • Nouveau look, c'est le plus visible ;-)
  • Evolution des couleurs et du bandeau avec l'heure... Comme le bureau de  Fedora
  • Mise en avant de le possibilité de souscrire par email aux commentaires d'un billet et de gérer ses abonnements
  • 2 nouvelles pages.
  • Réécriture des javascripts de Dotclear pour tourner avec mootools à la place de jQuery
  • Blog valide CSS 2.1 et xHTML 1.0 Strict

vendredi 31 août 2007

Mise à jour automatique de Dotclear 2.0 et de ses plugins, à partir du SVN (update)

Je mets très souvent mon blog à jour à partir de la dernière version SVN de Dotclear 2.0. Jusqu'à présent, je faisais un svn co sur ma machine locale, puis je virais les répertoires inutiles (rm -rf `find ./ -name .svn`) et enfin j'envoyais le tout sur mon ftp. On obtient alors une version de Dotclear à jour et sans fichiers .svn. Le revers de la médaille étant le temps passé à faire la manip'. Je me suis donc fais un petit script pour automatiser tout ça :

  1. Mise à jours des sources de Dotclear à partir du SVN.
  2. Mise à jour et téléchargement de nouveaux plugins à partir du SVN de Dotclear.
  3. Mise à jour de la base de données (visite de la page d'admin).
  4. Vidage le cache.

Comme je suis un Geek très flémard et qui n'a peur de rien : j'ai mis le tout en tâche cron.

#!/bin/bash
###############################################################################
#
# dc-svn-co :
# Mise à jour d'une installation Dotclear 2.0 à partir des sources du SVN.
#
# Dépendances requises :
#       - subversion
#       - curl
#
# Attention : L'utilisation de ce script permet de mettre à jour votre instance
# de Dotclear à partir d'une version dite instable !
# Utiliser à vos risques et périls !
#
# Licence Dotclear : http://www.dotclear.net/license.html
#
# by Guillaume Kulakowski a.k.a LLaumgui <guillaume at llaumgui dot com>
# Version 2.0
#
###############################################################################
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not,
#  - write to the Free Software
#       Foundation, Inc., 51 Franklin Street, Fifth Floor,
#       Boston, MA  02110-1301, USA.
#   - See http://www.gnu.org/licenses/gpl.html
###############################################################################


######################################
# Variables :

# Chemin vers l'installation de Dotclear :
DC_CORE_PATH="/home/www.xxx.com/www"

# Chemin vers les plugins de Dotclear :
DC_PLUGIN_PATH="$DC_CORE_PATH/plugins"

# Chemin vers le cache :
DC_CACHE_PATH="$DC_CORE_PATH/cache"

# Liste des plugins à récupérer à partir du svn :
DC_PLUGIN_LIST="antiflood commentsWikibar dayMode emailNotification gallery related sitemaps spamplemousse2"

# Chemin vers votre administration (pour la requête de mise à jour) :
DC_URL="http://www.xxx.com/admin/"


SVN_DC_URL="https://svn.dotclear.net/2.0/trunk"
SVN_DC_PLUGIN_URL="https://svn.dotclear.net/2.0/plugins"





######################################
# # #                            # # #
# # #   /!\ On touche plus /!\   # # #
# # #                            # # #
######################################

###
# Mise à jour à partir du SVN :
function svnCo() {

    cd "$1"
    svn co "$2" ./
}



###
# Mise à jour de la liste des plugins à partir du svn :
function svnPlugin () {

        for plugin in $DC_PLUGIN_LIST; do
                echo -e "\n\n###############  $plugin   ###############"
               
                # Création du répertoire pour les nouveaux plugins :
                if [ ! -d $DC_PLUGIN_PATH/$plugin ]; then
                        echo "Le répertoire $plugin n'existe pas !"
                        echo "Création du répertoire $plugin."
                        mkdir "$DC_PLUGIN_PATH/$plugin"
                fi;
               
                svnCo "$DC_PLUGIN_PATH/$plugin" "$SVN_DC_PLUGIN_URL/$plugin"
        done;
}



###
# Mise à jour de la base par appel de l'url de l'admin :
function updateDB() {

        curl $DC_URL
}



###
# On vide le cache
function cleanCache() {
       
        rm -rf "$DC_CACHE_PATH/cbfeed"
        rm -rf "$DC_CACHE_PATH/cbtpl"
}





echo "################################################################################"
echo "#                                                                              #"
echo "#               Mise à jour de Dotclear à partir des sources SVN               #"
echo "#                                                                              #"
echo "################################################################################"
svnCo "$DC_CORE_PATH" "$SVN_DC_URL"

echo -e "\n\n\n\n\n\n################################################################################"
echo "#                                                                              #"
echo "#                      Mise à jour de la liste des plugins                     #"
echo "#                                                                              #"
echo "################################################################################"
svnPlugin

echo -e "\n\n\n\n\n\n################################################################################"
echo "#                                                                              #"
echo "#                           Opérations de mise à jours                         #"
echo "#                                                                              #"
echo "################################################################################"
echo ""
echo -e "\n### Mise à jour de la base de données ###"
updateDB

echo -e "\n\n###          Vidage du cache          ###"
cleanCache

Je mets à disposition mon script (sous licence GPL) tout en précisant que son utilisation réfléchie ne pose pas de problème (pas plus qu'un checkout) mais qu'une mise à jour automatisée au moment où la révision Subversion plante (ça peut arriver), fait buger le site jusqu'à la mise à jour suivante...

Mise à jour : Métro-sexualisation du code pour un rapport par mail (crontab) plus lisible.

samedi 3 mars 2007

jQuery, UTF8 et Internet Explorer

Toujours dans la catégorie "pamphlet contre le navigateur de la firme de Redmond" : un petit désagrément que je viens de constater entre jQuery, le plugin Validation et Internet Explorer.
Si l'encodage de la librairie de base (jquery.js) et celui du plugin (jquery.validation.js) sont différents (UTF-8 pour l'un et ISO-8859-1 pour l'autre), des erreurs Javascript apparaissent dans IE.

Ça a l'air triviale, mais pourtant j'ai passé plus de 3 heures à essayer de débuger du Javascrit sous IE (il parait que c'est possible ;-)) qui, n'ayons pas peur des mots, est une véritable bouse dans le domaine du débug JS.

Lire la suite...

dimanche 25 février 2007

Thème llaumgui-ng, Dotclear 2 et jQuery

Je viens de basculer par défaut le thème "llaumgui-ng" et je devrais bientôt retirer le thème "llaumgui" de mon blog. Ce nouveau thème est plus moderne est plus sérieux que le précédent. Il est pour le moment en version bêta et devrait évoluer graphiquement (couleur, header, etc...) et techniquement, me permettant ainsi de transformer LLaumguiDotCom en petit Labo Web 2.0.

Lire la suite...

vendredi 23 février 2007

Preview du thème LLaumgui-ng

A la demande générale de certain qui se reconnaîtrons, je suis en train de concocter un nouveau thème pour mon blog, simplement appelé llaumgui-ng.

Pour le moment, vous pouvez admirer une preview de ce que ça donnera : un thème qui se rapproche du bureau de Gnome avec un header bien plus sobre que l'actuel qui sera basé sur un fond d'écran de Diana.

Question technique, j'utilise des éléments de CSS 2.0 qui pourraient ne pas être compatible IE6 (:first-child par exemple), et je m'en fout ! Je ne vais pas me casser le XXX à la place des ingénieurs de chez Microsoft qui ne sont pas fichus de coder un navigateur munit d'un interpréteur correct ! A bon entendeur...
Je suis aussi en train de regarder du côté de jQuery, inclue dans DotClear 2.0 afin de voir ce que je peux en faire...

Preview du thème LLaumgui-ng

J'attends vos remarques et commentaires.