Comment installer un annuaire Freeglobes sous Free

 

La preuve, mon propre annuaire a tourné sous Free pendant 8 mois avant que je développe mon propre script et que je le migre ailleurs (puis que je réécrive tout le code source).

Mais c'est un peu casse-pieds. Beaucoup plus que d'installer un WordPress sous Free (cf article correspondant). Surtout que, contrairement à WordPress, la communauté est moins développée, donc il n'y a pas vraiment de tutos disponibles. Le forum Freeglobes est en panne depuis des mois. Si vous y allez, vous êtes accueillis par ce joli message d'erreur :

Deprecated: Function set_magic_quotes_runtime() is deprecated in /var/www/freeglobes.net/forum/include/common.php on line 59
Impossible de retrouver les informations invité. La table ‘fg_users' doit contenir une entrée avec un id = 1 qui représente les utilisateurs anonymes.

Quant au wiki de Freeglobes, ce n'est guère plus brillant :

Parse error: syntax error, unexpected T_NAMESPACE, expecting T_STRING in /var/www/freeglobes.net/wiki/includes/Namespace.php on line 52

Donc en gros, vous êtes tout seul.

Notez bien par ailleurs que Freeglobes n'a plus été mis à jour depuis 2009 (à part un petit correctif pour la compatibilité MySQL 5.5 qui dans le cas d'une installation sous Free ne va pas servir à grand-chose) et qu'il n'est pas très prudent d'installer un CMS aussi vieux. Arfooo est plus récent et profite de mises à jour régulières. Mais la version actuelle ne fonctionne même pas correctement en localhost (404 quand on essaie d'accéder à l'admin…) et sous Free, pas réussi à le faire tourner non plus.

Les modifications à apporter nécessitent d'éditer des scripts de l'annuaire. Donc, déjà, il faut s'y connaître un peu en HTML et à la rigueur en php. Dans l'hypothèse où un jour le créateur de Freeglobes se déciderait à nous pondre une nouvelle version, la mise à jour risquerait d'écraser vos correctifs d'adaptation. Il faudra donc tout refaire. Voire même de nouvelles adaptations si la nouvelle version exige un php supérieur à 5.1. Donc, réfléchissez bien avant de vous lancer…

Surtout que, pourquoi s'embêter, d'autant qu'en 2012, à l'heure de Penguin, se lancer dans la création d'un annuaire n'est plus vraiment une opération rentable ? Chais pas. Pour rigoler un coup, peut-être ?

Donc, si vous n'êtes pas encore tout à fait découragé et que vous n'avez rien d'autre à faire (week-end pluvieux…) c'est partiiii !

Les limitations

Donc déjà, l'URL-rewriting, on oublie. L'option n'est pas activable sous Free. Il va falloir se contenter d'URL du genre http://mon.hebergement.free.fr/index.php?dir=11

Pour une raison qui m'échappe, le rapatriement automatique des meta du site qu'on souhaite soumettre, pas moyen de le faire fonctionner non plus

Idem pour le rapatriement des vignettes, car les répertoires n'ont pas les droits d'écriture suffisamment, et le CHMOD 777 sous Free, ça marche pas.

 

Les modifications à apporter

Le .htaccess

Au premier chargement, vous remarquez le message d'erreur suivant :

Ouvrez votre fichier .htaccess. Virez toutes les regex d'url rewriting et les remplacer par cette simple ligne :

php 1

C'est tout. Ne laissez rien traîner d'autre, ou commentez les autres lignes, sinon, bonjour l'erreur 500.

Désactivez l'URL-rewriting partout

Rendez-vous dans le script  conf/config.php

$CONFIG['url_rewriting'] = "0";

Créez un nouveau répertoire nommé /sessions

Encore une spécificité Free. Vous allez très vite tomber sur ce message d'erreur…

Warning: session_start(): open(/var/www/free.fr/c/2/xxxxx/sessions/sess_a52cc02425ba458951d52c457839d9c1, O_RDWR) failed: No such file or directory (2) in /var/www/free.fr/c/2/xxxxx/index.php on line 1

Pour éviter d'avoir ce message d'erreur relatif aux sessions, il vous faut créer un répertoire /sessions à la racine. Et patienter quelques minutes, car l'effet n'est pas immédiat.

Les thumbnails

A l'heure où je ponds ces lignes, le seul encore fonctionnel parmi tous les services de récupération de thumbnails de site  semble être thumbshots.

