What are the differences between topics and sections?
Quelles sont les différences entre les topics et sections?
Well, the topics tell you what the news is about. The sections allow you to move off-topic news out of the front page. For exemple, on Linuxfr.org, all news about cinema are put in a special section. Very seldomly does one of this news appear on the front page (only if it has a direct connexion with Linux). There is also a section to allow users to ask their questions: these news concern about any topic, but their type is inherently different from the standard, informative news. Thus they have been grouped in a section.

En faite les topics c'est les icones que tu vois à coté des news. Ca permet de dire de quoi retourne la news. Ca peut etre Internet, PHP, Debian, KDE, Hardware, Pirate, etc. Ensuite il y a la section. Par défaut les news doivent aller dans Articles mais tu peux créer des sections lorsque tu vois que des news sont souvent postées et intéressantes mais qui n'ont pas de rapport avec le sujet principal du site, ou bien si le news de news concernant un sujet viennent souvent. Par exemple sur linuxfr j'ai mis une section Cinéma. Aprés le modérateur lors de la modération choisit s'il désire voir la news qu'il vient d'approuver sur la page principale, qui recense toutes les news qui ont le flag 'view' à 1. Ainsi sur linuxfr par exemple les news cinéma n'y sont jamais mises.

Les topics correspondent aux icones qu'on voit sur le coté des news. Le sections correpondent à ce qu'on voit en haut à gauche. Quand tu veux donner de l'importance à un sujet genre Cinéma, Debian, etc, tu peux créer une section. Ou quand tu veux parler d'un sujet sans polluer le site principal qui est sans doute au départ nonprévu pour celui ci. Genre section cinéma dans linuxfr. Le flag view permet ensuite de dire si tu veux la news sur la page principale ou non. Par exemple pour la section RTFM sur linuxfr (celle qui sert aux gens pour poser leurs questions) on ne met pas systematiquement les news sur la page principale. C'est bon ? :)

Can daCode be installed on my.provider.com?
Puis-je installer daCode sur mon.hebergeur.amoi ?
Most probably, yes. daCode is known to run with PHP on safe mode, which is the case of most hosting providers. Some providers also have forbidden the use of the mail function. If you're in this case, see below.
Très certainement. daCode fonctionne avec PHP en safe mode, ce qui est le cas avec la plupart des hébergeurs. Par contre, certains hébergeurs ont supprimé l'accès à la fontion mail() de PHP. Si c'est votre cas, voyez ci-dessous.
My provider uses PHP4 and only allows for .php exentsions. How can I get daCode to run?
Mon hébergeur est en PHP4 et n'accepte que les extensions .php, comment puis-je faire tourner daCode ?

daCode can work with any extension. For common extensions, if you arev running a Unix-like operationg system, just cd to the daCode directory and type `$ make php` to change the extensions as well as the links inside the files. This will work with php, php3 and php4 extensions.

If you need some excentric extension, you'll have to modify the makefile. Ask on dacode-user list if you have a problem.

Warning (big one in red, with flashing lights): CVS will only work with original extensions, thus you'll have to switch back to .php3 (make php3) before getting the last changes with CVS.

daCode peut fonctionner avec n'importe quelle extension. Pour les extensions usuelles (.php, .php3 et .php4), il suffit dans le répertoire daCode de taper (sous Unix) prompt$ make php pour transformer toutes les extensions ainsi que les liens à l'intérieur des fichiers. Votre version de daCode est alors prête à être chargée sur le serveur. Si vous avez besoin d'extensions exotiques, il est facile de modifier le Makefile en conséquence, demandez sur la liste de diffusion dacode-user@linuxfr.org si vous n'y arrivez pas. Il faut néanmoins faire attention à deux choses : CVS ne marche qu'avec les extensions originales et ne saura pas gérer les mises à jour si vous les changez, ainsi que la configuration par « make reconf ». Il faut alors temporairement repasser en .php3 : prompt$ make php3 prompt$ cvs update éventuellement, si vous avez défini un fichier daCode/config.site prompt$ make reconf puis prompt$ make php
I don't have acces to the mysql client program. How can I create the database?
Je n'ai pas accès à la commande mysql. Comment puis-je créer ma base de données?

