Guide de développement

Transcription

Guide de développement
 Guide de développement
Black Bear CMS
www.bbcms.fr
mars 2012
Copyright 2012 – Olivier Blais
Sommaire
Variables templates ................................................................................................................................................... 3 Script code .................................................................................................................................................................... 5 Classes ............................................................................................................................................................................ 6 Fonctions ....................................................................................................................................................................... 7 Variables d’applications ........................................................................................................................................... 9 Validator jQuery ........................................................................................................................................................ 11 Selectbox ..................................................................................................................................................................... 16 Slideshow .................................................................................................................................................................... 17 Swift mailer ................................................................................................................................................................ 18 PHP Thumb ................................................................................................................................................................. 18 Notes ............................................................................................................................................................................. 19 2
BBCMS – Guide de développement
Variables templates
Initialisation :
%init%
%ref_page%
<?php include('./modules/init.php'); ?>
<?php include('./modules/ref_page.php'); ?>
Entête de page :
%header%
<?php include('./modules/header.php'); ?>
Informations :
%sitename%
%title%
%domain_name%
1
2
3
$application['LocalTitle'] 1
$bbcmsContent->title 2
$application['FullLocalDomain']
3
nom du site web
titre de la page affichée
url du site web ex: www.example.tld
Meta :
%meta_description%
<meta name="description" content="’.
$bbcmsContent->metaDescription.’"/>
%meta_keywords%
<meta name="keywords" content="’.
$bbcmsContent->metaKeywords.’" />
Javascript :
%javascript_1%
%javascript_2%
%javascript_3%
%javascript_4%
%javascript_5%
<?php
<?php
<?php
<?php
<?php
include('./modules/javascript_1.php');
include('./modules/javascript_2.php');
include('./modules/javascript_3.php');
include('./modules/javascript_4.php');
include('./modules/javascript_5.php');
?>
?>
?>
?>
?>
Style CSS :
%style%
<?php include('./modules/style.php'); ?>
Menu horizontal :
%menu%
<?php include('./modules/menu.php'); ?>
Menu vertical :
%sidemenu%
<?php include('./modules/sidemenu.php'); ?>
Fil d’Ariane :
%breadcrumbs%
<?php include('./modules/breadcrumbs.php'); ?>
Affichage des messages d’erreurs :
%flash_message%
<?php echoFlashMessage(); ?>
3
BBCMS – Guide de développement
Contenu :
%content%
%script_code%
<?php include('./modules/content.php'); ?>
trim($bbcmsContent->scriptCode)
Affichage de la liste des news :
%news_list%
<?php include('./modules/news_list.php'); ?>
Newsletter :
%newsletter%
<?php include('./modules/newsletter.php'); ?>
Blob :
%blob_1%
%blob_2%
%blob_3%
%blob_4%
%blob_5%
<?php
<?php
<?php
<?php
<?php
include('./modules/blob_1.php');
include('./modules/blob_2.php');
include('./modules/blob_3.php');
include('./modules/blob_4.php');
include('./modules/blob_5.php');
?>
?>
?>
?>
?>
Pied de page :
%footer%
<?php include('./modules/footer.php'); ?>
Statistiques :
%stats_1%
%stats_2%
4
<?php include('./modules/stats.php'); ?>
$bbcmsContent->stats 4
code de suivi spécifié pour chaque page dans le back-office
4
BBCMS – Guide de développement
Script code
Affichage des actualités :
<?php $newsCat=1; $newsLimit=50; $paging=false;
include('./modules/news_view.php'); ?>
$newsCat
id de la catégorie des news à afficher, si l’id n’est pas spécifié, on affiche toutes
les news, les catégories sont gérées dans le fichier config
$newsLimit
$paging
nombre de news à afficher
activation de la pagination des news
Formulaire de désinscription newsletter :
<?php include('./modules/unsubscribe.php'); ?>
Formulaire de contact :
<?php include('./modules/contact_us.php'); ?>
Affichage du plan du site :
<?php include('./modules/sitemap.php'); ?>
5
BBCMS – Guide de développement
Classes
Classes content :
Méthodes non-statiques :
$bbcmsContent = new BbcmsContent();
Select par nom de page
$bbcmsContent->selectByPagename($pagename);
$bbcmsContent = new BbcmsContent();
$bbcmsContent->SelectById($id);
$bbcmsContent->getUrl();
Retourne l'url complète de la page
$bbcmsContent = new BbcmsContent();
Retourne les éléments pour le fil d'Ariane
$bbcmsContent->SelectById($id);
$bbcmsContent->getBreadcrumbs($url, $separator = "&gt;") 1
1
$url = url du site web, nécessaire pour les liens en absolu dans le cadre de l’url rewriting
Méthodes statiques :
BbcmsContent::countChild($idParent);
BbcmsContent::getMenu($parentId=0);
BbcmsContent::getSmenu($parentId);
BbcmsContent::getParentId($id);
Retourne le nombre de page enfant
Retourne les éléments du 1er niveau du menu
Retourne les éléments du sous-menu
Recherche l'id du parent
Classes news :
Méthodes statiques :
BbcmsNews::getNews($category='',$limit='')
Recherche les x dernières actus
Classes newsletter :
Méthodes statiques :
BbcmsNewsletter::checkEmail($email)
6
BBCMS – Guide de développement
Vérifie si l'internaute est déjà inscrit à la
newsletter
Fonctions
Fonctions communes :
url($echo=true)
Retourne l'adresse du site
$echo
Indique si on fait un echo du résultat
saveFlashMessage($message,$class='')
$message
$class
message à sauvegarder
classe css à attribuer au message
cleanFileName($strIn)
$strIn
Nettoie le nom d'un ficher pour upload
Nom du fichier à nettoyer
cleanString($strIn, $bStrToLower)
$strIn
$bStrToLower
Permet de stocker un message
Nettoie une chaîne de caractères
Chaîne à nettoyer
Indique si strtolower
createComboFromArray($options=array(), $selectedId='', $sort=true,
$emptyOption=true, $exclude='')
Création des options (select box) à partir d'un array
$options
$selectedId
$sort Item
Tableau des options (Id => libellé)
Item sélectionné
Tri du tableau
createRadioFromArray($name='', $options=array(), $checkedId='', $sort=true)
Création des boutons radio à partir d'un array
$name
$options
$checkedId
$sort Item
Name des radios
Tableau des options (Id => libellé)
Item sélectionné
Tri du tableau
printDateTime($dateTime,$showTime=0,$letter=0)
Fonction permettant d'afficher une date SQL
$dateTime
$showTime
$letter
0
1
2
3
4
5
6
:
:
:
:
:
:
:
Date à convertir
Flag d'affichage de l'heure
Flag pour type d'affichage
24/10/2007 [9:23:56]
Mer 24/10/2007 [9:23:56]
Dimanche 30 Décembre
Dimanche 30 Décembre 2007
Décembre 2007
Dim 30 Décembre 2007
Dim 30 Déc 2007
7
BBCMS – Guide de développement
createComboDay($selectedId='')
Création des options (select box) des jours
createComboMonth($selectedId='')
Création des options (select box) des mois
createComboYear($annee, $nbItem, $selectedId='')
Création des options (select box) des années
$selectedId
$annee
$nbItem
Item sélectionné
Année de départ
Nb item à générer
createComboHour($selectedId='')
Création des options (select box) des heures
createComboMinute($selectedId='')
Création des options (select box) des minutes
getIp()
Fonction pour récupérer l'adresse ip
dateSQL($day)
Fonction permettant de convertir une date en
SQL et vice versa
isEmail($email)
Teste si l'email est valide
cutChain ($chain, $length)
Coupe une chaine de caractères selon une
longueur donnée
$chain
$length
La chaine a coupée
Longueur à laquelle on doit couper
Fonctions front-office :
echoFlashMessage()
Affiche le message stocké dans la fonction
saveFlasMessage
getImageToLightbox($content)
Fonction de traitement des images pour être
affiché via lightbox
Fonctions back-office :
formatSize($bytes, $lang = 'fr', $format = '%.2f')
$bytes
$format
$lang
Retourne la taille d'un fichier
Taille en octets
Formatage
Indique la langue des unités de taille
getUploadError($err)
Retourne le message associé au code d'erreur
lors d’un upload de fichier
getAge($date)
Retourne depuis combien de temps s'est
écoulé depuis la date de publication
8
BBCMS – Guide de développement
Variables d’applications
Front-office :
$application['LocalTitle']
Nom du site web
$application['FullLocalDomain']
Adresse du site web
$application['LocalFromMailAddressName']
Nom de l’expéditeur sendmail
$application['LocalFromMailAddress']
Adresse email de l’expéditeur sendmail
$application['FoNavLimit']
Nombre d’éléments affichés par page
$application['FoNavFrames']
Nombre de pages affichées pour la pagination
$application['TestEnvironment']
Indique si le site est en environnement de test
$application['InMaintenance']
Indique si le site est en maintenance
Back-office :
$application['Setlocale']
Informations de localisation
$application['NewsCat']
Catégories des articles
$application['LocalFromMailAdminName']
Nom de l’expéditeur sendmail
$application['LocalFromMailAdmin']
Adresse email de l’expéditeur sendmail
$application['ReportBugMail']
Adresse email de la personne qui reçoit les
rapports de bugs
$application['FilePath']
Dossier des fichiers
$application['FileMaxWeight']
Poids max autorisé pour l’upload des fichiers
$application['ImgPath']
Dossier des images
$application['ImgMaxWeight']
Poids max autorisé pour l’upload des images
$application['WidthPicture']
Largeur maximum autorisée des images
$application['HeightPicture']
Hauteur maximum autorisée des images
$application['WidthThumbs']
Largeur maximum autorisée des miniatures
$application['HeightThumbs']
Hauteur maximum autorisée des miniatures
$application['BoNavLimit']
Nombre d’éléments affichés par page
$application['BoNavFrames']
Nombre de pages affichées pour la pagination
$application['PrestaName']
Nom du prestataire
$application['PrestaFullname']
Nom et prénom
$application['PrestaPhone']
Téléphone
$application['PrestaEmail']
Adresse email
9
BBCMS – Guide de développement
$application['PrestaSkype']
Skype
$application['PrestaRss']
Flux rss
10
BBCMS – Guide de développement
Validator jQuery
Documentation du plugin :
http://docs.jquery.com/Plugins/Validation/Validator
Appel de la librairie dans le fichier javascript.php :
<script type="text/javascript" src="<?php url() ?>/lib/validation/jquery.validate.js"></script>
<script type="text/javascript" src="<?php url() ?>/lib/validation/additional-methods.js"></script> 1
<script type="text/javascript" src="<?php url() ?>/lib/validation/localization/messages_fr.js"></script>
1
Appel des méthodes additionnelles
2
Chargement des fichiers de traduction
2
Validation simple d’un formulaire :
<script>
//<![CDATA[
$(document).ready(function(){
$("#idDuFormulaire").validate();
});
//]]>
</script>
Pour indiquer les champs à contrôler, il suffit d’ajouter une classe à chaque élément input qui doit être
vérifié.
<form name=" idDuFormulaire " id=" idDuFormulaire " method="post" action="">
<p>
<label for="cname">Name</label>
< input id="cname" name="name" class="required" />
</p>
<p>
<label for="cemail">E-Mail</label>
<input id="cemail" name="email" class="required email" />
</p>
<p>
<input class="submit" type="submit" value="Submit"/>
</p>
</form>
Les champs Name et E-Mail sont obligatoires et on contrôle que le format de l’email saisi est correct.
Validation avancé d’un formulaire :
Les méthodes avancées de validation ne peuvent pas être appelées directement par l’intermédiaire des
classes, celles-ci requérant des options à spécifier. Les méthodes doivent être déclarées à l’appel de la
validation du formulaire.
11
BBCMS – Guide de développement
<script>
//<![CDATA[
$(document).ready(function(){
$("#idDuFormulaire").validate({
rules: {
name : {
required: true,
minlength: 4,
maxlength: 20
},
email : {
required: true,
email: true
}
}
});
});
//]]>
</script>
le champ est obligatoire
le nom doit comporter 4 caractères au minimum
le nom ne doit pas dépasser 20 caractères
Validation par ajax :
Le plugin permet d’appeler un fichier par ajax pour la validation d’un champ. Par défaut, le champ
contrôlé est envoyé automatiquement en post. On peut également transmettre des données
complémentaires grâce à l’option data.
<script>
//<![CDATA[
$(document).ready(function(){
$("#idDuFormulaire").validate({
rules: {
name : {
required: true,
remote: {
url: "<?php url() ?>/ajax/fichier.php",
type: "post",
data: {
form: " idDuFormulaire ",
field_idDuChamp: function() {
return $("#field_ idDuChamp ").val();
}
}
}
}
}
});
});
//]]>
</script>
Personnalisation des messages :
Pour chaque champ contrôlé, le plugin affiche un message par défaut en fonction du type de champ
lorsque toutes les conditions ne sont pas remplies. Il est possible de personnaliser ce message et de
l’adapter à chaque champ.
12
BBCMS – Guide de développement
<script>
//<![CDATA[
$(document).ready(function(){
$("#idDuFormulaire").validate({
rules: {
name : {
required: true,
minlength: 4
},
messages : {
required: "<?php echo __("Veuillez saisir votre nom.") ?>",
minlength: "<?php echo __("Le nom doit comporter au moins 4 caractères.") ?>"
},
}
});
});
//]]>
</script>
Méthodes :
required( )
Rend l'élément nécessaire.
http://docs.jquery.com/Plugins/Validation/Methods/required
required( dependency-expression )
Rend l'élément nécessaire en fonction d’une expression.
Exemple dans le cas où un champ est requis si un autre champ est rempli :
<script>
//<![CDATA[
$(document).ready(function(){
$("#idDuFormulaire").validate({
rules: {
name : {
required: function(elt) {
return $("#field_autreChamp").val().length > 0;
}
}
}
});
});
//]]>
</script>
http://docs.jquery.com/Plugins/Validation/Methods/required#dependency-expression
13
BBCMS – Guide de développement
required( dependency-callback )
Rend l'élément nécessaire en fonction du callback.
http://docs.jquery.com/Plugins/Validation/Methods/required#dependency-callback
remote( options )
Requête par ajax.
http://docs.jquery.com/Plugins/Validation/Methods/remote#options
minlength( length )
L’élément requiert une longueur minimum.
http://docs.jquery.com/Plugins/Validation/Methods/minlength#length
maxlength( length )
L’élément ne doit pas dépasser une longueur maximum.
http://docs.jquery.com/Plugins/Validation/Methods/maxlength#length
rangelength( range )
L’élément doit être comprit entre une longueur minimum et maximum.
http://docs.jquery.com/Plugins/Validation/Methods/rangelength#range
min( value )
L’élément requiert une valeur minimum.
http://docs.jquery.com/Plugins/Validation/Methods/min#value
max( value )
L’élément ne doit pas dépasser une valeur maximum.
http://docs.jquery.com/Plugins/Validation/Methods/max#value
range( range )
L’élément doit être comprit dans une plage donnée.
http://docs.jquery.com/Plugins/Validation/Methods/range#range
14
BBCMS – Guide de développement
email( )
L’élément doit être un email.
http://docs.jquery.com/Plugins/Validation/Methods/email
url( )
L’élément doit être une url.
http://docs.jquery.com/Plugins/Validation/Methods/url
date( )
L’élément doit être une date.
http://docs.jquery.com/Plugins/Validation/Methods/date
dateISO( )
L’élément doit être une date ISO.
http://docs.jquery.com/Plugins/Validation/Methods/dateISO
number( )
L’élément doit être un chiffre décimal.
http://docs.jquery.com/Plugins/Validation/Methods/number
digits( )
L’élément doit être un chiffre.
http://docs.jquery.com/Plugins/Validation/Methods/digits
accept( extension )
L’élément accepte seulement les extensions spécifiées.
http://docs.jquery.com/Plugins/Validation/Methods/accept#extension
equalTo( other )
L’élément doit être égal à un autre élément.
http://docs.jquery.com/Plugins/Validation/Methods/equalTo#other
15
BBCMS – Guide de développement
Selectbox
Documentation du plugin :
http://www.bulgaria-web-developers.com/projects/javascript/selectbox/
Appel de la librairie dans le fichier javascript.php :
<script type="text/javascript" src="<?php url() ?>/js/selectbox.js"></script>
Appel de la feuille de style dans le fichier style.php :
<link rel="stylesheet" type="text/css" media="all" href="<?php url() ?>/css/selectbox.css" />
Appel du plugin :
<script>
//<![CDATA[
$(document).ready(function(){
$("#idSelect").selectbox();
});
//]]>
</script>
Implémentation d’un appel ajax sur l’état onchange :
<script>
//<![CDATA[
$(document).ready(function(){
$("#idSelect").selectbox({
onChange: function (val, inst) {
$.ajax({
type: "POST",
data: {champ: val},
url: "<?php url() ?>/ajax/fichier.php",
success: function (data) {
$("#divUpdate").html(data);
$("#idSelect2").selectbox();
}
});
}
});
});
//]]>
</script>
16
BBCMS – Guide de développement
Slideshow
Documentation du plugin :
http://www.slidesjs.com/
Appel de la librairie dans le fichier javascript.php :
<script type="text/javascript" src="<?php url() ?>/js/slides.min.js"></script>
Appel du plugin :
<script>
//<![CDATA[
$(document).ready(function(){
$("#slides").slides();
});
//]]>
</script>
CSS :
<style type="text/css" media="screen">
.slides_container {
width:470px;
height:170px;
}
.slides_container div {
width:470px;
height:170px;
display:block;
}
</style>
HTML :
<div id="slides">
<div class="slides_container">
<div>
<h1>Slide 1</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et
dolore magna aliqua.</p>
</div>
<div>
<h1>Slide 2</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et
dolore magna aliqua.</p>
</div>
</div>
</div>
17
BBCMS – Guide de développement
Swift mailer
Documentation de la librairie :
http://www.swiftmailer.org/docs/introduction.html
PHP Thumb
Documentation de la librairie :
http://phpthumb.gxdlabs.com/
https://github.com/masterexploder/PHPThumb/wiki/Basic-Usage
18
BBCMS – Guide de développement
Notes
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
19
BBCMS – Guide de développement
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
20
BBCMS – Guide de développement