<?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>Philippique &#187; champs personnalisé</title>
	<atom:link href="http://www.philippique.com/tag/champs-personnalise/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.philippique.com</link>
	<description>Un geek dans le Bas du Fleuve</description>
	<lastBuildDate>Fri, 09 Sep 2011 20:34:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>[Joomla] Tutoriel pour ajouter un champ personnalisé dans la rédaction d&#8217;article</title>
		<link>http://www.philippique.com/2010/03/26/joomla-tutoriel-pour-ajouter-un-champ-personnalise-dans-la-redaction-darticle/</link>
		<comments>http://www.philippique.com/2010/03/26/joomla-tutoriel-pour-ajouter-un-champ-personnalise-dans-la-redaction-darticle/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 15:15:23 +0000</pubDate>
		<dc:creator>Philippique</dc:creator>
				<category><![CDATA[Joomla]]></category>
		<category><![CDATA[champs personnalisé]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[modification]]></category>
		<category><![CDATA[tutoriel]]></category>

		<guid isPermaLink="false">http://www.philippique.com/?p=425</guid>
		<description><![CDATA[Voici un petit tutoriel couvrant la base pour ajouter un champ personnalisé, par exemple un sous titre, à vos articles Joomla. J&#8217;ai eu besoin de modifier le core de Joomla afin d&#8217;ajouter cette fonctionnalité pour un projet de Journal en ligne, comportant un exergue à la majorité de ses articles. Cette solution est intéressante, facile]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em;margin-right: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fwww.philippique.com%252F2010%252F03%252F26%252Fjoomla-tutoriel-pour-ajouter-un-champ-personnalise-dans-la-redaction-darticle%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2FbKEJTH%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22%5BJoomla%5D%20Tutoriel%20pour%20ajouter%20un%20champ%20personnalis%C3%A9%20dans%20la%20r%C3%A9daction%20d%27article%22%20%7D);"></div>
<p><a href="http://www.philippique.com/wp-content/uploads/2010/03/figure1.jpg"><img class="alignleft size-thumbnail wp-image-426" title="Figure 1 - Ajouter un champ personnalisé" src="http://www.philippique.com/wp-content/uploads/2010/03/figure1-150x150.jpg" alt="" width="90" height="90" /></a>Voici un petit tutoriel couvrant <em>la base</em> pour ajouter un champ personnalisé, par exemple un sous titre, à vos articles Joomla. J&#8217;ai eu besoin de modifier le core de Joomla afin d&#8217;ajouter cette fonctionnalité pour un projet de Journal en ligne, comportant un exergue à la majorité de ses articles.</p>
<p>Cette solution est intéressante, facile à implanter et à utiliser mais elle a le défaut de nuire à la mise à jour de Joomla. Le jour ou vous procéderez à une mise à jour de votre CMS Joomla, vous aurez probablement à refaire cette petite procédure en entier.</p>
<p>Ce tutoriel prend en considération que vous avez les notions de base en programmation et en gestion de votre base de données SQL. Si vous avez besoin d&#8217;aide avec votre projet Joomla, <a href="http://www.philippique.com/a-propos/#contact">contactez moi</a>. Cette solution  s&#8217;applique à la version 1.5 de Joomla. Voici donc comment procéder :</p>
<p><strong>ÉTAPE 1 : Faite un backup de vos fichiers!</strong></p>
<p>Il est très important de copier vos fichiers et votre base de données avant de procéder à cette modification. Vous risquez potentiellement de faire planter votre site si vous vous trompez et vous pourriez avoir besoin de restaurer vos fichiers originaux.</p>
<p><strong>ÉTAPE 2 : modification de la base de données</strong></p>
<p>Avec votre logiciel de gestion de base de données préféré, ouvrez la base de données correspondant à votre projet. Ouvrez la table <em>jos_content</em> et ajouté à sa structure un nouveau champ, par exemple <em>soustitre</em>. Choisissez un type de champ <em>VARCHAR</em> de taille <em>255</em>.</p>
<p><strong>ÉTAPE 3 : Gestion de l&#8217;affichage sur le frontend du site</strong></p>
<p>Commencez par créer un override pour l&#8217;affichage du contenu sur votre site. Un override permet de modifier le output d&#8217;un composant core publique de Joomla sans avoir à modifier le fichier original. C&#8217;est déjà ça de moins à modifier lors de la mise à jour de Joomla. Dans le répertoire de votre template <em>(/templates/nom_de_votre_template/)</em>, assurez-vous d&#8217;y avoir un répertoire <em>html</em>. Ajoutez-y <em>(s&#8217;il n&#8217;existe pas déjà)</em> le répertoire <em>com_content</em> et <em>article. </em>Copier le fichier default.php que vous retrouverez dans le répertoire <em>/components/com_content/views/tmpl/</em> vers votre répertoire <em>/templates/nom_de_votre_template/html/com_content/article/.</em></p>
<p>Ouvrez le fichier default.php que vous venez de copier. Allez à la ligne 25 et ajoutez :</p>
<blockquote><p>&lt;?= $this-&gt;escape($this-&gt;article-&gt;<em><em>soustitre</em></em>); ?&gt;</p></blockquote>
<p>Remplacez <em>soustitre </em>par le nom du champ que vous avez ajouté à votre table SQL (voir étape 1).</p>
<p>Vous pouvez modifier le output comme bon vous semble, ajouter des conditions de l&#8217;affichage, des suffixes de classes CSS etc. dans ce fichier et gérer l&#8217;affichage comme vous le souhaitez.</p>
<p><strong>ÉTAPE 4 : Modifier le fichier article.xml</strong></p>
<p>Le fichier <em>article.xml</em> comporte une série d&#8217;instruction pour les paramètre assignés à la gestion des champs dans le formulaire d&#8217;ajout d&#8217;article. Si, par exemple, vous voulez contrôler l&#8217;affichage de votre champ personnalisé sur la page frontispice ou non, c&#8217;est ici que ça se passe.</p>
<p>Ouvrez le fichier <em>/administrator/components/com_content/models/articles.xml</em> et rendez-vous à la ligne 27. Pour contrôler l&#8217;affichage de votre champ personnalisé sur la page frontispice, ajoutez le code suivant :</p>
<blockquote><p>&lt;param name=&nbsp;&raquo;show_ <em><em>soustitre</em></em>&nbsp;&raquo; type=&nbsp;&raquo;list&nbsp;&raquo; default=&nbsp;&raquo;" label=&nbsp;&raquo;Afficher le soustitre&nbsp;&raquo; description=&nbsp;&raquo;Affiche ou cache le soustitre&nbsp;&raquo;&gt;<br />
&lt;option value=&nbsp;&raquo;"&gt;Use Global&lt;/option&gt;<br />
&lt;option value=&nbsp;&raquo;0&#8243;&gt;No&lt;/option&gt;<br />
&lt;option value=&nbsp;&raquo;1&#8243;&gt;Yes&lt;/option&gt;<br />
&lt;/param&gt;</p></blockquote>
<p>Remplacez <em><em>soustitre </em><span style="font-style: normal;">avec le nom du champ que vous avez ajouté dans la base de données SQL.</span></em></p>
<p><em><span style="font-style: normal;"><strong>ÉTAPE 5 : Modifier le formulaire dans le backend</strong></span></em></p>
<p><em><span style="font-style: normal;">La prochaine étape consiste à modifier le fichier en charge de l&#8217;affichage du formulaire dans le backend de Joomla. Ouvrez le fichier </span>/administrator/components/admin.content.html.php<span style="font-style: normal;"> et rendez-vous à la ligne 797. Tout de suite après le &lt;/tr&gt;, ajoutez la ligne suivante :</span></em></p>
<blockquote><p><em><span style="font-style: normal;">&lt;tr&gt;<br />
&lt;td&gt;<br />
&lt;label for=&nbsp;&raquo; custom_field &laquo;&nbsp;&gt;<br />
&lt;?php echo JText::_( &#8216;Sous titre&#8217; ); ?&gt;<br />
&lt;/label&gt;<br />
&lt;/td&gt;<br />
&lt;td&gt;<br />
&lt;input type=&nbsp;&raquo;text&nbsp;&raquo; name=&nbsp;&raquo; <em><em>soustitre</em></em> &nbsp;&raquo; id=&nbsp;&raquo;<em><em>soustitre</em></em> &nbsp;&raquo; size=&nbsp;&raquo;40&#8243; maxlength=&nbsp;&raquo;255&#8243; value=&nbsp;&raquo;&lt;?= $row-&gt;<em><em>soustitre</em></em>; ?&gt;&nbsp;&raquo;/&gt;<br />
&lt;/td&gt;<br />
&lt;/tr&gt;</span></em></p></blockquote>
<p>Encore une fois, n&#8217;oubliez pas de remplacer <em><em>soustitre </em><span style="font-style: normal;">avec le nom du champ que vous avez ajouté dans la base de données SQL. Ce bout de code ajoutera le champ sous titre sous le champ titre dans le formulaire d&#8217;ajout d&#8217;article (voir le screenshot en début d&#8217;article).</span></em></p>
<p><em><span style="font-style: normal;"><strong>ÉTAPE 6 : Ajouter la correspondance du nouveau champ dans config.xml</strong></span></em></p>
<p><em><span style="font-style: normal;">Pour indiquer à Joomla d&#8217;utiliser notre paramètre d&#8217;affichage sur le frontend, ouvrez le fichier /administrator/components/config.xml et rendez-vous à la ligne 16. Insérez le code suivant :</span></em></p>
<blockquote><p>&lt;param name=&nbsp;&raquo;show_subtitle&nbsp;&raquo; type=&nbsp;&raquo;radio&nbsp;&raquo; default=&nbsp;&raquo;1&#8243; label=&nbsp;&raquo;Show<br />
Article SubTitle&nbsp;&raquo; description=&nbsp;&raquo;Show/Hide the articles subtitle&nbsp;&raquo;&gt;<br />
&lt;option value=&nbsp;&raquo;0&#8243;&gt;No&lt;/option&gt;<br />
&lt;option value=&nbsp;&raquo;1&#8243;&gt;Yes&lt;/option&gt;<br />
&lt;/param&gt;</p></blockquote>
<p>De concert avec la modification de l&#8217;étape 3, ceci aura pour effet de gérer l&#8217;affichage sur le frontend de Joomla.</p>
<p><strong>ÉTAPE 7 : Informer Joomla de notre nouveau champ dans la table jos_content</strong></p>
<p>Ajouter un champ ne suffit pas. La base de données est géré par une librairie et il faut indiquer à Joomla d&#8217;utiliser notre nouveau champ. Pour y parvenir, il faut modifier le fichier /libraries/joomla/database/table/content.php. Rendez-vous à la ligne 33 et ajoutez le bout de code suivant :</p>
<blockquote><p>var $subtitle = null;<br />
/** @var string **/</p></blockquote>
<p>Bravo, votre formulaire gère maintenant votre nouveau champ!</p>

]]></content:encoded>
			<wfw:commentRss>http://www.philippique.com/2010/03/26/joomla-tutoriel-pour-ajouter-un-champ-personnalise-dans-la-redaction-darticle/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
	</channel>
</rss>