Simply use phpMyAdmin. Probably your provider has already set this up for you. See with him how to acces the database adminstration interface. Alternatively, you can download a copy (it' free software, too) and install it.

Once you are in the administration interface of phpMyAdmin, select your database, then "run queries on database". Choose the file sql/daCode.mysql and validate the form.

Utilisez phpMyAdmin. Souvent, votre hebergeur l'a déja mis en place et paramétré pour vous. Voyez avec lui commment y accéder. Sinon, téléchargez et installez-le, ce n'est pas très compliqué.

Voici comment y accéder si vous êtes sur Free: aller sur http://www.phpmyadmin.free.fr/phpMyAdmin/ puis, dans la page d'accueil (il faut cliquer sur le login a gauche pour qu'elle apparaisse).

Pour créer la base: cliquer sur parcourir dans la section Executer une ou des requètes sur la base puis choisir le fichier sql/dacode.mysql

On crée un paquet de tables alors il faudra peut être insister et le faire plusieurs fois car ça a tendance à bugger selon la charge, le nombre d'utlisateurs connectés et l'age du capitaine.

Autre remarque (spécifique à free): le fait de créer un paquet de base peut vous pourrir un peu la vie si vous aviez déjà quelques trucs. Je ne saurais trop vous conseiller de vous créer un sous-domaine chez free (ils le proposent gracieusement) réservé à vos pages sous dacode. N'oubliez pas de mettre en place vos bases de données sur le sous domaine...

Can I use daCode on Free.fr (french-centric question:-) )?
Puis-je utiliser daCode sur Free?
Yes, it works... If you've got an account on Free.fr, we can assume you're french, so got read to french version. Maybe there are the same problems on non-french hosting providers... if so, please let us know.

Oui, ça fonctionne, avec certaines limitations. Les problèmes principaux sont avec la fonction mail() qui est désactivée et la vitesse.

Voici un exemple de fichier de config: `&lt;? $this-&gt;sql_backend = "mysql"; $this-&gt;sql_host = "free.fr"; $this-&gt;sql_user = "monloginfree"; $this-&gt;sql_passwd = "monmotdepassefree"; $this-&gt;sql_db = "monloginfree"; $this-&gt;basehref = "http://monlogin.free.fr/news"; $this-&gt;name = "lecastor"; $this-&gt;titledefault = "castor : le site"; $this-&gt;edito = "Bienvenue sur ma page de news.&lt;br&gt;Cette page tourne sous &lt;b&gt;daCode&lt;/b&gt;.&lt;br&gt;"; $this-&gt;newsfile = "/gen.php3?"; $this-&gt;htmldir = "cache/"; $this-&gt;cachedir = "../tmp/"; $this-&gt;sql_persistant = 0; &>` Les pages HTML seront alors cachées sous \verb+/news/cache/+, et les fragments de pages (boites) sous /tmp. Vérifier en se connectant au serveur ftp après s'être baladé que l'on obtient bien des choses dans ces 2 répertoires.

Après avoir sauvé le fichier dans la racine (cf le début du document), on fait un `make reconf` et on peut tout balancer sur le site.

Dans notre cas de figure, on va mettre tout ce qu'il y a dans /src/htdocs/ dans le répertoire /news (c'est à dire le répertoire donné dans le champ baseref) du site et tout ce qu'il y a dans \verb+/src/phplib+ dans le répertoire /phplib du site.

There is a problem with the mail() function. Seems like it does not work.
J'ai un problème avec la fonction mail. Il semblerait qu'elle ne fonctionne pas.

Probably the mail() function has been disabled. Ask your provider to find out, and to find if a replacement is available. The BIG problem is that without a way to automatically send mails, users will never get their passwords, and thus will never be created at all...

If there is a replacement function, seach the calls to the mail function in the source and replace it with the specific function for your provider. Be careful: the number of arguments an their order may not be the same.

If there's no replacement available, or if you can just send a mail to yourself, there are some ugly turnarounds, described below.

First solution (by Matthieu Ros): if you have a way to send mails to yourself, use this to send the passwords to yourself... Of course you will know the passwords of all your users...

Second solution (by Guillaume Postaire): you print the password instead of sending it.

