<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.llaumgui.com/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>Le blog de llaumgui - IPBSDK</title>
  <link>http://www.llaumgui.com/</link>
  <description>Linux en général, Fedora en particulier...</description>
  <language>fr</language>
  <pubDate>Fri, 16 May 2008 03:18:27 +0200</pubDate>
  <copyright>http://creativecommons.org/licenses/by-nc-nd/2.5/</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Scénario-PaintBall version 3 en préparation</title>
    <link>http://www.llaumgui.com/post/Scenario-PaintBall-version-3-en-preparation</link>
    <guid isPermaLink="false">urn:md5:4ce7aba034b261efa398bb691d8ba593</guid>
    <pubDate>Thu, 30 Aug 2007 23:05:00 +0200</pubDate>
    <dc:creator>llaumgui</dc:creator>
        <category>Développement web</category>
        <category>Eclipse</category><category>eZ Publish</category><category>ezipb</category><category>IPB</category><category>IPBSDK</category><category>pdt</category><category>php</category><category>php5</category><category>Scénario-PaintBall</category>    
    <description>&lt;p&gt;Après plusieurs années de bons et loyaux services, il est grand temps que la version 2 de &lt;a href=&quot;http://www.scenario-paintball.com/&quot; title=&quot;Scénario-PaintBall|Le repaire des fougères&quot;&gt;Scénario-PaintBall&lt;/a&gt; tire sa révérence, pour donner naissance à une v3 ;-).
