Difference between revisions of "Module Sites web"

From Dolibarr ERP CRM Wiki
Jump to navigation Jump to search
m (Framaurin moved page Module Website FR to Module Sites web: The official translation name in Dolibarr is "Sites web" not "Website FR")
m
Tag: 2017 source edit
Line 10: Line 10:
 
{{TemplateModFR}}
 
{{TemplateModFR}}
 
{{BasculeDevUser|
 
{{BasculeDevUser|
nom=Website|
+
nom=Sites web|
num=Website|
+
num=10000|
 
devdoc=[[Module Website (developer)]]|
 
devdoc=[[Module Website (developer)]]|
 
userdoc=Cette page|}}
 
userdoc=Cette page|}}
Line 19: Line 19:
 
= Introduction =
 
= Introduction =
  
The module website add a CMS (Content Management System) inside Dolibar ERP CRM.
+
Le module site web ajoute un CMS (système de gestion de contenus) à l'intérieur de Dolibar ERP CRM.
You can create your own website inside Dolibarr, publish your website using an external web server like Apache and NGinx and reuse any data from your ERP CRM into our website.  
+
Vous pouvez créer votre propre site web dans Dolibarr, publier votre site web en utilisant un serveur web externe comme Apache et NGinx et réutiliser toutes les données de votre ERP CRM dans notre site web.  
  
 
= Installation =
 
= Installation =
{{NoInstallModuleEn}}
+
{{NoInstallModuleFr}}
  
 
= Configuration =
 
= Configuration =
{{ActivationModuleEn}}
+
{{ActivationModuleFr}}
  
= Create a new website =
+
= Créer un nouveau site web =
  
Go on top menu "Website" then use the button "New website" to initialize a new website. You are ready to add your fist page.
+
Allez dans le menu principal "Site web" puis utilisez le bouton "Nouveau site web" pour initialiser un nouveau site web. Vous êtes prêt à ajouter votre première page.
  
= Add a new page / container =
+
= Ajouter une nouvelle page / un nouveau conteneur =
To add your first page, you can start a page from scratch or import an existing website/template that you can modify later.
+
Pour ajouter votre première page, vous pouvez commencer une page à partir de zéro ou importer un site web/modèle existant que vous pourrez modifier ultérieurement.
  
== Import a website template ==
+
== Importer un modèle de site web ==
This is the fastest way to get a website ready to publish. Click on "Import website". Choose your template or upload a template from on a template market place or provided by your web agency.
+
C'est le moyen le plus rapide de disposer d'un site web prêt à être publié. Cliquez sur "Importer un site web". Choisissez votre modèle ou téléchargez un modèle sur une boutique de modèles ou fourni par votre agence web.
  
== Create a new page from scratch ==
+
== Créer une nouvelle page à partir de zéro ==
Just click on the button "Add page/container". Fill the meta information and "Save". Now you can click on "Edit source" to add your HTML content.
+
Il suffit de cliquer sur le bouton "Ajouter une page / un conteneur". Remplissez les méta-informations et "Sauvegardez". Vous pouvez maintenant cliquer sur " Editer la source " pour ajouter votre contenu HTML.
 
...
 
...
  
= Add the content of a page/container into another page/container =
+
= Ajouter le contenu d'une page/conteneur dans une autre page/conteneur =
Including a container into a parent container allows to move some content (text or html)of a page into a sub-page. So you can include it on several pages. Changing the content of the subpage will be propagated on any page that include the sub-page. It is similar to using the "Templates" with Mediawiki or using the #include in C++.
+
L'inclusion d'un conteneur dans un conteneur parent permet de déplacer une partie du contenu (texte ou html) d'une page dans une sous-page. Vous pouvez donc l'inclure sur plusieurs pages. La modification du contenu de la sous-page sera propagée sur toute page qui inclut la sous-page. C'est similaire à l'utilisation des "Templates" avec Mediawiki ou à l'utilisation du #include en C++.
  
To include the content of a sub-page/sub-container into another one, just add this where you want to have the sub-content included:
+
Pour inclure le contenu d'une sous-page/sous-contenu dans une autre, il suffit d'ajouter ceci à l'endroit où vous souhaitez que le sous-contenu soit inclus :
  
 
<source lang="html">
 
<source lang="html">
<?php includeContainer('alias_of_container_to_include'); ?>
+
<?php includeContainer('alias_du_conteneur_a_inclure'); ?>
 
</source>
 
</source>
  
= Add dynamic content into a page =
+
= Ajouter de contenu dynamique dans une page =
One of the most interesting feature of Dolibarr CMS is that you can include dynamic content by adding PHP code, anywhere on your web site. Only restricted people do this because they need the permission "Add dynamic content" to be allowed to do that.
+
L'une des caractéristiques les plus intéressantes de Dolibarr CMS est que vous pouvez inclure du contenu dynamique en ajoutant du code PHP, n'importe où sur votre site web. Seules les personnes autorisées le font car elles ont besoin de la permission "Ajouter du contenu dynamique" pour pouvoir le faire.
Adding dynamic content is as easy as developping in PHP. Just add the <?php / ?> tags. You can use, in your dynamic code, any of the following predefined global variable (they are already initialized and populated):
+
L'ajout de contenu dynamique est aussi simple que le développement en PHP. Il suffit d'ajouter les balises <?php / ?>. Vous pouvez utiliser, dans votre code dynamique, n'importe laquelle des variables globales prédéfinies suivantes (elles sont déjà initialisées et renseignées) :
 
  $conf, $user, $db, $mysoc, $website, $websitepage, $weblangs, $pagelangs
 
  $conf, $user, $db, $mysoc, $website, $websitepage, $weblangs, $pagelangs
  
