<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Lodel &#187; durand</title>
	<atom:link href="http://blog.lodel.org/author/durand/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.lodel.org</link>
	<description>Journal de développement de Lodel, logiciel d'édition électronique</description>
	<lastBuildDate>Mon, 03 Oct 2011 15:24:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>Mon premier plugin dans lodel</title>
		<link>http://blog.lodel.org/173</link>
		<comments>http://blog.lodel.org/173#comments</comments>
		<pubDate>Mon, 24 Jan 2011 13:54:27 +0000</pubDate>
		<dc:creator>durand</dc:creator>
				<category><![CDATA[0.9]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://blog.lodel.org/?p=173</guid>
		<description><![CDATA[Nous souhaitons afficher la météo d&#8217;une ville choisie, dans l&#8217;interface administrateur de notre site lodel bacasable. Un plugin est tout à fait adapté pour réaliser cette nouvelle fonctionnalité. Nous l&#8217;appellerons meteo. Pour démarrer Un coup d&#8217;œil dans la documentation lodel : http://www.lodel.org/wiki/index.php/Plugins Premiers pas Les fichiers de base seront situés dans le répertoire  share/plugins/custom/meteo fichier [...]]]></description>
			<content:encoded><![CDATA[<p>Nous souhaitons afficher la météo d&#8217;une ville choisie, dans l&#8217;interface administrateur de notre site lodel <em>bacasable</em>. Un plugin est tout à fait adapté pour réaliser cette nouvelle fonctionnalité. Nous l&#8217;appellerons <strong>meteo</strong>.</p>
<h2>Pour démarrer</h2>
<p>Un coup d&#8217;œil dans la documentation lodel : <a title="Wiki lodel : les plugins" href="http://www.lodel.org/wiki/index.php/Plugins" target="_blank">http://www.lodel.org/wiki/index.php/Plugins</a></p>
<h2>Premiers pas</h2>
<p>Les fichiers de base seront situés dans le répertoire  <em>share/plugins/custom/meteo</em></p>
<ul>
<li>fichier <strong><em>config.xml</em></strong> : au départ, seul le trigger <em>postview</em> est configuré, il permet  d&#8217;intercepter l&#8217;affichage de la page en intégrant l&#8217;ajout de la ligne <em>Météo</em> dans la liste des <em>Outils</em> sur la page d&#8217;administration du site (onglet <strong>Administration</strong>).<br />
NB : nous ajoutons dès à présent le trigger <em>preview</em>, même si nous ne l&#8217;utilisons pas tout de suite (voir le paragraphe <strong>Remarques</strong> ci-dessous)</li>
</ul>
<pre style="padding-left: 30px;">&lt;?xml version="1.0" encoding="utf-8" ?&gt;
&lt;LodelPlugin&gt;
 &lt;title&gt;Meteo&lt;/title&gt;
 &lt;description&gt;Affichage de la météo&lt;/description&gt;
 &lt;sql&gt;0&lt;/sql&gt;
 &lt;hookType&gt;class&lt;/hookType&gt;
 &lt;triggers&gt;preview,postview&lt;/triggers&gt;
 &lt;parameters&gt;
 &lt;/parameters&gt;
&lt;/LodelPlugin&gt;</pre>
<ul>
<li>fichier <strong><em>meteo.php</em></strong> : il contient la définition de la classe <strong>meteo</strong>, elle-même extension de la classe plugins. Pour ajouter la fonctionnalité <strong>Météo</strong> dans la liste des actions possibles, il suffit de modifier, avant l&#8217;affichage de la page, la liste des fonctionnalités disponibles en ajoutant l&#8217;item <em>Météo</em> après l&#8217;item <em>Plugins</em>. Météo pointe sur un lien du type<strong> ?do=_meteo_list</strong>, ce que lodel interprétera comme un appel à la fonction <em>list</em> du plugin <em>meteo</em>.</li>
</ul>
<pre style="padding-left: 30px;">&lt;?php
class meteo extends Plugins
{
public function enableAction(&amp;$context, &amp;$error) {}

public function disableAction(&amp;$context, &amp;$error) {}

public function preview(&amp;$context) {}

public function postview (&amp;$context)
 {
 if(!defined('backoffice-admin') || C::get('do') || C::get('lo')
    || ($context['view']['tpl'] != 'index')) return;
 if(!parent::_checkRights(LEVEL_REDACTOR)) { return; }       
 View::$page = preg_replace('/(Plugins&lt;\/a&gt;&lt;\/li&gt;)/',
    '\\1&lt;li&gt;&lt;a href="./<strong>?do=_meteo_list</strong>"&gt;<strong>Météo</strong>&lt;/a&gt;&lt;/li&gt;', View::$page);
 }

public function listAction (&amp;$context, &amp;$error)
 {
 echo "La météo du jour" ;
 return "_ajax" ;  
 }
}
?&gt;</pre>
<ul>
<li>il faut maintenant activer ce plugins meteo au niveau de l&#8217;installation générale de lodel : le menu<strong> Configuration / Plugins</strong> permet d&#8217;activer le plugin <em>meteo</em> pour tous les sites (ne pas confondre avec <em>installer sur tous les sites</em>). Il faudra ensuite l&#8217;activer au niveau du site lodel <em>bacasable</em> (menu <strong>Administration / Outils / Plugins</strong>).<br />
En rechargeant la page d&#8217;administration du site, nous voyons bien apparaître l&#8217;item <strong>Météo</strong> sous le terme <em>Plugins</em> : un clic et <em>La météo du jour</em> s&#8217;affiche bien dans l&#8217;interface.</li>
</ul>
<p>Le plus dur est fait, il faut maintenant adapter les scripts et permettre l&#8217;affichage personnalisé dans un iframe.</p>
<h2>Mise en forme à l&#8217;aide d&#8217;un template</h2>
<ul>
<li>nous allons associer à ce plugin un template contenant des lignes au format html, il sera situé dans le sous-répertoire <em>tpl</em> du plugin. Appelons-le <strong><em>meteotpl.html</em></strong> (dans <em>share/plugins/custom/meteo/tpl</em>).
<pre>&lt;html&gt;
 &lt;head&gt;
 &lt;CONTENT VERSION="1.0" LANG="fr" CHARSET="utf-8"/&gt;    
 &lt;TITLE&gt;La météo&lt;/TITLE&gt;
 &lt;/head&gt;
 &lt;body&gt;
 &lt;h1&gt;La météo du jour&lt;/h1&gt;
 &lt;/body&gt;
&lt;/html&gt;</pre>
</li>
<li>la méthode <strong>preview</strong> doit être modifiée pour associer ce template <em>meteotpl</em> à la classe <em>meteo</em>
<pre>public function preview (&amp;$context)
{
// vérification que l'on est positionné ni dans l'interface d'administration
// ni dans le template d'affichage de la météo
if(!defined('backoffice-admin') || $context['view']['tpl'] != 'meteotpl') return;
// ajout du fichier de template dans la classe qui gère le contexte    
C::set('view.base_rep.<strong>meteotpl</strong>', '<strong>meteo</strong>');    
}</pre>
</li>
<li>la fonction <em>listAction</em> du script <strong><em>meteo.php</em></strong> doit faire appel à ce template <em>meteotpl</em>
<pre>public function listAction (&amp;$context, &amp;$error)
 {
 View::getView()-&gt;renderCached('<strong>meteotpl</strong>') ;
 return "_ajax" ;  
 }
}</pre>
</li>
<li>vider le cache et recharger la page : le titre est maintenant mis en forme</li>
<li>et maintenant, pour terminer, affichage de l&#8217;url http://france.meteofrance.com/ dans un iframe : il suffit de modifier le contenu de la balise body dans le fichier template <strong><em>meteotpl.html</em></strong>
<pre>&lt;html&gt;</pre>
<pre> &lt;head&gt;</pre>
<pre> &lt;CONTENT VERSION="1.0" LANG="fr" CHARSET="utf-8"/&gt;</pre>
<pre> &lt;TITLE&gt;La météo&lt;/TITLE&gt;</pre>
<pre> &lt;/head&gt;</pre>
<pre> &lt;body&gt;</pre>
<pre> <strong>&lt;iframe name="stats" SRC="http://france.meteofrance.com/" scrolling="yes"
  height="100%" width="100%" FRAMEBORDER="no"&gt;&lt;/iframe&gt;</strong></pre>
<pre> &lt;/body&gt;</pre>
<pre>&lt;/html&gt;</pre>
</li>
</ul>
<h2>Encore plus loin : ajout de paramètres</h2>
<p>Nous souhaitons paramétrer les prévisions en fonction de notre ville de résidence. Tout ceci, uniquement dans l&#8217;interface d&#8217;administration, sans modification des scripts.<br />
Par exemple, pour Marseille, l&#8217;url est de la forme</p>
<p>http://france.meteofrance.com/france/meteo?PREVISIONS_PORTLET.path=previsionsville/130550</p>
<p>Comme nous modifions en profondeur  les caractéristiques du plugin, il faut détruire le plugin dans la table <strong>plugins</strong> du site <em>bacasable</em> et dans la table <strong>mainplugins</strong> de l&#8217;installation générale.</p>
<ul>
<li>modification du fichier <strong><em>config.xml</em></strong> : ajout d&#8217;un paramètre <strong>ville</strong> (par défaut le code correspond à la ville de Marseille)
<pre>&lt;?xml version="1.0" encoding="utf-8" ?&gt;
&lt;LodelPlugin&gt;
 &lt;title&gt;Meteo&lt;/title&gt;
 &lt;description&gt;Affichage de la météo&lt;/description&gt;
 &lt;sql&gt;0&lt;/sql&gt;
 &lt;hookType&gt;class&lt;/hookType&gt;
 &lt;triggers&gt;preview,postview&lt;/triggers&gt;
 &lt;parameters&gt;
<strong> &lt;param name="ville" title="Ville" type="text" defaultValue="130550" allowedValues="" required="true"/&gt;
</strong> &lt;/parameters&gt;
&lt;/LodelPlugin&gt;</pre>
</li>
<li>activation du plugin au niveau de l&#8217;installation générale et au niveau du site <em>bacasable</em></li>
<li>modification de la méthode <em>preview</em> pour récupérer la valeur du paramètre <em>ville</em> : il est stocké dans l&#8217;attribut <em>_config</em> de l&#8217;objet. L&#8217;url est construite en tenant compte de cette valeur, elle est stockée dans le contexte C.
<pre>public function preview (&amp;$context)
{
if(!defined('backoffice-admin') || $context['view']['tpl'] != 'meteotpl') return;
C::set('view.base_rep.meteotpl', 'meteo');    
<strong>$ville = $this-&gt;_config['ville']['value'] ;
C::set('urlmeteo', "http://france.meteofrance.com/france/meteo?PREVISIONS_PORTLET.path=previsionsville/".$ville) ;</strong>
}</pre>
</li>
<li>modification du template pour intégrer la variable <strong>urlmeteo</strong> en faisant appel à la variable lodelscript associée <strong>[#URLMETEO]</strong>
<pre>&lt;html&gt;
 &lt;head&gt;
 &lt;CONTENT VERSION="1.0" LANG="fr" CHARSET="utf-8"/&gt;    
 &lt;TITLE&gt;La météo&lt;/TITLE&gt;
 &lt;/head&gt;
 &lt;body&gt;
 &lt;iframe name="stats" SRC="<strong>[#URLMETEO]</strong>" scrolling="yes" height="100%" width="100%" FRAMEBORDER="no"&gt;&lt;/iframe&gt;
 &lt;/body&gt;
&lt;/html&gt;</pre>
</li>
</ul>
<ul>
<li>exécution !
<ul>
<li>sur la page http://france.meteofrance.com/, nous indiquons la ville qui nous concerne et repérons son identifiant numérique (formulaire <em>Rechercher</em>), par exemple 212310 pour Dijon</li>
<li>dans l&#8217;interface d&#8217;administration du site <em>bacasable</em>, nous sélectionnons le menu <strong>Plugins / Configurer</strong> correspondant au plugin <em>meteo</em> et nous indiquons la valeur <em>212310</em></li>
<li>le lien <em>bacasable/lodel/admin/?do=_meteo_list</em> correspondant à l&#8217;item <em>Météo</em> affiche bien la météo de la ville de Dijon.</li>
</ul>
</li>
</ul>
<h2>Remarques et astuces</h2>
<ul>
<li>activation du plugin uniquement par l&#8217;administrateur lodel</li>
</ul>
<pre style="margin-left: 40px;">public function enableAction(&amp;$context, &amp;$error)
     {
     if(!parent::_checkRights(LEVEL_ADMINLODEL)) { return; }
     }</pre>
<ul>
<li>en cas de modification importante du plugin, ajout de trigger par exemple, il faut le détruire directement dans la table <em>mainplugins</em> du serveur lodel et dans la table <em>plugins</em> du site.</li>
<li>en cas d&#8217;erreur, vider manuellement le cache :<em> CACHE/triggers</em></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.lodel.org/173/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Migration 0.7 &#8211; 0.9 : points pratiques</title>
		<link>http://blog.lodel.org/116</link>
		<comments>http://blog.lodel.org/116#comments</comments>
		<pubDate>Mon, 25 Jan 2010 15:00:47 +0000</pubDate>
		<dc:creator>durand</dc:creator>
				<category><![CDATA[0.9]]></category>
		<category><![CDATA[updates]]></category>
		<category><![CDATA[migration]]></category>

		<guid isPermaLink="false">http://blog.lodel.org/?p=116</guid>
		<description><![CDATA[Hier, nous avons installé Lodel 0.9. Aujourd&#8217;hui, le programme est plus compliqué : migrer des sites en 0.7 vers des sites en 0.9. Toujours avec l&#8217;aide du développeur de Lodel, ce qui accélère grandement les choses. Les structures sont différentes entre la version 0.7 et 0.8 : par exemple, l&#8217;identifiant est unique en 0.8 et [...]]]></description>
			<content:encoded><![CDATA[<p>Hier, nous avons installé Lodel 0.9. Aujourd&#8217;hui, le programme est plus compliqué : migrer des sites en 0.7 vers des sites en 0.9. Toujours avec l&#8217;aide du développeur de Lodel, ce qui accélère grandement les choses.<br />
Les structures sont différentes entre la version 0.7 et 0.8 : par exemple, l&#8217;identifiant est unique en 0.8 et représentent un objet. En 0.7, le français est la langue de base, en 0.8, c&#8217;est l&#8217;anglais. Tout ceci nécessite quelques adaptations, qui seront rendues plus faciles grâce aux scripts de migration fournis, mais il est indispensable de bien connaître le modèle éditorial (ME) de l&#8217;ancienne version et le modèle éditorial pour la nouvelle version : c&#8217;est pourquoi, il est conseillé de faire en amont un travail complet de définition du modèle éditorial pour limiter les adaptations pour chaque site du paquet de sites à migrer. Les évolutions futures du modèle seront ensuite plus facile à mettre en oeuvre. En pratique, il est conseillé de définir un ME propre sur un site vide, de l&#8217;exporter au format XML dans le répertoire définit à l&#8217;installation de lodel et d&#8217;importer ce ME à l&#8217;étape d&#8217;import XML après la migration.</p>
<h2 >Au niveau des données</h2>
<p>Il faut d&#8217;abord effectuer dans l&#8217;interface d&#8217;administration du site à migrer (0.7) un export des données. Ces données sont ensuite importées dans un lodel 0.7 utilisé uniquement pour la migration.<br />
Le script va casser la base de données, il donc indispensable de travailler sur une copie du site en production pour que le site en production reste accessible. Après le passage de ce script, la base peut fonctionner en 0.8. Le script n&#8217;efface pas les données, les tables originelles sont copiées dans des tables nommées nom-table_old.</p>
<h2>Migration</h2>
<p>Tout ce qui est relatif au modèle éditorial porte pour l&#8217;exemple sur celui de Revues.org.</p>
<p>Copier le script <a href="https://sourcesup.cru.fr/scm/viewvc.php/*checkout*/branches/version_0_7-bugfixes-branch/export_to_08.php?root=lodel">https://sourcesup.cru.fr/scm/viewvc.php/*checkout*/branches/version_0_7-bugfixes-branch/export_to_08.php?root=lodel</a> à la racine du site en 0.7 (par exemple dans le répertoire <em>mondomaine/monsite07</em>). Copier également le script <a href="https://sourcesup.cru.fr/scm/viewvc.php/*checkout*/branches/version_0_7-bugfixes-branch/lodel/scripts/07to08.php?root=lodel">https://sourcesup.cru.fr/scm/viewvc.php/*checkout*/branches/version_0_7-bugfixes-branch/lodel/scripts/07to08.php?root=lodel</a> dans le répertoire <em>lodel/scripts</em> (<em>mondomaine/monsite07/lodel/scripts<em>)</em>.</em></p>
<p>Prêt? Alors lancez http://mondomaine/monsite07/export_to_08.php</p>
<p>A priori, il n&#8217;y a pas besoin de modifier les champs g_title et g_name, donc laisser la valeur par défaut. Le troisième champ sert à déplacer les documents annexes et les sources, on les déplacera manuellement dans une étape ultérieure. En résumé, on décoche tout.</p>
<p>La base de données est maintenant prête à être utilisée en 0.9. Il faut donc faire un dump de celle-ci, et l&#8217;importer dans un site en 0.9.</p>
<p>Nous pouvons maintenant effectuer la mise à jour du modèle éditorial via l&#8217;import XML.</p>
<p>Il va falloir indiquer à lodel comment se correspondent les champs entre les deux versions : l&#8217;ancien modèle éditorial est présenté à gauche, le nouveau est à droite.</p>
<p>Si le ME a été transformé par rapport au modèle par défaut, ne pas indiquer de correspondance et laisser le champ vide (dans la colonne nouveau ME), lodel ajoutera le champ.</p>
<p>Les classes du ME correspondent à des tables de la base de données. Chaque champ doit être compris dans un groupe de champs.</p>
<p>En 0.8, la classe <em>documents</em> est transformée en classe <em>textes</em>.</p>
<ul>
<li>étape 1 : mise à jour des groupes de champs</li>
<li>étape 2 : mise à jour des classes. la classe <em>documents</em> n&#8217;a pas d&#8217;équivalent dans le ME et devient <em>textes</em>.</li>
</ul>
<ul>
<li>étape 3 : mise à jour des champs</li>
</ul>
<ul>
<li>étape 4 : conversion des types
<ul>
<li>plan = information</li>
<li>chercheur = individu</li>
<li>volume = rubrique</li>
<li>colloque = rubrique</li>
<li>regroupement = souspartie</li>
<li>docannexe-lienfichier = fichierannexe</li>
<li>docannexe* = lienannexe</li>
<li>breve = billet</li>
<li>presentation = information</li>
<li>regroupement-documentsannexes : pas d&#8217;équivalent</li>
<li>articlevide = article</li>
<li>objetdelarecension : pas d&#8217;équivalent</li>
<li>motcle = motclesfr</li>
<li>periode = chrono</li>
</ul>
</li>
</ul>
<ul>
<li>étape 5 : <br /> Si jamais vous recevez comme nous l&#8217;erreur &#8220;unknown column mask&#8221;, pas de souci, une petite modif de table dans mysql : <em>alter  table  tablefields_oldME  add  mask  text  not  null</em></li>
</ul>
<ul>
<li>étape 6 : on y est presque, il s&#8217;agit de faire la concordance pour les textes simples
<ul>
<li>lien = url</li>
<li>datepubli = date</li>
</ul>
</li>
</ul>
<p>La mise à jour du ME est presque terminée. On peaufine en lançant un dernier script <em><strong>complete.php</strong></em> qui est une compilation des scripts disponibles sur http://www.lodel.org/wiki/index.php/Migration_Lodel_0.7_vers_Lodel_0.8.</p>
<p>Il reste encore à transférer à la main les documents annexes et les fichiers sources (on l&#8217;avait laissé à faire pour plus tard&#8230;) : il faut copier en respectant les permissions sur les répertoires (donc utiliser les options <em>p</em> et <em>r</em> pour la commande <em>cp</em>). Donc, copier le répertoire <em>docannexe</em> de l&#8217;ancien site vers le nouveau site, ainsi que le répertoire <em>lodel/sources</em>. En 0.9, puisque la langue de base est l&#8217;anglais, <em>docannexe</em> contient un sous-répertoire <em>file</em>, ne pas renommer la copie du répertoire <em>fichier</em> du site en 0.7 : les répertoires <em>file</em> et <em>fichier</em> cohabiteront sans problème dans le répertoire <em>docannexe</em> et assureront la continuité dans le nommage des documents annexes.</p>
<h2>Une dernière question sur l&#8217;indexation pour terminer la matinée&#8230;</h2>
<p>Pour activer le moteur de recherche interne, il faut affecter la variable <em>searchEngine</em> à true dans le fichier <em>lodelconfig.php</em> global. Pour autoriser l&#8217;indexation d&#8217;un site, dans l&#8217;interface d&#8217;administration, cliquer sur le lien <em>reconstruire l&#8217;index</em>. Puis, après la création ou la mise à jour d&#8217;une entité, l&#8217;indexation automatique sera lancée .</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lodel.org/116/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installation de Lodel 0.9 : points pratiques</title>
		<link>http://blog.lodel.org/97</link>
		<comments>http://blog.lodel.org/97#comments</comments>
		<pubDate>Tue, 12 Jan 2010 15:31:50 +0000</pubDate>
		<dc:creator>durand</dc:creator>
				<category><![CDATA[0.9]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[lodel 0.9]]></category>

		<guid isPermaLink="false">http://blog.lodel.org/?p=97</guid>
		<description><![CDATA[Tout utilisateur rêve de pouvoir installer un logiciel en étant guidé pas à pas par son développeur : j&#8217;ai eu ce privilège au cours d&#8217;une formation donnée par la Cléo à des membres de l&#8217;EHESS, étape préalable à la migration de leurs sites lodel 0.7 en lodel 0.9 . Voici quelques notes, les explications données [...]]]></description>
			<content:encoded><![CDATA[<p>Tout utilisateur rêve de pouvoir installer un logiciel en étant guidé pas à pas par son développeur : j&#8217;ai eu ce privilège au cours d&#8217;une formation donnée par la Cléo à des membres de l&#8217;EHESS, étape préalable à la migration de leurs sites lodel 0.7 en lodel 0.9 . Voici quelques notes, les explications données sont claires dans le déroulement de l&#8217;installation mais il y a toujours des petits bonus à glaner.</p>
<h2><strong>SourceSup</strong></h2>
<p>Lodel est un logiciel libre disponible sur SourceSup : http://sourcesup.cru.fr/ . Lodel est en bonne position dans les logiciels les plus téléchargés, donc on le trouve facilement à partir de la page d&#8217;accueil.</p>
<p>Il est conseillé de créer un compte pour pouvoir rapporter des problèmes (onglet Tickets / Bugs) et formuler des demandes (onglet Tickets / Feature Requests).</p>
<p>Au passage, s&#8217;abonner à la liste lodel-users@cru.fr (onglet Listes).</p>
<h2><strong>Installation</strong></h2>
<p>Il est conseillé d&#8217;installer à partir d&#8217;une version stable dans sourcesup. On peut aussi télécharger une version de développement (onglet Subversion), il faudra alors ajouter soi-même des liens symboliques sur 3 répertoires :</p>
<pre>* mkdir monlodel
* cd monlodel
* svn  co  http://subversion.cru.fr/lodel/branches/version_0_9-bugfixes-branch/ . (j'oublie souvent le .)
* ln  -s  lodeladmin  lodeladmin-0.9
* ln  -s  share  share-0.9
* ln  -s  lodel  lodel-0.9</pre>
<p>Passer dans l&#8217;interface web pour paramétrer le site global : http://monsite.fr/monlodel/lodeladmin</p>
<ul>
<li>dans les premières étapes, j&#8217;ai noté qu&#8217;il faut sélectionner (comme dans le type d&#8217;installation qui sera faite à l&#8217;EHESS, plusieurs labos), l&#8217;installation multi-sites. Les droits sur les répertoires <em>CACHE</em> et <em>lodeladmin/CACHE</em> doivent être donnés à l&#8217;utilisateur Apache dont le nom dépend du système, en général <em>www-data</em> : <em>chown  www-data  &lt;nom_repertoire&gt;</em><br />
Il n&#8217;y a qu&#8217;un type d&#8217;installation, l&#8217;installation par défaut. Pour avoir une autre possibilité, il aurait fallu placer au préalable, dans le répertoire <em>lodel/install/plateform</em>, un fichier de configuration adapté du fichier par défaut.</li>
<li>base de données : le serveur est <em>localhost</em> en général. La base générale <em>lodel_base</em> devra avoir été créée au préalable par l&#8217;administrateur directement sur le serveur. Pour un serveur dédié, il est inutile de mettre un préfixe aux bases (chez un hébergeur privé, le préfixe permet de ne pas avoir de conflit dans le nom des bases).<br />
Le script d&#8217;installation vérifie ensuite les droits et installe ses propres tables dans lodel_base.</li>
<li>créer un administrateur général du site lodel.</li>
<li>au fil de l&#8217;install :
<ul>
<li>le chemin est détecté automatiquement : ne pas le modifier à priori</li>
<li>pour les droits : ne pas laisser le droit en écriture pour le groupe et ne laisser aucun droit pour &#8220;les autres&#8221;</li>
<li>les fonctions d&#8217;archivages dépendent du serveur : Pclzip livré par défaut fonctionne bien mais est plus lent que zip et unzip. Indiquer en général zip et unzip sans oublier de cocher cette option.</li>
<li>l&#8217;url est l&#8217;endroit où va être accessible lodel, le chemin d&#8217;accès à lodeladmin, mais pas aux sites. Pour avoir un accès par l&#8217;url dans le navigateur, il faudra créer un lien symbolique vers lodeladmin.</li>
<li>l&#8217;extension des scripts dépend de la configuration du serveur web : en général choisir php.</li>
<li>utiliser plutôt des liens symboliques qui faciliteront les mises à jour des scripts lodel lorsqu&#8217;on a beaucoup de sites (une mise à jour dans le répertoire de base plutôt que le répertoire de chaque site).</li>
<li>le répertoire d&#8217;import est utilisé pour stocker les sauvegardes compressées des données et/ou des modèles éditoriaux. Il est conseillé de le créer sur le serveur avant cette étape. Il doit être accessible en lecture/écriture à l&#8217;utilisateur web et se trouver si possible à l&#8217;extérieur de la racine du serveur web pour ne pas être directement accessible dans le navigateur.</li>
</ul>
</li>
<li>le fichier de configuration : il est prêt dans <em>lodeladmin/CACHE</em>. Il faut le copier à la main et le renommer (<em>mv  lodeladmin/CACHE/lodelconfig-cfg.php  lodelconfig.php</em>) et restreindre les droits (<em>chmod  400  lodelconfig.php</em>)</li>
</ul>
<h2>Ajouter un site</h2>
<ul>
<li>utiliser l&#8217;interface lodeladmin : http://monsite.fr/monlodel/lodeladmin pour accéder à l&#8217;action <em>Gérer les sites</em> . Puis au lien <em>Ajouter un site</em> . Notez qu&#8217;en haut à droite est affiché le tableau de bord avec l&#8217;utilisateur connecté.</li>
<li>dans les paramètres du site : le titre est libre, le nom du site web ne doit comporter que des caractères simples, par exemple <em>monsite</em>. Dans le cas d&#8217;une installation multi-sites, ne pas cocher l&#8217;option <em>Installer le site web à la racine du site</em>. L&#8217;url du site est à préciser si le site du labo n&#8217;est pas un sous-site du site global. Par exemple marevue.revues.org (il faut que les modifications aient été faites auparavant au niveau du DNS). Le sous-titre est facultatif.</li>
<li>base de données : copier le code de création de la base, passer sous mysql en ligne de commande et coller le code (attention, il y a deux commandes CREATE et GRANT). Quitter mysql.</li>
<li>créer le répertoire web pour le site : à la racine de lodel, dans le répertoire <em>monlodel</em> (<em>mkdir  monsite</em>) et donner les droits à l&#8217;utilisateur web (<em>chown  www-data  monsite</em>).</li>
<li>création de l&#8217;arborescence lodel pour le site : cliquer sur le bouton <em>Copie des fichiers</em> (&#8220;on sécurisera après&#8230;&#8221;).</li>
<li>importation du modèle éditorial : si on souhaite utiliser un modèle générique pour tous les sites, il faut le copier auparavant dans le répertoire d&#8217;import défini ci-dessus.</li>
<li>sécurisation : lodel doit pouvoir écrire dans les répertoires <em>CACHE</em> <em>docannexe</em> et <em>lodel/sources</em> (documents convertis) . Et sinon : <em>chmod  555  monsite</em></li>
</ul>
<h2>Et enfin</h2>
<ul>
<li>on peut connecter Lodel à un annuaire LDAP, ce n&#8217;est pas fait en natif, à suivre&#8230;</li>
<li>de nouvelles fonctionnalités peuvent être ajoutées avec des plugins</li>
<li>ServOO permet convertir des documents au format DOC, RTF, SXW et de les incorporer dans lodel : les informations sur le serveur servOO peuvent être ajoutées dans la configuration du site ou de manière globale dans le fichier de configuration de lodel <em>lodelconfig.php</em> . Lodel fera appel à l&#8217;un ou à l&#8217;autre selon leur disponibilité.</li>
</ul>
<pre style="padding-left: 60px;">$servoourl="http://servoo1.revues.org";</pre>
<pre style="padding-left: 60px;">$servoousername="user1_servoo";</pre>
<pre style="padding-left: 60px;">$servoopasswd="abcdef";</pre>
<p style="padding-left: 60px;">S&#8217;il y a plusieurs servoo, on recopie ce bloc en incrémentant le nom des variables :</p>
<pre style="padding-left: 60px;">$servoourl2="http://servoo2.revues.org";</pre>
<pre style="padding-left: 60px;">$servoousername2="user2_servoo";</pre>
<pre style="padding-left: 60px;">$servoopasswd2="ab45ef";</pre>
<p style="padding-left: 60px;">
<p style="padding-left: 30px;">L&#8217;installation de Servoo est compliquée : il utiliser Xfvb qui est un simulateur d&#8217;interface graphique et installer vnc. La machine qui héberge doit avoir de bonnes capacités mémoire et un processeur performant.<br />
Pas de mise à jour à faire, simplement des redémarrages fréquents.</p>
<h2>Une architecture de travail idéale : l&#8217;exemple de revues.org</h2>
<p>Nous disposons de trois espaces, sur trois serveurs différents. Les versions (maquettes et lodel) sont gérées sous SVN :</p>
<ul>
<li>espace de développement DEV (fichiers svn de type branche) : modifications principalement sur les maquettes (fichiers css et php des templates)</li>
<li>espace de travail EDT (fichiers svn de type trunk) : espace accessible aux revues avant la mise en production (protection par fichier htaccess)</li>
<li>espace de production PROD (fichiers svn de type tags) : modification des contenus par les revues.</li>
</ul>
<p>Des miroirs sont en place ainsi que des backups pendant la journée et des sauvegardes sur bande pendant la nuit.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.lodel.org/97/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

