Une fois qu'on a mis au point son nouveau thème, on peut vouloir en
faire profiter les autres. La méthode est très simple : il suffit de
définir dans le fichier de configuration
src/phplib/config.php3
la variable
$this->create_tar_dir
contenant le nom d'un répertoire dans
lequel PHP peut écrire, d'utiliser son compte d'administrateur sur sa
version de daCode, et de cliquer sur les « Thèmes » de la boîte
d'administration. La page suivante montre la liste des thèmes
actuellement installés, et cliquer sur un lien produit une
archive.
Par exemple, si $this->create_tar_dir
vaut "/tmp/"
et que le thème s'appelle "print", le fichier
/tmp/daCode-print-0.1.tar.gz
est créé. Le numéro de version
est pris dans le fichier src/phplib/themes/print/VERSION
comme
expliqué ci-dessous.
Voici par exemple quel pourrait être le contenu de l'archive du thème « print » :
daCode-print-0.1.1
|-- html
| |-- images
| | |-- image1.png
| | |-- image2.png
| | |-- logoprint.png
| | |-- section
| | | |-- dacode.png
| | | |-- topic1.png
| | | `-- topic2.png
| | `-- text-plain.png
| `-- print.css
`-- templates
|-- VERSION
|-- admin.tmpl
|-- basic.tmpl
|-- board.tmpl
|-- doc.tmpl
|-- html.php3
|-- myposts.tmpl
|-- news.tmpl
|-- newsindex.tmpl
|-- newssection.tmpl
|-- poll.tmpl
|-- search.tmpl
|-- submit.tmpl
|-- submitcom.tmpl
|-- submitpoll.tmpl
|-- thread.tmpl
|-- users.tmpl
`-- webcam.tmpl
Le fichier daCode-print-0.1/templates/VERSION est composé des trois lignes suivantes:
1
print
0.1
Il s'agit tout simplement du nom du thème, et du numéro de version, la première ligne indiquant le numéro du format utilisé (actuellement seule la valeur 1 est reconnue par daCode). Ce fichier est nécessaire pour créer ou extraire les archives avec l'interface de daCode.
Comme on le voit, il est facile de créer cette archive à la main, sans utiliser daCode. Il faut mettre les templates dans un sous-répertoire templates/, y ajouter un fichier VERSION contenant le nom et le numéro de version du thème, et mettre sous html/ les fichiers qui sont sous src/htdocs/themes/print/.
Cette partie n'est pas encore écrite dans daCode, il suffit d'ajouter une page permettant à l'internaute d'uploader son archive. Cette archive sera mise dans le répertoire défini dans la variable
$this->upload_tar_dirdu fichier de configuration.
Vous pouvez également, si vous le souhaitez, soumettre directement ce thème au site officiel de daCode
Quand un internaute propose un thème, ou quand on met une archive dans le répertoire défini dans la variable $this->upload_tar_dir du fichier de configuration, l'administrateur du serveur daCode peut installer ce nouveau thème. Pour cela, il doit cliquer sur le même lien « Thèmes » de la boîte d'administration. La page suivante montre la liste des thèmes actuellement installés, ainsi que les archives prêtes à installer. En cliquant sur une de ces archives, une nouvelle page apparait qui donne la liste des fichiers contenus dans l'archive, ainsi que l'endroit où ils seront placés. On peut visualiser le contenu des fichiers en cliquant sur le nom du fichier. Après avoir vérifié le contenu des fichiers, l'administrateur peut choisir d'installer ce thème en cliquant sur "installer", et/ou d'effacer l'archive.
Cette procédure automatique installe les fichiers au bon endroit, même si les répertoires htdocs/ ou phplib/ ont été renommés ou déplacés.
Il faut que PHP ait le droit d'écrire dans les répertoires
src/htdocs/themes/
et src/phplib/themes/
pour
extraire les fichiers.
Afin de ne pas mettre ces répertoires en écriture pour PHP, il est
préférable de donner dans la variable $this->theme_subdir
le
nom d'un sous-répertoire, qui, lui, sera le seul à être accessible en
écriture par PHP.
Ainsi, si $this->theme_subdir="contrib/"
, l'administrateur
doit créer les répertoires src/htdocs/themes/contrib/ et
src/phplib/themes/contrib/ et les mettre en écriture pour PHP.
Le thème "print" sera alors désarchivé dans les répertoires
src/htdocs/themes/contrib/print/
et
src/phplib/themes/contrib/print/
Enfin, pour que ce thème puisse être utilisé, il faut ajouter ce
thème dans la variable $this->listofthemes
du fichier de
configuration, comme nous l'avons vu plus haut.