== Get properties of your company ==
+
== Obtenez les propriétés de votre entreprise ==
This is example of dynamic content to get the name of your company:
+
Voici un exemple de contenu dynamique pour obtenir le nom de votre entreprise :
  
 
<source lang="html">
 
<source lang="html">
Line 63: Line 63:
 
</source>
 
</source>
  
== Get properties of the web page ==
+
== Accéder aux propriétés de la page web ==
This is another example of dynamic content to get meta data of a container/page:
+
C'est un autre exemple de contenu dynamique permettant d'obtenir des métadonnées d'un conteneur/page :
  
 
<source lang="html">
 
<source lang="html">

Revision as of 12:59, 2 November 2020

Sites web
Numéro/ID du module 10000
Doc utilisateur du module Cette page
Doc développeur du module Module Website (developer)

En verysmall.png Page waiting for translation. To translate, create an account, go back and clic on "Modify".
Fr verysmall.png Page en attente de traduction. Pour traduire, créez un compte, revenez et cliquez sur "Modifier".
Es verysmall.png Página a traducir. Para traducirla, cree una cuenta, vuelva a la página y haga clic en "editar".
It verysmall.png Pagina da tradurre. Per tradurla, crea un utente, torna indietro e clicca su "modifica".
Pt verysmall.png Página a aguardar por tradução. Para traduzir, crie uma conta, volte atrás e clique em "Modificar".
De verysmall.png Seite wartet auf Übersetzung. Um Übersetzung zu erstellen, richte einen Account ein, geh zurück und klicke auf "bearbeiten".
Zh verysmall.png 页面等待翻译。若要翻译本页,先创建一个帐户、登录并返回本页后单击“编辑”。

Introduction

Le module site web ajoute un CMS (système de gestion de contenus) à l'intérieur de Dolibar ERP CRM. Vous pouvez créer votre propre site web dans Dolibarr, publier votre site web en utilisant un serveur web externe comme Apache et NGinx et réutiliser toutes les données de votre ERP CRM dans notre site web.

Installation

Ce module est livré en standard avec la distribution de Dolibarr, aussi il est déjà installé.

Configuration

Pour utiliser ce module, il vous faut d'abord l'activer. Pour cela, après s'être connecté avec un compte administrateur, aller sur la page "Accueil - Configuration - Modules".

Choisissez l'onglet dans lequel apparaît le module puis cliquez sur "Activer".

Le module est alors activé.

Si un pictogramme Cog circle.svg apparaît sur la vignette ou à la fin de la ligne du module, cliquez dessus pour accéder à la page de paramétrage spécifique à ce module.

Créer un nouveau site web

Allez dans le menu principal "Site web" puis utilisez le bouton "Nouveau site web" pour initialiser un nouveau site web. Vous êtes prêt à ajouter votre première page.

Ajouter une nouvelle page / un nouveau conteneur

Pour ajouter votre première page, vous pouvez commencer une page à partir de zéro ou importer un site web/modèle existant que vous pourrez modifier ultérieurement.

Importer un modèle de site web

C'est le moyen le plus rapide de disposer d'un site web prêt à être publié. Cliquez sur "Importer un site web". Choisissez votre modèle ou téléchargez un modèle sur une boutique de modèles ou fourni par votre agence web.

Créer une nouvelle page à partir de zéro

Il suffit de cliquer sur le bouton "Ajouter une page / un conteneur". Remplissez les méta-informations et "Sauvegardez". Vous pouvez maintenant cliquer sur " Editer la source " pour ajouter votre contenu HTML. ...

Ajouter le contenu d'une page/conteneur dans une autre page/conteneur

L'inclusion d'un conteneur dans un conteneur parent permet de déplacer une partie du contenu (texte ou html) d'une page dans une sous-page. Vous pouvez donc l'inclure sur plusieurs pages. La modification du contenu de la sous-page sera propagée sur toute page qui inclut la sous-page. C'est similaire à l'utilisation des "Templates" avec Mediawiki ou à l'utilisation du #include en C++.

Pour inclure le contenu d'une sous-page/sous-contenu dans une autre, il suffit d'ajouter ceci à l'endroit où vous souhaitez que le sous-contenu soit inclus :

<?php includeContainer('alias_du_conteneur_a_inclure'); ?>

Ajouter de contenu dynamique dans une page