&lt;br /&gt;
Pourquoi ?&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Le forums :&lt;/strong&gt; L'une des raisons principales et la version d'&lt;a href=&quot;http://www.invisionboard.fr/&quot; title=&quot;Communauté francophone Invision Power Board&quot;&gt;IPB&lt;/a&gt;, la  2.1.x. Cette dernière n'est plus ou ne sera bientôt plus supportée. Il est donc grand temps de passer à la branche 2.3.x.&lt;br /&gt;
Les autre points découlent de cette mise à jour.
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Le portail :&lt;/strong&gt; Il utilise l'&lt;a href=&quot;http://ipbsdk.sourceforge.net/&quot; hreflang=&quot;en&quot; title=&quot;IPB SDK is a powerful development tool, which will allow you to develop advanced applications with ease&quot;&gt;ipbSDK&lt;/a&gt; qui n'est plus développé depuis la version 2.1 d'IPB (déjà que la 1.6 beta 5 pour IPB 2.1 était « limite »). Si je veux récupérer mon portail il faut donc que je rende compatible la dernier version du sdk avec la version actuel du forum... Or, j'ai la flemme de récupérer du vieux code !&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Le design :&lt;/strong&gt; le passage vers IPB 2.3 oblige à refaire la feuille de style (si on veut pas faire le porc). A remonter une page, autant en remonter une nouvelle.&lt;/li&gt;
&lt;/ol&gt;    &lt;h2&gt;Des pistes pour l'évolution&lt;/h2&gt;
&lt;p&gt;Pour la partie graphique, &lt;a href=&quot;http://forums.scenario-paintball.com/index.php?showuser=2&quot; hreflang=&quot;fr&quot;&gt;Radinus&lt;/a&gt; est en train de voir avec un designer.&lt;br /&gt;
Pour la techno, je pense utiliser &lt;a href=&quot;http://ez.no/&quot; hreflang=&quot;en&quot; title=&quot;eZ Publish Open Source Enterprise Content Management System&quot;&gt;eZ Publish&lt;/a&gt; 4.0 qui ne devrait plus tarder à sortir en version alpha voir peut être même bêta... Je rappel que la version du sdk utilisée actuellement est une bêta 2 &lt;a href=&quot;http://www.llaumgui.com/tag/IPBSDK&quot; hreflang=&quot;fr&quot;&gt;ultra modifiée&lt;/a&gt; par moi même, donc on est plus à une bêta près.&lt;br /&gt;
En attendant la v4 d'eZ, je commence les tests sur la version &lt;a href=&quot;http://pubsvn.ez.no/nextgen_php5/&quot; hreflang=&quot;fr&quot;&gt;3.9 communautaire compatible php5&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
Du coup, en utilisant IPB + eZ publish, je n'ai plus qu'une seule chose à développer : une extension eZ pour communiquer avec IPB (connections membres + requêtes de récupération d'informations diverses).&lt;/p&gt;
&lt;h2&gt;Des non pistes&lt;/h2&gt;
&lt;h3&gt;Pourquoi pas le module forums pour eZ ?&lt;/h3&gt;
&lt;p&gt;La licence IPB est payée à vie et c'est un excellent forums ultra (trop?) complet.&lt;/p&gt;
&lt;h3&gt;Pourquoi pas un CMS autour d'IPB ?&lt;/h3&gt;
&lt;p&gt;Je pense qu'un forum est un forum et qu'un &lt;a href=&quot;http://fr.wikipedia.org/wiki/Syst%C3%A8me_de_gestion_de_contenu&quot; hreflang=&quot;fr&quot;&gt;&lt;acronym title=&quot;Content Management Systems&quot;&gt;CMS&lt;/acronym&gt;&lt;/a&gt; est un CMS ! Vouloir absolument développer un CMS autour d'un forum est, selon moi, une erreur. Erreur que j'ai d'ailleurs commise lors de la v2 de spb ;-).&lt;br /&gt;
La solution est donc de coupler différents scripts via des bridges (ma future extension ou les bridges à la &lt;a hreflang=&quot;en&quot; href=&quot;http://coppermine-gallery.net/&quot;&gt;Coppermine&lt;/a&gt;) ou grâce à des systèmes du type &lt;a href=&quot;http://fr.wikipedia.org/wiki/SSO&quot; hreflang=&quot;fr&quot;&gt;&lt;acronym title=&quot;Single Sign-On&quot;&gt;SSO&lt;/acronym&gt;&lt;/a&gt; (pour SPB on en est pas encore là).&lt;/p&gt;
&lt;h2&gt;TODO&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;del&gt;Installer &lt;a href=&quot;http://www.eclipse.org/&quot; hreflang=&quot;en&quot; title=&quot; an open development platform&quot;&gt;Eclipse&lt;/a&gt; Europa (3.3) avec les extensions qui vont bien (&lt;a href=&quot;http://www.eclipse.org/pdt/&quot; hreflang=&quot;en&quot;&gt;&lt;acronym title=&quot;PHP Development Tools&quot;&gt;pdt&lt;/acronym&gt;&lt;/a&gt;, &lt;a href=&quot;http://smile-ez-plugin.sourceforge.net/&quot; hreflang=&quot;fr&quot;&gt;Smile eZ plugin&lt;/a&gt;). Je commence de loin, mais installer &amp;amp; configurer Eclipse c'est presque aussi long qu'installer un système complet&lt;/del&gt;.&lt;/li&gt;
&lt;li&gt;&lt;del&gt;Configurer mon serveur apache local&lt;/del&gt;.&lt;/li&gt;
&lt;li&gt;&lt;del&gt;Installer eZ 3.9 php5&lt;/del&gt;.&lt;/li&gt;
&lt;li&gt;&lt;del&gt;Convertir la base IPB 2.1.x vers 2.3.1&lt;/del&gt;.&lt;/li&gt;
&lt;li&gt;Développer le plugins eZipb pour faire communiquer IPB et eZ publish (voir les différentes pistes offertes et voir aussi du côté de &lt;a href=&quot;http://forums.invisionpower.com/index.php?showtopic=235584&quot; hreflang=&quot;fr&quot;&gt;Converge&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Découper le design (que j'attends toujours).&lt;/li&gt;
&lt;li&gt;Développer,  dans la version eZ, les différentes fonctionnalités actuellement disponibles sur spb.&lt;/li&gt;
&lt;li&gt;Migrer le forums en UTF-8.&lt;/li&gt;
&lt;li&gt;etc...&lt;/li&gt;
&lt;/ol&gt;</description>
    
    
    
          <comments>http://www.llaumgui.com/post/Scenario-PaintBall-version-3-en-preparation#comment-form</comments>
      <wfw:comment>http://www.llaumgui.com/post/Scenario-PaintBall-version-3-en-preparation#comment-form</wfw:comment>
      <wfw:commentRss>http://www.llaumgui.com/feed/rss2/comments/344</wfw:commentRss>
      </item>
    
  <item>
    <title>Liste de mes mods IPB</title>
    <link>http://www.llaumgui.com/post/liste-de-mes-mods-ipb</link>
    <guid isPermaLink="false">urn:md5:2a29accaab2a8feb86d409f465b74901</guid>
    <pubDate>Wed, 28 Sep 2005 18:43:00 +0000</pubDate>
    <dc:creator>llaumgui</dc:creator>
        <category>Développement web</category>
        <category>IPB</category><category>IPB 1.3</category><category>IPB 2.0</category><category>IPB 2.1</category><category>IPBSDK</category><category>javascript</category><category>mods</category><category>php</category><category>task</category>    
    <description>&lt;p&gt;Je commence à me faire une petite collection de mods persos pour IPB. Ce billet servira à tous les lister et savoir où les trouver.&lt;/p&gt;    &lt;ul&gt;
&lt;li&gt;IPB 1.3.x :
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://forums.invisionboard.fr/index.php?autocom=Downloads&amp;amp;showfile=185&quot; hreflang=&quot;fr&quot;&gt;RSS IPB News 1.6&lt;/a&gt; (&lt;a href=&quot;http://mods.invisionize.com/db/index.php/f/4869&quot; hreflang=&quot;en&quot;&gt;Chez Invisionize)&lt;/a&gt;, &lt;strong&gt;(médaille du meilleur mod catégorie &amp;quot;&lt;/strong&gt;&lt;em&gt;&lt;strong&gt;Mid-scale&lt;/strong&gt;&lt;/em&gt;&lt;strong&gt;&amp;quot; Juin 2005)&lt;/strong&gt; : Ce mod vous permet d'exporter vos news issues de votre forum IPB au format RSS.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;IPB 2.0.x :
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://forums.invisionboard.fr/index.php?autocom=Downloads&amp;amp;showfile=150&quot; hreflang=&quot;fr&quot;&gt;RSS IPB News 1.6&lt;/a&gt; (&lt;a href=&quot;http://mods.invisionize.com/db/index.php/f/3912&quot; hreflang=&quot;en&quot;&gt;Chez Invisionize&lt;/a&gt;): Ce mod vous permet d'exporter vos news issues de votre forum IPB au format RSS.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://forums.invisionboard.fr/index.php?autocom=Downloads&amp;amp;showfile=189&quot; hreflang=&quot;fr&quot;&gt;[Task] goTrash 1.0&lt;/a&gt; (&lt;a href=&quot;http://mods.invisionize.com/db/index.php/f/5398&quot; hreflang=&quot;fr&quot;&gt;Chez Invisionize&lt;/a&gt;): &lt;strong&gt;(médaille du meilleur mod catégorie &amp;quot;&lt;/strong&gt;&lt;em&gt;&lt;strong&gt;Mid-scale&lt;/strong&gt;&lt;/em&gt;&lt;strong&gt;&amp;quot; Septembre 2005) &lt;/strong&gt;Certaines multi-modération peuvent ajouter un préfixe dans le titre du topic. Par exemple, sur mon site, j'utilise le préfixe [Périssable] pour signaler que le topic rejoindra bientôt la corbeille. Cette task automatise juste ce déplacement dans la corbeille...&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;IPB 2.x :
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://forums.invisionboard.fr/index.php?autocom=Downloads&amp;amp;showfile=144&quot; hreflang=&quot;fr&quot;&gt;[SDK] Tchat Xpress&lt;/a&gt; (&lt;a href=&quot;http://mods.invisionize.com/db/index.php/f/3904&quot; hreflang=&quot;en&quot;&gt;Chez Invisionize&lt;/a&gt;) : ShoutBox basée sur le SDK 1.5 pour IPB 2.x. Il faut donc l'avoir préalablement installé pour utiliser le Tchat XPress.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://forums.invisionboard.fr/index.php?autocom=Downloads&amp;amp;showfile=197&quot; hreflang=&quot;fr&quot;&gt;Show Queued&lt;/a&gt; :  Ce mod est un auto-module : donc pas de fichier d'IPB à modifier smile.gif.
Il sert a afficher la liste des topics demandant un travail de modération (Posts invisibles ou sujets non approuvés).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;IPB 2.1.x :
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://forums.invisionboard.fr/index.php?autocom=Downloads&amp;amp;showfile=198&quot; hreflang=&quot;fr&quot;&gt;[Task] goTrash 1.1&lt;/a&gt; : Certaines multi-modération peuvent ajouter un préfixe dans le titre du topic. Par exemple, sur mon site, j'utilise le préfixe [Périssable] pour signaler que le topic rejoindra bientôt la corbeille. Cette task automatise juste ce déplacement dans la corbeille...&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;IPB 2.1.x (En cours de développement, mais disponible en pré-version):
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.llaumgui.com/index.php/2005/09/19/51-imode-and-wap-for-ipb-11&quot; hreflang=&quot;fr&quot;&gt;imode and Wap for IPB 1.1&lt;/a&gt; : Une version iMode de votre site.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.llaumgui.com/index.php/2005/09/19/52-js-export-news-10&quot; hreflang=&quot;fr&quot;&gt;JS export news 1.0&lt;/a&gt; : Exporter vos news au format JavaScript.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://forums.invisionboard.fr/index.php?showuser=419&quot; hreflang=&quot;fr&quot;&gt;Mon profil&lt;/a&gt; sur &lt;a href=&quot;http://www.invisionboard.fr&quot; hreflang=&quot;fr&quot;&gt;IPBR-Fr&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://db.invisionize.com/index.php/m/26400&quot; hreflang=&quot;en&quot;&gt;Mon profil&lt;/a&gt; sur &lt;a href=&quot;http://www.ipbr-fr.com/&quot; hreflang=&quot;fr&quot;&gt;Invisionize&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&lt;em&gt;Mis à jour le 28/09/05&lt;/em&gt;&lt;/p&gt;</description>
    
          <enclosure url="http://www.llaumgui.com/public/files/ipb/RSS_IPB_News_1.6_IPB_1.2_et_1.3.x.zip"
      length="33639" type="application/zip" />
          <enclosure url="http://www.llaumgui.com/public/files/ipb/RSS_IPB_News_1.6.zip"
      length="33866" type="application/zip" />
          <enclosure url="http://www.llaumgui.com/public/files/ipb/goTrash_1.0.zip"
      length="4374" type="application/zip" />
          <enclosure url="http://www.llaumgui.com/public/files/ipb/SDK_Tchat_Xpress_1.1.zip"
      length="8186" type="application/zip" />
          <enclosure url="http://www.llaumgui.com/public/files/ipb/goTrash_1.1.zip"
      length="5214" type="application/zip" />
          <enclosure url="http://www.llaumgui.com/public/files/ipb/Show_Queued_1.0.zip"
      length="4864" type="application/zip" />
          <enclosure url="http://www.llaumgui.com/public/files/ipb/imode_and_wap_for_Invision%201.1.zip"
      length="29275" type="application/zip" />
          <enclosure url="http://www.llaumgui.com/public/files/ipb/JS_Export_News_1.0.zip"
      length="3455" type="application/zip" />
    
    
          <comments>http://www.llaumgui.com/post/liste-de-mes-mods-ipb#comment-form</comments>
      <wfw:comment>http://www.llaumgui.com/post/liste-de-mes-mods-ipb#comment-form</wfw:comment>
      <wfw:commentRss>http://www.llaumgui.com/feed/rss2/comments/47</wfw:commentRss>
      </item>
    
  <item>
    <title>IPBSDK et la (mauvaise) gestion des attachements</title>
    <link>http://www.llaumgui.com/post/ipbsdk-et-la-mauvaise-gestion-des-attachements</link>
    <guid isPermaLink="false">urn:md5:279b18d9cb54f26ad58f1a5ce6cb198d</guid>
    <pubDate>Fri, 23 Sep 2005 15:51:00 +0000</pubDate>
    <dc:creator>llaumgui</dc:creator>
        <category>Développement web</category>
        <category>cache</category><category>IPB</category><category>IPBSDK</category><category>optimisation</category><category>php</category>    
    <description>&lt;p&gt;Plus j'avance dans le débugage du &lt;a href=&quot;http://ipbsdk.sourceforge.net&quot; hreflang=&quot;en&quot;&gt;IPBSDK&lt;/a&gt; et le développement de mon portail, plus je me rends compte qu'il n'y a pas de cohésion entre les différentes fonctions qui compose ce SKD.
En effet, prenons l'exemple de la gestion des attachements qui fait 1 requête par attachement alors qu'il est si simple d'utiliser une fonction récupérant tout les attachements d'un message... Le pire est que cette fonction existe ! Mais les 2 ne sont pas reliées. Rassurez vous, je vous livre mon code à rajouter dans la classe &lt;a href=&quot;http://www.llaumgui.com/post/heritage-du-ipbsdk-1-theorie&quot; hreflang=&quot;fr&quot;&gt;MySDK&lt;/a&gt;.&lt;/p&gt;    &lt;code class=&quot;php&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/**&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;* Get a post's attachments&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;* Gestion d'une mise en cache.&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;* @author Guillaume Kulakowski &amp;lt;guillaume_AT_llaumgui_DOT_com&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;* @author Pita &amp;lt;peter@randomnity.com&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;* @since 1.11&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;* @param integer $postid The post id to check&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;* @param boolean $override Whether to override permissions or not.&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;* @return array Post's attachments&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; get_post_attachments&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$postid&lt;/span&gt;,&lt;span style=&quot;color: #0000ff;&quot;&gt;$override&lt;/span&gt;=&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;FALSE&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0000ff;&quot;&gt;$query&lt;/span&gt; = &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$override&lt;/span&gt; == &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;FALSE&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$query&lt;/span&gt; = &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot; AND attach_approved=1&amp;quot;&lt;/span&gt;; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;DB&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;query&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot; &amp;nbsp; &amp;nbsp;SELECT *&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FROM ibf_attachments&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; WHERE attach_pid='&amp;quot;&lt;/span&gt;.&lt;span style=&quot;color: #0000ff;&quot;&gt;$postid&lt;/span&gt;.&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;'&amp;quot;&lt;/span&gt;.&lt;span style=&quot;color: #0000ff;&quot;&gt;$query&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;DB&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;get_num_rows&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; == &lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;FALSE&lt;/span&gt;; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #b1b100;&quot;&gt;while&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$row&lt;/span&gt; = &lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;DB&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;fetch_row&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$return&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; = &lt;span style=&quot;color: #0000ff;&quot;&gt;$row&lt;/span&gt;; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;_cache&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'post_attachments'&lt;/span&gt;.&lt;span style=&quot;color: #0000ff;&quot;&gt;$postid&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; = &lt;span style=&quot;color: #0000ff;&quot;&gt;$return&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/**&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;* Get HTML code for outputting an attachment image.&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;* Utilisation d'un cache.&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;* @author Guillaume Kulakowski &amp;lt;guillaume_AT_llaumgui_DOT_com&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;* @since 1.11&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;* @param integer $postid The post id to check&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;* @param integer $id The attachment id to be parsed.&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;* @param boolean $override Whether to override permissions or not.&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;* @return string HTML code&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;* @see attachment_info(), attachment_thumb()&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; attachment_image&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$pid&lt;/span&gt;, &lt;span style=&quot;color: #0000ff;&quot;&gt;$id&lt;/span&gt;,&lt;span style=&quot;color: #0000ff;&quot;&gt;$override&lt;/span&gt;=&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;FALSE&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/*&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* On récupère tous les attachements du poste :&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;a href=&quot;http://www.php.net/empty&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;_cache&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'post_attachments'&lt;/span&gt;.&lt;span style=&quot;color: #0000ff;&quot;&gt;$pid&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;get_post_attachments&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$pid&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// Ancien sysèmeme, au cas où :&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;a href=&quot;http://www.php.net/empty&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;_cache&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'post_attachments'&lt;/span&gt;.&lt;span style=&quot;color: #0000ff;&quot;&gt;$pid&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0000ff;&quot;&gt;$att&lt;/span&gt; = &lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;attachment_info&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$id&lt;/span&gt;,&lt;span style=&quot;color: #0000ff;&quot;&gt;$override&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$att&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'attach_is_image'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; == &lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;FALSE&lt;/span&gt;; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #b1b100;&quot;&gt;else&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #b1b100;&quot;&gt;foreach&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;_cache&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'post_attachments'&lt;/span&gt;.&lt;span style=&quot;color: #0000ff;&quot;&gt;$pid&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$key&lt;/span&gt; =&amp;gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$value&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$value&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'attach_id'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; == &lt;span style=&quot;color: #0000ff;&quot;&gt;$id&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$att&lt;/span&gt; = &lt;span style=&quot;color: #0000ff;&quot;&gt;$value&lt;/span&gt;; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/*&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* Gestion des miniatures :&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;a href=&quot;http://www.php.net/empty&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$att&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'attach_thumb_location'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$out&lt;/span&gt; = &lt;span style=&quot;color: #ff0000;&quot;&gt;'&amp;lt;img src=&amp;quot;'&lt;/span&gt;.&lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;board_url&lt;/span&gt;.&lt;span style=&quot;color: #ff0000;&quot;&gt;'/uploads/'&lt;/span&gt;.&lt;span style=&quot;color: #0000ff;&quot;&gt;$att&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'attach_location'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span style=&quot;color: #ff0000;&quot;&gt;'&amp;quot; alt=&amp;quot;'&lt;/span&gt;.&lt;span style=&quot;color: #0000ff;&quot;&gt;$att&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'attach_file'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span style=&quot;color: #ff0000;&quot;&gt;'&amp;quot; /&amp;gt;'&lt;/span&gt;; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #b1b100;&quot;&gt;else&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$out&lt;/span&gt; = &lt;span style=&quot;color: #ff0000;&quot;&gt;'&amp;lt;a href=&amp;quot;'&lt;/span&gt;.&lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;board_url&lt;/span&gt;.&lt;span style=&quot;color: #ff0000;&quot;&gt;'/index.php?act=Attach&amp;amp;type=post&amp;amp;amp;id='&lt;/span&gt;.&lt;span style=&quot;color: #0000ff;&quot;&gt;$att&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'attach_id'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span style=&quot;color: #ff0000;&quot;&gt;'&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;'&lt;/span&gt;.&lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;board_url&lt;/span&gt;.&lt;span style=&quot;color: #ff0000;&quot;&gt;'/uploads/'&lt;/span&gt;.&lt;span style=&quot;color: #0000ff;&quot;&gt;$att&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'attach_thumb_location'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span style=&quot;color: #ff0000;&quot;&gt;'&amp;quot; class=&amp;quot;attach&amp;quot; alt=&amp;quot;'&lt;/span&gt;.&lt;span style=&quot;color: #0000ff;&quot;&gt;$att&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'attach_file'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span style=&quot;color: #ff0000;&quot;&gt;'&amp;quot; /&amp;gt;&amp;lt;/a&amp;gt;'&lt;/span&gt;; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #b1b100;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$out&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/code&gt;</description>
    
    
    
          <comments>http://www.llaumgui.com/post/ipbsdk-et-la-mauvaise-gestion-des-attachements#comment-form</comments>
      <wfw:comment>http://www.llaumgui.com/post/ipbsdk-et-la-mauvaise-gestion-des-attachements#comment-form</wfw:comment>
      <wfw:commentRss>http://www.llaumgui.com/feed/rss2/comments/49</wfw:commentRss>
      </item>
    
  <item>
    <title>Messages et sujets sous modération (queued)</title>
    <link>http://www.llaumgui.com/post/messages-et-sujets-sous-moderation-queued</link>
    <guid isPermaLink="false">urn:md5:fd5a813d3578dcb05e04829c3a544d0b</guid>
    <pubDate>Thu, 30 Jun 2005 12:00:00 +0000</pubDate>
    <dc:creator>llaumgui</dc:creator>
        <category>Développement web</category>
        <category>IPB</category><category>IPBSDK</category><category>mods</category><category>php</category><category>XPerience-Fr</category>    
    <description>&lt;p&gt;Lors de l'un de mes rares passages sur l'index de mes forums (&lt;a href=&quot;http://forums.xperience-fr.net&quot; hreflang=&quot;fr&quot;&gt;XPerience-Fr&lt;/a&gt;), je me suis rendu compte d'un message en attente de modération (état invisible) depuis plus d'une semaine.
La constatation est simple, un portail et la fonction &amp;quot;Voir les nouveaux messages&amp;quot; fait que nous ne passons presque plus sur l'index des forums.&lt;/p&gt;    &lt;p&gt;Après &lt;a href=&quot;http://ipb2.ipbr-fr.com/index.php?showtopic=1316&quot; hreflang=&quot;fr&quot;&gt;une discutions chez les copain d'IPBR-Fr&lt;/a&gt;, la solution la plus simple me parait d'afficher un message dans la boite membre comme cela :&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.llaumgui.com/public/images/show_queued.png&quot; alt=&quot;show_queued.png&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Pour cela j'utilise une fonction dans la classe MySDK (&lt;a href=&quot;http://www.llaumgui.com/post/heritage-du-ipbsdk-1-theorie&quot; hreflang=&quot;fr&quot;&gt;Petit rappel&lt;/a&gt;) que je vous livre :&lt;/p&gt;

&lt;code class=&quot;php&quot;&gt;**&lt;br /&gt;
* Retourne le nombre de message et de topics en attente de validation.&lt;br /&gt;
* @author Guillaume Kulakowski &amp;lt;guillaume_AT_llaumgui_DOT_com&amp;gt;&lt;br /&gt;
* @&lt;span style=&quot;color: #b1b100;&quot;&gt;return&lt;/span&gt; &lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;array&lt;/span&gt;&lt;/a&gt; topics et posts en attente de validation&lt;br /&gt;
*/&lt;br /&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; get_queued&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; !&lt;a href=&quot;http://www.php.net/empty&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$GLOBALS&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'ibforums'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;cache&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'forum_cache'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &amp;amp;&amp;amp; &lt;a href=&quot;http://www.php.net/is_array&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;is_array&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$GLOBALS&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'ibforums'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;cache&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'forum_cache'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #0000ff;&quot;&gt;$queued_topics&lt;/span&gt; &amp;nbsp;= &lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #0000ff;&quot;&gt;$queued_posts&lt;/span&gt; = &lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #b1b100;&quot;&gt;foreach&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$GLOBALS&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'ibforums'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;cache&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'forum_cache'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;as&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$id&lt;/span&gt; =&amp;gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$value&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #0000ff;&quot;&gt;$queued_topics&lt;/span&gt; &amp;nbsp;+= &lt;span style=&quot;color: #0000ff;&quot;&gt;$value&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'queued_topics'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #0000ff;&quot;&gt;$queued_posts&lt;/span&gt; &amp;nbsp;+= &lt;span style=&quot;color: #0000ff;&quot;&gt;$value&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'queued_posts'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #b1b100;&quot;&gt;return&lt;/span&gt; &lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$queued_topics&lt;/span&gt;, &lt;span style=&quot;color: #0000ff;&quot;&gt;$queued_posts&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #b1b100;&quot;&gt;else&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;false&lt;/span&gt;; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/code&gt;


&lt;p&gt;Cette nouvelle fonction gère le retour d'information, il suffit alors de modifier la fonction d'affichage.
Le nouveau message affiché renvoi vers la liste des messages sous modérations, pour cela, j'utilise l'auto-module &amp;quot;Show queued&amp;quot; bientôt disponible chez IPBR-Fr.&lt;/p&gt;


&lt;p&gt;&lt;em&gt;Petit rappel sur ce qu'est un auto-module: C'est un mod pour IPB ne nécessitant aucune modification de fichier et utilisant le lanceur auto-module d'IPB.&lt;/em&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.llaumgui.com/post/messages-et-sujets-sous-moderation-queued#comment-form</comments>
      <wfw:comment>http://www.llaumgui.com/post/messages-et-sujets-sous-moderation-queued#comment-form</wfw:comment>
      <wfw:commentRss>http://www.llaumgui.com/feed/rss2/comments/30</wfw:commentRss>
      </item>
    
  <item>
    <title>IPB-SDK, les guests et le cache</title>
    <link>http://www.llaumgui.com/post/ipb-sdk-les-guests-et-le-cache</link>
    <guid isPermaLink="false">urn:md5:f64765ff10c4e0f42c26dc25ab0fde02</guid>
    <pubDate>Tue, 31 May 2005 19:44:00 +0000</pubDate>
    <dc:creator>llaumgui</dc:creator>
        <category>Développement web</category>
        <category>cache</category><category>IPB</category><category>IPBSDK</category><category>optimisation</category><category>php</category><category>XPerience-Fr</category>    
    <description>&lt;p&gt;Ayant recodé le système de débug pour mon site, j'ai analysé les requêtes MySQL. J'ai effectué l'analyse logué en membre et délogué comme simple invité. La logique voudrait qu'un membre demande plus de requête du fait qu'il interroge sa boite de message privé, récupère ses infos, etc. Hors sous IPB-SDK c'est l'inverse.&lt;/p&gt;    &lt;p&gt;Le listing des requêtes faite ressortir une requête identique qui se répète plusieurs fois (5 fois dans mon cas) :&lt;/p&gt;

&lt;code class=&quot;sql&quot;&gt;&lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;SELECT&lt;/span&gt; m.*, me.signature, me.avatar_size, me.avatar_location, me.avatar_type, me.vdirs,&lt;br /&gt;
me.location, me.msnname, me.interests, me.yahoo, me.website, me.aim_name, me.icq_number,&lt;br /&gt;
g.*, cf.*&lt;br /&gt;
&lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;FROM&lt;/span&gt; ibf_members m&lt;br /&gt;
&lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;LEFT&lt;/span&gt; &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;JOIN&lt;/span&gt; ibf_groups g &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;ON&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;m.mgroup=g.g_id&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;LEFT&lt;/span&gt; &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;JOIN&lt;/span&gt; ibf_pfields_content cf &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;ON&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;cf.member_id=m.id&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;LEFT&lt;/span&gt; &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;JOIN&lt;/span&gt; ibf_member_extra me &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;ON&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;me.id=m.id&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;WHERE&lt;/span&gt; m.id=&lt;span style=&quot;color: #ff0000;&quot;&gt;'0'&lt;/span&gt;&lt;/code&gt;


&lt;p&gt;Le constat est rapide. Il n'y a pas de membre à l'id = 0. La requête retourne rien donc alimente le cache avec rien. De ce fait une interrogation du cache ne retourne rien et ré-effectue la requête.
La fonction concernée par ce problème et la fonction &lt;strong&gt;get_advinfo()&lt;/strong&gt; que j'ai redéfinie pour qu'elle tienne compte des invités.&lt;/p&gt;

&lt;code class=&quot;php&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/**&lt;br /&gt;
* Grabs detailed information on a member.&lt;br /&gt;
* Modification : Gestion des guest.&lt;br /&gt;
* @author Guillaume Kulakowski &amp;lt;guillaume_AT_llaumgui_DOT_com&amp;gt;&lt;br /&gt;
* @author Pita (conversion to 2.0) &amp;lt;peter@randomnity.com&amp;gt;&lt;br /&gt;
* @author Cow &amp;lt;khlo@global-centre.com&amp;gt;&lt;br /&gt;
* @param integer $memberid&lt;br /&gt;
* @return array Member Information, or FALSE on failure&lt;br /&gt;
* @see get_info(),get_avatar(),get_raw_sig(),get_photo(),get_member_pips(),get_member_icon(),get_num_new_posts(),get_skin_id()&lt;br /&gt;
*/&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; get_advinfo&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$memberid&lt;/span&gt; = &lt;span style=&quot;color: #ff0000;&quot;&gt;''&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;!&lt;span style=&quot;color: #0000ff;&quot;&gt;$memberid&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$memberid&lt;/span&gt; = &lt;span style=&quot;color: #0000ff;&quot;&gt;$GLOBALS&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'ibforums'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;member&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'id'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// Gestion des guests non présentes de base ! :&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;a href=&quot;http://www.php.net/empty&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$memberid&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; || &lt;span style=&quot;color: #0000ff;&quot;&gt;$memberid&lt;/span&gt; == &lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;false&lt;/span&gt;; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #b1b100;&quot;&gt;else&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$cache&lt;/span&gt; = &lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;get_cache&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'get_advinfo'&lt;/span&gt;, &lt;span style=&quot;color: #0000ff;&quot;&gt;$memberid&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$cache&lt;/span&gt;; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #b1b100;&quot;&gt;else&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;DB&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;query&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;SELECT m.*, me.signature, me.avatar_size, me.avatar_location, me.avatar_type, me.vdirs,&lt;br /&gt;
me.location, me.msnname, me.interests, me.yahoo,&lt;br /&gt;
me.website, me.aim_name, me.icq_number,&lt;br /&gt;
g.*, cf.*&lt;br /&gt;
FROM ibf_members m&lt;br /&gt;
LEFT JOIN ibf_groups g ON (m.mgroup=g.g_id)&lt;br /&gt;
LEFT JOIN ibf_pfields_content cf ON (cf.member_id=m.id)&lt;br /&gt;
LEFT JOIN ibf_member_extra me ON (me.id=m.id)&lt;br /&gt;
WHERE m.id='&amp;quot;&lt;/span&gt; . &lt;a href=&quot;http://www.php.net/intval&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;intval&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$memberid&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; . &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;'&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;DB&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;get_num_rows&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #0000ff;&quot;&gt;$info&lt;/span&gt; = &lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;DB&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;fetch_row&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;save_cache&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'get_advinfo'&lt;/span&gt;, &lt;span style=&quot;color: #0000ff;&quot;&gt;$memberid&lt;/span&gt;, &lt;span style=&quot;color: #0000ff;&quot;&gt;$info&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #b1b100;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$info&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #b1b100;&quot;&gt;else&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;FALSE&lt;/span&gt;; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/code&gt;


&lt;p&gt;Dans le cas d'&lt;a href=&quot;http://www.xperience-fr.net&quot; hreflang=&quot;fr&quot;&gt;XPerience-Fr&lt;/a&gt;, cette fonction étant utilisée plusieurs fois, j'économise ainsi 5 requêtes MySQL sur la page d'accueil. Vous pouvez en gagner plus ou moins selon votre code.&lt;/p&gt;</description>
    
    
    
      </item>
    
  <item>
    <title>Cache ipbSDK vs cache IPB</title>
    <link>http://www.llaumgui.com/post/cache-ipbsdk-vs-cache-ipb</link>
    <guid isPermaLink="false">urn:md5:c43e1e49d40397e0622564560966b59a</guid>
    <pubDate>Sat, 28 May 2005 11:19:00 +0000</pubDate>
    <dc:creator>llaumgui</dc:creator>
        <category>Développement web</category>
        <category>cache</category><category>IPB</category><category>IPBSDK</category><category>optimisation</category><category>php</category>    
    <description>&lt;p&gt;Afin d'afficher 2 blocs d'informations supplémentaires sur ma page d'accueil, je me suis mis à étudier les requêtes MySQL engendrées par le ipbSDK afin d'en réduire leur nombre et de pouvoir en mettre 2 de plus pour mes 2 blocs :).
Et la surprise :&lt;/p&gt;    &lt;code class=&quot;sql&quot;&gt;&lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;SELECT&lt;/span&gt; * &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;FROM&lt;/span&gt; ibf_cache_store &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;WHERE&lt;/span&gt; cs_key &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;IN&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'banfilters'&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;'settings'&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;'group_cache'&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;'systemvars'&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;'skin_id_cache'&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;'forum_cache'&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;'moderators'&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;'stats'&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;'languages'&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/code&gt;

&lt;code class=&quot;sql&quot;&gt;&lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;SELECT&lt;/span&gt; cs_value &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;FROM&lt;/span&gt; ibf_cache_store &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;WHERE&lt;/span&gt; cs_key = &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;stats&amp;quot;&lt;/span&gt;&lt;/code&gt;


&lt;p&gt;A quoi sert de charger les informations issue du cache IPB (1ère requête), si la fonction get_board_stats() ne les utilise pas ???!!!
La réponse est malheureusement simple, le cache ipbSDK (&lt;strong&gt;$this-&amp;gt;_CACHE&lt;/strong&gt;) et celui d'IPB (&lt;strong&gt;$GLOBALS&lt;a href=&quot;http://www.llaumgui.com/post/'ibforums'&quot; title=&quot;'ibforums'&quot;&gt;'ibforums'&lt;/a&gt;-&amp;gt;cache&lt;/strong&gt;) sont différents... J'ai d'abord pensé charger le cache IPB dans celui du SDK:&lt;/p&gt;

&lt;code class=&quot;php&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;_cache = &lt;span style=&quot;color: #0000ff;&quot;&gt;$GLOBALS&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'ibforums'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;cache&lt;/span&gt;&lt;/code&gt;


&lt;p&gt;Mais quel intêret de 2 cache identique ?
Et de plus je trouvais que leur vocations étaient différentes car le cache du SDK pouvais contenir des informations sur le membres et non pas uniquement sur le forum... J'ai donc modifié la fonction get_board_stats() pour qu'elle interroge non pas le cache ipbSDK mais celui d'IPB. Bilan, 1 requêtes de gagnée !!!&lt;/p&gt;

&lt;code class=&quot;php&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/**&lt;br /&gt;
* Obtenir les statistiques de mon forums.&lt;br /&gt;
* Modification : Liaison avec le cache IPB au lieu de celui du SDK.&lt;br /&gt;
* @author Guillaume Kulakowski &amp;lt;guillaume_AT_llaumgui_DOT_com&amp;gt;&lt;br /&gt;
* @author Pita (conversion to 2.0) &amp;lt;peter_AT_randomnity.com&amp;gt;&lt;br /&gt;
* @author Cow &amp;lt;khlo_AT_global-centre.com&amp;gt;&lt;br /&gt;
* @return array Board Statistics&lt;br /&gt;
*/&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; get_board_stats&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// 1 : Je cherche dans le cache IPB :&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; !&lt;a href=&quot;http://www.php.net/empty&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$GLOBALS&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'ibforums'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;cache&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'stats'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &amp;amp;&amp;amp; &lt;a href=&quot;http://www.php.net/is_array&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;is_array&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$GLOBALS&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'ibforums'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;cache&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'stats'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span style=&quot;color: #b1b100;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$GLOBALS&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'ibforums'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;cache&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'stats'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #b1b100;&quot;&gt;else&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;DB&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;query&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'SELECT cs_value FROM ibf_cache_store WHERE cs_key = &amp;quot;stats&amp;quot;'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0000ff;&quot;&gt;$row&lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = &lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;DB&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;fetch_row&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0000ff;&quot;&gt;$stats&lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= &lt;a href=&quot;http://www.php.net/unserialize&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;unserialize&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/stripslashes&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;stripslashes&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$row&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'cs_value'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0000ff;&quot;&gt;$GLOBALS&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'ibforums'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;cache&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'stats'&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; &amp;nbsp; &amp;nbsp; = &amp;nbsp;&lt;span style=&quot;color: #0000ff;&quot;&gt;$stats&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #b1b100;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$stats&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/code&gt;


&lt;p&gt;A noter que la modification utilise ma &lt;a href=&quot;http://www.llaumgui.com/post/heritage-du-ipbsdk-1-theorie&quot; hreflang=&quot;fr&quot;&gt;classe MySQL&lt;/a&gt; et que je n'ai pas modifié la fonction du SDK mais que je l'ai redéfinie.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.llaumgui.com/post/cache-ipbsdk-vs-cache-ipb#comment-form</comments>
      <wfw:comment>http://www.llaumgui.com/post/cache-ipbsdk-vs-cache-ipb#comment-form</wfw:comment>
      <wfw:commentRss>http://www.llaumgui.com/feed/rss2/comments/28</wfw:commentRss>
      </item>
    
  <item>
    <title>Héritage du ipbSDK - Part3 (De nouvelles variables)</title>
    <link>http://www.llaumgui.com/post/heritage-du-ipbsdk-3-de-nouvelles-variables</link>
    <guid isPermaLink="false">urn:md5:6b6baf824b3e77cdef65939ddc7cec41</guid>
    <pubDate>Fri, 18 Mar 2005 22:28:00 +0000</pubDate>
    <dc:creator>llaumgui</dc:creator>
        <category>Développement web</category>
        <category>héritage</category><category>IPB</category><category>IPBSDK</category><category>php</category>    
    <description>&lt;p&gt;Dans vos fonctions utilisant le ipbSDK (Ou MySDK dans notre cas), il peut être fort pratique d'utiliser des variables du style $SDK-&amp;amp;gt;portal_url. Pour cela, rien de plus simple, surtout si vous avez suivis les 2 premières parties.&lt;/p&gt;    &lt;p&gt;La première étape et d'ajouter la variable et ça valeur dans le fichier de configuration du SDK : &lt;em&gt;ipbsdk_conf.inc.php&lt;/em&gt;.&lt;/p&gt;


&lt;p&gt;Ensuite, vous devez déclarer la variable dans votre classe SDK et charger ça valeur dans le constructeur.&lt;/p&gt;

&lt;code class=&quot;php&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/**&lt;br /&gt;
*------------------------------------------------------------------------&lt;br /&gt;
* &amp;nbsp; Portail XPerience 4.01.&lt;br /&gt;
* ========================================&lt;br /&gt;
* @package XPerience-Fr&lt;br /&gt;
* @copyright Guillaume Kulakowski&lt;br /&gt;
*/&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #b1b100;&quot;&gt;require_once&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'ipbsdk_class.inc.php'&lt;/span&gt;;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/**&lt;br /&gt;
* Classe MySDK héritant du IPBSDK et permettant de l'optimiser sans patir de la difficulté&lt;br /&gt;
* de future maj.&lt;br /&gt;
* @package IPBSDK&lt;br /&gt;
*/&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;class&lt;/span&gt; MySDK &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;extends&lt;/span&gt; IPBSDK &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;var&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$portal_url&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/**&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;* Constructeur de la sous-classe MySDK.&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* @param array $options Use this to overwrite settings from the configuration file.&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;* @todo Virer le require_once&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;* @since 4.01&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;*/&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; MySDK &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$options&lt;/span&gt; = &lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;'root_path'&lt;/span&gt; =&amp;gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;''&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;'board_url'&lt;/span&gt; =&amp;gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;''&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;'sdklang'&lt;/span&gt; =&amp;gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;''&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;'board_version'&lt;/span&gt; =&amp;gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;''&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;'allow_caching'&lt;/span&gt;=&amp;gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;''&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;'timer'&lt;/span&gt;=&amp;gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;''&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;'debug'&lt;/span&gt;=&amp;gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;''&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #b1b100;&quot;&gt;require_once&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'ipbsdk_conf.inc.php'&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0000ff;&quot;&gt;$IPBSDK&lt;/span&gt; = IPBSDK::&lt;span style=&quot;color: #006600;&quot;&gt;IPBSDK&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$options&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// On passe les argument au super.constructeur.&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// Je charge mes variables :&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0000ff;&quot;&gt;$this&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;portal_url&lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= &lt;span style=&quot;color: #0000ff;&quot;&gt;$portal_url&lt;/span&gt;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/code&gt;

&lt;fieldset class=&quot;links&quot;&gt;&lt;legend&gt;Poursuivre : &lt;/legend&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.llaumgui.com/post/heritage-du-ipbsdk-1-theorie&quot; hreflang=&quot;fr&quot;&gt;Héritage du ipbSDK - Part1 (La théorie)&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.llaumgui.com/post/heritage-du-ipbsdk-part2-premier-pas&quot; hreflang=&quot;fr&quot;&gt;Héritage du ipbSDK - Part2 (Premier pas)&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Héritage du ipbSDK - Part3 (De nouvelles variables).&lt;/li&gt;
&lt;/ul&gt;
&lt;/fieldset&gt;</description>
    
    
    
          <comments>http://www.llaumgui.com/post/heritage-du-ipbsdk-3-de-nouvelles-variables#comment-form</comments>
      <wfw:comment>http://www.llaumgui.com/post/heritage-du-ipbsdk-3-de-nouvelles-variables#comment-form</wfw:comment>
      <wfw:commentRss>http://www.llaumgui.com/feed/rss2/comments/24</wfw:commentRss>
      </item>
    
  <item>
    <title>Héritage du ipbSDK - Part2 (Premier pas)</title>
    <link>http://www.llaumgui.com/post/heritage-du-ipbsdk-part2-premier-pas</link>
    <guid isPermaLink="false">urn:md5:e0bd02da31285c95028f608341fb489d</guid>
    <pubDate>Thu, 03 Mar 2005 19:52:00 +0000</pubDate>
    <dc:creator>llaumgui</dc:creator>
        <category>Développement web</category>
        <category>héritage</category><category>IPB</category><category>IPBSDK</category><category>php</category>    
    <description>&lt;p&gt;&lt;a href=&quot;http://www.llaumgui.com/index.php/2005/03/03/24-php4-et-lheritage&quot; hreflang=&quot;fr&quot;&gt;Ma précédente aventure&lt;/a&gt; m'a permise de me familiariser avec le concept d'héritage sous php. L'aventure MySDK (Nom de ma classe héritant de IPBSDK) peut donc commencer.&lt;/p&gt;    &lt;p&gt;La première étape est de construire une classe MySDK (mysdk.php) héritant du IPBSDK. Pour commencer cette classe sera vide, donc héritant de la totalité des fonctions du SDK.&lt;/p&gt;

&lt;code class=&quot;php&quot;&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;require_once&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'ipbsdk_class.inc.php'&lt;/span&gt;;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;class&lt;/span&gt; MySDK &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;extends&lt;/span&gt; IPBSDK &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;br /&gt;
&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/code&gt;


&lt;p&gt;Cela fait, il suffit de modifier notre script php et remplacer :&lt;/p&gt;

&lt;code class=&quot;php&quot;&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;require_once&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'ipbsdk_class.inc.php'&lt;/span&gt;;&lt;br /&gt;
&lt;span style=&quot;color: #0000ff;&quot;&gt;$SDK&lt;/span&gt; =&amp;amp; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; IPBSDK&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;timer&amp;quot;&lt;/span&gt; =&amp;gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// Load with Timer&lt;/span&gt;&lt;/code&gt;


&lt;p&gt;Par :&lt;/p&gt;

&lt;code class=&quot;php&quot;&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;require_once&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;'mysdk.php'&lt;/span&gt;;&lt;br /&gt;
&lt;span style=&quot;color: #0000ff;&quot;&gt;$SDK&lt;/span&gt; =&amp;amp; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; MySDK&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;timer&amp;quot;&lt;/span&gt; =&amp;gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// Load with Timer&lt;/span&gt;&lt;/code&gt;


&lt;p&gt;Voila, vous n'utilisez plus IPBSDK, mais une classe héritant du IPBSDK que vous pouvez faire évoluer à part en rajoutant des fonction ou en redéfinissant. Nous aborderons l'optimisation du SDK dans un prochain billet&lt;/p&gt;

&lt;fieldset class=&quot;links&quot;&gt;&lt;legend&gt;Poursuivre : &lt;/legend&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.llaumgui.com/index.php/2005/02/26/23-heritage-du-ipbsdk-1-theorie&quot; hreflang=&quot;fr&quot;&gt;Héritage du ipbSDK - Part1 (La théorie)&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Héritage du ipbSDK - Part2 (Premier pas).&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.llaumgui.com/index.php/2005/03/18/27-heritage-du-ipbsdk-3-de-nouvelles-variables&quot; hreflang=&quot;fr&quot;&gt;Héritage du ipbSDK - Part3 (De nouvelles variables)&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/fieldset&gt;</description>
    
    
    
          <comments>http://www.llaumgui.com/post/heritage-du-ipbsdk-part2-premier-pas#comment-form</comments>
      <wfw:comment>http://www.llaumgui.com/post/heritage-du-ipbsdk-part2-premier-pas#comment-form</wfw:comment>
      <wfw:commentRss>http://www.llaumgui.com/feed/rss2/comments/22</wfw:commentRss>
      </item>
    
  <item>
    <title>Héritage du ipbSDK - Part1 (La théorie)</title>
    <link>http://www.llaumgui.com/post/heritage-du-ipbsdk-1-theorie</link>
    <guid isPermaLink="false">urn:md5:1bb52a1956f517ca2ae1c0fe27485759</guid>
    <pubDate>Sat, 26 Feb 2005 17:50:00 +0000</pubDate>
    <dc:creator>llaumgui</dc:creator>
        <category>Développement web</category>
        <category>héritage</category><category>IPB</category><category>IPBSDK</category><category>php</category>    
    <description>&lt;p&gt;Le portail que j'ai développé pour &lt;a href=&quot;http://www.xperience-fr.net&quot; hreflang=&quot;fr&quot;&gt;XPerience-Fr&lt;/a&gt; et que j'utilise aussi sur &lt;a href=&quot;http://www.meta-contact.net&quot; hreflang=&quot;fr&quot;&gt;Meta-Contact&lt;/a&gt; est développé en utilisant l'&lt;a href=&quot;http://www.atelierphp5.com/application-program-interface-api.html&quot; hreflang=&quot;fr&quot;&gt;API&lt;/a&gt; &lt;a href=&quot;http://ipbsdk.sourceforge.net/&quot; hreflang=&quot;en&quot;&gt;IPB-SDK&lt;/a&gt;. Cependant ayant modifié voir réécris un grand nombre de fonctions, les mise à jour du SDK sont très laborieuses... C'est là que la gestion de l'objet et de l'héritage sous php (Et surtout sous php5) prend tout son sens.&lt;/p&gt;    &lt;p&gt;&lt;em&gt;&lt;q&gt;Tout d'abords, ce billet fait suite à mon constat de la puissance de php5 et se base plus sur mes connaissances/compétences en Java mais je suis presque sûr que cela doit être applicable sans problème au php5 (voir php4), c'est d'ailleurs ce qui va m'occuper ces prochains jours.&lt;/q&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;L'idée est de ne plus instancier le ipbSDK ( &lt;span style=&quot;color: rgb(153, 153, 153);&quot;&gt;$SDK =&amp;amp; new IPBSDK( array(&amp;quot;timer&amp;quot; =&amp;gt; &amp;quot;1&amp;quot;) ); &lt;/span&gt; ) mais une classe héritant du SDK que nous appèlerons &lt;strong&gt;MySDK&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Cette classe faisant appel aux fonctions du SDK (Principe de l'héritage), mais utilisant la redéfinition de fonction (&lt;em&gt;Action de redéfinir un fonction d'une sous-classe dans une sur-classe&lt;/em&gt;) au lieu de modifier directement le SDK. De ce fait on se retrouverait avec un SDK de base mais utilisant les fonctions réécrites. De là, les mises à jour s'en retrouveraient facilitées car elles correspondraient juste a un upload du nouvel SDK et à quelques corrections de la classe MySDK.&lt;/p&gt;
&lt;p&gt;Me reste plus qu'à passer de la théorie à la pratique :-).&lt;/p&gt;
&lt;fieldset class=&quot;links&quot;&gt;&lt;legend&gt;Poursuivre : &lt;/legend&gt;&lt;ul&gt;
&lt;li&gt;Héritage du ipbSDK - Part1 (La théorie).&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.llaumgui.com/post/heritage-du-ipbsdk-part2-premier-pas&quot; hreflang=&quot;fr&quot;&gt;Héritage du ipbSDK - Part2 (Premier pas)&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.llaumgui.com/post/heritage-du-ipbsdk-3-de-nouvelles-variables&quot; hreflang=&quot;fr&quot;&gt;Héritage du ipbSDK - Part3 (De nouvelles variables)&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/fieldset&gt;</description>
    
    
    
          <comments>http://www.llaumgui.com/post/heritage-du-ipbsdk-1-theorie#comment-form</comments>
      <wfw:comment>http://www.llaumgui.com/post/heritage-du-ipbsdk-1-theorie#comment-form</wfw:comment>
      <wfw:commentRss>http://www.llaumgui.com/feed/rss2/comments/20</wfw:commentRss>
      </item>
    
</channel>
</rss>