MaDoVi - Le wiki

Machines - Données - Virtualisation

Outils pour utilisateurs

Outils du site


services:web:tuto:nnf_tuto1

NoNonsense Forum


NoNonsense Forum est un « forum de discussion simple, gratuit, open source et basé sur PHP. Il favorise l'élimination des obstacles à la conversation plutôt que le massage des egos… »
Il n'y a pas de base de données ; toutes les données sont simplement des flux RSS. Commencer un nouveau fil de discussion crée simplement un nouveau flux RSS. Répondre ajoute simplement un élément au flux.

Il n'y a pas d'écran d'enregistrement ni d'e-mail de confirmation à passer pour poster ; NoNonsense Forum vous demande un nom et un mot de passe lorsque vous postez, mais ce nom et ce mot de passe forment un jeton unique, protégeant le nom des autres personnes qui l'utilisent. Chaque fois que vous voulez poster, il suffit d'utiliser le même nom et le même mot de passe pour conserver le même pseudonyme. Rien de plus simple ! Visitez le site web de l'outil.

On va ici installer ce service dans un container web qu'on a déjà, «motorisé» avec NGINX et PHP: par exemple lxc-web.
Attention: version PHP < 8 !

Et puis on va le personnaliser un peu, aux couleurs de «MaDoVi» par exemple, à tout hasard… nanar :-x


On en discute On en discute sur le forum



1. Création du container LXC

On considère que le container lxc-web est déjà crée via la procédure décrite ici. On l'a construit avec un serveur ssh; on va donc s'y connecter dans ce mode, à partir de la console de notre serveur, sur le compte défini au moment de la création du container:

  • On s'assure qu'il tourne:
    visto@wasabi:~$ lxc-ls -f
    NAME        STATE   AUTOSTART GROUPS             IPV4      IPV6 UNPRIVILEGED 
    lxc-web     RUNNING 1         onboot, webserver  10.0.3.51 -    true         
  • On s'y connecte:
    visto@wasabi:~$ ssh admin@lxc-web
    amdin@lxc-web's password: 
    Welcome to Alpine!
     
    The Alpine Wiki contains a large amount of how-to guides and general
    information about administrating Alpine systems.
    See <http://wiki.alpinelinux.org/>.
     
    You can setup the system with the command: setup-alpine
     
    You may change this message by editing /etc/motd.
     
    lxc-web:~$ 
  • Notre compte a des privilèges root dans le container. On y bascule pour faire nos manip:
    lxc-web:~$ sudo -i
    [sudo] password for admin: 
    lxc-web:~# 

2. Préparation & Installation

  • On commence par se positionner dans le dossier cibles des services web, dans l'arborescence des sites:
    lxc-web:~# cd /var/www/
  • On télécharge la dernière version (elle date, à vérifier sur le site au préalable):
    lxc-web:/var/www# wget https://github.com/Kroc/NoNonsenseForum/archive/master.zip
  • On décompresse l'archive et on renomme le répertoire résultat:
    lxc-web:/var/www# unzip master.zip
    lxc-web:/var/www# mv NoNonsenseForum-master madovi_forum
  • On change propriétaire et droits:
    lxc-web:/var/www# chown -R www:www madovi_forum
    lxc-web:/var/www# chmod -R 755 madovi_forum

3. Configuration

On configure ici trois «bricoles», on verra plus loin ce qui relève de la personnalisation.


3.1. Dossiers et droits

☛ Dans notre nouveau dossier madovi_forum, on active le fichier de configuration par défaut. En effet, on propose ici une motorisation avec Nginx et on n’utilisera donc pas le fichier .htaccess qui n'est pertinent que pour Apache :

lxc-web:/var/www# cp madovi_forum/config.default.php madovi_forum/config.php
lxc-web:/var/www# chown www:www madovi_forum/config.php

☛ Dans le même contexte, on crée un dossier madovi_forum_users que recevra les «secrets» (illisibles) des utilisateurs (paires pseudo/mot de passe), dont on change ensuite le propriétaire:

lxc-web:/var/www# mkdir madovi_forum_users
lxc-web:/var/www# chown www:www madovi_forum_users

☛ Et enfin, nous allons personnaliser notre thème de présentation à partir de celui proposé par défaut. On duplique donc le dossier du thème avec un «nom à nous»:

lxc-web:/var/www# cp -R madovi_forum/themes/greyscale/ madovi_forum/themes/madovi 
lxc-web:/var/www# chown -R www:www madovi_forum/themes/madovi

On pourra ainsi garder un base de référence si on casse tout dans nos manip…:-\


3.2. Éléments de configuration

Dans notre nouveau dossier madovi_forum, on a activé le fichier de configuration dont on va adapter le contenu:

  • Dossier des utilisateurs identifiés
  • Libellé du forum
  • Fuseau horaire
  • Nom du thème

Donc:

