Archives de catégorie : Informatique

Un autre multiblog wordpress

Ceci est la reprise d’un fil initialement déposé sur wordpress-fr.net.

En plus de ce blog avec pdosqlite je gère aussi un groupe de blogs avec un installation classique … enfin presque.

L’objectif est d’avoir une seule installation de wordpress pour plusieurs blog, tous dans le même domaine mais éventuellement des sous domaine différents. Ces blogs sont hébergés sur le même serveur. Chaque blog a ses propres thèmes plugin.
par exemple le premier blog est adressé par
http://machin.domaine.tld/
le second par
http://truc.domaine.tld/blog/
et wordpress http://domaine.tld/wordpress
chaque blog doit ponter sur un répertoire contenant :
un répertoire wp-content, un .htaccess, un index.hp et bien sur le wp-config.php
le .htaccess contient simplement

# BEGIN WordPress
 
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
 
# END WordPress

index.php doit juste sauvegarder le chemin du wp-config et passer la main au wordpress installé. pour cela il utilise une constante et un variable de session.

le wp-config.php est à régler « as usual » avec comme rajout après la définition de WP-LANG

define ('WPLANG', 'fr_FR'); define('WP_CONTENT_DIR',dirname(__FILE__).'/wp-content'); define('WP_CONTENT_URL','http://personne.domaine.tld/blog/wp-content'); define('WP_URL','http://domaine.tld/wordpress'); define('COOKIE_DOMAIN','.domain.tld'); /* le point devant le domaine est important */
 
/* C'est tout, ne touchez pas au reste ! Bloguez bien ! */
if ( !defined('ABSPATH') )
  //define('ABSPATH', dirname(__FILE__) . '/');   define('ABSPATH', 'path_to_wordpress/'); /*modifier pour pointer sur wordpress*/

attention pour que WP_CONTENT_DIR soit pris en compte pour les téléchargements il faut que celui-ci ne soit pas renseigné dans l’écran Réglage/Divers

dans le wordpress installé il faut récupérer les information sur le wp-config à utiliser. Il faut donc modifier wp-load.php

<?php
/**
 * Bootstrap file for setting the ABSPATH constant
 * and loading the wp-config.php file. The wp-config.php
 * file will then load the wp-settings.php file, which
 * will then set up the WordPress environment.
 *
 * If the wp-config.php file is not found then an error
 * will be displayed asking the visitor to set up the
 * wp-config.php file.
 *
 * Will also search for wp-config.php in WordPress' parent
 * directory to allow the WordPress directory to remain
 * untouched.
 *
 * @package WordPress
 */
 