La fonction mail() a probablement été désactivée (ce qui est le cas sur free.fr, par exemple). Demandez à votre hébergeur si c'est le cas et si une fonction de remplacement est disponible. Le GROS problème est que sans un moyen d'envoyer automatiquement les emails, les utilisateurs ne recevront jamais leur mot de passe, et les comptes ne seront donc pas créés.

Si une fonction de remplacement est fournie par votre hébergeur, cherchez dans le code source les appels à la fonction mail() et remplacez-les par la fonction fournie par votre hébergeur. Faites attention au nombre et à l'ordre des arguments de la fonction, qui peut être différent de celui de mail(). S'il n'y a aucune solution de remplacement proposée, ou si vous pouvez juste vous envoyer un mail à vous-même, il y a quelques façons assez laides de contourner le problème:

La première solution (proposée par Mathieu Ros): si vous avez un moyen de vous envoyer des mails à vous-même, utilisez ce moyen pour vous envoyer les mots de passe... Evidemment, vous connaîtrez les mots de passe de tous vos utilisateurs...

La seconde solution (proposée par Guillaume Postaire): affichez le mot de passe au lieu de l'envoyer par email.

I get many "Maximum execution time exceeded" errors. What can I do?
J'obtiens souvent une erreur "Maximum execution time exceeded". Qu'est-ce que je peux faire?
Drop out any feature you don't really use. Also disable all functions in src/phplib/backends.php3. Just add "return;" at the begining of every function there. Once you are satisfied with the speed, you may reintroduce some features...
Enlevez toutes les fonctionnalités dont vous ne vous servez pas. De plus,n désactivez toutes les fonctions dans src/phplib/backends.php3. Ajoutez un "return;" au début de chaque fonction dans ce fichier. Une fois que la vitesse d'execution est satisfaisante, vous pourrez peut-être réintroduire certaines fonctionnalités...
daCode displays : Fatal error: Forbidden port in your script on line 97
daCode m'affiche: Fatal error: Forbidden port in your script on line 97.

A classical problem. In the file newsindex.tmpl of the linuxfr theme, daCode calls a fonction which gets the latest versions of the Linux kernel. This uses finger(???) and your provider may very well forbid any outgoing connexion on this port.

Just comment (with a hash mark on the begining of the line) the offending line in the template.

Problème connu. Dans le thème linuxfr dans newsindex.tmpl il appelle une fonction qui affiche les dernières version du noyau Linux. Il faut commenter (diese en début de ligne) dans le template du thème, car free refuse les accès finger de son réseau vers l'exterieur.
Is there a way to configure the location of the daCode files?
Y un moyen pour configurer l'emplacement des fichiers de dacode ?
What you can do is to put phplib into htdocs/. Better put someting hard to guess (for the exemple sake, secret): `mv phplib htdocs/secret` And then edit htdocs/daCode.php3 to change $libdir: `$libdir = $topdir . "./secret";` and this should work.
Ce que tu dois pouvoir faire c'est de mettre phplib dans htdocs/. Ensuite dans htdocs/dacode.php3 tu modifies $libdir. Bon si j'étais toi je ne mettrai pas phplib/ mais plutôt un truc difficile à trouver (on ne sait jamais).

Donc tu fais par exemple: `mv phplib htdocs/UoS6LzGF` Puis dans dacode.php3 à la ligne 14 tu mets: `$libdir = $topdir. "./UoS6LzGF";` Voilà qui devrait marcher.

I get an error "Cannot redefine class ..."

I use phplib. Can I use dacode with it?

J'ai une erreur "Cannot redefine class ..."

J'utilise phplib. Puis je quand même utiliser daCode?

This applies only if there's a auto_prepend statement in php.ini file. If you are using Apache, you can move the statement to .htaccess (that is a file that you put into your directories that are using phplib). To work properly, you need to check the directory tag/AllowOverride from httpd.conf to be sure that the file .htaccess is parsed. Exemple .htacces file for php4 `&lt;IfModule mod_php4.c&gt; # # local settings for php in this domain # include path is the path where PHP looks for # required and included files # #php_value include_path ".:/home/httpd/lib/externs/phplib/php/:/home/httpd/lib/php/internal/" php_value auto_prepend_file /home/httpd/lib/externs/phplib/php/prepend.php3 &lt;/IfModule&gt;`