lxc-web:/var/www# nano madovi_forum/config.php
[ ... ]
@define ('FORUM_USERS',         '../madovi_forum_users');
[ ... ]
@define ('FORUM_NAME',          'MaDoVi - Le forum');
[ ... ]
@define ('FORUM_TIMEZONE',      'Europe/Paris');
[ ... ]
@define ('FORUM_THEME',         'madovi');
[ ... ]

3.3. Accès web

☛ Pour le serveur HTTP Nginx du container, la configuration de l'hôte virtuel correspond au fichier / contenu suivant:

lxc-web:/var/www# nano /etc/nginx/http.d/madovi_forum.lxc-web.conf 
# Forum MaDoVi - Solution NoNonsense Forum
server {
    listen         80;
    server_name    madovi_forum.*;
    access_log     /var/log/nginx/madovi_forum.access.log;
    error_log      /var/log/nginx/madovi_forum.error.log;
 
    root           /var/www/madovi_forum;
    index          index.php;
 
    location /  { 
        try_files $uri $uri/ =404;
    }
 
    location ~ \.php$ { 
        try_files $uri =404; 
        fastcgi_split_path_info ^(.+\.php)(/.+)$; 
        fastcgi_pass unix:/var/run/php7.sock; 
        fastcgi_index index.php; 
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
        include fastcgi_params;
    }
 
}

»» Prise en compte:

lxc-web:/var/www# nginx -s reload

☛ Dans le cadre du projet on utilise un proxy web dans le container lxc-proxy, dont on adapte donc la configuration avec:

lxc-proxy:~# nano /etc/nginx/http.d/madovi_forum.wasabi.conf
server {
    listen                     80;
    server_name                madovi_forum.wasabi;
    include                    includes/redirect_https.inc;
}
 
server {
    listen                     443 ssl http2;
    server_name                madovi_forum.wasabi www.madovi_forum.wasabi;
    ssl_certificate            /etc/nginx/nginx-selfsigned.crt;
    ssl_certificate_key        /etc/nginx/nginx-selfsigned.key;
 
    access_log /var/log/nginx/madovi_forum.wasabi.access.log;
    error_log /var/log/nginx/madovi_forum.wasabi.error.log;
 
 
    location / {
        ## outil forum très basique
        include includes/proxy_set_header.inc;
        proxy_pass http://madovi_forum.lxc-web;
    }
 
}

»» Prise en compte:

lxc-proxy:~# nginx -s reload

4. Personnalisations

Nous avons cet écran quand on accède à notre forum avec https://madovi_forum.wasabi (via le proxy ici):

On ne va pas faire la révolution… On va aller vers cela:

On va travailler pour l'essentiel sur notre thème: positionnez-vous dans le dossier qui va bien:

 cd /var/www/madovi_forum/themes/madovi

Et suivez le guide… :-P


4.1. La langue

La livraison de l'outil contient un fichier lang.example.php qui propose un moyen de traduction des zones appropriées du site dans une langue de son choix.
On va donc dupliquer ce fichier et en modifier le contenu:

lxc-web:/var/www/madovi_forum/themes/madovi# cp lang.example.php lang.fr.php

Vous trouvez ci-dessous une proposition de «traduction», avec ici l'ajout du lien vers le wiki MaDoVi en pied de page, ainsi qu'une référence au «propriétaire du site MaDoVi» dans la rubrique politique de confidentialité :

… Pour voir…

… Pour masquer…


lang.fr.php
<?php //translation file
/* ====================================================================================================================== */
/* NoNonsense Forum v26 © Copyright (CC-BY) Kroc Camen 2010-2015
   licenced under Creative Commons Attribution 3.0 <creativecommons.org/licenses/by/3.0/deed.en_GB>
   you may do whatever you want to this code as long as you give credit to Kroc Camen, <camendesign.com>
*//*
 
how to create a theme translation:
----------------------------------
1.      determine the standard language code to use, e.g. "en" (or "en-GB", "en-US" …), "de", "es" etc.
        Read this document on how to choose a language code:
        http://www.w3.org/International/questions/qa-choosing-language-tags
 
2.      make a copy of 'lang.example.php' and rename as 'lang.en.php' where "en" is the language code for your translation
        (do not rename, modify or delete 'lang.example.php')
 
3.      if you have not already, make a copy of 'theme.config.default.php' and rename it to 'theme.config.php'.
        within that file add your language code, separated from any other languages by a space, to the `THEME_LANGS`
        option; this will tell NNF that your language is available to use and will add it to the theme's language selector
 
4.      translate the text within your lang file. please note that all text is HTML.
        you can preview as you go by selecting your new language when running NNF
 
*/
 
//name of the language, as the user will use to select it;
//therefore should be the name of the language, written in that language - i.e. "Espanol" (Spanish)
$LANG['fr']['name']         = 'Français';
 
//the `date` format code used to print human readable dates into the HTML,
//see <php.net/manual/en/function.date.php> for documentation
$LANG['fr']['date_format']  = 'd M ’y · H:i';
 
//the following template replacements are done using `sprintf`,
//see <php.net/manual/en/function.sprintf.php> for details
 
