<?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>Blog de Thomas ZILLIOX &#187; eZ Publish</title>
	<atom:link href="https://blog.developpez.com/thomas-zilliox/pcategory/web/cms/ez-publish/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/thomas-zilliox</link>
	<description></description>
	<lastBuildDate>Tue, 07 Aug 2012 17:24:03 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Réparer la BDD d&#8217;eZ Publish</title>
		<link>https://blog.developpez.com/thomas-zilliox/p9818/web/reparer_ez_publish</link>
		<comments>https://blog.developpez.com/thomas-zilliox/p9818/web/reparer_ez_publish#comments</comments>
		<pubDate>Fri, 18 Mar 2011 12:00:00 +0000</pubDate>
		<dc:creator><![CDATA[tzilliox]]></dc:creator>
				<category><![CDATA[Base de données]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[eZ Publish]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[J&#8217;ai réussi à mettre eZ Publish dans un état instable. J&#8217;avais quelques objets sans nœuds associés, ce qui provoque des comportements bizarres. J&#8217;avais alors corrigé ma BDD à la main. Mais suite à la rédaction de cet article, Alexandre SEBBANE m&#8217;a fait remarqué la présence du script bin/php/flatten.php. Ce script a pour but de supprimer de la BDD les informations non utilisées. Il peut s&#8217;agir des contentobject, contentclass, workflow, role ou de tout. Pour nettoyer [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>J&rsquo;ai réussi à mettre eZ Publish dans un état instable.<br />
J&rsquo;avais quelques objets sans nœuds associés, ce qui provoque des comportements bizarres.<br />
</p>
<p>J&rsquo;avais alors corrigé ma BDD à la main. Mais suite à la rédaction de cet article, <a href="http://twitter.com/#!/alexsebbane">Alexandre SEBBANE</a> m&rsquo;a fait remarqué la présence du script <strong>bin/php/flatten.php</strong>.<br />
Ce script a pour but de supprimer de la BDD les informations non utilisées. Il peut s&rsquo;agir des contentobject, contentclass, workflow, role ou de tout.</p>
<p>Pour nettoyer les objets sans nœuds associés, il faudrait essayer la ligne de commande ci-dessous.<br />
Par contre, vous allez supprimer toutes les anciennes versions des objets publiés et les brouillons encore non-publiés :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">bin/php/flatten.php -s admin contentobject</div></div>
<p></p>
<p>Si ça ne marche pas, vous pouvez toujours faire comme moi. Exécutez plusieurs fois la commande SQL ci-dessous pour supprimer les nœuds sans parent :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">DELETE FROM ezcontentobject_tree WHERE parent_node_id NOT IN <br />
&nbsp; &nbsp; ( SELECT * FROM <br />
&nbsp; &nbsp; &nbsp; &nbsp; (SELECT node_id FROM ezcontentobject_tree)<br />
&nbsp; &nbsp; tmp );</div></div>
<p>Puis exécutez les commandes SQL ci-dessous pour supprimer les objets qui n&rsquo;ont pas de nœuds associés :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">DELETE FROM ezcontentobject_attribute WHERE contentobject_id NOT IN <br />
&nbsp; &nbsp; (SELECT contentobject_id FROM ezcontentobject_tree);<br />
DELETE FROM ezcontentobject_version WHERE contentobject_id NOT IN <br />
&nbsp; &nbsp; (SELECT contentobject_id FROM ezcontentobject_tree);<br />
DELETE FROM ezcontentobject_name WHERE contentobject_id NOT IN <br />
&nbsp; &nbsp; (SELECT contentobject_id FROM ezcontentobject_tree);<br />
DELETE FROM ezcobj_state_link WHERE contentobject_id NOT IN <br />
&nbsp; &nbsp; (SELECT contentobject_id FROM ezcontentobject_tree);<br />
DELETE FROM ezcontentobject WHERE id NOT IN <br />
&nbsp; &nbsp; (SELECT contentobject_id FROM ezcontentobject_tree);<br />
DELETE FROM eznode_assignment WHERE contentobject_id NOT IN <br />
&nbsp; &nbsp; (SELECT contentobject_id FROM ezcontentobject_tree);<br />
DELETE FROM ezcontentobject_link WHERE from_contentobject_id NOT IN <br />
&nbsp; &nbsp; (SELECT contentobject_id FROM ezcontentobject_tree);<br />
DELETE FROM ezcontentobject_link WHERE to_contentobject_id NOT IN <br />
&nbsp; &nbsp; (SELECT contentobject_id FROM ezcontentobject_tree);<br />
DELETE FROM ezcontentobject_trash WHERE contentobject_id NOT IN <br />
&nbsp; &nbsp; (SELECT contentobject_id FROM ezcontentobject_tree);</div></div>
<p>Ce n&rsquo;est pas une solution propre, mais ça peut dépanner.<br />
</p>
<p>Pour éviter ce genre de soucis, prennez l&rsquo;habitude de faire <a href="http://blog.developpez.com/thomas-zilliox/p10151/web/sql/faire-un-dump-mysql/">des sauvegarder régulières de vos BDD</a> <img src="https://blog.developpez.com/thomas-zilliox/wp-includes/images/smilies/icon_wink.gif" alt=";)" class="wp-smiley" /></p>
<p>En espérant que ça puisse vous aider,<br />
Thomas.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Bookmarklet de mise en forme des traces de debug sous eZ Publish</title>
		<link>https://blog.developpez.com/thomas-zilliox/p10213/web/bookmarklet_debug_ezpublish</link>
		<comments>https://blog.developpez.com/thomas-zilliox/p10213/web/bookmarklet_debug_ezpublish#comments</comments>
		<pubDate>Mon, 22 Aug 2011 20:00:00 +0000</pubDate>
		<dc:creator><![CDATA[tzilliox]]></dc:creator>
				<category><![CDATA[Bookmarklet]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[eZ Publish]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Sous eZ Publish, on peut afficher des traces de debug directement en front-office. Dans cet article je vous présente un petit Bookmarklet que j&#8217;ai fait pour améliorer leur rendu. Pour installer ce Bookmarklet, faîtes glisser ce lien dans votre barre de favoris : eZ Filter Debug Pour activer ce Bookmarklet, cliquez dessus lorsque vous êtes sur une page générée par eZ Publish avec les traces de debug activée Vous pouvez lire cette article, si vous [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Sous eZ Publish, on peut afficher des traces de debug directement en front-office.<br />
Dans cet article je vous présente un petit Bookmarklet que j&rsquo;ai fait pour améliorer leur rendu.</p>
<ul>
<li>Pour installer ce Bookmarklet, faîtes glisser ce lien dans votre barre de favoris : <a href="javascript:var%20e=document.createElement('script');e.setAttribute('language','javascript');e.setAttribute('src','http://zilliox.me/resource/bookmarklet/ezpublish-filter-debug.js');document.body.appendChild(e);void(0);">eZ Filter Debug</a></li>
<li>Pour activer ce Bookmarklet, cliquez dessus lorsque vous êtes sur une page générée par eZ Publish avec les traces de debug activée</li>
<li>Vous pouvez lire cette article, si vous voulez en savoir plus sur <a href="http://blog.developpez.com/thomas-zilliox/p10159/web/javascript/bookmarklet/javascript-et-bookmarklet/">comment faire un Bookmarklet</a></li>
</ul>
<p>
Le Bookmarklet &laquo;&nbsp;eZ Filter Debug&nbsp;&raquo; se résume en 3 fonctionnalités qui peuvent vous intéresser :</p>
<p>
<strong>1. Chargement de la feuille de style debug.css</strong></p>
<p>Pour mettre en forme les traces de debug, il faut charger la feuille de style debug.css.<br />
Mais on n&rsquo;a pas forcément envie de la charger tout le temps, surtout en production.<br />
C&rsquo;était l&rsquo;idée de départ : ce Bookmarklet charge à la volée la feuille de style de Debug.</p>
<p>
<strong>2. Afficher les traces de debug à la demande</strong></p>
<p>La deuxième idée est de pouvoir cacher les traces de debug par défaut.<br />
Pour cela, il suffit de rajouter dans votre feuille CSS la ligne suivante :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">#debug {display: none;}</div></div>
<p>Lorsque vous activerez le Bookmarklet, les traces de Debug s&rsquo;afficheront, et vous serez redirigé vers elles.</p>
<p>Ceci n&rsquo;est pas forcément utile, car eZ Publish vous permet déjà de n&rsquo;afficher les traces de Debug que pour une certaine liste d&rsquo;IP.<br />
Mais ça peut être pratique dans certains cas : IP dynamique, client interne, site mobile, etc.</p>
<p>
<strong>3. Permettre de filtrer les traces de debug</strong></p>
<p>Les traces de Debug affichent également les traces de Notice, Timing, Warning et Error.<br />
Pas toujours facile de s&rsquo;y retrouver en un coup d’oeil.<br />
Du coup le Bookmarklet &laquo;&nbsp;eZ Filter Debug&nbsp;&raquo; vous propose également une option de filtrage :</p>
<p><img src="http://zilliox.me/resource/bookmarklet/bookmarklet_ezpublish_filtrage.png" alt="Illustration du filtrage des traces de debug sous eZ Publish" title="Démonstration du filtrage des traces de debug sous eZ Publish" /></p>
<p>
Note 1 : ce Bookmarklet a été testé sous eZ Publish 4.3 &#8211; 4.5.<br />
Note 2 : Le code du Bookmarklet est diponible sur <a href="https://github.com/Open-Wide/eZ-Filter-Debug">GitHub</a>.<br />
N&rsquo;hésitez pas en me faire des remarques, soit par commentaire, soit par le <a href="http://zilliox.me/thomas/contact.htm">formulaire de contact de mon site</a>.</p>
<p>En espérant que ça puisse vous être utile,<br />
Thomas.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Traduction avec paramètres sous eZ Publish</title>
		<link>https://blog.developpez.com/thomas-zilliox/p9671/web/traduction_parametres_ezpublish</link>
		<comments>https://blog.developpez.com/thomas-zilliox/p9671/web/traduction_parametres_ezpublish#comments</comments>
		<pubDate>Thu, 18 Aug 2011 20:00:00 +0000</pubDate>
		<dc:creator><![CDATA[tzilliox]]></dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[eZ Publish]]></category>
		<category><![CDATA[Traduction]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Une petite astuce pour les traductions sous eZ Publish, on peut utiliser des paramètres. Par exemple, on est pas obligé de couper la traduction de &#171;&#160;Plus que 3 exemplaires.&#160;&#187; si la valeur 3 est dynamique. Vous pouvez utiliser dans votre template le code ci-dessous : {&#34;Only %quantity left in stock.&#34;&#124;i18n('shop', , hash('%quantity', $product.stock))} Et utiliser dans votre fichier de traduction, le code ci-dessous : &#38;lt;!DOCTYPE TS&#38;gt; &#38;lt;TS&#38;gt; &#38;lt;context&#38;gt; &#160; &#160; &#38;lt;name&#38;gt;shop&#38;lt;/name&#38;gt; &#160; &#160; &#38;lt;message&#38;gt; &#160; [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Une petite astuce pour les traductions sous eZ Publish, on peut utiliser des paramètres.<br />
Par exemple, on est pas obligé de couper la traduction de &laquo;&nbsp;Plus que 3 exemplaires.&nbsp;&raquo; si la valeur 3 est dynamique.</p>
<p>Vous pouvez utiliser dans votre template le code ci-dessous :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">{&quot;Only %quantity left in stock.&quot;|i18n('shop', , hash('%quantity', $product.stock))}</div></div>
<p>Et utiliser dans votre fichier de traduction, le code ci-dessous :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&amp;lt;!DOCTYPE TS&amp;gt;<br />
&amp;lt;TS&amp;gt;<br />
&amp;lt;context&amp;gt;<br />
&nbsp; &nbsp; &amp;lt;name&amp;gt;shop&amp;lt;/name&amp;gt;<br />
&nbsp; &nbsp; &amp;lt;message&amp;gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &amp;lt;source&amp;gt;Only %quantity left in stock.&amp;lt;/source&amp;gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &amp;lt;translation&amp;gt;Plus que %quantity exemplaires.&amp;lt;/translation&amp;gt;<br />
&nbsp; &nbsp; &amp;lt;/message&amp;gt;<br />
&amp;lt;/context&amp;gt;<br />
&amp;lt;/TS&amp;gt;</div></div>
<p>En espérant que ça puisse vous aider,<br />
Thomas.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Récupérer les view parameters dans une vue</title>
		<link>https://blog.developpez.com/thomas-zilliox/p9686/web/recuperer_view_parameters_dans_vue</link>
		<comments>https://blog.developpez.com/thomas-zilliox/p9686/web/recuperer_view_parameters_dans_vue#comments</comments>
		<pubDate>Tue, 16 Aug 2011 20:00:00 +0000</pubDate>
		<dc:creator><![CDATA[tzilliox]]></dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[eZ Publish]]></category>
		<category><![CDATA[Modules et vues]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Dans une template &#171;&#160;classique&#160;&#187;, on a accès à la variable $view_parameters. Celle-ci contient les valeurs des paramètres personnalisés passés dans l&#8217;url. Par exemple pour l&#8217;url suivante : http://www.example.com/my/url/alias/(couleur)/vert/(prix)/34 On pourra accéder aux paramètres &#171;&#160;couleur&#160;&#187; et &#171;&#160;prix&#160;&#187; à l&#8217;aide de la variable $view_parameters : La couleur est : {$view_parameters.couleur} Le prix est : {$view_parameters.prix} Par contre, vous n&#8217;avez pas accès à $view_parameters dans une vue d&#8217;un module. Mais on peut quand même les récupérer à l&#8217;aide [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Dans une template &laquo;&nbsp;classique&nbsp;&raquo;, on a accès à la variable $view_parameters.<br />
Celle-ci contient les valeurs des paramètres personnalisés passés dans l&rsquo;url.<br />
Par exemple pour l&rsquo;url suivante :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">http://www.example.com/my/url/alias/(couleur)/vert/(prix)/34</div></div>
<p>On pourra accéder aux paramètres &laquo;&nbsp;couleur&nbsp;&raquo; et &laquo;&nbsp;prix&nbsp;&raquo; à l&rsquo;aide de la variable $view_parameters :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">La couleur est : {$view_parameters.couleur}<br />
Le prix est : {$view_parameters.prix}</div></div>
<p>
Par contre, vous n&rsquo;avez pas accès à $view_parameters dans une vue d&rsquo;un module.<br />
Mais on peut quand même les récupérer à l&rsquo;aide du code suivant :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$uri = eZURI::instance( eZSys::requestURI() );<br />
$viewParameters = $uri-&amp;gt;UserParameters();</div></div>
<p>On peut ensuite facilement les passer à une template :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;span style=&quot;color:#777;&quot;&gt;// Récupérer les view_parameters&lt;/span&gt;<br />
$uri = eZURI::instance( eZSys::requestURI() );<br />
$viewParameters = $uri-&amp;gt;UserParameters();<br />
<br />
&lt;span style=&quot;color:#777;&quot;&gt;// Instancier la template&lt;/span&gt;<br />
$tpl = templateInit();<br />
$tpl-&amp;gt;setVariable( 'view_parameters', $viewParameters );<br />
<br />
&lt;span style=&quot;color:#777;&quot;&gt;// Renvoyer le résultat de la vue&lt;/span&gt;<br />
$Result = array();<br />
$Result['content'] = $tpl-&amp;gt;fetch( &quot;design:&amp;lt;ma/template.tpl&amp;gt;&quot; );</div></div>
<p>En espérant que ça puisse vous aider,<br />
Thomas.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Désactiver un module ou une vue dans eZ Publish</title>
		<link>https://blog.developpez.com/thomas-zilliox/p9926/web/desactiver_un_module_de_ez_publish</link>
		<comments>https://blog.developpez.com/thomas-zilliox/p9926/web/desactiver_un_module_de_ez_publish#comments</comments>
		<pubDate>Tue, 26 Apr 2011 12:00:00 +0000</pubDate>
		<dc:creator><![CDATA[tzilliox]]></dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[eZ Publish]]></category>
		<category><![CDATA[Modules et vues]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Voici un court tutoriel pour désactiver un module ou une vue dans eZ Publish. Ajouter dans le site.ini.append.php de votre siteaccess les lignes ci-dessous : [SiteAccessRules] Rules[] Rules[]=access;enable Rules[]=moduleall Rules[]=access;disable Rules[]=module;ezinfo Rules[]=module;user/register Ces lignes d&#8217;exemples permettent de désactiver le module &#171;&#160;ezinfo&#160;&#187; et la vue &#171;&#160;user/register&#160;&#187; pour un siteaccess donné. En espérant que ça puisse vous aider, Thomas.]]></description>
				<content:encoded><![CDATA[<p>Voici un court tutoriel pour désactiver un module ou une vue dans eZ Publish.</p>
<p>Ajouter dans le site.ini.append.php de votre siteaccess les lignes ci-dessous :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">[SiteAccessRules] <br />
Rules[]<br />
Rules[]=access;enable<br />
Rules[]=moduleall<br />
Rules[]=access;disable<br />
Rules[]=module;ezinfo<br />
Rules[]=module;user/register</div></div>
<p>Ces lignes d&rsquo;exemples permettent de désactiver le module &laquo;&nbsp;ezinfo&nbsp;&raquo; et la vue &laquo;&nbsp;user/register&nbsp;&raquo; pour un siteaccess donné.</p>
<p>En espérant que ça puisse vous aider,<br />
Thomas.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Récupérer le résultat d&#8217;une vue de module eZ Publish</title>
		<link>https://blog.developpez.com/thomas-zilliox/p9839/web/executer_une_vue_ez_publish</link>
		<comments>https://blog.developpez.com/thomas-zilliox/p9839/web/executer_une_vue_ez_publish#comments</comments>
		<pubDate>Mon, 28 Mar 2011 12:00:00 +0000</pubDate>
		<dc:creator><![CDATA[tzilliox]]></dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[eZ Publish]]></category>
		<category><![CDATA[Modules et vues]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Il peut être pratique de réutiliser le code d&#8217;une vue de module eZ Publish à partir d&#8217;une autre page. Par exemple, pour ne pas dupliquer le code entre les requêtes directe et les requêtes AJAX. Vous pouvez utiliser le code ci-dessous pour récupérer le résultat de la vue &#171;&#160;user/login&#160;&#187; : $module = eZModule::findModule( &#34;user&#34;); $return = $module-&#38;gt;run(&#34;login&#34;); $content = $return['content'] En espérant que ça puisse vous aider, Thomas.]]></description>
				<content:encoded><![CDATA[<p>Il peut être pratique de réutiliser le code d&rsquo;une vue de module eZ Publish à partir d&rsquo;une autre page.<br />
Par exemple, pour ne pas dupliquer le code entre les requêtes directe et les requêtes AJAX.</p>
<p>Vous pouvez utiliser le code ci-dessous pour récupérer le résultat de la vue &laquo;&nbsp;user/login&nbsp;&raquo; :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$module = eZModule::findModule( &quot;user&quot;);<br />
$return = $module-&amp;gt;run(&quot;login&quot;);<br />
$content = $return['content']</div></div>
<p>En espérant que ça puisse vous aider,<br />
Thomas.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Le français comme langue de référence sur un site multilingue eZ Publish</title>
		<link>https://blog.developpez.com/thomas-zilliox/p9797/web/fichier_de_traduction_ez_publish_et_acce</link>
		<comments>https://blog.developpez.com/thomas-zilliox/p9797/web/fichier_de_traduction_ez_publish_et_acce#comments</comments>
		<pubDate>Thu, 28 Jul 2011 19:00:00 +0000</pubDate>
		<dc:creator><![CDATA[tzilliox]]></dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[eZ Publish]]></category>
		<category><![CDATA[Traduction]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[eZ Publish dispose d&#8217;un moteur i18n ou d&#8217;internationalisation. 1. Presentation On peut l&#8217;utiliser dans les templates à l&#8217;aide de l&#8217;opérateur i18n() : {$string&#124;i18n($context)} {'The results'&#124;i18n('search')} Dans le ficher translations/fre-FR/translation.ts, on peut lui indiquer les valeurs en français : &#38;lt;!DOCTYPE TS&#38;gt; &#38;lt;TS&#38;gt; &#38;lt;context&#38;gt; &#160; &#160; &#38;lt;name&#38;gt;search&#38;lt;/name&#38;gt; &#160; &#160; &#38;lt;message&#38;gt; &#160; &#160; &#160; &#160; &#38;lt;source&#38;gt;The results&#38;lt;/source&#38;gt; &#160; &#160; &#160; &#160; &#38;lt;translation&#38;gt;Les résultats&#38;lt;/translation&#38;gt; &#160; &#160; &#38;lt;/message&#38;gt; &#38;lt;/context&#38;gt; &#38;lt;/TS&#38;gt; 2. Utiliser des sources en français Dans le sens anglais [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>eZ Publish dispose d&rsquo;un moteur i18n ou d&rsquo;internationalisation.</p>
<p>
<strong>1. Presentation</strong><br />
On peut l&rsquo;utiliser dans les templates à l&rsquo;aide de l&rsquo;opérateur <strong>i18n()</strong> :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">{$string|i18n($context)}<br />
{'The results'|i18n('search')}</div></div>
<p>Dans le ficher <strong>translations/fre-FR/translation.ts</strong>, on peut lui indiquer les valeurs en français :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&amp;lt;!DOCTYPE TS&amp;gt;<br />
&amp;lt;TS&amp;gt;<br />
&amp;lt;context&amp;gt;<br />
&nbsp; &nbsp; &amp;lt;name&amp;gt;search&amp;lt;/name&amp;gt;<br />
&nbsp; &nbsp; &amp;lt;message&amp;gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &amp;lt;source&amp;gt;The results&amp;lt;/source&amp;gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &amp;lt;translation&amp;gt;Les résultats&amp;lt;/translation&amp;gt;<br />
&nbsp; &nbsp; &amp;lt;/message&amp;gt;<br />
&amp;lt;/context&amp;gt;<br />
&amp;lt;/TS&amp;gt;</div></div>
<p>
<strong>2. Utiliser des sources en français</strong><br />
Dans le sens anglais &gt; français, il n&rsquo;y a pas de soucis.<br />
Sauf qu&rsquo;on est pas tous bilingue, donc ça peut être plus pertinent de prendre le français comme référence.</p>
<p>Le problème est que le moteur i18n ne va pas utiliser le fichier de traduction <strong>translations/eng-GB/translation.ts</strong>.<br />
Il doit sûrement supposer que la langue de référence est forcément l&rsquo;anglais.<br />
La petite astuce est d&rsquo;utiliser la langue <strong>eng-GB@euro</strong>.<br />
Donc de mettre ses traducitons dans le fichier <strong>translations/eng-GB@euro/translation.ts</strong>.</p>
<p>
<strong>3. Encodage</strong><br />
Un dernier problème, le moteur ne gère pas naturellement les caractères accentués en tant que source.<br />
Alors que bizarrement, il n&rsquo;y avait pas de problème d&rsquo;encodage pour les traductions dans le sens anglais &gt; français.</p>
<p>Pour que ce code-là fonctionne dans votre template :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">{'Les résultats'|i18n('search')}</div></div>
<p>Il vous faudra encoder les accents dans votre fichier de traduction <strong>translations/eng-GB@euro/translation.ts</strong> :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&amp;lt;!DOCTYPE TS&amp;gt;<br />
&amp;lt;TS&amp;gt;<br />
&amp;lt;context&amp;gt;<br />
&nbsp; &nbsp; &amp;lt;name&amp;gt;search&amp;lt;/name&amp;gt;<br />
&nbsp; &nbsp; &amp;lt;message&amp;gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &amp;lt;source&amp;gt;Les r&amp;amp;#xE9;sultats&amp;lt;/source&amp;gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &amp;lt;translation&amp;gt;The results&amp;lt;/translation&amp;gt;<br />
&nbsp; &nbsp; &amp;lt;/message&amp;gt;<br />
&amp;lt;/context&amp;gt;<br />
&amp;lt;/TS&amp;gt;</div></div>
<p>Dans ce fichier, <strong>&amp;#xE9;</strong> représente le caractère <strong>é</strong>.<br />
<strong>E9</strong> est la valeur numériques hexadécimal du caractère.<br />
Pour connaître les valeurs hexadécimale, il faut utiliser <a href="http://hapax.qc.ca/conversion.fr.html">un convertisseur de caractères</a>.</p>
<p>
<strong>Conclusion</strong><br />
Si tous les membres de votre équipe sont à l&rsquo;aise avec l&rsquo;anglais, il vaut mieux garder l&rsquo;anglais en tant que langue de référence.<br />
Vous garderez des fichiers de traductions plus lisible et maintenable.</p>
<p>En espérant que ça puisse vous aider,<br />
Thomas.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problèmes après avoir supprimé un user eZ Publish</title>
		<link>https://blog.developpez.com/thomas-zilliox/p9796/web/si_on_a_supprime_un_user_ez_publish</link>
		<comments>https://blog.developpez.com/thomas-zilliox/p9796/web/si_on_a_supprime_un_user_ez_publish#comments</comments>
		<pubDate>Fri, 29 Jul 2011 19:00:00 +0000</pubDate>
		<dc:creator><![CDATA[tzilliox]]></dc:creator>
				<category><![CDATA[Base de données]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[eZ Publish]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Pour les versions d&#8217;eZ Publish inférieur à 4.4.1, il fallait éviter de supprimer un utilisateur eZ Publish. Même supprimé, tous les contenus qu&#8217;il a publié lui font encore référence. Ceci pose quelques problèmes dans le Back Office d&#8217;eZ Publish. Par exemple, l&#8217;interface n&#8217;arrive plus à lister les sous-éléments. C&#8217;est pour cela qu&#8217;il valait mieux désactiver un utilisateur que le supprimer. Si c&#8217;est trop tard et qu&#8217;il est supprimé, comme ça m&#8217;est arrivé, on peut réparer [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Pour les versions d&rsquo;eZ Publish inférieur à 4.4.1, il fallait éviter de supprimer un utilisateur eZ Publish.<br />
Même supprimé, tous les contenus qu&rsquo;il a publié lui font encore référence.<br />
Ceci pose quelques problèmes dans le Back Office d&rsquo;eZ Publish. Par exemple, l&rsquo;interface n&rsquo;arrive plus à lister les sous-éléments.<br />
C&rsquo;est pour cela qu&rsquo;il valait mieux désactiver un utilisateur que le supprimer.</p>
<p>Si c&rsquo;est trop tard et qu&rsquo;il est supprimé, comme ça m&rsquo;est arrivé, on peut réparer sa BDD.<br />
On peut le faire à la main, il suffit de réassocier tous les contenus crées par des utilisateurs supprimés.</p>
<p>Voici les requêtes SQL à exécuter :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">UPDATE ezcontentobject SET owner_id=14 WHERE owner_id NOT IN <br />
&nbsp; &nbsp; (SELECT contentobject_id FROM ezuser); <br />
UPDATE ezcontentobject_version SET creator_id=14 WHERE creator_id NOT IN <br />
&nbsp; &nbsp; (SELECT contentobject_id FROM ezuser);</div></div>
<p>Ici, 14 représente l&rsquo;id de votre utilisateur admin.</p>
<p>En espérant que ça puisse vous aider,<br />
Thomas.</p>
<p>Edit: Merci à <a href="http://twitter.com/dpobel">Damien POBEL</a> pour m&rsquo;avoir montré que le bug était désormais corrigé.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Impossible de publier des objets eZ Publish en PHP ?</title>
		<link>https://blog.developpez.com/thomas-zilliox/p9810/web/impossible_de_publier_des_objets_ez_publ</link>
		<comments>https://blog.developpez.com/thomas-zilliox/p9810/web/impossible_de_publier_des_objets_ez_publ#comments</comments>
		<pubDate>Mon, 14 Mar 2011 18:00:00 +0000</pubDate>
		<dc:creator><![CDATA[tzilliox]]></dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[eZ Publish]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Vous écrivez un script PHP pour eZ Publish et vous rencontrez l&#8217;erreur : &#171;&#160;Missing operation definition file for module: content&#160;&#187; C&#8217;est surement que vous avez oublié d&#8217;activer les modules dans la déclaration de votre script : &#60;span style=&#34;color:#777;&#34;&#62;// Initialisation&#60;/span&#62; $script = eZScript::instance( array( &#160; &#160; 'description' =&#62; 'Description of my script', &#160; &#160; 'use-session' =&#62; false, &#160; &#160; &#60;b&#62;'use-modules' =&#62; true&#60;/b&#62;, &#160; &#160; 'use-extensions' =&#62; true, &#160; &#160; 'debug-output' =&#62; true, &#160; &#160; 'debug-message' =&#62; [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Vous écrivez un script PHP pour eZ Publish et vous rencontrez l&rsquo;erreur : &laquo;&nbsp;<i>Missing operation definition file for module: content</i>&nbsp;&raquo;<br />
C&rsquo;est surement que vous avez oublié d&rsquo;activer les modules dans la déclaration de votre script :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;span style=&quot;color:#777;&quot;&gt;// Initialisation&lt;/span&gt;<br />
$script = eZScript::instance( array( <br />
&nbsp; &nbsp; 'description' =&gt; 'Description of my script',<br />
&nbsp; &nbsp; 'use-session' =&gt; false,<br />
&nbsp; &nbsp; &lt;b&gt;'use-modules' =&gt; true&lt;/b&gt;,<br />
&nbsp; &nbsp; 'use-extensions' =&gt; true,<br />
&nbsp; &nbsp; 'debug-output' =&gt; true,<br />
&nbsp; &nbsp; 'debug-message' =&gt; true<br />
) );<br />
$script-&gt;startup();<br />
$script-&gt;initialize();<br />
<br />
&lt;span style=&quot;color:#777;&quot;&gt;// Complete the script here&lt;/span&gt;<br />
<br />
&lt;span style=&quot;color:#777;&quot;&gt;// End&lt;/span&gt;<br />
$script-&gt;shutdown();</div></div>
<p>En espérant que ça puisse vous aider,<br />
Thomas.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Récupérer l&#8217;id d&#8217;une classe de contenu eZ Publish à partir de son identifier</title>
		<link>https://blog.developpez.com/thomas-zilliox/p10133/web/recuperer_id_classe_de_contenu</link>
		<comments>https://blog.developpez.com/thomas-zilliox/p10133/web/recuperer_id_classe_de_contenu#comments</comments>
		<pubDate>Fri, 15 Jul 2011 12:00:00 +0000</pubDate>
		<dc:creator><![CDATA[tzilliox]]></dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[eZ Publish]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Quand on liste les nœuds dans eZ Publish, un peut limiter la recherche à certaines classes de contenus. Le seul problème c&#8217;est qu&#8217;il faut indiquer l&#8217; &#171;&#160;id&#160;&#187; (numéro) des classes et on connaît plus souvent leur &#171;&#160;identifier&#160;&#187; (nom). En PHP on peut facilement passer de l&#8217;un à l&#8217;autre à l&#8217;aide du code suivant : $content_class_id = eZContentClass::classIDByIdentifier($content_class_name); Par contre, je ne connais pas d&#8217;opérateur de template qui permette de faire cette conversion. En espérant que [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Quand on liste les nœuds dans eZ Publish, un peut limiter la recherche à certaines classes de contenus.<br />
Le seul problème c&rsquo;est qu&rsquo;il faut indiquer l&rsquo; &laquo;&nbsp;id&nbsp;&raquo; (numéro) des classes et on connaît plus souvent leur &laquo;&nbsp;identifier&nbsp;&raquo; (nom).</p>
<p>En PHP on peut facilement passer de l&rsquo;un à l&rsquo;autre à l&rsquo;aide du code suivant :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$content_class_id = eZContentClass::classIDByIdentifier($content_class_name);</div></div>
<p>Par contre, je ne connais pas d&rsquo;opérateur de template qui permette de faire cette conversion.</p>
<p>En espérant que ça puisse vous aider,<br />
Thomas.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
