Balise #RUBRIQUE_PRINCIPALE - commentairesBalise #RUBRIQUE_PRINCIPALE f2009-09-27T18:59:39Zhttps://contrib.spip.net/Balise-RUBRIQUE_PRINCIPALE#comment4210452009-09-27T18:59:39Z<p>Arthegone,</p>
<p>Pour que celà fonctionne, il faut que la boucle contenant #RUBRIQUEPRINCIPALE soit incluse dans une boucle mère. Alors ça marchera<small class="fine d-inline"> </small>;)</p>
<p>Jérémie.</p>Balise #RUBRIQUE_PRINCIPALE2009-09-26T19:40:14Zhttps://contrib.spip.net/Balise-RUBRIQUE_PRINCIPALE#comment4210162009-09-26T19:40:14Z<p>Bonjour<small class="fine d-inline"> </small>!</p>
<p>Merci pour cette contribution<small class="fine d-inline"> </small>!! Très interessante.</p>
<p>Existe-t-il quelque chose de similaire pour les brèves<small class="fine d-inline"> </small>?</p>
<p>Comment faire dans un cas de multilinguisme avec des rubrique racine par langue pour insérer des brèves associée, aux rubriques principale, justement ....</p>
<p>Si quelqu'un a une idée...</p>Balise #RUBRIQUE_PRINCIPALE2009-03-31T12:17:04Zhttps://contrib.spip.net/Balise-RUBRIQUE_PRINCIPALE#comment4149752009-03-31T12:17:04Z<p>OK j'avais bien noté :)</p>
<p>Je me suis mal exprimé.</p>
<p>Moi aussi spip_rubriques est le nom de ma table (prefixe par defaut « spip_ »).</p>
<p>Pour le moment je ne vois pas ce qui merde...</p>
<p>Faut que je trouve ce qui me génère cette erreur.</p>
<p>Merci encore Thomas<small class="fine d-inline"> </small>;)</p>
<p>PS :<br class="autobr">
Est il possible que tu m'envoie ton mes_fonction.php<small class="fine d-inline"> </small>?</p>Balise #RUBRIQUE_PRINCIPALE2009-03-31T09:48:47Zhttps://contrib.spip.net/Balise-RUBRIQUE_PRINCIPALE#comment4149702009-03-31T09:48:47Z<p>Spip_rubriques est le nom de MA table. Il faut bien sur adapter le code en fonction de ta configuration.</p>Balise #RUBRIQUE_PRINCIPALE2009-03-30T22:27:28Zhttps://contrib.spip.net/Balise-RUBRIQUE_PRINCIPALE#comment4149632009-03-30T22:27:28Z<blockquote class="spip">
<p>As-tu au préalable modifié le code en fonction du nom de ta table<small class="fine d-inline"> </small>?</p>
<p>Je m'explique : dans le code suivant tu dois remplacer spip_rubriques par le nom de ta table Mysql.<br class="autobr">
$requete = « SELECT id_parent, id_secteur FROM spip_rubriques WHERE id_rubrique = $idrubrique »<small class="fine d-inline"> </small>;</p>
</blockquote>
<p>Thomas, je ne comprends pas pourquoi je dois changer ma table spip_rubriques. Il me semble que c'est elle qui gere justement les rubriques.</p>
<p>Par contre (je ne suis pas un pro de SQL) mais jamais on ne met le nom de la base SQL c'est normal<small class="fine d-inline"> </small>?</p>
<p>sinon je ne vois pas pourquoi cela merde aussi bien en local que sur le web.</p>
<p>Tu as quelle version de spip exactement<small class="fine d-inline"> </small>?</p>Balise #RUBRIQUE_PRINCIPALE2009-03-30T12:56:15Zhttps://contrib.spip.net/Balise-RUBRIQUE_PRINCIPALE#comment4149252009-03-30T12:56:15Z<p>As-tu au préalable modifié le code en fonction du nom de ta table<small class="fine d-inline"> </small>?</p>
<p>Je m'explique : dans le code suivant tu dois remplacer <i>spip_rubriques</i> par le nom de ta table Mysql.</p>
<div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code>$requete = "SELECT id_parent, id_secteur FROM spip_rubriques WHERE id_rubrique = $idrubrique";</code></pre></div>Balise #RUBRIQUE_PRINCIPALE2009-03-30T10:15:04Zhttps://contrib.spip.net/Balise-RUBRIQUE_PRINCIPALE#comment4149202009-03-30T10:15:04Z<p>Salut Thomas,</p>
<p>Suite à l'utilisation de ton PREMIER code, pour commencer, j'ai une erreur sur mes_fonctions.php</p>
<p><strong>message :</strong></p>
<p>Warning : mysql_fetch_row() : supplied argument is not a valid MySQL result resource in F :\PortableApps\EasyPHP 2.0b1\www\spipjuin2008\mes_fonctions.php on line 13</p>
<p><strong>Mon fichier mes_fonctions.php</strong></p>
<div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code><?php
function balise_RUBRIQUEPRINCIPALE($p){
$_id_rubrique = interprete_argument_balise(1,$p); if (!$_id_rubrique) $_id_rubrique = champ_sql('id_rubrique',$p); $p->code = "fce_getRubriquePrincipale($_id_rubrique)" ; $p->interdire_scripts = false; return $p;
}
function fce_getRubriquePrincipale($idrubrique) {
$requete = "SELECT id_parent, id_secteur FROM spip_rubriques WHERE id_rubrique = $idrubrique";
$query = mysql_query($requete);
$row = mysql_fetch_row($query);
$idparent = $row[0];
$idsecteur = $row[1];
if ($idparent == $idsecteur) return $idrubrique;
return fce_getRubriquePrincipale($idparent, $idsecteur);
}
?></code></pre></div>
<p>il n'y a rien d'autre que ton script.</p>
<p>Je ne comprend pas l'erreur en fait.</p>
<p>La balise #INSERT_HEAD est presente dans ma page (sommaire.html)</p>
<p>Et j'ai ton code de base pour le bouclage.</p>
<p>Bizarre...</p>Balise #RUBRIQUE_PRINCIPALE2009-03-27T12:29:34Zhttps://contrib.spip.net/Balise-RUBRIQUE_PRINCIPALE#comment4148332009-03-27T12:29:34Z<p>Bonjour, ce code ne fonctionne que pour des rubriques de niveau 1 (dont le parent est id_secteur). En effet, le principe de la boucle est d'effectuer une <strong>récursivité</strong> jusqu'à ce que <strong>id_parent soit égal à id_secteur</strong>. Maintenant si tu veux récuperer les id des rubriques de niveau 3 je te propose le code suivant un peu différent :</p>
<div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code>function fce_getRubriquePrincipale($idrubrique) {
$requete = "SELECT id_parent, id_secteur FROM spip_rubriques WHERE id_rubrique = $idrubrique";
$query = mysql_query($requete);
$row = mysql_fetch_row($query);
$idparent = $row[0];
$idsecteur = $row[1];
if ($idparent == $idsecteur) {
$requete2 = "SELECT id_rubrique FROM spip_rubriques WHERE id_parent = $idrubrique";
$query2 = mysql_query($requete2);
$row2 = mysql_fetch_row($query2);
$idniveau2 = $row2[0]; $requete3 = "SELECT id_rubrique FROM spip_rubriques WHERE id_parent = $idniveau2";
$query3 = mysql_query($requete3);
$row3 = mysql_fetch_row($query3);
$idniveau3 = $row3[0]; return $idniveau3; }
return fce_getRubriquePrincipale($idparent);
}</code></pre></div>Balise #RUBRIQUE_PRINCIPALE2009-03-27T09:48:17Zhttps://contrib.spip.net/Balise-RUBRIQUE_PRINCIPALE#comment4148242009-03-27T09:48:17Z<p>Bonjour Thomas, contribution très interessante.</p>
<p>En ce qui me concerne (ne maitrisant pas trop le php) mes secteurs serait plutot de niveau 3.</p>
<p>Quelle est la valeur à changer dans mes_fonctions.php<small class="fine d-inline"> </small>?</p>