//the HTML title for index and thread pages
//"%1$s" - the title
//"%2$s" - if on page 2 or greater, `THEME_TITLE_PAGENO` will be inserted here, otherwise it will be removed
$LANG['fr']['title']        = '%1$s%2$s';
 
//the page number, added to the titles of index pages and threads
//"%1$u" - the page number
$LANG['fr']['title_pagenum']    = ' + %1$u';
 
//the title for append pages
//"%1$s" - the post title (will come from `THEME_RE` for replies)
$LANG['fr']['title_append'] = 'Ajouté au %1$s';
 
//the title for delete pages
//"%1$s" - the post title (will come from `THEME_RE` for replies)
$LANG['fr']['title_delete'] = 'Supprimer %1$s?';
 
//reply number shown in threads as a permalink
//"%1$u" - the number of the reply
$LANG['fr']['replynum']     = '#%1$u.';
 
//title format for each reply
//"%1$u" - number of the reply
//"%2$s" - the thread title
$LANG['fr']['re']       = 'RE[%1$u]: %2$s';
 
//text used when appending to a post:
//(markup can be used as this is run through `formatText`)
//"%1$s" - username of who posted
//"%2$s" - human-readable time, as per `DATE_FORMAT`
$LANG['fr']['appended']     = ':: @%1$s ajouté au %2$s';
 
//HTML that replaces a post when it's deleted (this is not rectroactive)
$LANG['fr']['delete_user']  = '<p>Ce message a été supprimé par l\'auteur</p>';
$LANG['fr']['delete_mod']   = '<p>Ce message a été supprimé par un modérateur</p>';
 