L'une des caractéristiques les plus intéressantes de Dolibarr CMS est que vous pouvez inclure du contenu dynamique en ajoutant du code PHP, n'importe où sur votre site web. Seules les personnes autorisées le font car elles ont besoin de la permission "Ajouter du contenu dynamique" pour pouvoir le faire. L'ajout de contenu dynamique est aussi simple que le développement en PHP. Il suffit d'ajouter les balises <?php / ?>. Vous pouvez utiliser, dans votre code dynamique, n'importe laquelle des variables globales prédéfinies suivantes (elles sont déjà initialisées et renseignées) :

$conf, $user, $db, $mysoc, $website, $websitepage, $weblangs, $pagelangs

Obtenez les propriétés de votre entreprise

Voici un exemple de contenu dynamique pour obtenir le nom de votre entreprise :

<?php echo $mysoc->name; ?>

Accéder aux propriétés de la page web

C'est un autre exemple de contenu dynamique permettant d'obtenir des métadonnées d'un conteneur/page :

__(Title)__ : <?php echo $websitepage->title; ?><br>
__(Description)__ : <?php echo $websitepage->description; ?><br>
__(Keywords)__ : <?php echo $websitepage->keywords; ?><br>
__(DateCreation)__ : <?php echo dol_print_date($websitepage->date_creation, 'dayhour', $weblangs); ?><br>

Latest Blog post

This is an example of a section to show the list of latest 5 active articles (container with type "blogpost"), in english, that contains the keyword "mykeyword".

 <!-- Blog list -->
<section id="sectionnews" contenteditable="true" class="main section-50 section-md-50 section-md-bottom-50">
    <h2>Latest Blog posts</h2>
            <div class="center">
            <?php 
            $keyword = 'mykeyword';
            $weblangs->loadLangs(array("main"));
            $arrayofblogs = $websitepage->fetchAll($website->id, 'DESC', 'date_creation', 5, 0, array('type_container'=>'blogpost', 'keywords'=>$keyword, 'status'=>'1', 'lang'=>'en'));
            if (is_numeric($arrayofblogs) && $arrayofblogs < 0)
            {
                print '<div class="error">'.$weblangs->trans($websitepage->error).'</div>';
            }
            elseif (is_array($arrayofblogs) && ! empty($arrayofblogs))
            {
                $fuser = new User($db);
                foreach($arrayofblogs as $blog)
                {
                    print '<div class="row justify-content-sm-center row-40">';
                    print '<div class="container blog-box centpercent" style="padding: 20px; transition: .3s all ease;">';
                                print '<a href="'.$blog->pageurl.'.php">';
                                print '<div class="post-boxed-img-wrap"><img src="'.($blog->image ? 'viewimage.php?modulepart=medias&file='.$blog->image : 'medias/image/'.$website->ref.'/calendar.svg"').'" alt="" width="120"></div>';
                                print '<div class="post-boxed-caption">';
                                print '<div class="post-boxed-title font-weight-bold">'.$blog->title.'</div>';
                                print '<ul class="list-inline list-inline-dashed text-uppercase">';
                                print '<li>'.dol_print_date($blog->date_creation, 'daytext', 'tzserver', $weblangs).'</li>';
                                $fuser->fetch($blog->fk_user_creat);
                                print '<li><span>by<span> <span class="text-primary">'.($fuser->firstname?$fuser->firstname:$fuser->login).'</span></span></li>';
                                print '</ul>';
                                print '</div>';
                                //includeContainer($blog->pageurl);
                                print '<span class="nohover">'.$blog->description.'</span>';
                                print '</a>';
                    print '</div>';
                    print '</div>';
                }
            }
            else
            {
                    print '<div class="row justify-content-sm-center row-40">';
                    print '<div class="container blog-box centpercent" style="padding: 20px; transition: .3s all ease;">';
                    print $weblangs->trans("NoArticlesFoundForTheKeyword", $keyword);
                    print '</div>';
                    print '</div>';
                
            }
            ?>
            </div>
</section>

Read another remote Dolibarr database

Just create a remote database connection and then, use this one for your SQL requests

global $dbmaster;
$dbmaster = getDoliDBInstance('mysqli', 'myserver', 'userread', 'abcdef', 'databasename', 3306);
$confmaster = new Conf();
if ($dbmaster) $confmaster->setValues($dbmaster);

Note: You can also decide to use the APIs.

Create a custom 404 page

To create a custom 404 page, just create a common empty page with the name "404" and the type "page". Then edit the HTML content of the page with the content of your choice, and add at the end the page

<?php http_response_code(404); ?>

Then you must edit your web server setup to tell to use this page as the 404 page. For example with Apache, add into your virtual host configuration:

ErrorDocument 404 /404.php

Deploy | Publish your website

To make your website live, you can click on the link "Deploy/Text my website". A popup will show you instructions to setup the web server, like Apache, so you can make your website live on the Internet. When a website is lived, it is not necessary to have Dolibarr application live, but the database must still remain started.

Note: It is not possible to have your website and Dolibarr backoffice (that is itself a website tool) using the exactly same domain name. Indeed, it is thanks to the domain name that the web server (like Apache, Nginx, ...) knows where to redirect the request (The Dolibarr Backoffice itself or the websote built by the CMS of Dolibarr). But you can choose the beginning of the name to differentiate them. For example, you can use:


Scripts