Ceci ne s'applique que si vous avez une ligne auto_prepend dans votre php.ini. Si vous utilisez Apache, Vous pouvez déplacer cette ligne dans un fichier nommé .htaccess (c'est un fichier que vous mettez dans vos répertoires qui utilisent phplib). Pour que ça fonctionne bien, vous devez vous assurer dans httpd.conf (directive directory / AllowOverride ) pour être bien sur que ces fichiers sont pris en compte. Ci dessous un exemple de .htaccess pour php4: `&lt;IfModule mod_php4.c&gt; # # local settings for php in this domain # include path is the path where PHP looks for # required and included files # #php_value include_path ".:/home/httpd/lib/externs/phplib/php/:/home/httpd/lib/php/internal/" php_value auto_prepend_file /home/httpd/lib/externs/phplib/php/prepend.php3 &lt;/IfModule&gt;`
I can only get empty pages. What happend?
Je n'obtiens que des pages blanches.

This comes probably from the database, which is ignored by PHP. Just look at the file php.ini or php3.ini to see if the database extensions are loaded.

If the extension is not loaded, you'll have to modify the config file, and restart the web server.

ANother way to see if the extension is loaded is to create a small file containing only <? phpinfo() ?$gt; and to call this file throug a web server. If there is support for a database, there should be a paragraph about it.

Cela vient très certainement de la base de données qui n'est pas prise en compte par PHP. Pour s'en rendre compte, il faut regarder dans le fichier de configuration de php (php.ini ou php3.ini) si les extensions sont bien chargées. Il ne suffit pas que le programme soit installé, il faut aussi demander à PHP de l'utiliser.

Si l'extension n'est pas chargée, il faut modifier le fichier de configuration et relancer le serveur web. Une autre façon de détecter si le support de la base de données est activé est d'écrire un fichier phpinfo.php3 contenant la ligne <? phpinfo(); ?> et d'appeler ce fichier. Si le support de la base de données est activé, un paragraphe doit y être consacré dans l'affichage.

I cannot connect to MySQL as root. Still I'm pretty sure of the root password.
Je n'arrive pas à me connecter à MySQL en tant que root. Je suis pourtant sûr du mot de passe du root.
The root password for MySQL is different from the unix root password. By default, the MySQL root password is empty. You may want to specify one with mysqladmin -u root password new_password

Le mot de passe qu'utilise le MySQL n'est pas le même que le mot de passe root de la machine. Par défaut MySQL, il n'y a pas de mot de passe.

Il faut en spécifier un avec la commande mysqladmin: mysqladmin -u root password motdepasse

How can I change the site's look? How can suppress some elements on the pages?
Comment changer l'apparence du site? Comment supprimer certains élements de la page?
You'll have to create your own template. If you can read french, you should definitively have a look at the template.html file in the doc/html directory. (and maybe you could also translate it...)

En fait la procedure est de creer ton propre template. Je te conseille de lire le fichier template.txt dans le repertoire doc, il devrait t'aider sur la question...

Pour l'agenda par exemple il faut retirer la ligne &lt;!-- daCode: $backends-&gt;agenda() --&gt; dans le fichier newsindex.tmpl et tous les autres fichiers ou elle pourrait apparaitre...

Pour customiser le sous titre du logo, il suffit d'editer la fonction header() du html.php3 dans le reperetoire phplib/themes/montheme ...

Mais encore une fois, je ne peux que te recommander TRES vivement la lecture de templates.html

I changed te admin password in the database, and I cannot log in anymore.
J'ai changé le mot de âsse dans la base de données, et je ne peux plus m'identifier en tant qu'admin.
The passwords are crypted. You cannot change it directly in the database. If the admin email in the table "users" has a valid email field, just use "I forgot my password" on the front page. A new one will be mailed to you.
Les mots de passe sont effectivements cryptés. On ne peux pas les changer directement dans la base. Si l'entrée admin dans la table users a le champs email bien configuré (ton email) alors un simple 'j'ai oubli? mon mot de passe' te l'enverra à cette adresse (enfin il envoie un nouveau en fait).