<?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>Libre d'esprit &#187; astuce</title>
	<atom:link href="http://libre-d-esprit.thinking-days.net/tag/astuce/feed/" rel="self" type="application/rss+xml" />
	<link>http://libre-d-esprit.thinking-days.net</link>
	<description>Logiciels libres, joomla, talend, php, virtuemart, templates Joomla</description>
	<lastBuildDate>Sun, 21 Mar 2010 16:53:40 +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>Surcharger les composants sous Joomla 1.0.X</title>
		<link>http://libre-d-esprit.thinking-days.net/2009/04/surcharger-les-composants-sous-joomla-10x/</link>
		<comments>http://libre-d-esprit.thinking-days.net/2009/04/surcharger-les-composants-sous-joomla-10x/#comments</comments>
		<pubDate>Sun, 12 Apr 2009 21:35:41 +0000</pubDate>
		<dc:creator>Antoine</dc:creator>
				<category><![CDATA[Joomla]]></category>
		<category><![CDATA[affichage]]></category>
		<category><![CDATA[astuce]]></category>
		<category><![CDATA[développement]]></category>
		<category><![CDATA[joomla 1.0]]></category>
		<category><![CDATA[surcharge]]></category>
		<guid isPermaLink="false">http://libre-d-esprit.thinking-days.net/?p=11</guid>
		<description><![CDATA[L&#8217;une des nouveautés de Joomla 1.5, est la possibilité de surcharger l&#8217;affichage par défaut des composants.
Sous Joomla 1.0, dès que l&#8217;on souhaitait modifier légèrement l&#8217;affichage d&#8217;un composant, on était contraint de modifier le code source de ce dernier. Cela avait pour conséquence de compliquer  la maintenance des sites sous Joomla. En effet, il n&#8217;était [...]]]></description>
			<content:encoded><![CDATA[<p>L&#8217;une des nouveautés de Joomla 1.5, est la possibilité de surcharger l&#8217;affichage par défaut des composants.</p>
<p>Sous Joomla 1.0, dès que l&#8217;on souhaitait modifier légèrement l&#8217;affichage d&#8217;un composant, on était contraint de modifier le code source de ce dernier. Cela avait pour conséquence de compliquer  la maintenance des sites sous Joomla. En effet, il n&#8217;était plus possible de suivre bêtement la procédure de mise à jour de Joomla pour appliquer un patch corrigeant une faille de sécurité par exemple.</p>
<p>En réalité, redéfinir l&#8217;affichage des composant est possible également sous Joomla 1.0. La technique consiste à créer un mambot système qui va modifier l&#8217;objet global $mainframe. Il est possible de modifier le comportement de $mainframe, mais également de l&#8217;étendre, de l&#8217;enrichir&#8230; Cette technique peut également être utilisé à d&#8217;autres fins : tels que la modification du comportement de l&#8217;objet global $database&#8230;.</p>
<p>Voici un premier exemple qui va modifier, de façon transparente pour Joomla, l&#8217;objet $mainframe, afin de lui ajouter de nouvelles fonctionnalités, ou afin de modifier son comportement.</p>
<div class="codecolorer-container php dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><a href="http://www.php.net/defined"><span style="color: #990000;">defined</span></a><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'_VALID_MOS'</span> <span style="color: #009900;">&#41;</span> <br />
or <a href="http://www.php.net/die"><span style="color: #990000;">die</span></a><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'Direct Access to this location is not allowed.'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000088;">$_MAMBOTS</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">registerFunction</span><span style="color: #009900;">&#40;</span> <br />
&nbsp; <span style="color: #0000ff;">'onAfterStart'</span><span style="color: #339933;">,</span> <br />
&nbsp; <span style="color: #0000ff;">'extendMosMainframe'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">function</span> extendMosMainframe <span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$mainframe</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #000088;">$mainframe</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> mosExtendMainframe<span style="color: #009900;">&#40;</span><span style="color: #000088;">$mainframe</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #666666; font-style: italic;">/*<br />
&nbsp;* Cette extension n'a aucun intérêt si de nouvelles<br />
&nbsp;* méthodes, de nouvelles ne sont pas ajoutées dans<br />
&nbsp;* la classe mosExtendMainframe, ou si des méthodes <br />
&nbsp;* de mosMainframe ne sont pas surchargées<br />
&nbsp;*/</span><br />
<span style="color: #000000; font-weight: bold;">class</span> mosExtendMainframe <span style="color: #000000; font-weight: bold;">extends</span> mosMainframe<span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #666666; font-style: italic;">// Récupération de l’ensemble des propriétés </span><br />
&nbsp; <span style="color: #666666; font-style: italic;">//de l’objet $mainframe initial</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #009900;">&#40;</span><span style="color: #000088;">$mosmainframe</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$vars</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/get_class_vars"><span style="color: #990000;">get_class_vars</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;mosMainframe&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$vars</span> <span style="color: #b1b100;">AS</span> <span style="color: #000088;">$key</span><span style="color: #339933;">=&gt;</span><span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #000088;">$key</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$mosmainframe</span><span style="color: #339933;">-&gt;</span><span style="color: #000088;">$key</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>L&#8217;objet $mainframe est capital au sein de Joomla. En le modifiant certaines de ses propriétés, vous serez à même de redéfinir le nom des fichiers appartenant à un composant. Voici un exemple très succint, à placer au sein d&#8217;un mambot système :</p>
<div class="codecolorer-container php dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$option</span><span style="color: #339933;">==</span><span style="color: #0000ff;">'com_content'</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$task</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'view'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #000088;">$mainframe</span><span style="color: #339933;">-&gt;</span>_path<span style="color: #339933;">-&gt;</span><span style="color: #004000;">front</span><span style="color: #339933;">=</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000088;">$mos_config_absolute_path</span><span style="color: #339933;">.</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;/components/com_content/content.redefined.php&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #000088;">$mainframe</span><span style="color: #339933;">-&gt;</span>_path<span style="color: #339933;">-&gt;</span><span style="color: #004000;">front_html</span><span style="color: #339933;">=</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000088;">$mos_config_absolute_path</span><span style="color: #339933;">.</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;/components/com_content/content.redefined.html.php&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #000088;">$mainframe</span><span style="color: #339933;">-&gt;</span>_path<span style="color: #339933;">-&gt;</span><span style="color: #004000;">class</span><span style="color: #339933;">=</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000088;">$mos_config_absolute_path</span><span style="color: #339933;">.</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;/components/com_content/content.redefined.class.php&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #000088;">$mainframe</span><span style="color: #339933;">-&gt;</span>_template <span style="color: #339933;">=</span> <br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&quot;redefined&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
]]></content:encoded>
			<wfw:commentRss>http://libre-d-esprit.thinking-days.net/2009/04/surcharger-les-composants-sous-joomla-10x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modifier la page d&#8217;accueil de Joomla</title>
		<link>http://libre-d-esprit.thinking-days.net/2009/03/modifier-la-page-daccueil-de-joomla/</link>
		<comments>http://libre-d-esprit.thinking-days.net/2009/03/modifier-la-page-daccueil-de-joomla/#comments</comments>
		<pubDate>Wed, 18 Mar 2009 12:43:20 +0000</pubDate>
		<dc:creator>Antoine</dc:creator>
				<category><![CDATA[Joomla]]></category>
		<category><![CDATA[astuce]]></category>
		<category><![CDATA[VirtueMart]]></category>
		<guid isPermaLink="false">http://libre-d-esprit.thinking-days.net/?p=115</guid>
		<description><![CDATA[Cette astuce fonctionne sur toutes les versions de Joomla.
Joomla affiche en &#171;&#160;page d&#8217;accueil&#160;&#187;, la premier lien publié du menu appelé &#171;&#160;main_menu&#160;&#187;.
Par défaut, il s&#8217;agit d&#8217;une vue particulière du composant &#171;&#160;com_content&#160;&#187; qui va afficher une liste d&#8217;articles, à la manière d&#8217;un blog.
Pour mettre en page d&#8217;accueil, votre boutique VirtueMart, il vous suffit donc de placer en [...]]]></description>
			<content:encoded><![CDATA[<p>Cette astuce fonctionne sur toutes les versions de Joomla.</p>
<p>Joomla affiche en &laquo;&nbsp;page d&#8217;accueil&nbsp;&raquo;, la premier lien publié du menu appelé &laquo;&nbsp;main_menu&nbsp;&raquo;.</p>
<p>Par défaut, il s&#8217;agit d&#8217;une vue particulière du composant &laquo;&nbsp;com_content&nbsp;&raquo; qui va afficher une liste d&#8217;articles, à la manière d&#8217;un blog.</p>
<p>Pour mettre en page d&#8217;accueil, votre boutique VirtueMart, il vous suffit donc de placer en première position du menu main_menu, une entrée pointant vers une page du composant &laquo;&nbsp;virtuemart&nbsp;&raquo;.</p>
<p>Il n&#8217;est pas nécessaire qu&#8217;un module affichant le &laquo;&nbsp;mainmenu&nbsp;&raquo; ne soit publié. Ainsi, cette modification ne sera pas nécessairement visible dans les menus de navigation.</p>
]]></content:encoded>
			<wfw:commentRss>http://libre-d-esprit.thinking-days.net/2009/03/modifier-la-page-daccueil-de-joomla/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Rendre Virtuemart utilisable en mode offline</title>
		<link>http://libre-d-esprit.thinking-days.net/2009/03/rendre-virtuemart-utilisable-en-mode-offline/</link>
		<comments>http://libre-d-esprit.thinking-days.net/2009/03/rendre-virtuemart-utilisable-en-mode-offline/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 11:53:07 +0000</pubDate>
		<dc:creator>Antoine</dc:creator>
				<category><![CDATA[VirtueMart]]></category>
		<category><![CDATA[astuce]]></category>
		<category><![CDATA[hack]]></category>
		<guid isPermaLink="false">http://libre-d-esprit.thinking-days.net/?p=118</guid>
		<description><![CDATA[Les dernières versions de VirtueMart font appel à des webservices convertisseurs de devises.
Ces webservices ne peuvent malheureusement pas à ma connaissance être désactivés.
De ce fait, lorsque l&#8217;on utilise VirtueMart en étant non connectés à Internet (pour développer ou faire une présentation), des messages d&#8217;erreurs peuvent s&#8217;afficher (ie : &#171;&#160;Error: Failed to retrieve the Currency Converter [...]]]></description>
			<content:encoded><![CDATA[<p>Les dernières versions de VirtueMart font appel à des webservices convertisseurs de devises.</p>
<p>Ces webservices ne peuvent malheureusement pas à ma connaissance être désactivés.</p>
<p>De ce fait, lorsque l&#8217;on utilise VirtueMart en étant non connectés à Internet (pour développer ou faire une présentation), des messages d&#8217;erreurs peuvent s&#8217;afficher (ie : &laquo;&nbsp;Error: Failed to retrieve the Currency Converter XML document&nbsp;&raquo;).</p>
<p>Pour éviter ces désagréments, mais également éventuellement pour supprimer les appels à ces webservices qui peuvent être inutiles et ralentir inutilement le site, il faut créer un fichier dans le répertoire /administrator/components/com_virtuemart/classes/currency/</p>
<p>Appelez le par exemple &laquo;&nbsp;convertNOP.php&nbsp;&raquo;.</p>
<p>Voici le code source nécessaire :</p>
<div class="codecolorer-container php dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><br />
<br />
<span style="color: #339933;">!</span><a href="http://www.php.net/defined"><span style="color: #990000;">defined</span></a><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'_VALID_MOS'</span> <span style="color: #009900;">&#41;</span><br />
<br />
<span style="color: #339933;">&amp;&amp;</span><br />
<br />
<span style="color: #339933;">!</span><a href="http://www.php.net/defined"><span style="color: #990000;">defined</span></a><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'_JEXEC'</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><br />
<br />
<a href="http://www.php.net/die"><span style="color: #990000;">die</span></a><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'Direct Access to '</span><span style="color: #339933;">.</span><a href="http://www.php.net/basename"><span style="color: #990000;">basename</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">__FILE__</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' is not allowed.'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">class</span> convertNOP <span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">function</span> convert<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$amountA</span><span style="color: #339933;">,</span> <span style="color: #000088;">$currA</span><span style="color: #339933;">=</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #000088;">$currB</span><span style="color: #339933;">=</span><span style="color: #0000ff;">''</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #000088;">$amountA</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></div>
<p>Par la suite, il faut activer ce fichier en allant dans le back-office VirtueMart dans &laquo;&nbsp;Configuration&nbsp;&raquo; &gt; &laquo;&nbsp;Configuration générale&nbsp;&raquo; &gt; &laquo;&nbsp;Paramètres principaux&nbsp;&raquo; &gt; &laquo;&nbsp;Sélectionner un module convertisseur de devises&nbsp;&raquo;.</p>
]]></content:encoded>
			<wfw:commentRss>http://libre-d-esprit.thinking-days.net/2009/03/rendre-virtuemart-utilisable-en-mode-offline/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