//HTML used to replace an invalid post:
$LANG['fr']['corrupt']      = '<p>Ce message est corrompu et ne peut être affiché</p>';
 
 
//the translation strings
$LANG['fr']['strings']      = array (
 
/* xpath/shorthand:         replacement text:           description:
   ====================================================================================================================== */
/* site header
   ---------------------------------------------------------------------------------------------------------------------- */
//search box
 '#query@placeholder'           => 'Recherche Google…'            //default text shown in search box
,'#go@alt'              => 'Recherche'              //search submit button
 
//language selector
,'#nnf_lang/img@alt, '.
 '#nnf_lang/img@title'          => 'Language:'              //language chooser icon
,'#nnf_lang/input@alt'          => 'Set language'           //language chooser submit button
 
//breadcrumb
,'#index/li[1]/a'           => 'Index'              //breadcrumb root location
 
/* index page
   ---------------------------------------------------------------------------------------------------------------------- */
//list of sub-forums
,'#nnf_folders/h1'          => 'Sous-Forums'                //section title
,'.nnf_lock-threads@alt, '.
 '.nnf_lock-threads@title'      => 'Réponses:'         //alt+title of lock-icon, if thread-locked
,'.nnf_lock-posts@alt, '.
 '.nnf_lock-posts@title'        => 'Lire:'              //alt+title of lock-icon, if post-locked
 
//navigation links
,'#nnf_add'             => 'Ajouter un sujet'               //the "add thread" link in 'index.html'
,'#nnf_reply'               => 'Répondre'              //the "reply" link in 'thread.html'
,'#nnf_rss'             => 'RSS'                //the RSS link in the header
 
//access rights
,'#nnf_forum-lock-threads'      => <<<HTML
    Seuls <a href="#mods">modérateurs et membres</a> peuvent commencer un nouveau sujet ici
    mais <em>personne</em> ne peut y répondre.
HTML
,'#nnf_forum-lock-posts'        => <<<HTML
    Seuls <a href="#mods">modérateurs et membres</a> peuvent participer ici.
    Connectez-vous si vous êtes modérateur ou membre pour poster.
HTML
 
//list of threads
,'#nnf_threads/h1'          => 'Sujets'
,'.nnf_thread-locked@alt, '.
 '.nnf_thread-locked@title'     => 'Verrouillé:'
 
,'#nnf_new-form/h1'         => 'Ajouter un sujet'               //add thread form title
,'#nnf_new-form/form/p/'.
 'label@for="submit"/span'      => 'Envoyer'                //form submit button
 
/* thread page
   ---------------------------------------------------------------------------------------------------------------------- */
,'#nnf_post-append, #nnf_post-append, '.
 '.nnf_reply-append, .nnf_reply-append' => 'ajouter'                //"append" link in posts
,'#nnf_post-delete, #nnf_post-delete, '.
 '.nnf_reply-delete, .nnf_reply-delete' => 'supprimer'              //"delete" link in posts
 
,'.nnf_forum-locked'            => <<<HTML
    Seuls <a href="#mods">modérateurs et membres</a> peuvent répondre à ce sujet.
    Connectez-vous si vous êtes modérateur ou membre pour poster.
HTML
 
,'#nnf_replies/h1'          => 'Réponses'              //title for replies list
 
,'#nnf_reply-form/h1'           => 'Répondre'              //reply form title
,'#nnf_reply-form/form/p/'.
 'label@for="submit"/span'      => 'Répondre'              //form submit button
 
/* append page
   ---------------------------------------------------------------------------------------------------------------------- */
,'#append/h1'               => 'Ajouter'                //append form title
,'#append/form/p/'.
 'label@for="submit"/span'      => 'Ajouter'                //form submit button
 
/* delete page
   ---------------------------------------------------------------------------------------------------------------------- */
,'#delete/h1'               => 'Supprimer'              //delete form title
 
,'label@for="remove"/span'      => 'Supprimer complètement (modérateurs seuls)'
,'#nnf_remove/ul/li[1]'         => 'Ce sujet sera totalement supprimé plutôt que d\'être effacé'
,'#nnf_remove/ul/li[2]'         => 'Seuls les messages de la dernière page du fil de discussion peuvent être supprimés complètement (afin de ne pas casser les permaliens).'
 
,'#delete/form/p/'.
 'label@for="submit"/span'      => 'Supprimer'              //form submit button
 
/* input forms
   ---------------------------------------------------------------------------------------------------------------------- */
,'label@for="nnf_title-field"'      => 'Titre:'             //title field label
,'#nnf_title-field@placeholder'     => 'Entrez le titre ici…'     //placeholder text for the title field
 
,'label@for="nnf_name-field-http"'  => ''       //label for name field if HTTP_AUTH
,'label@for="nnf_name-field"'       => 'Pseudo:'               //name field label
,'#nnf_name-field@placeholder'      => 'Votre pseudo'              //placeholder text for the name field
 
,'label@for="nnf_pass-field"'       => 'Mot de passe:'              //label for password field
,'#nnf_pass-field@placeholder'      => 'Un mot de passe pour garder votre pseudo'  //placeholder text for the password field
 
,'#nnf_error-none'          => <<<HTML
            <!-- this is shown by default as long as new users aren't disabled and the user isn't signed in -->
            Nul besoin de s'enregistrer, entrez juste le même pseudo + mot de passe de votre choix à chaque fois.
HTML
,'#nnf_error-none-http'         => <<<HTML
            <!-- this is shown by default if the user is signed in -->
            (Quittez votre navigateur ou effacez le cache du navigateur pour vous déconnecter.)
HTML
,'#nnf_error-none-append'       => <<<HTML
            <!-- this is shown by default as long as new users aren't disabled and the user isn't signed in -->
            Seul l'auteur ou un modérateur peuvent ajouter quelques chose à ce message.
HTML
,'#nnf_error-none-thread'       => <<<HTML
            Pour supprimer ce sujet et toutes les réponses à ce dernier, 
            vous devez soit en être l'auteur soit un modérateur désigné.
HTML
,'#nnf_error-none-reply'        => <<<HTML
            Pour supprimer ce sujet et toutes les réponses à ce dernier, 
            vous devez soit en être l'auteur soit un modérateur désigné.<br>
            Le contenu du message sera retiré mais le pseudo et la date persisteront.
HTML
,'#nnf_error-newbies'           => <<<HTML
            <!-- if the `FORUM_NEWBIES` option is false, only existing users can post -->
            Seuls les utilisateurs enregistrés peuvent poster.<br>. Aucune nouvelle inscription autorisée.
HTML
,'#nnf_error-title'         => <<<HTML
            Vous devez entrer le titre du nouveau sujet de discussion.
HTML
,'#nnf_error-name'          => <<<HTML
            Entrez un pseudo. Vous devrez l'utiliser avec le même mot de passe à chaque fois.
HTML
,'#nnf_error-name-append'       => <<<HTML
            Entrez le pseudo de l'auteur ou d'un modérateur pour pouvoir ajouter quelque chose à cette réponse.
HTML
,'#nnf_error-name-delete'       => <<<HTML
            Entrez le pseudo de l'auteur ou d'un modérateur pour pouvoir supprimer.
HTML
,'#nnf_error-pass'          => <<<HTML
            Entrez un mot de passe. Ainsi vous pourrez le réutiliser à chaque fois.
HTML
,'#nnf_error-pass-append'       => <<<HTML
            Entrez le mot de passe pour l'auteur original ou un modérateur afin de pouvoir ajouter quelque chose à cette réponse.
HTML
,'#nnf_error-pass-delete'       => <<<HTML
            Entrez le pseudo de l'auteur ou d'un modérateur pour pouvoir supprimer.
HTML
,'#nnf_error-text'          => <<<HTML
            Allez, écrivez un message!
HTML
,'#nnf_error-auth'          => <<<HTML
            Ce pseudo est déjà pris. Précisez le mot de passe pour ce dernier, ou choisissez un autre pseudo.
HTML
,'#nnf_error-auth-append'       => <<<HTML
            Les pseudo/mot de passe ne correspondent pas. Vous devez entrer le pseudo et le mot de passe de l'auteur, ou d'un modérateur.
HTML
,'#nnf_error-auth-delete'       => <<<HTML
            Les pseudo/mot de passe ne correspondent pas. Vous devez entrer le pseudo et le mot de passe de l'auteur, ou d'un modérateur.
HTML
,'#protip'              => <<<HTML
            Astuce: Utilisez la syntaxe du <a href="/markup.php">balisage</a> pour ajouter des liens, citations et plus.
HTML
 
,'label@for="nnf_text-field"'       => 'Message:'
,'#nnf_text-field@placeholder'      => 'Tapez votre message ici…'
 
/* markup page
   ---------------------------------------------------------------------------------------------------------------------- */
//the markup documentation:
,'/html[@class="markup"]/head/title'    => 'Balisage'
,'#markup'              => <<<HTML
 
<h1>Balisage</h1>
<article>
<header>
<ol>
    <li><a href="#links">» Liens</a></li>
    <li><a href="#names">» Pseudos</a></li>
    <li><a href="#bolditalic">» Gras &amp; italique</a></li>
    <li><a href="#titles">» Titres</a></li>
    <li><a href="#dividers">» Séparateurs</a></li>
    <li><a href="#quotes">» Citations</a></li>
    <li><a href="#pre">» Texte Monospacé</a></li>
</ol>
</header>
 
<h2 id="links">Liens:</h2>
<p>
    Des liens cliquables seront automatiquement créés pour n'importe quelle adresse dans votre texte qui commence par
    "<samp>http://</samp>", "<samp>https://</samp>", "<samp>ftp://</samp>" ou "<samp>irc://</samp>".
    De plus, les adresses courriel seront transformées en liens cliquables pour vous.
</p>
<pre>
OUI:    http://www.google.com
NON:    www.google.com
OUI:    email@email.com
</pre>
 
<h2 id="names">Pseudos:</h2>
<p>
    Vous pouvez faire référence à une autre personne en mettant au début de son pseudo un arobase. Ex: "<samp>@bob</samp>"
    Le pseudo redirigera vers la dernière réponse faite pas cette personne dans l'actuel sujet de discussion.
</p>
 
<h2 id="bolditalic">Gras &amp; Italique</h2>
<pre>
*Ecrivez le texte en gras ainsi*, et _le texte italique ainsi_.
</pre>
 
 
<h2 id="titles">Titres:</h2>
<p>
    Pour un titre, commencez une ligne avec deux "deux points". Exemple :
</p>
<pre>
:: Liste de courses
</pre>
 
<h2 id="dividers">Séparateurs:</h2>
<p>
    Pour dessiner une ligne en travers du texte, utilisez trois ou plus tirets:<br>
    (ceci doit être sur sa propre ligne, avec une ligne vide avant et après)
</p>
<pre>
 
---
</pre>
 
<h2 id="quotes">Citations:</h2>
<p>
    Pour citer le texte de quelqu'un d'autre, placez le texte sur sa propre ligne avec des guillemets au début et à la fin.
    Ceci s'applique même si le texte cité est plus long qu'un paragraphe ou contient des citations lui-même.
</p><p>
    Il doit y avoir une ligne vide entre chaque citation et le reste du texte:<br>
    (une ligne simple ne fonctionnera pas)
</p>
<pre>
OUI:    Ceci est mon texte
 
    "Ceci est ton texte"
 
    Mon texte
</pre>
<p>
    Il ne doit pas y avoir de texte avant et après les guillements.
</p>
<pre>
NON:    "Ceci est ton texte".
</pre>
<p>
    Cependant, les espaces avant et après sont autorisés. Quand vous copier et collez une citation de quelqu'un d'autre, 
    des espaces en trop peuvent être inclus. Ces derniers seront ignorés.
</p>
<pre>
OUI:    Mon texte
 
         "Ton texte
 
    "
 
    Mon texte
</pre>
<p>
    Une citation peut faire plus qu'une ligne ou un paragraphe:
</p>
<pre>
OUI:    Mon texte
 
    "The quick brown fox
    jumped over the lazy dog
 
    Jackdaws love my big
    sphinx of quartz"
 
    Mon texte
</pre>
<p>
    Les citations peuvent contenir des citations :
</p>
<pre>
OUI:    "Première citation
 
    "Seconde citation"
 
    Ceci est la première citation."
</pre>
<p> 
    Vous pouvez utiliser différents type de marques de citation:<br>
    (Mais vous ne pouvez pas vous tromper à la fin)
</p>
<pre>
OUI:    "Plain speech marks"
 
    “Curly quotes”
 
    «Guillemits»
</pre>
<p>
    Les différents types de citation peuvent être emmêlés :
</p>
<pre>
OUI:    "This is the first quote
 
    “This is the second quote
 
    «This is a third quote»”"
</pre>
 
<h2 id="pre">Texte Monospace:</h2>
<p>
    Pour de petits morceaux de code ou écrits techniques, que vous voulez voir apparaître tel qu'ils sont dans d'autres écrits,
    vous pouvez utiliser des "backticks" (1 ou plus) pour entourer le texte à monospacer. Le texte ne sera pas convertit en gras ou en italique ou autre markup.
</p>
<pre>
Utilisez `<samp>*gras*</samp>`  pour du gras et ``<samp>_italic_</samp>`` pour l'italique.
</pre>
<p>
    Quand vous postez, tous les espaces non-nécessaires seront automatiquement retirés. Si vous avez du texte qui s'appuie sur ces espaces, vous
    pouvez utiliser un bloc de code.
</p><p>
    Le bloc de code commence pas un signe pourcent, ensuite votre texte (commençant sur la ligne suivante), et se termine par un autre signe pourcent sur la dernière ligne.
</p>
<pre>
%
      __...--~~~~~-._   _.-~~~~~--...__
    //               `V'               \\ 
   //                 |                 \\ 
  //__...--~~~~~~-._  |  _.-~~~~~~--...__\\ 
 //__.....----~~~~._\ | /_.~~~~----.....__\\
====================\\|//====================
                dwb `---`
%
</pre>
<p>
    Remarquez qu'il devrait teroujours y avoir une ligne vide entre le bloc de code et le texte avant et après:
</p><p>
    Vous pouvez inclure un titre après le premier signe pourcent, par exemple lorsque vous instérez du code source dont
    vous voulez préciser le langage.
</p>
<pre>
% CSS
div {color: red;}
%
</pre>
<p>
    Si vous devez citer quelque chose qui a un symbole pourcent avec un premier caractère sur une ligne, par exemple
    pour le langage de programmation LaTeX, vous pouvez simplement utiliser le signe dollar "<samp>$</samp>" comme 
    délimiteur à la place.
</p>
 
</article>
HTML
 
/* privacy policy page
   ---------------------------------------------------------------------------------------------------------------------- */
,'/html[@class="privacy"]/head/title'   => 'Politique de confidentialité'
,'#privacy'             => <<<HTML
 
<h1>Politique de confidentialité</h1>
<article>
<header>
<ol>
    <li><a href="#collected">» Informations collectées</a></li>
    <li><a href="#stored">» Informations stockées</a></li>
    <li><a href="#other">» Autres informations</a></li>
</ol>
</header>
 
<p>
    Ce forum de discussion est géré par <a href="http://camendesign.com/nononsense_forum">NoNonsense Forum</a>
    (ci-après "NNF"). En tant que forum, NNF est unique dans la nature et la manière dont il stocke les informations, 
    notamment dans ce qu'il <em>ne stocke pas</em>, par rapport aux autres forums.
</p>
 
<h2 id="collected">Informations collectées:</h2>
<p>
    Les seules informations que l'on vous demande de fournir sont un pseudo, un mot de passe et le texte que vous souhaitez publier.
</p>
 
<h2 id="stored">Informations stockées:</h2>
<ul>
    <li><p>
        Le pseudo et le message que vous fournissez sont stockés dans le flux de discussion et rendus publics.<br>
        Le pseudo peut être n'importe quel texte et vous n'êtes pas obligé d'utiliser votre vrai nom ou tout autre identifiant.
    </p></li>
    <li><p>
        Le mot de passe que verous fournissez est crypté à sens unique une fois reçu et stocké uniquement sous cette forme cryptée - 
        cela signifie que NNF (et le propriétaire du site) ne connaît pas votre mot de passe et ne peut le récupérer.
    </p></li>
    <li><p>
        Si ce forum permet deer sélectionner des traductions, le changement de la langue d'affichage entraînera la création d'un 
        <em>cookie</em> indiquant la langue choisie.
    </p><p>
        Un <em>cookie</em> est un petit morceau de texte stocké sur votre ordinateur utilisé pour se souvenir d'une certaine 
        interaction avec un site web, dans ce cas la langue que vous avez choisie. NNF n'utilise les cookies que pour 
        se souvenir du choix de la langue et ne vous suit en aucune façon. Vous pouvez supprimer le cookie en toute sécurité.
    </p></li>
</ul>
 
<h2 id="other">Autres informations:</h2>
<ul>
    <li><p>
        Veuillez noter que le forum NoNonsense est un logiciel libre et ouvert, adaptable par toute personne ayant des connaissances 
        suffisantes; ce forum peut collecter des informations supplémentaires au-delà de cette politique de confidentialité. 
        La personne qui possède et exploite ce site Web peut avoir mis en place des politiques de confidentialité supplémentaires.<br> 
        Veuillez contacter <a href="https://madovi.xyz">le propriétaire du site</a> pour toute question
    </p></li>
    <li><p>
        Presque tous les sites Web collectent des informations sur les visiteurs, qui comprennent généralement des détails tels que 
        votre adresse IP, l'heure d'accès et les marques d'identification du navigateur Web (et éventuellement du système d'exploitation). 
        Ces informations sont généralement utilisées pour mesurer le trafic et trouver des défauts. Aucune de ces informations n'est 
        collectée par une quelconque partie du Forum NoNonsense lui-même ; là encore, contactez le propriétaire du site pour toute question.
    </p></li>
    <li><p>
        La fonction de recherche est contrôlée par une tierce partie (généralement <a href="http://google.com">Google</a>), 
        et collectera certainement des informations. Veuillez consulter leur site Web pour connaître leur politique de confidentialité.
        <br><i>»» Il faudra virer cela...</i>
    </p></li>
