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