Comme je l'ai mentionné plus haut, le rapatriement des vignettes ne se fait pas. La solution la moins mauvaise que j'ai trouvé est d'ajouter en dur de l'URL de récupération des URL chez thumbshots.
Allez dans  themes/votre_theme/basic_add_form.html (votre_theme/ est bien sûr le répertoire de votre thème. Par défaut c'est fresh/) et rajoutez dans le value  du champ url_image

http://open.thumbshots.org/image.pxf?url=<{$url}>

Ce qui va vous donner

<input name="url_image" type="text" value="http://open.thumbshots.org/image.pxf?url=<{$url}>" size="55" maxlength="200" />

Et si vous prévoyez une soumission payante (bon courage pour le paramétrage de l'Allopass. Personnellement je n'y suis pas arrivée. Probablement parce que tout est fait pour qu'on utilise la méthode proposée par Freeglobes, qui permet à son créateur de toucher un pourcentage sur vos revenus.) il faudra faire la même chose dans themes/votre_theme/premium_add_form.html

Désactiver les commentaires

$CONFIG['use_comments'] = "0";
$CONFIG['auto_approve_comments'] = "0";

Déasactiver le captcha

C'est un peu dommage, car c'était bien pratique pour éviter les soumissions automatiques et autres spams. Mais dans la version de Freeglobes du 03/01/2009, ce captcha génère un message d'erreur qui empêche carrément la soumission d'un site.

Donc, rendez-vous dans le script  conf/config.php et cherchez la ligne $CONFIG[‘use_antibot'] pour la mettre à 0.

$CONFIG['use_antibot'] = "0";

Comme en plus, depuis quelques mois, l'affichage des images générées par des vieux scripts utilisant la librairie GD est un peu aléatoire, ça évitera quelques arrachages de cheveux à vos futurs visiteurs.

Supprimer le message d'erreur relatif à setcookie()

Quand on saisit plusieurs mot-clés séparés par un espace dans le champ recherche (exemple « tap dance »), on a un message d'erreur.

Warning: Cookie names can not contain any of the folllowing ‘=,;
1314' (tap dance) in /mnt/169/sda/8/e/xxxxx/include/recherche.php on line 106

(Notez les 3 l dans « folllowing »… y en a qui doivent pas se relire trop souvent). Aller dans include/recherche.php et mettre en commentaire cette ligne :

//setcookie($recherche,'1', time()+3600*24);

C'est la solution la plus rapide, sinon on pourrait aussi rajouter un str_replace()  pour nettoyer la requête $recherche des caractères interdits.

 

Et aussi…

Changer l' URL de base du site et les paramètres de connexion à la base

Ça, ce n'est pas spécifique à Free. C'est plutôt spécifique à tous ceux qui vont d'abord paramétrer et tester leur annuaire en local, puis le migrer sous Free. Or, l'URL de base est stockée en absolu…

Allez (une nouvelle fois) dans le script conf/config.php et cherchez la ligne qui commence par $CONFIG[‘site_url']

$CONFIG['site_url'] = "http://localhost/annuaire";

doit devenir

$CONFIG['site_url'] = "http://mon.hebergement.free.fr";

En tête de fichier, vous avez les variables stockant les paramètres de connexion à votre base. Si vous avez été un peu fainéant, voici ce que vous avez en local :

$CONFIG['db_host'] = "localhost";
$CONFIG['db_login'] = "root";
$CONFIG['db_pass'] = "";
$CONFIG['db_name'] = "annuaire";

Et ce que vous devrez avoir pour que cela fonctionne sur votre hébergement.

$CONFIG['db_host'] = "sql.free.fr";
$CONFIG['db_login'] = "mon.hebergement";
$CONFIG['db_pass'] = "motdepasse";
$CONFIG['db_name'] = "mon_hebergement";

 

Augmenter la limite de caractères des descriptions de site

Là encore, ce n'est pas spécifique à Free. Mais, si comme moi vous trouvez que 255 caractères c'est un peu court pour décrire un site, il va vous falloir effectuer quelques modifications. On va augmenter cette limite à 500 caractères max. Dans themes/mon_theme/js/utils.js (vérification de la longueur en javascript) Chercher la variable fieldMaxLength dans fonction CheckLen() (vers la ligne 134)

fieldMaxLength = 500;

Dans include/functions/basic.php (vérification de la longueur en php)

Chercher vers la ligne 38 else if (strlen($description) > 250). Et mettre 500 (voir même 510 pour être sûr…)

else if (strlen($description) > 510)

Dans language/french/main.php (textes des messages d'erreur en Français)

Chercher les variables $lang[‘basic_advantages'] et $lang[‘warn_desc'] et adapter les textes des messages d'erreur.

Karine SANCHE

Partager cet article