</ul>
 
</article>
HTML
 
/* site footer
   ---------------------------------------------------------------------------------------------------------------------- */
,'#nnf_lock'                => 'Verrouiller'               //Lock link in 'thread.html'
,'#nnf_unlock'              => 'Déverrouiller'             //Unlock link in 'thread.html'
 
,'#nnf_mods-local'          => <<<HTML
    Modérateurs pour ce sous-forum :
    <span id="nnf_mods-local-list"><b class="nnf_mod">Alice</b></span>
HTML
,'#nnf_mods'                => <<<HTML
    Vos modérateurs amicaux:
    <span id="nnf_mods-list"><b class="nnf_mod">Bob</b></span>
HTML
,'#nnf_members'             => <<<HTML
    Membres de ce forum:
    <span id="nnf_members-list"><b>Charlie</b></span>
HTML
 
,'/html/body/footer/p[1]'       => <<<HTML
    Propulsé par <a href="http://camendesign.com/nononsense_forum">NoNonsense Forum</a> - Politique de <a href="/privacy.php">Confidentialité</a><br>
    Le site <a href="https://madovi.xyz">MaDoVi</a>  
HTML
,'.nnf_signed-in'           => <<<HTML
    Connecté en tant que:<br><b class="nnf_signed-in-name">Kroc</b>