/** Define ABSPATH as this files directory */
define( 'ABSPATH', dirname(__FILE__) . '/' ); 
error_reporting(E_ALL ^ E_NOTICE ^ E_USER_NOTICE); session_start(); if(isset($_SESSION['config.php']))
    require_once($_SESSION['config.php']); elseif ( file_exists( ABSPATH . 'wp-config.php') ) {
 
	/** The config file resides in ABSPATH */
	require_once( ABSPATH . 'wp-config.php' ); 
} elseif ( file_exists( dirname(ABSPATH) . '/wp-config.php' ) && ! file_exists( dirname(ABSPATH) . '/wp-load.php' ) ) {
 
	/** The config file resides one level below ABSPATH */
	require_once( dirname(ABSPATH) . '/wp-config.php' ); 
} else {
 
	// A config file doesn't exist
 
	// Set a path for the link to the installer
	if (strpos($_SERVER['PHP_SELF'], 'wp-admin') !== false) $path = ''; 	else $path = 'wp-admin/'; 
	// Die with an error message
	require_once( ABSPATH . '/wp-includes/classes.php' ); 	require_once( ABSPATH . '/wp-includes/functions.php' ); 	require_once( ABSPATH . '/wp-includes/plugin.php' ); 	wp_die(sprintf(/*WP_I18N_NO_CONFIG*/'Je ne trouve pas votre fichier <code>wp-config.php</code>. J&rsquo;en ai besoin avant de lancer l&rsquo;installation.<br />Besoin d&rsquo;aide ? <a href='http://codex.wordpress.org/fr:Installer_WordPress'>En voici</a>.</p><p>Vous pouvez créer un fichier <code>wp-config.php</code> à l&rsquo;aide de notre interface Web, mais ça ne marche pas pour toutes les configurations de serveur. La méthode la plus sûre reste de créer le fichier à la main.</p><p><a href='%ssetup-config.php' class='button'>Créer le fichier de configuration</a>'/*/WP_I18N_NO_CONFIG*/, $path), /*WP_I18N_ERROR_TITLE*/'WordPress &raquo; Erreur'/*/WP_I18N_ERROR_TITLE*/);

Comme le point d’entrée pour récupérer le bon wp-config est bien l’adresse du blog et non pas celle de wordpress il est aussi nécessaire de modifier wp-includes/cron.php et remplacer get_option(‘siteurl’) par get_option(‘home’). Il se peut que cette manip soit à répéter dans d’autres fichiers mais pour l’instant elle semble suffire. Attention à ce point certaine extensions peuvent avoir un comportement …. bizarre dans ce contexte (exemple nextgen gallery) et donc nécessiter des adaptation

//origignal :	$cron_url = get_option( 'siteurl' ) . '/wp-cron.php'; 	$cron_url = get_option( 'home' ) . '/wp-cron.php';

accédez au blog pour le créer ne pas se tromper sur l’adresse de wordpress et du blog et c’est terminé … enjoy.

ce qu’il faut retenir :
Il est assez simple de faire du multiblog avec wordpress il suffit de définir comment wp-load récupère les informations du bon wp-config. On pourrait imaginer une solution avec une seule installation de wordpress mais autant de wp-config que de blogs et une utilsation du mod rewrite.

A vous de jouer et d’inventer d’autres mode de multiblog

(pour les utilisateurs de pdo sqlite j’ai été obligé d’utiliser la version 2.6.1 avant de pouvoir sauvegarder cet article)

Nouvelle version du thème

Je viens de changer la version du thème Paalam, donc c’est la version 2.0. Ce thème était hélas pas intertionalisé. J’avais déjà fais la manip sur la version 1.2 mais visiblement l’auteur n’avait pas repris les modification dans son svn.
Pour ceux qui le désire Le thème paalam i18n plus la version française.
Si par hasard vous voyez une coquille un bug ou une traduction approximative merci de me poster un commentaire sur ce billet.

Le General Purposes Plugin (JeePP)

Pour donner un coup de main à un utilsateur de wordpress français, j’ai bricolé un petit plugin que j’ai nommé pour le fun JeePP. Comme a priori il semble être utile pour plusieurs utilisateurs de wordpress, je vais lui accorder un article.
Un des utilisateurs m’a demandé si je pouvais en faire un widget et ma foi je trouve l’idée intéressante mais j’attendrai la prochaine version de wordpress qui doit simplifier l’API.le principe
ce plugin ne fait que permettre l’utilisation de la balise object dans les articles. Ce qui permet dans un article soit d’intégrer une applet, une animation flash soit une vue sur un site tiers (essayez vous devez pouvoir appeler la page d’accueil de google).

<?php
      /*
      Plugin Name: JeePP
      Description: General Purpose Plugin permet l'utilisation de la balise object dans les articles
      Plugin URI: http://bertrand.belguise.net/
      Author: Bertrand Belguise
      Version: 0.0.1
      Author URI: http://bertrand.belguise.net/blog/
      */
 
      #
      #  Copyright (c) 2008 Bertrand Belguise
      #
      #  JeePP 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.
      #
      #  JeePP 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 JeePP; if not, write to the Free Software Foundation, Inc., 59
      #  Temple Place, Suite 330, Boston, MA 02111-1307 USA
      #
      if (!CUSTOM_TAGS) {
        $allowedposttags['object'] = array(
          'data' => array(),
          'type' => array(),
          'classid' => array(),
          'height' => array(),
          'style' => array(),
          'width' => array()
        );         $allowedposttags['param'] = array(
           'name' => array(),
           'value' => array()
        );       };

en référence un article sur la balise object et la discussion originale sur wordpress français

ACER E261 2x2Go et Dual Channel

Je suis triste 😉 je me suis payé un kit dual channel 2x2go pour mon bel acer toutneuf …et il ne passe pas en mode dual channel.
Cela dit j’ai quand même une accélération notable des temps de réponse surtout dans les changements d’utilisateur qui deviennent enfin confortable. Je viens d’envoyer un petit mot au soutien ACER le problème semble être au niveau du bios puisqu’il ne me détecte (et donc teste) que 3Go.
Après quleque temps une réponse qui vaut son pesant de cacahouètes le chipset ne supporte que 3Go. C’est con mais dans les spécif de la machine Acer parlait de 4Go et ASUS visblement avec le même chipset (SIS672) annonce aussi 4Go.
Je crois que je n’aurais pas du l’acheter l’Acer.
A suivre ….

Gentoo linux sur Extensa E261 et carte SIS 671

Toujours dans le cadre de l’installation de ma nouvelle machine en double boot, j’ai constaté un non fonctionnement du driver sis de xorg.
Après un peu de recherche et quelques essais infructueux j’ai trouvé une réponse sur linux consulting.
En fait je n’ai eu besoin que de reprendre la troisième partie du patch du noyau celle qui concerne pciids.h.
Par contre il convient de recompiler le driver à partir des sources.
Un peu pénible .. mais ça marche et pour la première fois j’ai vu s’afficher une fenêtre X avec un serveur lancé sans paramètre !!! donc ça marche ++

Mod_rewrite ou l’art rachage de cheveux

Sous ce titre un peu funny un petit billet d’éclaircissement de la doc apache.
Après moult tâtonnements je suis arrivé à comprendre à quoi coreespondait le flag [C] de RewriteRule, en fait en cas de non réussite d’une condition tout les lignes RewriteRule ayant le même motif de recherche (le premier paramètre de la rewiterule) sont sautées. Et ben on ne peut pas dire que la doc était bien clair.

Petit plus je devais faire un aiguillage sur un site suivante l’hôte et tester que le premier champs de l’URL passée ne contenait pas le nom de l’hôte, pas mal de tentatives et quelques nuits passées ça me donne ça.

#Redirection des domaines
RewriteCond %{HTTP_HOST} ^(www.)?([^.]+).([^.]+)$ [NC]
RewriteCond %2%{REQUEST_URI} !^([^/]*)/1
RewriteRule ^(.*)$ /%2/$1

Comment ça c’est abscond ? avec cette règle chaque http://www.domaine.tld/url ou http://domaine.tld/url donne accès à /domaine/url sur le serveur concerné.
j’ai établi cette règle pour un site en construction sur les jeux

Je doit être un peu délirant

Actuellement j’utilise mg2 comme galerie, c’est en fait une qui se marie bien avec les hébergements Demo1G d’OVH. Globalement j’en suis satisfait mais intellectuellement ça me dérange que les galeries et sous galeries se partagent le même répertoire et que l’on puisse accéder directement aux images.
Lors des importations par paquet la génération des vignettes fait aussi souvent claquer le time out avec parfois des vignettes défectueuses.
Pour cela je pense soit reprendre MG2 soit réécrire une galerie à mon goût, avec la possibilité de mettre les photos hors vision du web et appelable uniquement à travers un script php. De plus la génération des vignettes se fera à la volée, ça donnera un peu plus de charge sur le serveur, et en cas de problème j’installerai un mécanisme de cache.
Pour l’instant j’ai créé une classe PHP générant les vignettes et gérant le watermark. Je pense compléter celle ci par un mécanisme pouvant générer des coins ronds ou des marques supplémentaires.
J’espère que ce projet ne va pas tomber aussi dans le cimetière des trucs abandonnés en chemin 😉

PS : autant je trouve MG2 sympa autant je trouve ardue son style d’écriture et son manque de documentation. C’est pourquoi j’envisage carrément une réécriture.

Qui suis je dans quel état j’erre ?

Le moment est venu de trouver un vrai nom pour ce blog et de le faire naître vraiment. J’aime bien chtioblogue mais je n’ai aucune envie de le détruire le vrai chtioblogue. Je pourrais puiser dans du patois, le Couarail de Bertrand ou en phonétique le Kouareuilllle de Bertrand.
Dans les titres délirants il y aurait J’vas vous dire ou pour faire la nique au journal le plus nul de la création Les mots privés (Celui qui devine à quoi je fais références gagne ma plus grande estime).
On peut aussi faire référence à son contenu le fourre tout mais je crains les connotations sexuelles >;-] où de manière plus intellectuelle The Bertrand’s Alices’s Restaurant.
Des idées ? il y aura vraiment de tout ,des aphorismes, de la politique ,des projets perdus, de l’informatique, des coups de gueule etc … bref un joli foutoir. (D’ailleurs je devrais utiliser une photo de mon bureau pour décorer le blog).
Il faut aussi penser à écrire la page de copyright.

Etat des lieux

Le thème paalam est maintenant internationalisé mais pas encore complètement testé.

J’ai des petits soucis probablement lié au thème sur le comportement de la sidebar. Il faudra que je creuse le sujet mais plus tard.

Plus ennuyant les liens en /blog/2008/09 ou en /blog/?m=20089 plantent. J’attribue pour l’instant ce problème au plugin pdo …. a suivre.

Problème des liens corrigé et pour la sidebar c’est le comportement du thème qui en fait me dérange, la modication à faire est légère je la reporte à un peu plus tard.