<?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>Docs Jmini &#187; hack</title>
	<atom:link href="http://docs.jmini.fr/mot-cle/hack/feed" rel="self" type="application/rss+xml" />
	<link>http://docs.jmini.fr</link>
	<description>docs.jmini.fr</description>
	<lastBuildDate>Thu, 18 Feb 2010 09:47:54 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>[HACK XOOPS] Ordre dans l&#8217;Image Manager</title>
		<link>http://docs.jmini.fr/code/hack-xoops-ordre-image-manager</link>
		<comments>http://docs.jmini.fr/code/hack-xoops-ordre-image-manager#comments</comments>
		<pubDate>Fri, 27 Jul 2007 09:29:04 +0000</pubDate>
		<dc:creator>Jérémie Bresson</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[application web]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[xoops]]></category>

		<guid isPermaLink="false">http://docs.jmini.fr/?p=16</guid>
		<description><![CDATA[Ce Hack pour Xoops (2.0.x), permet de changer l&#8217;ordre d&#8217;affichage dans Image Manager. Comme tous les hacks (modification directe du code d&#8217;une application toute faite), il s&#8217;adresse à un public averti et la modification doit être refaite sur chaque mise à jour.
Par défaut, le manager d&#8217;image utilise le poids assigné à chaque image pour les [...]]]></description>
			<content:encoded><![CDATA[<p>Ce Hack pour Xoops (2.0.x), <strong>permet de changer l&#8217;ordre d&#8217;affichage dans Image Manager</strong>. Comme tous les hacks (modification directe du code d&#8217;une application toute faite), il s&#8217;adresse à un public averti et la modification doit être refaite sur chaque mise à jour.</p>
<hr />Par défaut, le manager d&#8217;image utilise le poids assigné à chaque image pour les classer. Cette fonctionnalité ne convenait pas du tout à la manière dont je me sers du manager. En effet, j&#8217;ajoute une photo pour mon article (ça la télécharge sur le site), et je m&#8217;en sers&#8230; Comme les derniers fichiers se retrouvaient toujours à la fin, cela ajoutait à chaque fois quelques clics avant d&#8217;avoir l&#8217;image en question. Je voulais donc avoir un tri par date d&#8217;upload, avec la plus récente en première.</p>
<div class="markRem"><blockquote>Attention : l&#8217;installation de ce Hack est à vos risques et périls. N&#8217;oubliez pas de le remettre après une mise à jour de xoops.</blockquote></div>
<p>Configuration de test :</p>
<ul>
<li>Xoops 2.0.16</li>
<li>TinyEditor 1.0</li>
</ul>
<h2>Image Manager</h2>
<p>Ma solution est simple :</p>
<p>Il faut ajouter deux lignes pour indiquer le tri désiré au moment de la requête SQL sur la base de données :</p>
<ul>
<li>le nom de la table sur lequel on fait le tri (voir ci-dessous toutes les possibilités, dans mon cas : <span class="Clr_String">&#8216;image_created&#8217;</span>)</li>
<li>si celui-ci est ascendant (<span class="Clr_String">&#8216;ASC&#8217;</span>) ou descendant (<span class="Clr_String">&#8216;DESC&#8217;</span>).</li>
</ul>
<p>La requête SQL n&#8217;est pas écrite directement, mais à partir d&#8217;une instance (<span class="Clr_Var">$criteria</span>) de la classe : <em>CriteriaCompo</em>. Il faut donc se servir des méthodes setSort(<span class="Clr_Var">$sort</span>) et setOrder(<span class="Clr_Var">$order</span>) de l&#8217;objet.</p>
<p>Ce qui donne les deux lignes suivantes :</p>
<div class="markCode"><div class="boxCode"><code><span class="Clr_Comment">//HACK : ordre d'affichage : plus récente en premier</span><br />
<span class="Clr_Var">$criteria</span><span class="Clr_Operator">-</span><span class="Clr_Operator">&gt;</span>setSort<span class="Clr_Operator">(</span><span class="Clr_String">'image_created'</span><span class="Clr_Operator">)</span><span class="Clr_Operator">;</span><br />
<span class="Clr_Var">$criteria</span><span class="Clr_Operator">-</span><span class="Clr_Operator">&gt;</span>setOrder<span class="Clr_Operator">(</span><span class="Clr_String">'DESC'</span><span class="Clr_Operator">)</span><span class="Clr_Operator">;</span><br />
<span class="Clr_Comment">//FIN_HACK</span></code></div></div>
<p>Ces lignes se placent au même niveau que les autres &laquo;&nbsp;<span class="Clr_Var">$criteria</span>-&gt;&#8230;&nbsp;&raquo; dans le fichier <strong>site_xoops/imagemanager.php</strong>. À savoir juste après la  ligne 90 :</p>
<div class="markCode"><div class="boxCode"><code><span class="Clr_Var">$criteria</span><span class="Clr_Operator">-</span><span class="Clr_Operator">&gt;</span>setSort<span class="Clr_Operator">(</span><span class="Clr_String">'image_created'</span><span class="Clr_Operator">)</span><span class="Clr_Operator">;</span></code></div></div>
<p>et avant :</p>
<div class="markCode"><div class="boxCode"><code><span class="Clr_Var">$storetype</span> <span class="Clr_Operator">=</span> <span class="Clr_Var">$imgcat</span><span class="Clr_Operator">-</span><span class="Clr_Operator">&gt;</span>getVar<span class="Clr_Operator">(</span><span class="Clr_String">'imgcat_storetype'</span><span class="Clr_Operator">)</span><span class="Clr_Operator">;</span></code></div></div>
<h2>Image Manager dans TinyEditor</h2>
<p>Si vous utilisez l&#8217;excellent éditeur WYSIWYG <strong>TinyEditor</strong> avec le manager d&#8217;image xoops, il faut savoir que celui-ci a été réécrit pour ce module. Les 2 lignes de code sont à insérer dans le fichier <strong>site_xoops/modules/tinyeditor/editor/plugins/ximagemanager/tinyedimagemanager.php</strong>, de la même manière : entre la ligne 114 :</p>
<div class="markCode"><div class="boxCode"><code><span class="Clr_Var">$criteria</span><span class="Clr_Operator">-</span><span class="Clr_Operator">&gt;</span>setSort<span class="Clr_Operator">(</span><span class="Clr_String">'image_created'</span><span class="Clr_Operator">)</span><span class="Clr_Operator">;</span></code></div></div>
<p>et</p>
<p><div class="markCode"><div class="boxCode"><code><span class="Clr_Var">$storetype</span> <span class="Clr_Operator">=</span> <span class="Clr_Var">$imgcat</span><span class="Clr_Operator">-</span><span class="Clr_Operator">&gt;</span>getVar<span class="Clr_Operator">(</span><span class="Clr_String">'imgcat_storetype'</span><span class="Clr_Operator">)</span><span class="Clr_Operator">;</span></code></div></div><br />
 </p>
<h2>Critères de tri</h2>
<p>La table qui stoque les images contiens les champs suivants (chacun d&#8217;entre eux est utilisable comme clé pour le tri) :</p>
<ul>
<li><strong>image_id</strong> : clé unique de l&#8217;image (il s&#8217;agit d&#8217;un nombre entier donné dans l&#8217;ordre croissant au fur et à mesure des ajouts)</li>
<li><strong>image_name</strong> : nom de l&#8217;image (il est généré aléatoirement au moment du téléchargement sur le serveur)</li>
<li><strong>image_nicename</strong> : nom d&#8217;affichage de l&#8217;image (c&#8217;est celui qui est indiqué lors du téléchargement et qui correspond à la colonne de droite dans le manager)</li>
<li><strong>image_mimetype</strong> : type du fichier (image/gif, image/png, image/jpeg &#8230;)</li>
<li><strong>image_created</strong> : date de création (sous forme d&#8217;un timestamp unix)</li>
<li># <strong>image_display</strong> : 1 si l&#8217;image doit être affichée (aucun intérêt pour le tri, l&#8217;utilisateur ne voit de toute façon que les images dont le image_display est à 1 )</li>
<li><strong>image_weight</strong> : poids de l&#8217;image (sur ma configuration de test, ce champ n&#8217;est pas renseigné&#8230; S&#8217;agit-il d&#8217;un bug)</li>
<li># <strong>imgcat_id</strong> : identifiant de la catégorie à laquelle appartient l&#8217;image (aucun intérêt pour le tri, l&#8217;utilisateur ne voit de toute façon que les images dont la catégorie est celle qui a été choisie. )</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://docs.jmini.fr/code/hack-xoops-ordre-image-manager/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