HTML
,'.nnf_signed-out/input@value'      => 'Se connecter'
 
);
 
?>


Pour prendre en compte ce fichier de «traduction», il s'agit maintenant de l'intégrer dans la configuration du théme, activée préalablement.
Il faut:

  • Dupliquer la configuration par défaut:
    lxc-web:/var/www/madovi_forum/themes/madovi# cp theme.config.default.php theme.config.php
  • Changer le propriétaire:
    lxc-web:/var/www/madovi_forum/themes/madovi# chown www:www theme.config.php
  • Modifier les contenus suivants:
    lxc-web:/var/www/madovi_forum/themes/madovi# nano theme.config.php
    [ ... ]
    @define ('THEME_LANGS',         'fr');
    [ ... ]
    @define ('THEME_LANG',          'fr');
    [ ... ]

Si on rafraichit notre navigateur après ces actions, on voit l'écran suivant. Les «carrés bleus» mettent en évidences les traductions et changements:

Notez en particulier que les liens vers la «politique de confidentialité» ou la définition du « markup / balisage » sont dynamiques vers la pages en anglais ou en français selon l'option de langue courante.

Un petit détail: On a ajouté un lien dans le pied de page vers le site de MaDoVi. Hors, avec le choix de l'anglais, il n'y est pas…
Pour changer celà, l'anglais erétant la langue originale/par défaut du site, il faut ajuster le fichier index.html présent dans le thème.

