Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • master
1 result

Target

Select target project
  • websites/cesium_website
  • matograine/cesium_website
  • scanlegentil/cesium_website
  • vincentux/cesium_website
  • lelibreauquotidien/cesium_website
  • Vivakvo/cesium_website
  • llaq/cesium_website
  • BorisPAING/cesium_website_boris
8 results
Select Git revision
  • dev
  • master
  • patch-1
  • patch-2
4 results
Show changes
Commits on Source (275)
Showing
with 833 additions and 318 deletions
.htaccess
.idea
robots.txt
Cesium website
===
## Le pourquoi du comment
Cet ensemble de scripts a pour but de rendre la modification du site cesium.app accessible à tout un chacun.
Ce qui était autrefois fait avec un CMS est maintenant fait avec ce script maison, ce qui présente les avantages suivants :
* Le site est installable par n'importe qui n'importe où, ce qui :
* nous rend plus résilient en cas de problème
* diminue le bus factor
* Mise à jour facilitée :
* au changement de version de l'appli Cesium, chaque contributeur du GitLab peut dorénavant faire un commit pour modifier le fichier cesiumVersions.php
* chacun peut participer à l'amélioration du tutoriel (ou même du site en général)
* Traductions facilitée :
* alors que la traduction avec le CMS générait des pertes d'informations lors d'une mise à jour, le script maison résoud ce problème en utilisant des fichiers .po
* pour le tutoriel, les traductions sont indépendantes ; on n'est donc pas obligé de faire de la traduction phrase par phrase ; on peut avoir des tutoriels organisés totalement différemment d'une langue à l'autre
* Les captures d'écran sont aussi adaptées en fonction de la langue du visiteur
* Chargement plus rapide
* Personnalisation du style facilitée par un code complètement sémantique (pas de classes à la Twitter-boostrap).
* Edition facilitée : adieu le WYSIWYG laborieux de l'ancien CMS
* Chargement plus rapide, grâce à un code plus léger et optimisé à nos besoins.
Il est possible que courant 2020 ces scripts PHP soient remplacés par un générateur de site statiques (SSG) type Pelican.
## Comment contribuer
### Comment mettre à jour les liens de téléchargement
Lors d'une mise à jour de Cesium, il suffit de mettre à jour [le fichier cesiumVersions.php](cesiumVersions.php) pour que les liens de téléchargement soient automatiquement mis à jour.
Si ceux-ci étaient amenés à changer d'emplacement, veuillez mettre à jour [le fichier cesiumDownloads.php](cesiumDownloads.php)
### Comment traduire le tutoriel
Pour le tutoriel, vous trouverez les fichiers .html dans les dossiers type `i18n/es_ES/contents/tuto/`
#### Comment formatter les URLs dans le menu
Il vous faudra aussi modifier le fichier `menu.html`
Dans le menu, les URLs doivent avoir la forme suivante :
```html
<ul>
<li>
<a href="item">Item</a>
</li>
<li>
<a href="item/">Item</a>
<!-- Ira chercher le index.html du dossier -->
<ul>
<li><a href="item/sous-item">Sous-item</a></li>
</ul>
</li>
</ul>
````
Ici, slash ou pas slash, ça compte :
* **un slash** de fin pour un **dossier** (va chercher le index.html à la racine du dossier)
* **pas de slash** de fin pour un **fichier** (va chercher le .html correspondant)
#### Comment formatter les URLs dans les fichiers
Chaque URLs est relative au fichier dans lequel on l'écrit.
#### Comment rendre notre code clair pour les autres
Efforçons-nous d'aérer au maximum votre code HTML, afin qu'il soit facilement lisible par tous et donc rapidement modifiable.
Aussi : utiliser 4 espaces consécutifs en guise d'indentation est une déviance ainsi qu'une perversion.
#### Comment faire en sorte que le contenu soit lisible pour le visiteur
J'ai remarqué que pour les instructions dans un tuto, souvent une liste ordonnée &lt;ol&gt;&lt;/ol&gt; rend mieux
qu'une liste non-ordonnée &lt;ul&gt;&lt;/ul&gt;
#### Soyons sémantiques !
Écrivons à la mode XHTML :
* un slash à la fin de nos balises &lt;img /&gt;
* un slash à la fin de nos balises &lt;br /&gt;
Des éditeurs comme Notepadqq (Linux) nous permettent de répérer facilement la
présence de balises non fermées (votre code est coloré diféremment).
Niveau HTML&nbsp;:
* [C'est pas interdit](https://developer.mozilla.org/fr/docs/Web/HTML/Element/li#R%C3%A9sum%C3%A9_technique)
de mettre des &lt;p&gt; (contenu de flux) dans des &lt;li&gt;, mais c'est rare que ce soit vraiment nécessaire.
Généralement le résultat que vous cherchez s'obtient mieux en CSS.
Si un truc rend moche, bidouillez les fichiers .css ou demandez-moi de le faire plutôt
que de rajouter des balises surnuméraires (genre plutôt que de mettre des &gt;p&gt; ou des &gt;br/&gt; pour créer des marges,
utilisons la propriété CSS dédiée, *margin*).
### Comment modifier les images
C'est dans `i18n/es_ES/contents/tuto/`
Pour des questions de SEO, les noms des fichiers sont traduits, via les fichiers .po
### Comment traduire le reste
Pour les pages :
- Accueil
- Fonctionnalités
- Téléchargement
- ...et les menu de l'entête et du pied de page
les modifications sont à faire dans les fichiers .po que vous trouverez dans les dossiers type `i18n/es_ES/LC_MESSAGES/` (ici : l'espagnol)
Ces fichiers sont éditables avec des logiciels type PoEdit.
## Licences
Ce logiciel est pour sa majeure partie sous licence GNU GPL 3.0.
Aux exceptions suivantes :
- Le script Funding.class.php est basé sur la [barre de financement intégrable](https://git.duniter.org/paidge/barre-de-financement-int-grable), elle-même sous licence GNUL GPL 3.
- [Composer](https://getcomposer.org/) est sous licence MIT.
- [GeoIP2](https://maxmind.github.io/GeoIP2-php/) est la création de by MaxMind est distribué sous licence Apache
- Les [bases de données GeoLite2](https://dev.maxmind.com/geoip/geoip2/geolite2/) sont la création de MaxMind et sont sous licence Creative Commons Attribution-ShareAlike 4.0 International.
- Le script [LazyImg](https://github.com/colas31/lazyImg), dont la licence est inconnue.
- [Font-Awesome](https://fontawesome.com/license/free) est sous licence libre ([voir détail](https://fontawesome.com/license/free))
- Les photos, qui sont la propriété de leurs auteurs
- Le logo Cesium est la création de DiG
## Instructions d'installation
### .htaccess
Votre fichier .htaccess doit contenir les infos suivantes :
```
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /www/cesium-website/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .*\.php - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/(.*)$ index.php?lang=$1&page=/$2 [L]
# Redirections pour gérer l'ancienne structure de liens sans perdre en SEO
# (ex : /telechargement au lieu de /fr/telechargement)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ fr/$1 [R=301]
</IfModule>
```
Modifiez l'instruction RewriteBase du .htaccess pour qu'elle s'accorde à votre propre configuration
(tapez l'endroit où CesiumWebsite est installé, typiquement /)
### config.php
Modifiez la variable $rootURL de la même façon.
Cesium website
===
## Install notes
Modify RewriteBase directive in .htaccess according to your own configuration (set RewriteBase to be the URI where CesiumWebsite is installed, typically /).
# CesiumWebsite
- français : [LISEZ-MOI.md](LISEZ-MOI.md)
- english : [READ-ME.md](READ-ME.md)
| français | English |
| ------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| [Comment tester installer le site sur son ordinateur](doc/fr/installation.md) | [How to install Cesium website on your computer](doc/en/install.md) |
| [Comment traduire le site](doc/fr/comment-traduire-le-site.md) | [How to translate the website](doc/en/how-to-translate-the-website.md) |
| [Licences](doc/fr/licences.md) | [Licences](doc/en/licences.md) |
......@@ -6,45 +6,67 @@ $cesiumDownloads =
'android' => [
'title' => 'Android',
'url' => 'https://play.google.com/store/apps/details?id=fr.duniter.cesium',
'img' => 'android.png',
'desc' => _('Disponible directement sur le Play Store'),
'img' => 'android.svg',
'desc' => _('Disponible directement sur le Play Store') . '. ' . _('Si votre version d\'Android est récente, préférez le fichier .apk téléchargeable via le lien un peu plus bas.'),
'extra' => sprintf(_('(ou <a href="%s">télécharger le fichier .apk</a>)'), 'https://github.com/duniter/cesium/releases/download/v'. $cesiumVersions['android'] .'/cesium-v'. $cesiumVersions['android'] .'-android.apk')
],
'iphone' => [
'title' => 'iPhone',
'url' => 'https://apps.apple.com/app/cesium-%C4%9F1/id1471028018',
'img' => 'apple.png',
'img' => 'apple.svg',
'desc' => _('Disponible sur l\'App Store'),
'extra' => ''
],
'linux' => [
'title' => 'Linux',
'url' => sprintf('https://github.com/duniter/cesium/releases/download/v%s/cesium-desktop-v%s-linux-x64.deb', $cesiumVersions['linux'], $cesiumVersions['linux']),
'img' => 'tux.png',
'desc' => _('Paquet .deb pour Debian ou Ubuntu'),
'firefox' => [
'title' => _('Firefox'),
//'url' => sprintf('https://github.com/duniter/cesium/releases/download/v%s/cesium-v%s-extension-firefox.xpi', $cesiumVersions['firefox'], $cesiumVersions['firefox']),
'url' => 'https://addons.mozilla.org/fr/firefox/addon/cesium/',
'img' => 'firefox2019.png',
'desc' => _('Module complémentaire pour Firefox'),
'extra' => ''
],
'chromium' => [
'title' => _('Chromium&nbsp;/&nbsp;Chrome'),
'url' => 'https://chrome.google.com/webstore/detail/cesium/ocbhjemiokgibfojkkjapfealnbmgoek',
'img' => 'chrome.svg',
'desc' => _('Extension pour Chromium&nbsp;/&nbsp;Chrome'),
'extra' => ''
],
'safari' => [
'title' => _('Safari'),
'url' => 'https://apps.apple.com/us/app/cesium-%C4%9F1-for-safari/id1551461335',
'img' => 'safari.png',
'desc' => _('Extension pour Safari'),
'extra' => ''
],
'brave' => [
'title' => _('Brave'),
'url' => 'https://chrome.google.com/webstore/detail/cesium/ocbhjemiokgibfojkkjapfealnbmgoek',
'img' => 'brave_lion.svg',
'desc' => _('Extension pour Brave'),
'extra' => ''
],
'debian' => [
'title' => 'Ubuntu&nbsp;/ Debian',
'url' => sprintf('https://github.com/duniter/cesium/releases/download/v%s/cesium-desktop-v%s-linux-x64.deb', $cesiumVersions['debian'], $cesiumVersions['debian']),
'img' => 'cof_orange_hex.svg',
'desc' => _('Paquet .deb pour Debian et ses dérivés (Ubuntu, Linux Mint, etc.)'),
'extra' => _('En cas de problème&nbsp;:') . '<br /><code>sudo apt-get install -y libgconf-2-4</code>'
],
'arch' => [
'title' => 'Arch Linux (et dérivés)',
'url' => sprintf('https://aur.archlinux.org/packages/cesium-desktop-deb'),
'img' => 'arch.svg',
'desc' => _('A installer via AUR'),
'extra' => _('<code>yay -S cesium-desktop-deb</code>')
],
'windows' => [
'title' => 'Windows',
'url' => sprintf('https://github.com/duniter/cesium/releases/download/v%s/cesium-desktop-v%s-windows-x64.exe', $cesiumVersions['windows'], $cesiumVersions['windows']),
'img' => 'windows.png',
'img' => 'windows.svg',
'desc' => _('Installateur .exe pour Windows'),
'extra' => _('Lancez le .exe et suivez les instructions à l\'écran')
],
'mac' => [
'title' => 'Mac',
'url' => sprintf('https://github.com/duniter/cesium/releases/download/v%s/cesium-v%s-web.zip', $cesiumVersions['mac'], $cesiumVersions['mac']),
'img' => 'apple.png',
'desc' => _('Version web fonctionnant sous Mac'),
'extra' => _('Décompressez le fichier .zip et ouvrez le fichier index.html')
],
'Firefox_Add-on' => [
'title' => _('Firefox Add-on'),
'url' => sprintf('https://glibre.org/cesium/cesium-%s-an+fx.xpi', $cesiumVersions['firefox']),
'img' => 'firefox2019.png',
'desc' => _('Expérimental Firefox Add-on'),
'extra' => ''
],
'web' => [
'title' => 'Web',
'url' => sprintf('https://github.com/duniter/cesium/releases/download/v%s/cesium-v%s-web.zip', $cesiumVersions['web'], $cesiumVersions['web']),
......@@ -55,16 +77,15 @@ $cesiumDownloads =
'yunohost' => [
'title' => 'Yunohost',
'url' => 'https://github.com/duniter/cesium_ynh',
'img' => 'yunohost.png',
'img' => 'yunohost.svg',
'desc' => _('Paquet pour Yunohost'),
'extra' => ''
],
'livrables' => [
'title' => _('Livrables'),
'url' => 'https://github.com/duniter/cesium/releases',
'img' => '1200px-Octicons-mark-github.png',
'img' => 'github.svg',
'desc' => _('Toutes versions disponibles sur GitHub'),
'extra' => ''
],
];
<?php
$cesiumVersions = [
'home' => '1.3.11',
'android' => '1.3.11',
'linux' => '1.3.11',
'windows' => '1.3.11',
'firefox' => '1.3.11',
'mac' => '1.3.11',
'web' => '1.3.11',
'home' => '1.7.13',
'android' => '1.7.13',
'debian' => '1.7.13',
'arch' => '1.6.1',
'windows' => '1.7.13',
'web' => '1.7.13'
];
#!/bin/bash
lessc lib/style.less lib/style.css
......@@ -2,8 +2,11 @@
include('cesiumVersions.php');
define('FUNDING_PUBKEY', 'CitdnuQgZ45tNFCagay7Wh12gwwHM8VLej1sWmfHWnQX');
define('FUNDING_TARGET', '100');
define('FUNDING_PUBKEY', '78ZwwgpgdH5uLZLbThUQH7LKwPgjMunYfLiCfUCySkM8');
// Duniter : 78ZwwgpgdH5uLZLbThUQH7LKwPgjMunYfLiCfUCySkM8
// Cesium : CitdnuQgZ45tNFCagay7Wh12gwwHM8VLej1sWmfHWnQX
define('FUNDING_TARGET', 20*60+230);
define('CESIUM_PLUS_NODE', 'https://g1.data.e-is.pro'); // for avatars serving
$legalNotice =
[
......@@ -13,11 +16,18 @@ $legalNotice =
];
if ($_SERVER['SERVER_NAME'] == 'localhost') {
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
}
// Trouver une façon de définir $rootURL sans faire ça :
if ($_SERVER['SERVER_NAME'] == 'localhost') {
$rootURL = '/www/cesium_website';
// Adaptez la ligne suivante à votre configuration (sans slash à la fin)
$rootURL = '/cesium_website';
} else {
$rootURL = '';
}
......@@ -39,7 +49,7 @@ function checkAvailableLanguages ($langList) {
return $langList;
}
$availableLanguages =
$languagesList =
[
'fr' => [
'name' => 'français',
......@@ -53,9 +63,9 @@ $availableLanguages =
'name' => 'español',
'folder' => 'es_ES'
],
'va' => [
'name' => 'valyrio',
'folder' => 'en_US'
'eo' => [
'name' => 'esperanto',
'folder' => 'eo'
],
/*
'it' => [
......@@ -65,11 +75,12 @@ $availableLanguages =
*/
];
$availableLanguages = checkAvailableLanguages($availableLanguages);
$availableLanguages = checkAvailableLanguages($languagesList);
//echo '<pre>'; print_r($availableLanguages); echo '</pre>';
define('DEFAULT_LANG', 'fr');
define('WEBSITE_GIT_URL', 'https://git.duniter.org/websites/cesium_website');
include('inc/lang.php');
......@@ -93,4 +104,4 @@ include('inc/display.php');
define('MOD_REWRITE', 'on');
define('FUNDING_ALT', false);
define('FUNDING_ALT', (date('d/m') == '01/04'));
How to translate the website
===
## How to translate the main contents
For pages such as:
- Home
- Features
- Download
..and header and footer menus,
the changes take place in *.po files.
You will find those files in folders such as `i18n/fr_FR/LC_MESSAGES/` .
Such files can be edited with softwares such as [PoEdit](https://poedit.net/).
## How to translate the tutorial
To translate the tutorial, you will find .html files in folders such as `i18n/fr_FR/contents/tuto/`, where `fr_FR` is the language code for the French (fr) variant that is spoken in France (FR).
How to install Cesium website on your computer
===
## (optional) Configure multilang
```
# Root, on Debian
echo -e "ca_ES.UTF-8 UTF-8\nde_DE.UTF-8 UTF-8\nen_GB.UTF-8 UTF-8\neo UTF-8\nes_ES.UTF-8 UTF-8\nit_IT.UTF-8 UTF-8\nfr_FR.UTF-8 UTF-8" >> /etc/locale.gen
locale-gen
update-locale
service php*-fpm restart
```
## config.php
In ̀`config.php`, edit $rootURL var according to your setup.
```php
if ($_SERVER['SERVER_NAME'] == 'localhost') {
// Adaptez la ligne suivante à votre configuration (sans slash à la fin)
$rootURL = '/cesium_website';
} else {
$rootURL = '';
}
```
## Installer PHP
To run Cesium website on your computer, you will need install and PHP, which converts the source code contained in *.php files into HTML the browser can understand.
Windows users can use [WAMP Serveur](https://www.wampserver.com/), which comes with a web server
## How to install a web server
To run Cesium website on your computer, you will also need a web server
You can choose one of the following:
- apache2
- nginx
## Nginx
Linux users will have to install the `nginx` package.
For instance, Debian-like (Ubuntu, Linux Mint, etc.) users will have to run:
```
sudo apt install nginx
```
Go to `/etc/nginx/sites-available/`.
Edit the `default` file to add the bloc that follows `# Configuration for /cesium_website`.
The `/var/www/localhost` part is assuming this is where is stored `cesium_website` (`localhost` would probably be a symbolic link).
```txt
server {
listen 80;
root /var/www/localhost;
index index.php index.html index.htm index.nginx-debian.html;
server_name localhost;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
# Configuration for /cesium_website
location /cesium_website {
if (!-e $request_filename) {
rewrite ^/cesium_website/([^/]+)/(.*)$ /cesium_website/index.php?lang=$1&page=/$2 last;
rewrite ^/cesium_website/([^/]+)$ /cesium_website/index.php?lang=fr&page=/$1 last;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # Assurez-vous de vérifier et d'utiliser la version correcte de PHP
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}
```
Note : don't forget to change `php8.1` for the version of PHP you installed.
Restart nginx :
```
sudo service nginx restart
```
## Apache
Linux users will have to install the `apache2` package.
For instance, Debian-like (Ubuntu, Linux Mint, etc.) users will have to run:
```
sudo apt install apache2
```
### .htaccess
Create a .htaccess in cesium_website directory, with the following text :
```
<IfModule mod_rewrite.c>
RewriteEngine On
# Adaptez la ligne suivante à votre configuration (avec un slash à la fin)
RewriteBase /cesium-website-project/cesium_website/
RewriteOptions InheritDown
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .*\.php - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/(.*)$ index.php?lang=$1&page=/$2 [L]
</IfModule>
```
Edit RewriteBase directive to match your own setup.
If, when trying to access the site, you get a "404 Not Found" error, this means your `.htaccess` file is not taken into account by Apache.
You will then need to edit `/etc/apache2/apache2.conf` file and replace :
```
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
```
with :
```
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
```
Licences
===
Ce logiciel est pour sa majeure partie sous licence GNU GPL 3.0.
Aux exceptions suivantes :
- Le script Funding.class.php est basé sur la [barre de financement intégrable](https://git.duniter.org/paidge/barre-de-financement-int-grable), elle-même sous licence GNUL GPL 3.
- [Composer](https://getcomposer.org/) est sous licence MIT.
- [GeoIP2](https://maxmind.github.io/GeoIP2-php/) est la création de by MaxMind est distribué sous licence Apache
- Les [bases de données GeoLite2](https://dev.maxmind.com/geoip/geoip2/geolite2/) sont la création de MaxMind et sont sous licence Creative Commons Attribution-ShareAlike 4.0 International.
- Le script [LazyImg](https://github.com/colas31/lazyImg), dont la licence est inconnue.
- [Font-Awesome](https://fontawesome.com/license/free) est sous licence libre ([voir détail](https://fontawesome.com/license/free))
- Les photos, qui sont la propriété de leurs auteurs
- Le logo Cesium est la création de DiG
Comment mettre à jour les liens de téléchargement au changement de version
===
Lors d'une mise à jour de Cesium, il suffit de mettre à jour [le fichier cesiumVersions.php](cesiumVersions.php) pour que les liens de téléchargement soient automatiquement mis à jour.
Si ceux-ci étaient amenés à changer d'emplacement, veuillez mettre à jour [le fichier cesiumDownloads.php](cesiumDownloads.php)
Comment traduire le site
===
## Comment traduire le contenu principal
Pour les pages :
- Accueil
- Fonctionnalités
- Téléchargement
...et les menus de l'en-tête et du pied de page :
les modifications sont à faire dans les fichiers .po que vous trouverez dans les dossiers type `i18n/es_ES/LC_MESSAGES/` (ici : l'espagnol)
Ces fichiers sont éditables avec des logiciels type [PoEdit](https://poedit.net/).
## Comment traduire le tutoriel
Pour le tutoriel, vous trouverez les fichiers .html dans les dossiers type `i18n/es_ES/contents/tuto/` (où `es_ES` est la langue qui vous intéresse).
#### Comment formatter les URLs dans le menu
Il vous faudra aussi modifier le fichier `menu.html`
Dans le menu, les URLs doivent avoir la forme suivante :
```html
<ul>
<li>
<a href="item">Item</a>
</li>
<li>
<a href="item/">Item</a>
<!-- Ira chercher le index.html du dossier -->
<ul>
<li><a href="item/sous-item">Sous-item</a></li>
</ul>
</li>
</ul>
```
Ici, slash ou pas slash, ça compte :
* **un slash** de fin pour un **dossier** (va chercher le index.html à la racine du dossier)
* **pas de slash** de fin pour un **fichier** (va chercher le .html correspondant)
### Comment formatter les URLs dans les fichiers
Chaque URL est relative au fichier dans lequel on l'écrit.
### Comment rendre notre code clair pour les autres
Efforçons-nous d'aérer au maximum notre code HTML, afin qu'il soit facilement lisible par tous et donc rapidement modifiable.
Aussi : utiliser 4 espaces consécutifs en guise d'indentation est une déviance ainsi qu'une perversion.
### Comment faire en sorte que le contenu soit lisible pour le visiteur
J'ai remarqué que pour les instructions dans un tuto, souvent une liste ordonnée &lt;ol&gt;&lt;/ol&gt; rend mieux
qu'une liste non-ordonnée &lt;ul&gt;&lt;/ul&gt;
## Comment modifier les images
C'est dans `i18n/es_ES/contents/tuto/` (où `es_ES` est la langue qui vous intéresse).
Pour des questions de SEO, les noms des fichiers sont traduits, via les fichiers .po
Installer le site sur son ordinateur
===
## (optionnel) Configurer le multilangue
```
# En root, sur Debian
echo -e "ca_ES.UTF-8 UTF-8\nde_DE.UTF-8 UTF-8\nen_GB.UTF-8 UTF-8\neo UTF-8\nes_ES.UTF-8 UTF-8\nit_IT.UTF-8 UTF-8\nfr_FR.UTF-8 UTF-8" >> /etc/locale.gen
locale-gen
update-locale
service php*-fpm restart
```
## config.php
Dans le fichier `config.php`, modifiez la variable `$rootURL` pour qu'elle corresponde à la façon dont vous servez le site web :
```php
if ($_SERVER['SERVER_NAME'] == 'localhost') {
// Adaptez la ligne suivante à votre configuration (sans slash à la fin)
$rootURL = '/cesium_website';
} else {
$rootURL = '';
}
```
## Installer PHP
Pour faire tourner ce site sur votre ordinateur, vous aurez besoin d'installer PHP, qui transformera le code source contenu dans les fichiers *.php en HTML que le navigateur du visiteur peut comprendre.
Sous Linux, il vous faudra installer le paquet `php`.
Par exemple, sous une Debian-like (Ubuntu, Linux Mint, etc.) :
```
sudo apt install php
```
Les utilisateurs de Windows peuvent utiliser [WAMP Serveur](https://www.wampserver.com/), qui vient aussi avec son serveur web.
## Installer un serveur web
Pour faire tourner ce site sur votre ordinateur, vous aurez besoin d'installer un serveur web.
Vous avez le choix entre :
- nginx
- apache2
## Nginx
Sous Linux, il vous faudra installer le paquet `nginx`.
Par exemple, sous une Debian-like (Ubuntu, Linux Mint, etc.) :
```
sudo apt install nginx
```
### configurer Nginx
Les fichiers de configuration de Nginx se trouvent dans `/etc/nginx/sites-available/`.
#### option 1 : modifier `default`
Vous avez probablement dans ce répertoire un fichier `default` auquel vous pouvez ajouter le bloc d'instruction qui suit le commentaire `# Configuration pour /cesium_website`.
```txt
server {
listen 80;
root /var/www/localhost;
# Le premier fichier d'index recherché est index.php
index index.php index.html index.htm index.nginx-debian.html;
server_name localhost;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
# Configuration pour /cesium_website
location /cesium_website {
# Si le fichier ou le répertoire n'existe pas
if (!-e $request_filename) {
# Réécriture d'URL
rewrite ^/cesium_website/([^/]+)/(.*)$ /cesium_website/index.php?lang=$1&page=/$2 last;
rewrite ^/cesium_website/([^/]+)$ /cesium_website/index.php?lang=fr&page=/$1 last;
}
# Traitement des fichiers PHP
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # Assurez-vous de vérifier et d'utiliser la version correcte de PHP
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}
```
Note : pensez à remplacer `php8.1` par la version de PHP que vous avez installée.
Redémarrez nginx :
```
sudo service nginx restart
```
#### option 2 : créer un fichier de configuration dédié
Vous pouvez aussi créer un nouveau fichier de configuration, et un nouveau nom de serveur local.
Commencez par créer un lien symbolique vers l'emplacement approprié :
```
ln -s /var/www/cesium_website /home/votre_nom_d_utilisateur/projets/cesium_website
```
en remplçant le chemin de destination par l'emplacement où vous avez téléchargé le dossier `cesium_website`.
Auquel cas il vous faudra modifier votre fichier `/etc/hosts` :
```
sudo nano /etc/hosts
```
pour y ajouter une ligne du style :
```txt
127.0.0.1 cesiumwebsite
```
Créez le fichier de configuration :
```
sudo nano /etc/nginx/sites-available/cesium_website
```
et ajoutez-y le contenu idoine :
```txt
server {
listen 80;
root /var/www/cesium_website;
# Le premier fichier d'index recherché est index.php
index index.php index.html index.htm index.nginx-debian.html;
server_name cesiumwebsite;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
# Configuration pour /
location / {
# Si le fichier ou le répertoire n'existe pas
if (!-e $request_filename) {
# Réécriture d'URL
rewrite ^/([^/]+)/(.*)$ /index.php?lang=$1&page=/$2 last;
rewrite ^/([^/]+)$ /index.php?lang=fr&page=/$1 last;
}
# Traitement des fichiers PHP
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # Assurez-vous de vérifier et d'utiliser la version correcte de PHP
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}
```
sans oublier de créer un lien symbolique pour rendre le site disponible :
```
sudo ln -s /etc/nginx/sites-enabled/cesium_website /etc/nginx/sites-available/cesium_website
```
…et de redémarrer nginx :
```
sudo service nginx restart
```
## Apache
Sous Linux, il vous faudra installer le paquet `apache2`.
Par exemple, sous une Debian-like (Ubuntu, Linux Mint, etc.) :
```
sudo apt install apache2
```
### configurer le fichier `.htaccess`
Le fichier `.htaccess` est celui qui gère la réécriture d'URL, qui permet d'afficher au visiteur une structure compréhensible par un être humain dans sa barre d'adresse.
Votre fichier .htaccess doit contenir les infos suivantes :
```txt
<IfModule mod_rewrite.c>
RewriteEngine On
# Adaptez la ligne suivante à votre configuration (avec un slash à la fin)
RewriteBase /cesium-website-project/cesium_website/
RewriteOptions InheritDown
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .*\.php - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/(.*)$ index.php?lang=$1&page=/$2 [L]
</IfModule>
```
Modifiez l'instruction RewriteBase du .htaccess pour qu'elle s'accorde à votre propre configuration
(tapez l'endroit où CesiumWebsite est installé, typiquement /)
Si lorsque vous essayez d'accéder au site, vous avez une erreur "404 Not Found", c'est que votre fichier `.htaccess` n'est pas pris en considération par Apache.
Il vous faudra alors éditer votre fichier `/etc/apache2/apache2.conf` (anciennement `/etc/apache2/httpd.conf`) pour y remplacer :
```txt
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
```
par :
```txt
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
```
Activez le mod_rewrite d'Apache :
```
sudo a2enmod rewrite
```
Redémarrez Apache :
```
systemctl restart apache2
```
Licences
===
Ce logiciel est pour sa majeure partie sous licence GNU GPL 3.0.
Aux exceptions suivantes :
- Le script Funding.class.php est basé sur la [barre de financement intégrable](https://git.duniter.org/paidge/barre-de-financement-int-grable), elle-même sous licence GNUL GPL 3.
- [Composer](https://getcomposer.org/) est sous licence MIT.
- [GeoIP2](https://maxmind.github.io/GeoIP2-php/) est la création de by MaxMind est distribué sous licence Apache
- Les [bases de données GeoLite2](https://dev.maxmind.com/geoip/geoip2/geolite2/) sont la création de MaxMind et sont sous licence Creative Commons Attribution-ShareAlike 4.0 International.
- Le script [LazyImg](https://github.com/colas31/lazyImg), dont la licence est inconnue.
- [Font-Awesome](https://fontawesome.com/license/free) est sous licence libre ([voir détail](https://fontawesome.com/license/free))
- Les photos, qui sont la propriété de leurs auteurs
- Le logo Cesium est la création de DiG
Restrictions à votre liberté d'expression
===
Nous essayons de créer une communauté conviviale autour du projet de ce site.
Pour cette raison, si vous choisissez de communiquer sur [le canal #cesium-website](https://riot.im/app/#/room/#cesium.app:matrix.org), les restrictions suivantes vous seront imposées.
Si vous n'adhérez pas à ces restrictions, vous pouvez choisir de communiquer dans un espace avec des restrictions différentes. Des outils comme [Aether](https://getaether.net/), [ScuttleButt](https://scuttlebutt.nz/), [Cabal](https://cabal.chat/) ou encore Matrix/[Riot/Element](https://riot.im/app/) vous permettent de créer des communautés sans grandes compétences techniques.
## Restriction n°1 : n'utilisez pas le champ lexical du dégoût
Le champ lexical du dégoût cherche à stimuler chez le lecteur des réactions émotionnelles de rejet.
Ce genre de pratiques va à l'encontre d'une évaluation objective des faits.
| interdit | autorisé |
| --- | --- |
| "la doc est dégueu" | "la documentation n'est pas organisée d'une façon très navigable" |
| "les dépendances sont moches" | "les dépendances pourraient casser facilement" |
| "le code est sale" | "le code est peu encapsulé" |
| "les noms des variables sont pourris" | "le code serait plus lisible pour moi si les noms des variables étaient plus explicites" |
| 🤢 ou 🤮 | s'abstenir de commentaire désobligeant |
## Restriction n°2 : n'utilisez pas le champ lexical du bien et du mal
Le bien et le mal sont des notions très relatives à chacun.
| interdit | autorisé |
| --- | --- |
| "C'est mal documenté" | "La documentation ne me permet pas de faire fonctionner le logiciel." |
| "L'outil a été mal utilisé" | "L'outil a été utilisé d'une façon qui m'est inhabituelle" |
| "C'est pire qu'avant !" | "Je préférais la version précédente parce que..." |
| "Ça ne respecte pas les bonnes pratiques" | "Il n'a pas été mis en place de [séparation des préoccupations](https://fr.wikipedia.org/wiki/S%C3%A9paration_des_pr%C3%A9occupations)" |
| "C'est bien." | "J'aime." |
| "C'est mieux." | "Merci" |
<?php
textdomain('menu');
?>
</main>
<footer>
<div>
<nav id="sitemap">
<h5>
<?php echo _('Plan du site'); ?>
<?php echo dgettext('menu', 'Plan du site'); ?>
</h5>
<ul>
<li>
<a href="<?php echo parseURI('/'); ?>">
<?php echo _('Accueil'); ?>
<?php echo dgettext('menu', 'Accueil'); ?>
</a>
</li>
<li>
<a href="<?php echo parseURI(_('/fonctionnalites')); ?>">
<?php echo _('Fonctionnalités'); ?>
<a href="<?php echo parseURI(dgettext('menu', '/fonctionnalites')); ?>">
<?php echo dgettext('menu', 'Fonctionnalités'); ?>
</a>
</li>
<li>
<a href="<?php echo parseURI(_('/telechargement')); ?>">
<?php echo _('Téléchargement'); ?>
<a href="<?php echo parseURI(dgettext('menu', '/telechargement')); ?>">
<?php echo dgettext('menu', 'Téléchargement'); ?>
</a>
</li>
<li>
<a href="https://forum.duniter.org/c/support/cesium">
<?php echo _('Support'); ?>
<?php echo dgettext('menu', 'Support'); ?>
</a>
</li>
<li>
<a href="<?php echo $rootURL . parseURI(dgettext('menu', '/mentions-legales')); ?>">
<?php echo dgettext('menu', 'Mentions légales'); ?>
</a>
</li>
</ul>
......@@ -39,52 +39,58 @@ textdomain('menu');
<nav id="developper-links">
<h5>
<?php echo _('Développeur ? Rejoignez-nous !');?>
<?php echo dgettext('menu', 'Développeur ? Rejoignez-nous !');?>
</h5>
<ul>
<li>
<a href="https://forum.duniter.org/c/support/cesium">
<?php echo _('Forum Cesium'); ?>
<?php echo dgettext('menu', 'Forum Cesium'); ?>
</a>
</li>
<li>
<a href="https://forum.duniter.org/c/presentations">
<?php echo _('Venez faire connaissance'); ?>
<?php echo dgettext('menu', 'Venez faire connaissance'); ?>
</a>
</li>
<li>
<a href="https://git.duniter.org/clients/cesium-grp/cesium">
<?php echo _('Forge GitLab de Cesium'); ?>
<?php echo dgettext('menu', 'Forge GitLab de Cesium'); ?>
</a>
</li>
<li>
<a href="https://git.duniter.org/clients/cesium-grp/cesium/blob/master/doc/development_guide.md">
<?php echo _('Guide du développement Cesium'); ?>
<?php echo dgettext('menu', 'Guide du développement Cesium'); ?>
</a>
</li>
<li>
<span>&#99;&#111;&#110;&#116;&#97;&#99;&#116;&#64;&#100;&#117;&#110;&#105;&#116;&#101;&#114;&#46;&#111;&#114;&#103;</span>
</li>
</ul>
</nav>
<section id="about">
<h5><?php echo ('Qui sommes-nous ?'); ?></h5>
<h5><?php echo dgettext('menu', 'Modifier ce site'); ?></h5>
<p>
Ce site est édité par Axiom-Team, qui est une équipe de techniciens, graphistes et designers
ayant pour but la promotion des Monnaies Libres, des outils qui s'y rapportent,
et le soutien des développeurs qui créent ces derniers.
<?php
echo dgettext('menu', 'Ce site est édité par la communauté Ğ1.');
?>
</p>
<p>
<a href="<?php echo $rootURL . _('/mentions-legales'); ?>">Mentions légales</a>
<?php
printf( dgettext('menu', 'Son code source est disponible et modifiable sur <a href="%s">le dépôt Git</a>.'),
WEBSITE_GIT_URL);
?>
</p>
<p>
<?php
echo dgettext('menu', 'Toutes les bonnes volontés sont les bienvenues. ');
?>
</section>
<nav id="langSelector">
<h5><?php echo _('Choix de langue'); ?></h5>
<h5><?php echo dgettext('menu', 'Choix de langue'); ?></h5>
<ul>
<?php
......@@ -115,7 +121,7 @@ textdomain('menu');
} else {
echo '
<a href="'. $rootURL .'/'. $thisLangIsoCode . _($pagePermalink) .'">
<a href="'. $rootURL .'/'. $thisLangIsoCode . dgettext('menu', $pagePermalink) .'">
<span>
' . $thisLangIsoCode . '
</span>
......@@ -139,6 +145,30 @@ textdomain('menu');
</footer>
<script src="<?php echo $rootURL;?>/lib/scripts.js"></script>
<?php
if ($_SERVER['SERVER_NAME'] != 'localhost') {
?>
<!-- Matomo Image Tracker-->
<img src="https://piwik.p2p.legal/matomo.php?idsite=3&amp;rec=1" style="border:0" alt="" />
<!-- Matomo JS-->
<script type="text/javascript">
var _paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//piwik.p2p.legal/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '3']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Matomo Code -->
<?php
}
?>
</body>
</html>
......
......@@ -17,7 +17,7 @@ $bodyIds = !isset($bodyIds) ? '' : $bodyIds;
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
<title><?php echo $pageTitle; ?></title>
<link type="image/x-icon" rel="shortcut icon" href="<?php echo $rootURL; ?>/img/favicon.png" />
<link rel="shortcut icon" type="image/png" href="<?php echo $rootURL; ?>/img/logo.small.cs.dune.200x200.png" />
<meta name="generator" content="BorisPaing" />
......@@ -28,13 +28,13 @@ $bodyIds = !isset($bodyIds) ? '' : $bodyIds;
<meta property="og:url" content="http://cesium.app/" />
<meta property="og:site_name" content="Cesium Ğ1" />
<meta property="og:image" content="<?php echo $rootURL . '/i18n/' . LANG_FOLDER . '/contents' . _('/accueil') . _('/Cesium-G1-maquette.png'); ?>" />
<meta property="og:image" content="<?php echo $rootURL . '/i18n/' . LANG_FOLDER . '/contents' . dgettext('menu', '/accueil') . dgettext('home', '/Cesium-G1-maquette.png'); ?>" />
<meta property="og:type" content="website" />
<meta name="twitter:description" content="<?php echo $pageDescription; ?>" />
<meta name="twitter:title" content="<?php echo $pageTitle; ?>" />
<meta name="twitter:image" content="<?php echo $rootURL . '/i18n/' . LANG_FOLDER . '/contents' . _('/accueil') . _('/Cesium-G1-maquette.png'); ?>" />
<meta name="twitter:image" content="<?php echo $rootURL . '/i18n/' . LANG_FOLDER . '/contents' . dgettext('menu', '/accueil') . dgettext('home', '/Cesium-G1-maquette.png'); ?>" />
<meta name="twitter:card" content="summary_large_image" />
<script type="text/javascript" src="<?php echo $rootURL; ?>/lib/lazyImg.min.js"></script>
......@@ -46,32 +46,55 @@ $bodyIds = !isset($bodyIds) ? '' : $bodyIds;
}
?>
<link type="text/css" rel="stylesheet" media="screen" href="<?php echo $rootURL; ?>/lib/style.css" />
<?php
if ($_SERVER['SERVER_NAME'] == 'localhost') {
echo '
<link rel="stylesheet/less" type="text/css" href="' . $rootURL . '/lib/style.less" />
<script src="' . $rootURL . '/lib/less-3.9.0.min.js" ></script>
';
} else {
echo '<link rel="stylesheet" type="text/css" media="screen" href="' . $rootURL . '/lib/style.css" />';
}
?>
<?php if (FUNDING_ALT) echo '<link type="text/css" rel="stylesheet" media="screen" href="'. $rootURL .'/lib/style-funding-alt-1.css" />'; ?>
</head>
<body id="<?php echo $bodyIds; ?>">
<?php
textdomain("menu");
$menu =
array(
[
'uri' => _('/'),
'label' => _('Accueil')
'uri' => dgettext('menu', '/'),
'label' => dgettext('menu', 'Accueil')
],
[
'uri' => _('/fonctionnalites'),
'label' => _('Fonctionnalités')
'uri' => dgettext('menu', '/fonctionnalites'),
'label' => dgettext('menu', 'Fonctionnalités')
],
[
'uri' => _('/telechargement'),
'label' => _('Télécharger')
'uri' => dgettext('menu', '/telechargement'),
'label' => dgettext('menu', 'Télécharger')
],
[
'uri' => _('/tutoriel-cesium') . '/',
'label' => _('Tutoriel')
'url' => 'https://demo.cesium.app',
'label' => dgettext('menu', 'Demo')
],
[
'uri' => dgettext('menu', '/tutoriel-cesium') . '/',
'label' => dgettext('menu', 'Tutoriel')
],
[
'uri' => dgettext('menu', '/merci'),
'label' => '❤ ' . dgettext('menu', 'Encouragez-nous !'),
'class' => 'support-us'
// ❤
]
);
?>
......@@ -82,16 +105,16 @@ $bodyIds = !isset($bodyIds) ? '' : $bodyIds;
$element = $pageIsHome ? 'h1' : 'h2';
echo '
<'. $element .'>
<'. $element .' class="site-title">
<a href="'. parseURI("/") .'">
Cesium Ğ1
</a>
</'. $element .'>';
?>
<p>
<p class="site-logo">
<a href="<?php echo parseURI("/"); ?>">
<img src="<?php echo $rootURL; ?>/lib/logo.png" alt="logo Cesium Ğ1" />
<img src="<?php echo $rootURL; ?>/lib/logo.small.cs.dune.svg" alt="logo Cesium Ğ1" />
</a>
</p>
......@@ -106,11 +129,26 @@ $bodyIds = !isset($bodyIds) ? '' : $bodyIds;
for ($i = 0; $i < $itemsNb; ++$i)
{
$active = ($_SERVER['REQUEST_URI'] == parseURI($menu[$i]['uri'])) ? ' class="active"' : '';
$classes = '';
$classes .= isset($menu[$i]['class']) ? ' '. $menu[$i]['class'] . '"' : '';
if (isset($menu[$i]['uri'])) {
$classes .= ($_SERVER['REQUEST_URI'] == parseURI($menu[$i]['uri'])) ? ' active' : '';
$href = parseURI($menu[$i]['uri']);
} else {
$href = $menu[$i]['url'];
}
$classes = !empty($classes) ? ' class="'. $classes .'"' : '';
echo '
<li'. $active .'>
<a role="menuitem" href="'. parseURI($menu[$i]['uri']) . '">
<li'. $classes . '>
<a role="menuitem" href="'. $href . '">
<span>'. $menu[$i]['label'] .'</span>
</a>
</li>';
......
<h1>Cesium tutorial</h1>
<p>
Welcome on this Cesium tutorial.
The Cesium tutorial hasn't been translated to English yet.
</p>
<p>
If you need any help, you might find some on forums.
If you are willing to help, you can join us on <a href="https://chat.axiom-team.fr/channel/cesium-website">the #cesium-website channel</a>.
</p>
<p>
You will have to create an account on the chat to post and view messages.
</p>
File deleted