% Template GRASS newsletter - Article
% Language: Latex
%

\title{Tikiwiki un GeoCMS}
\author{par Franck Martin, traduit par Marie Silvestre}

\maketitle

\section{Vue d'ensemble}
\label{sec:overview}

Vous avez peut-�tre entendu parl� de Content Management Systems (CMS) ou Syst�mes de Gestion de Contenus (SGC), il s'agit d'applications web qui permettent de partager du contenu via internet. Le concept a �volu� en m�langeant les wikis avec les sites internet bas�s sur un forum. Un wiki \footnote{D�finition d'un wiki : \url{http://en.wikipedia.org/wiki/Wiki}} est un site internet permettant la cr�ation rapide de pages utilisant un langage simple de formatage. Les liens vers les nouvelles pages sont cr��s en premier puis les pages elles-m�mes. A partir de l�, des forums, des galeries d'images et des blogs ont �t� ajout�s. Tikiwiki \footnote{Site internet de Tikiwiki: \url{http://tikiwiki.org}} a �t� cr�� comme un CMS int�gr� d�s le d�but, l'approche est plus robuste, et permet � toutes les fonctionnalit�s d'interagir entre elles. Dans Tikiwiki, vous avez un wiki, une galerie d'images, une galerie de fichiers, des blogs, des forums, des articles, des trackers et bien d'autres choses encore, le tout li� via un syst�me de gestion des utilisateurs et des groupes pour d�finir les permissions sur les objets. Tikiwiki ne d�pend pas d'un format de base de donn�es sp�cifique, utilisant \textit{PHP ADODB}\footnote{le projet PHP ADODB : \url{http://adodb.sourceforge.net/}} et \textit{Smarty}\footnote{moteur de template Smarty : \url{http://smarty.php.net/}}, un moteur de template pour PHP.  Il est alors facile de personnaliser l'apparence et le ressenti de Tikiwiki de fa�on � ce que votre site internet ne ressemble pas au site Tikiwiki par d�faut.


\subsection{Qu'est-ce que Tikiwiki exactement ?}

Tikiwiki est un des premiers CMS d�velopp�s, il est hautement configurable mais souffre d'un code de base long et d'un manque de module. Cependant ce d�savantage est aussi un avantage si vous voulez d�ployer toutes les fonctionnalit�s dans un CMS car elles sont directement int�gr�es plut�t que dans des modules ind�pendants. Tikiwiki peut �galement �tre �tendu via \textit{mods}, un syst�me de plug-in qui permet d'�tendre les fonctions. J'ai choisi Tikiwiki comme CMS parce qu'il a �t� mis au rang de projet du mois sur Sourceforge et �galement parce que la communaut� de d�veloppeurs est tr�s ouverte. Il a �t� tr�s facile d'ajouter du code au code de base. C'est important lorsque vous commencez � contribuer � un projet.

Tikiwiki a un syst�me de s�curit� �tendu et les d�veloppements actuels se focalisent sur l'impl�mentation d'\textit{AJAX} dans le code 
pour le rendre plus efficace. L'autre point important de Tikiwiki est l'internationalisation. Il y a plusieurs langues pour l'interface et 
il est ais� d'ajouter votre propre langue avec l'�quivalent php de \textit{gettext}. Aussi, Tikiwiki supporte l'encodage en UTF8 des caract�res et les �critures de droite � gauche. Vous pouvez aussi bien m�langer plusieurs langues dans la m�me page que faire une traduction int�grale des pages du wiki. Enfin, Tikiwiki est hautement personnalisable via le  \textit{CSS} et les templates \textit{Smarty}.\\


\begin{figure}[tbp]
   \centering
   %name of your graphic, without the path AND in EPS format:
   \includegraphics[width=0.95\columnwidth]{integration/martin/tikiwiki1}
   %caption of the figure
   \caption{Une carte ind�pendante dans Tikiwiki.}
   %label of the figure, which has to correspond to \ref{}:
   \label{fig:tikiwiki1}
\end{figure}


\subsection{Un GeoCMS, qu'est-ce que c'est ?}
Depuis le succ�s de Google Maps, les cartes sont devenues une partie importante de tout site internet. Le succ�s de Google Maps est d� 
� la publication de son API, permettant � n'importe quel utilisateur d'ajouter des donn�es ponctuelles � une carte Google, comme la localisation d'un voyage. Les cartes sont disponibles depuis longtemps sur internet, comme avec \textit{Mapquest}, mais elles n'�taient pas personnalisables par le grand public. Un \textit{\textbf{Geo}spatial \textbf{C}ontent \textbf{M}anagement \textbf{S}ystem} (GeoCMS) est un CMS avec des objets g�ographiques et des capacit�s de rendu cartographique. En plus d'avoir sur votre site internet une carte interactive en ligne sur laquelle vous pouvez zoomer, recadrer, interroger les objets, vous avez des objets g�ographiques que vous pouvez repr�senter. Ces cartes peuvent �tre ind�pendantes (voir fig. \ref{fig:tikiwiki1}) ou inclues dans une page du wiki (voir fig. \ref{fig:tikiwiki2}). Par exemple, vous pouvez demander � vos utilisateurs authentifi�s d'ajouter leur localisation et les voir repr�sent�s par un point sur la carte. Vous pouvez cr�er une galerie d'images o� chaque image � une localisation et les voir repr�sent�es par un point sur la carte, pour montrer votre dernier voyage, des monuments importants, des entit�s g�ologiques, etc.

Avec toute couche g�ographique, se pose le probl�me d'en savoir suffisament sur la couche (m�tadonn�es) : qui a cr�� la couche, quand, quelle est la qualit� de la donn�e, dans quel syst�me de projection les objets sont-ils repr�sent�s, etc. Il est important d'avoir ces informations pour �tablir un niveau de qualit� des donn�es. Si vous avez une couche de population et qu'une catastrophe frappe une r�gion sp�cifique, vous devez avoir une certaine qualit� de donn�es pour pr�parer la r�ponse. Lier des couches sur la carte avec une page du wiki est possible dans Tikiwiki. Les m�tadonn�es sont de fait faciles 
� entrer et le sp�cialiste peut d�crire les caract�ristiques int�ressantes repr�sent�es sur la carte.

Tikiwiki fournit �galement un module complet de chargement et traite les couches g�ographiques pour les rassembler sur les cartes via les mapfiles de MapServer. Un historique est maintenu pour chaque mapfile afin de garder une trace des changements et, optionnellement, vous pr�vient de tels changements.\\


\begin{figure}[tbp]
   \centering
   %name of your graphic, without the path AND in EPS format:
   \includegraphics[width=1\columnwidth]{integration/martin/tikiwiki2}
   %caption of the figure
   \caption{Une carte inclue dans une page du wiki.}
   %label of the figure, which has to correspond to \ref{}:
   \label{fig:tikiwiki2}
\end{figure}


\section{Installation et configuration}
La fonctionnalit� de cartographie de Tikiwiki a pu �tre cr��e gr�ce � la publication de l'API MapServer\footnote{Site internet de MapServer : \url{http://mapserver.gis.umn.edu/}} pour PHP. Le moteur de MapServer est appel� dans Tikiwiki pour cr�er des rendus image pour l'interface de Tikiwiki.

Je ne vais pas passer trop de temps sur l'installation et la configuration mais r�sumer rapidement car le sujet de l'article est de vous donner envie de l'installer, donc je me concentrerai sur la description de ses fonctionnalit�s.

L'installation de Tikiwiki est assez lin�aire et la documentation compl�te sur l'installation est disponible en ligne \footnote{Documents d'installation de Tikiwiki : \url{http://doc.tikiwiki.org/}} pour diff�rents syst�mes d'exploitation incluant MS-Windows. Il y a �galement quelques paquets disponibles pour diff�rentes versions de Linux. L'installation de Tikiwiki peut �tre r�sum�e ainsi : 
d�compressage et remplissage d'un formulaire qui dirige Tikiwiki vers une base de donn�es vide et d�j� cr��e. L'installation de l'extension \textit{php-mapscript} du code de MapServer est un peu plus compliqu�e car vous devez compiler \textit{MapServer} avec toutes ses d�pendances et enregistrer l'extension avec PHP. Vous allez �galement devoir cr�er un r�pertoire accessible pour Apache et prot�g� de mani�re ad�quate pour stocker les mapfiles, les couches g�ographiques et les images g�n�r�es. Il y aura �galement quelques paquets disponibles avec quelques exemples de donn�es, notamment pour Mandriva. Pour cette installation sp�cifique, la documentation peut-�tre trouv�e ici : \url{http://doc.tikiwiki.org/tiki-index.php?page=Maps+Install}


\section{Cr�er des cartes}
Tikiwiki utilise le moteur sous-jacent MapsServer, ce qui signifie qu'il utilise le format mapfile. Ce mapfile, avec l'extension \textit{.map}, cr�e un espace de travail web � utiliser dans l'application. Il existe un �diteur de texte dans Tikiwiki pour �diter le mapfile. Il utilise �galement des balises pr�-d�finies pour compl�ter automatiquement certaines parties du mapfile (par exemple une couche template). Il y a plusieurs sections ou objets dans un mapfile.
L'objet g�n�ral est l'objet carte qui commence par MAP et termine par END. A l'int�rieur de cet objet on trouve les objets REFERENCE, LEGEND, WEB, SCALEBAR et QUERYMAP. Ils d�finissent la pr�sentation g�n�rale de la carte g�n�r�e, la carte de situation (REFERENCE), l'�chelle (SCALEBAR), la l�gende (LEGEND) et les objets surlign�s par une requ�te (QUERYMAP). Dans l'objet MAP, vous pouvez ins�rer des objets LAYER (couche). Il y a principalement deux types de LAYERs : raster et vecteur. L'utilisation de la librairie GDAL (prononcer \textit{goodle} en Anglais) pour les raster et OGR (prononcer \textit{ogre} en anglais) 
pour les vecteurs permet d'�crire et de lire beaucoup de formats de fichiers de Syst�me d'Information G�ographiques (SIG). Le format le plus utilis� pour les rasters est le GeoTIFF et les formats shapefiles ou les fichiers MapInfo TAB pour les vecteurs. A l'int�rieur d'un objet LAYER, vous d�finissez un ou plusieurs objets CLASS pour sp�ficifier la couleur et le type d'entit�s dessin�es sur la carte. Vous pouvez �galement ajouter un objet LABEL si vous souhaitez ajouter des �tiquettes aux entit�s. Un mapfile typique peut �tre trouv� sur \url{http://doc.tikiwiki.org/Maps+Mapfile+Tutorial}.


Chaque couche (objet LAYER) pointe sur un fichier SIG qui est g�r� par une interface de gestion des couches vous permettant de charger 
des fichiers SIG � utiliser dans le mapfile dans Tikiwiki.

Tikiwiki tire profit des commentaires et de l'objet METADATA du mapfile. Tikiwiki place un ent�te dans le mapfile qui permet de garder 
une trace des r�visions entre chaque �dition du mapfile, un historique est �galement cr��.


\begin{figure}[tbp]
   \centering
   %name of your graphic, without the path AND in EPS format:
   \includegraphics[width=1\columnwidth]{integration/martin/tikiwiki1}
   %caption of the figure
   \caption{Une table montrant les informations relatives aux objets requ�t�s.}
   %label of the figure, which has to correspond to \ref{}:
   \label{fig:tikiwiki3}
\end{figure}

Le mot cl� WIKI de l'objet METADATA est utilis� pour faire le lien entre une couche et une page du wiki, vous permettant de fournir des
explications sur une couche sp�cifique. Ce lien est cr�� dans le gestionnaire de couches sur l'interface de la carte.
Le mot cl� DOWNLOAD de l'objet METADATA est �galement utilis� pour t�l�charger les fichiers SIG composant la couche. Tikiwiki est donc un outil de de publication de donn�es g�ographiques.

Enfin, le mot cl� VIEW de l'objet METADATA est utilis� pour cr�er des vues pr�d�finies de la carte. Les utilisateurs peuvent donc zoomer sur 
le Pacifique ou sur l'Europe ou sur n'importe quel autre endroit int�ressant.

Le syst�me permet l'inclusion de beaucoup de couches mais Tikiwiki peut lui-m�me cr�er quelques couches sp�cifiques. Par exemple une couche contenant la localisation de tous les utilisateurs enregistr�s qui ont rentr� une localisation valide peut �tre cr��e. De m�me, une galerie d'images peut �tre d�clar�e de type g�ographique et chaque image aura une position. Une couche issue de toutes ces images peut �tre cr��e et ajout�e � n'importe quel mapfile en tant que couche de points sur la carte. Lorsque les utilisateurs interrogent un de ces points, une table contenant les informations � propos de l'image et l'image elle-m�me peuvent �tre affich�es juste en dessous de la carte (voir fig. \ref{fig:tikiwiki3}).

Un plugin wiki a �t� d�velopp�, il inclut n'importe quelle carte dans une page wiki et met en oeuvre quelques fonctionnalit�s basiques telles que le zoom et le d�placement panoramique. A son niveau le plus simple, une image g�n�r�e peut-�tre ins�r�e dans une page web, et donc une page wiki, d�s lors que les param�tres pour g�n�rer l'image de la carte sont pr�sents dans l'URL. La m�thode GET est utilis�e plut�t que POST pour g�n�rer les cartes.\\



\subsection{La nouvelle interface de visualisation}
J'ai travaill� sur l'impl�mentation d'\textit{AJAX} dans l'interface de visualisation standard via la librairie \textit{xajax}\footnote{XAJAX library site: \url{http://www.xajax.org/}}. Je propose �galement une nouvelle interface bas�e sur le code de Ka-Map\footnote{ka-Map site: \url{http://ka-map.maptools.org/}}. J'ai int�gr� ce code dans Tikiwiki et il est fournit en tant que \textit{mods} (module) pour les versions 1.9.x et 1.10.x de Tikiwiki. Alors que la version 1.10.x est encore en d�veloppement, il permet au syst�me de gestion du site d'int�grer la nouvelle interface imm�diatement en t�l�chargeant le \textit{mod}.

Le code de Ka-Map a �t� modifi� pour le rendre portable et une petite librairie identifie les mapfiles compatibles Ka-Map en regardant la pr�sence du mot cl� KAMAP dans la balise METADATA de l'objet WEB. Vous n'avez qu'� sp�cifier le nom de la carte et les diff�rentes �chelles disponibles, par exemple :

\begin{verbatim}
KAMAP ?Pacific,1000000,500000,100000?
\end{verbatim}

Vous pouvez �galement utiliser les mots-cl� standard de Ka-Map tels qu'ils sont d�crits dans la documentation de Ka-Map. Au final le code va identifier le mot-cl� WIKI dans LAYER METADATA et l'afficher � c�t� de la l�gende de la couche. La page wiki appara�t avec un fond semi-transparent par dessus la carte. Cette nouvelle interface a l'apparence et le ressenti de Google Map pour la navigation tout en offrant la possibilit� de personnaliser les jeux de donn�es (voir fig. \ref{fig:tikiwiki4}).

\section{L'avenir est brillant}
Tikiwiki, en tant que GeoCMS, a �t� mis en place dans plusieurs pays\footnote{Pays du Pacifique Sud utilisant GeoCMS: \url{http://www.sopac.org/maps}} et est en train de devenir un succ�s, MapServer PHP MapScript �tant assez stable avec Apache. MapServer est conforme � la norme Web Map Server (WMS) de l'Open Geospatial Consortium (OGC), ce qui signifie que beaucoup de couches peuvent �tre diffus�es via internet � un grand panel de clients cartographiques et permettant une int�gration totale.

Du c�t� du CMS, plusieurs d�veloppements sont envisag�s. Le premier est d'inclure plus de javascript dans l'interface cartographique pour afficher les coordonn�es cartographiques de la position du pointeur en temps r�el, pour mesurer des distances et pour effectuer des zooms � l'aide d'un rectangle de s�lection. D'une mani�re g�n�rale, AJAX pourrait �tre utilis� pour rendre l'interface encore plus ergonomique.

Quelques fonctionnalit�s suppl�mentaires seront axamin�es et d�velopp�es. Par exemple, la possibilit� de localiser g�ographiquement des objets gr�ce � leurs attributs, par exemple : o� est situ� la ville appel�e Suva ? Pour les couches raster et les autres, l'utilisateur pourra afficher dans une fen�tre tous les attributs d'un endroit au passage du pointeur dessus.

Plus d'objets dans Tikiwiki auront une composante g�ographique, comme les galeries de fichiers, les blogs, les articles, etc. Mais la fonctionnalit� la plus int�ressante sera de lier les trackers aux cartes. Cette fonctionnalit� de tracker est en fait un syst�me qui cr�e un formulaire afin d'entrer des donn�es dans la base de donn�es. Pour le moment, les donn�es de tracker sont uniquement sauvegard�es dans la base de donn�es Tikiwiki mais avec l'utilisation de DSN, les trackers pourront �tre enregistr�s dans n'importe quelle base de donn�es, dont Postgresql. Postgresql, par l'interm�diaire de son extention PostGIS\footnote{Site de PostGIS: \url{http://postgis.refractions.net/}} peut stocker des objets
g�ographiques et MapServer peut lire de telles bases Postgresql. Les trackers seront un moyen d'ajouter n'importe quel type d'information g�ographique. Les perspectives sont donc infinies : suivi de v�hicules, informations sur les p�ches, syst�me d'�chantillonnage de sol, etc. L'avenir est donc brillant. Codeurs, r�dacteurs et utilisateurs sont toujours les bienvenus.\\


\begin{figure}[tbp]
   \centering
   %name of your graphic, without the path AND in EPS format:
   \includegraphics[width=1\columnwidth]{integration/martin/tikiwiki4}
   %caption of the figure
   \caption{L'interface Ka-Map.}
   %label of the figure, which has to correspond to \ref{}:
   \label{fig:tikiwiki4}
\end{figure}


\begin{figure}[tbp]
   \centering
   %name of your graphic, without the path AND in EPS format:
   \includegraphics[width=1\columnwidth]{integration/martin/tikiwiki5}
   %caption of the figure
   \caption{Le syst�me de Serveur cartographique � Nauru.}
   %label of the figure, which has to correspond to \ref{}:
   \label{fig:tikiwiki5}
\end{figure}


\address{Franck Martin\\
 \email{franck AT sopac.org}\\
\url{http://www.peachymango.org/tiki-index.php?page=Franck+Martin}\\
\begin{footnotesize}Franck Martin est le principal d�veloppeur des aspects cartographiques dans Tikiwiki. Il travaille et vit � Fidji dans le Pacifique sud 
et a �t� un utilisateur pr�coce de GNU/Linux. Il travaille actuellement � l'installation de GeoCMS dans 14 pays des �les du Pacifique 
(voir fig. \ref{fig:tikiwiki5}). Ce projet est financ� par le Fond Europ�en de D�veloppement.\end{footnotesize}}


%%% Local Variables: 
%%% mode: latex
%%% TeX-master: main_document.tex
%%% End: 