Donc :

lxc-web:/var/www/madovi_forum/themes/madovi# nano -l index.html  # -l pour afficher les n° de lignes
182 <footer><p>
183         Powered by <a href="http://camendesign.com/nononsense_forum">NoNonsense Forum</a> - Privacy <a href="/privacy.php">policy</a><br>
184         <a href="https://madovi.xyz">MaDoVi</a> site

Il faudra répéter cette opération sur tous les fichiers HTML présents dans le thème, en repérant dans chaque la zone «footer» et en remplaçant les lignes de liens par celles-ci.

Et woula…


4.2. « Cosmétique »

Logo, sous-forum, entêtes & descriptions: voilà le menu de ce paragraphe…


4.2.1. Logo et favicon

On est parti sur un forum dédié « MaDoVi ». Donc on va récupérer son logo, depuis le wiki qui va remplacer celui-ci: .

Dans le répertoire /img du thème on trouve un fichier logo.png, qu'on va donc remplacer, avec le même nom, par celui de MaDoVi. On est toujours dans le dossier de notre thème et on passe donc la commande suivante:

lxc-web:/var/www/madovi_forum/themes/madovi# wget https://madovi.xyz/lib/exe/fetch.php?media=wiki:logo.png -O img/logo.png

Mais si vous regardez en rafraîchissant la page, il est un peu rikiki… Pour l'ajuster au mieux – selon moi, les goûts et le couleurs… – et conserver les proportions originales, une zone H x L de 80 x 56 pixels parait bien.
Si vous mettez 90 au lieu de 80, notre manchot prendra de l'embonpoint… m(.

Pour faire cela, il s'agit de changer, dans tous les fichiers *.html du thème, les dimensions du logo.

On va faire tout d'un coup avec la commande sed suivante:

lxc-web:/var/www/madovi_forum/themes/madovi# sed -i "s|logo.png\" width=\"32\" height=\"32\" alt=\"\"|logo.png\" width=\"80\" height=\"56\" alt=\"\"|g" *.html

Si vous regardez le contenu d'un des fichiers HTML, vous verrez qu'il est fait référence au chemin du thème par défaut (greyscale).
Mais l'outil substituera le bon chemin au moment de la création des pages.


S'agissant du favicon – petit logo qui figure avec le titre de l'onglet dans le navigateur – celui par défaut me va.
Donc on l'active avec (ça se passe à la racine du site cette fois):

lxc-web:/var/www/madovi_forum/themes/madovi# cp /var/www/madovi_forum/favicon.default.ico /var/www/madovi_forum/favicon.ico
lxc-web:/var/www/madovi_forum/themes/madovi# chown www:www /var/www/madovi_forum/favicon.ico

4.2.2. Sous-forum

Notre outil est capable de gérer la notion de sous-forums, ou rubriques, permettant ainsi un minimum d'organisation des échanges. Le moyen pour le faire est simple: des dossiers à la racine du site, étant entendu que chaque fil de discussion correspond à un fichier .rss à la racine.

Créons ici deux sous-forums: un pour de la doc. pour les administrateurs et modérateurs (dont on parle plus loin), un autre pour des «message de services». Comme les sous-forums sont présentés par ordre alphabétiques, on va les numéroter, et on commence par se repositionner à la racine su site:

lxc-web:/var/www/madovi_forum/themes/madovi# cd /var/www/madovi_forum
lxc-web:/var/www/madovi_forum# mkdir '00 - Modes opératoires NNF'
lxc-web:/var/www/madovi_forum# mkdir '01 - Messages de services'

Vous verrez immédiatement apparaître ses items quand vous rafraîchissez la page.


4.2.3. «about»

On peut mettre des messages synthétiques de description du forum et de ses sous-forums / rubriques, en tenant compte de la langue. Ce sont de simples «inclusions» de fichiers HTML en début de page, sous le lien INDEX

Par exemples:

  • Racine en anglais:
    1. Créer le fichier:
      lxc-web:/var/www/madovi_forum# nano about.html
    2. Y coller:
      Discussion forum around the topics of the <a href="https://madovi.xyz">MaDoVi</a> site : Machines-Data-Virtualization.<br><br>
  • Racine en français:
    1. Créer le fichier:
      lxc-web:/var/www/madovi_forum# nano about_fr.html
    2. Y coller:
      Forum de discussions autours des thèmes du site <a href="https://madovi.xyz">MaDoVi</a>: Machines-Données-Virtualisation.<br><br>
  • Sous-forum «Modes opératoires» en anglais:
    1. Créer le fichier:
      lxc-web:/var/www/madovi_forum# nano '00 - Modes opératoires NNF'/about.html
    2. Y coller:
      Documentary space on the <a href="http://camendesign.com/nononsense_forum">NoNosense Forum</a> tool, intended for forum administrators and moderators.<br> 
      Source of information for those who would like to self-host this tool.<br><br>
  • Sous-forum «Modes opératoires» en français:
    1. Créer le fichier:
      lxc-web:/var/www/madovi_forum# nano '00 - Modes opératoires NNF'/about_fr.html
    2. Y coller:
      Espace documentaire sur l'outil <a href="http://camendesign.com/nononsense_forum">NoNosense Forum</a>, destiné aux administrateurs et modérateurs du forum.<br> 
      Source d'informations pour celles et ceux qui voudraient auto-héberger cet outil.<br><br>
  • Sous-forum «Messages de service» en anglais:
    1. Créer le fichier:
      lxc-web:/var/www/madovi_forum# nano '01 - Messages de services'/about.html
    2. Y coller:
      Area <u><i>reserved</i></u> for service messages: outages, maintenance, updates and impacts, etc...<br> 
      No new topics for you here, but comments welcome, on posts created by site administrators only.<br><br>
  • Sous-forum «Messages de service» en français:
    1. Créer le fichier:
      lxc-web:/var/www/madovi_forum# nano '01 - Messages de services'/about_fr.html
    2. Y coller:
      Zone <u><i>réservée</i></u> aux messages de services: arrêts, maintenance, mise à jour et impacts, etc... <br>
      Pas de nouveaux sujets pour vous ici, mais commentaires bienvenus, sur des messages créés par les seuls adminstrateurs du site.<br><br>

Et caetera, et caetera… Vous aurez compris.
Et je suis nul en anglais ! Si la traduction est approximative, c'est la faute à https://www.deepl.com/translator:-X


4.3. Utilisateurs « avec pouvoirs »

Il s'agit des Administrateurs et des Modérateurs du forum.

J'ai pris la peine de traduire la documentation des définitions et des configurations, qui est destinée au sous-forum «00 - Modes opératoires NNF» défini plus haut.

Il vous suffira de copier le fichier users.tar.gz dans le dossier /var/www/madovi_forum/00 - Modes opératoires NNF et de le décompresser selon:

lxc-web:/var/www/madovi_forum/00 - Modes opératoires NNF# tar xzvf users.tar.gz 

Et vous saurez tout…:-P


services/web/tuto/nnf_tuto1.txt · Dernière modification: 18/04/2022 11:13 de Cram