Seltsames SPIP-Verhalten

Hallo - schon wieder ein Problem,

diesmal recht kurios: Ich arbeite gerade parallel an mehreren SPIP-Projekten. Als ich mich nun ins Redaktionssystem von Projekt A eingeloggt hatte, bekam ich das Backend von Projekt B angezeigt. Also ausgeloggt, neu eingeloggt: Backend Projekt B. Spip-Cache gelöscht, Browser-Cache gelöscht: Backend Projekt B. URL stimmt natürlich. Beide Projekt liegen auch auf verschiedenen Servern, nutzen verschiedene Datenbanken etc. Kennt das jemand und hat eine Idee? Wäre dankbar.

Grüße,
Carsten

Hast Du vielleicht ein Projekt geklont, so dass der Site-URL im Adminbereich noch geändert werden muss?

Menü "Konfiguration"->"Adresse (URL) der öffentlichen Website"

Grusz,
klaus++

Carsten Werner schrieb:

Hallo - schon wieder ein Problem,

diesmal recht kurios: Ich arbeite gerade parallel an mehreren SPIP-Projekten. Als ich mich nun ins Redaktionssystem von Projekt A eingeloggt hatte, bekam ich das Backend von Projekt B angezeigt. Also ausgeloggt, neu eingeloggt: Backend Projekt B. Spip-Cache gelöscht, Browser-Cache gelöscht: Backend Projekt B. URL stimmt natürlich. Beide Projekt liegen auch auf verschiedenen Servern, nutzen verschiedene Datenbanken etc. Kennt das jemand und hat eine Idee? Wäre dankbar.

Grüße,
Carsten

_______________________________________________
Spip-de@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-de

Hoi Carsten,
>Hast Du vielleicht ein Projekt geklont, so dass der Site-URL im
>Adminbereich noch geändert werden muss?
>Menü "Konfiguration"->"Adresse (URL) der öffentlichen Website"

Du kommst im Backend auf die gleichen Inhalte, wenn ich das richtig versehe?
Kann es sein, dass Du in einem Projekt eine falsche DB angegeben hast? Die DB's sind ja im Prinzip völlig unabhängig. Du kannst eine beliebige SPIP-DB anschnallen (vorausgesetzt die Versionen stimmen einigermassen). Du kannst auch nachträglich die DB-Zugangsdaten ändern, im /ecrite/inc_connect.php3

Wenn Du den ganzen Cache leerst, sollten allerdings Backend und Web-Site die gleichen Contente (aus der gleichen DB) haben...

Gruss
Patrick

Hallo Carsten,

die erforderlichen Schritte zum Klonen einer SPIP-Website sind folgende:

1. Backup der Datenbank anlegen (im SPIP Redaktionsbereich)
2. Cache löschen (beschleunigt die Sache und vermeidet Probleme beim Start des Klons)
3. Download aller Dateien und Pfade im SPIP-Installationsverzeichnis
4. Upload der heruntergeladenen Dateien per FTP auf anderen Server bzw. in ein neues Verzeichnis
5. Setzen der erforderlichen Zugriffsrechte (in SPIP-Installationsanleitung beschrieben)
6. Löschen von ecrire/inc_connect.php3 und ecrire/data/meta_cache.php3
7. Ausführen der Installationsroutine ecrire/
8. Ändern der Website-URLs per Redaktionssystem
9. Wiederherstellen der Datenbank aus ecrire/data/dump.xml.gz

U.U. kann es noch hilfreich sein, im Klon die Daten in ecrire/data zu löschen.

Diese Vorgehensweise funktioniert zuverlässig bei SPIP Standardinstallationen. Zusätzliche Schritte können erforderlich werden, wenn Du Dein SPIP modifiziert hast, mehrere SPIP-Installationen auf der selben Datenbank betreibst oder serverspezifischen Code z.B. in Skeletten oder mes_options.php3 verwendest.

klaus++

Carsten Werner schrieb:

Hallo Klaus,

Hätte da noch eine Frage zum Klonen: Ich hatte jetzt schon öfter den Fall, dass meine Methode nicht funktionierte, ich nicht mehr ins Backend kam und eine Fehlermeldung bekam. So mache ich's:

1. SPIP installieren
2. Projektdatenbank importieren
3. Dateien per FTP mit meinen Projektdateien überschreiben

Gibt es bestimmte Dateien oder Ordner, die nach der Installation nicht mehr überschrieben werden dürfen?

Grüße,
Carsten

klaus++ schrieb:

Hast Du vielleicht ein Projekt geklont, so dass der Site-URL im Adminbereich noch geändert werden muss?

Menü "Konfiguration"->"Adresse (URL) der öffentlichen Website"

Grusz,
klaus++

Carsten Werner schrieb:

Hallo - schon wieder ein Problem,

diesmal recht kurios: Ich arbeite gerade parallel an mehreren SPIP-Projekten. Als ich mich nun ins Redaktionssystem von Projekt A eingeloggt hatte, bekam ich das Backend von Projekt B angezeigt. Also ausgeloggt, neu eingeloggt: Backend Projekt B. Spip-Cache gelöscht, Browser-Cache gelöscht: Backend Projekt B. URL stimmt natürlich. Beide Projekt liegen auch auf verschiedenen Servern, nutzen verschiedene Datenbanken etc. Kennt das jemand und hat eine Idee? Wäre dankbar.

Grüße,
Carsten

_______________________________________________
Spip-de@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-de

Hallo Spip-Freunde,

mit der Version von SPIP 1.82 scheint $id_article nicht mehr die Schlaufenvariable zu sein (siehe auch Anhang generiertes php).

Kann mir jemand sagen, wie man der Artikel-Nr, der Schlaufe bekommt ($Pile[$SP]['id_article'] hab ich versucht).
Ich möchte, dem aktuellen Artikel in der Navigation eine andere Klasse zuordnen.

Ich sehe grad, dass es eine neue Balise #EXPOSE gibt (die offenbar das machen soll, was ich suche).
http://www.spip.net/fr_article2319.html
Mache ich da auch was falsch? #EXPOSE hat immer blank

beste Grüsse
Patrick

--- mein INCLURE ----- Site http://virtualhousecommunity.com.jovinus-meta.net/spip1.82d/article.php3?id_article=5
<!-- Hauptnavigation links -->
<!-- Artikel unter virtualhousecommunity -->
<BOUCLE_r1_0(RUBRIQUES) {id_rubrique=1}>

<BOUCLE_art_nopub(ARTICLES){id_rubrique}{par num titre}{doublons}{titre_mot=nopublish}>
</BOUCLE_art_nopub>
<?php /*$article= #ID_ARTICLE;*/ <- meine php.Statements
  print "article:=$article/$id_article";
?>
<BOUCLE_art(ARTICLES){id_rubrique}{par num titre}{doublons}>
<?php print "article=$article/$id_article/".$Pile[$SP]['id_article'].'/'; ?>
<?php if ($article == $id_article) { ?>
<li class='lien#EXPOSE'> <----Expose ist immer blank
<?php } else { ?>
<li class="class=lien#EXPOSE">
<?php } ?>
<a href="#URL_ARTICLE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>[(#TITRE|supprimer_numero)]</a></li>
</BOUCLE_art>

<BOUCLE_menu_R_nopub(RUBRIQUES){id_parent}{doublons}{titre_mot=nopublish}>
</BOUCLE_menu_R_nopub>
<BOUCLE_menu_R(RUBRIQUES){id_parent}{par num titre}{doublons}>
<li><a href="#URL_RUBRIQUE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>[(#TITRE|supprimer_numero)]</a></li>
</BOUCLE_menu_R>

</BOUCLE_r1_0>
<!-- Ende Rubriken -->

<li><a href="http://virtualhousecommunity.com.jovinus-meta.net/spip1.82d/ecrire/articles.php3?id_article=#ID_ARTICLE&submit=Artikel+bearbeiten+(9)">Artikel bearbeiten</a></li>
</ul>

----
<?php
/*
* Squelette : squelettes/vhc_navi.html
* Date : Tue, 01 Nov 2005 06:55:17 GMT$id_article
* Compile : Tue, 01 Nov 2005 07:01:34 GMT (0.03s)
* Boucles : _art_nopub, _art, _menu_R_nopub, _menu_R, _r1_0
*/
//
// <BOUCLE articles>
//
function BOUCLE_art_nopubhtml_4c984912d56508a331b068dfa01f2780(&$Cache, &$Pile, &$doublons, &$Numrows, $SP) {

    // REQUETE
    $result = spip_abstract_select(
        array("0+articles.titre AS num",
        "articles.id_article"), # SELECT
        array("spip_mots_articles AS mots_articles7","spip_mots AS l_mots7","spip_articles AS articles"), # FROM
        array("(articles.id_rubrique = '" . addslashes($Pile[$SP]['id_rubrique']) . "')",
        "" .calcul_mysql_in('articles.id_article', "0".$doublons[$doublons_index = ('articles' . '')], 'NOT') . "",
        "articles.id_article=mots_articles7.id_article",
        "mots_articles7.id_mot=l_mots7.id_mot",
        "(l_mots7.titre = '" . addslashes('nopublish') . "')",
        "articles.statut='publie'"), # WHERE
        'articles.id_article', # GROUP
        array('num'), # ORDER
        '', # LIMIT
        '', # sous
        '', # HAVING
        'articles', # table
        '_art_nopub', # boucle
        ''); # serveur
    $t0 = "";
    $SP++;

    // RESULTATS
    while ($Pile[$SP] = @spip_abstract_fetch($result,"")) {
        $doublons[$doublons_index] .= ','. $Pile[$SP]['id_article']; // doublons

        $t0 .= '
';
    }

    @spip_abstract_free($result,'');
    return $t0;
}

//
// <BOUCLE articles>
//
function BOUCLE_arthtml_4c984912d56508a331b068dfa01f2780(&$Cache, &$Pile, &$doublons, &$Numrows, $SP) {
    $old_lang = $GLOBALS['spip_lang'];

    // REQUETE
    $result = spip_abstract_select(
        array("0+articles.titre AS num",
        "articles.id_article",
        "articles.descriptif",
        "articles.titre",
        "articles.lang"), # SELECT
        array("spip_articles AS articles"), # FROM
        array("(articles.id_rubrique = '" . addslashes($Pile[$SP]['id_rubrique']) . "')",
        "" .calcul_mysql_in('articles.id_article', "0".$doublons[$doublons_index = ('articles' . '')], 'NOT') . "",
        "articles.statut='publie'"), # WHERE
        '', # GROUP
        array('num'), # ORDER
        '', # LIMIT
        '', # sous
        '', # HAVING
        'articles', # table
        '_art', # boucle
        ''); # serveur
    $t0 = "";
    $SP++;

    // RESULTATS
    while ($Pile[$SP] = @spip_abstract_fetch($result,"")) {

        $Cache['id_article'][$Pile[$SP]['id_article']] = 1; // invalideurs
        $doublons[$doublons_index] .= ','. $Pile[$SP]['id_article']; // doublons
        if (!$GLOBALS['forcer_lang'])
             $GLOBALS['spip_lang'] = ($x = $Pile[$SP]['lang']) ? $x : $old_lang;
        $t0 .= ('
<?php print "article=$article/$id_article"; ?>
<?php if ($article == $id_article) { ?>
<li>
<?php } else { ?>
<li class="active">
<?php } ?>
<a href="' .
interdire_scripts(htmlspecialchars(vider_url(generer_url_article($Pile[$SP]['id_article'])))) .
'" ' .
(($t1 = interdire_scripts(entites_html(textebrut(traiter_raccourcis($Pile[$SP]['descriptif']))))) ?
            ('title="' . $t1 . '"') :
            ('')) .
'>' .
interdire_scripts(supprimer_numero(typo($Pile[$SP]['titre']))) .
'</a></li>
');
    }

    $GLOBALS['spip_lang'] = $old_lang;
    @spip_abstract_free($result,'');
    return $t0;
}

//
// <BOUCLE rubriques>
//
function BOUCLE_menu_R_nopubhtml_4c984912d56508a331b068dfa01f2780(&$Cache, &$Pile, &$doublons, &$Numrows, $SP) {

    // REQUETE
    $result = spip_abstract_select(
        array("rubriques.id_rubrique"), # SELECT
        array("spip_mots_rubriques AS mots_rubriques8","spip_mots AS l_mots8","spip_rubriques AS rubriques"), # FROM
        array("(rubriques.id_parent = '" . addslashes($Pile[$SP]['id_rubrique']) . "')",
        "" .calcul_mysql_in('rubriques.id_rubrique', "0".$doublons[$doublons_index = ('rubriques' . '')], 'NOT') . "",
        "rubriques.id_rubrique=mots_rubriques8.id_rubrique",
        "mots_rubriques8.id_mot=l_mots8.id_mot",
        "(l_mots8.titre = '" . addslashes('nopublish') . "')",
        "rubriques.statut='publie'"), # WHERE
        'rubriques.id_rubrique', # GROUP
        array(), # ORDER
        '', # LIMIT
        '', # sous
        '', # HAVING
        'rubriques', # table
        '_menu_R_nopub', # boucle
        ''); # serveur
    $t0 = "";
    $SP++;

    // RESULTATS
    while ($Pile[$SP] = @spip_abstract_fetch($result,"")) {
        $doublons[$doublons_index] .= ','. $Pile[$SP]['id_rubrique']; // doublons

        $t0 .= '
';
    }

    @spip_abstract_free($result,'');
    return $t0;
}

//
// <BOUCLE rubriques>
//
function BOUCLE_menu_Rhtml_4c984912d56508a331b068dfa01f2780(&$Cache, &$Pile, &$doublons, &$Numrows, $SP) {
    $old_lang = $GLOBALS['spip_lang'];

    // REQUETE
    $result = spip_abstract_select(
        array("0+rubriques.titre AS num",
        "rubriques.id_rubrique",
        "rubriques.descriptif",
        "rubriques.titre",
        "rubriques.lang"), # SELECT
        array("spip_rubriques AS rubriques"), # FROM
        array("(rubriques.id_parent = '" . addslashes($Pile[$SP]['id_rubrique']) . "')",
        "" .calcul_mysql_in('rubriques.id_rubrique', "0".$doublons[$doublons_index = ('rubriques' . '')], 'NOT') . "",
        "rubriques.statut='publie'"), # WHERE
        '', # GROUP
        array('num'), # ORDER
        '', # LIMIT
        '', # sous
        '', # HAVING
        'rubriques', # table
        '_menu_R', # boucle
        ''); # serveur
    $t0 = "";
    $SP++;

    // RESULTATS
    while ($Pile[$SP] = @spip_abstract_fetch($result,"")) {

        $Cache['id_rubrique'][$Pile[$SP]['id_rubrique']] = 1; // invalideurs
        $doublons[$doublons_index] .= ','. $Pile[$SP]['id_rubrique']; // doublons
        if (!$GLOBALS['forcer_lang'])
             $GLOBALS['spip_lang'] = ($x = $Pile[$SP]['lang']) ? $x : $old_lang;
        $t0 .= ('
<li><a href="' .
interdire_scripts(htmlspecialchars(vider_url(generer_url_rubrique($Pile[$SP]['id_rubrique'])))) .
'" ' .
(($t1 = interdire_scripts(entites_html(textebrut(traiter_raccourcis($Pile[$SP]['descriptif']))))) ?
            ('title="' . $t1 . '"') :
            ('')) .
'>' .
interdire_scripts(supprimer_numero(typo($Pile[$SP]['titre']))) .
'</a></li>
');
    }

    $GLOBALS['spip_lang'] = $old_lang;
    @spip_abstract_free($result,'');
    return $t0;
}

//
// <BOUCLE rubriques>
//
function BOUCLE_r1_0html_4c984912d56508a331b068dfa01f2780(&$Cache, &$Pile, &$doublons, &$Numrows, $SP) {
    $old_lang = $GLOBALS['spip_lang'];

    // REQUETE
    $result = spip_abstract_select(
        array("rubriques.id_rubrique",
        "rubriques.lang"), # SELECT
        array("spip_rubriques AS rubriques"), # FROM
        array("(rubriques.id_rubrique = '" . addslashes('1') . "')",
        "rubriques.statut='publie'"), # WHERE
        '', # GROUP
        array(), # ORDER
        '', # LIMIT
        '', # sous
        '', # HAVING
        'rubriques', # table
        '_r1_0', # boucle
        ''); # serveur
    $t0 = "";
    $SP++;

    // RESULTATS
    while ($Pile[$SP] = @spip_abstract_fetch($result,"")) {

        $Cache['id_rubrique'][$Pile[$SP]['id_rubrique']] = 1; // invalideurs
        if (!$GLOBALS['forcer_lang'])
             $GLOBALS['spip_lang'] = ($x = $Pile[$SP]['lang']) ? $x : $old_lang;
        $t0 .= ('

' .
BOUCLE_art_nopubhtml_4c984912d56508a331b068dfa01f2780($Cache, $Pile, $doublons, $Numrows, $SP) .
'
<?php /*$article= ' .
$Pile[0]['id_article'] .
';*/
  print "article:=$article/$id_article";
?>
' .
BOUCLE_arthtml_4c984912d56508a331b068dfa01f2780($Cache, $Pile, $doublons, $Numrows, $SP) .
'

' .
BOUCLE_menu_R_nopubhtml_4c984912d56508a331b068dfa01f2780($Cache, $Pile, $doublons, $Numrows, $SP) .
'
' .
BOUCLE_menu_Rhtml_4c984912d56508a331b068dfa01f2780($Cache, $Pile, $doublons, $Numrows, $SP) .
'

');
    }

    $GLOBALS['spip_lang'] = $old_lang;
    @spip_abstract_free($result,'');
    return $t0;
}

//
// Fonction principale du squelette squelettes/vhc_navi.html
//
function html_4c984912d56508a331b068dfa01f2780 ($Cache, $Pile, $doublons=array(), $Numrows='', $SP=0) {
$t0 = ('
<!-- Hauptnavigation links -->
<!-- Artikel unter virtualhousecommunity -->
' .
BOUCLE_r1_0html_4c984912d56508a331b068dfa01f2780($Cache, $Pile, $doublons, $Numrows, $SP) .
'
<!-- Ende Rubriken -->

<li><a href=« http://virtualhousecommunity.com.jovinus-meta.net/spip1.82d/ecrire/articles.php3?id_article=’ .
$Pile[0][‹ id_article ›] .
'&submit=Artikel+bearbeiten+%289%29 »>Artikel bearbeiten</a></li>
</ul>

');

    return array(
        'texte' => $t0,
        'squelette' => 'html_4c984912d56508a331b068dfa01f2780',
        'process_ins' => ((strpos($t0,'<'.'?')=== false) ? 'html' : 'php'),
        'invalideurs' => $Cache
    );
}

?>

Hallo Patrick,
u.U. rührt Dein Problem gar nicht von $id_article her. Meines Wissens wird diese Variable weiter verwendet, auch wenn die Sichtbarkeit von Kontextvariablen verbessert worden ist.

In der Tat ein Problem gibt es mit titre_mot - und einen Patch dazu:
http://trac.rezo.net/trac/spip/changeset/4805
Der wurde leider in die gerade erschienene Version 1.82e nicht übernommen.

Schau mal nach, ob titre_mot wirklich erforderlich ist.
titre_mot wird dank der neuen Syntax eigentlich nicht mehr benötigt, und bereits vorher konnte man doch reguläre Ausdrücke einsetzen, mit denen sich das Kriterium titre_mot besser darstellen lässt:
Mit solch einer Konstruktion kann man doch eigentlich jeden beliebigen Filters setzen:
<BOUCLE_art(ARTICLES){titre==^[aA]}>
Quelle: http://www.spip.net/de_article2574.html

klaus++

Patrick Ogay schrieb:

Hallo Spip-Freunde,

mit der Version von SPIP 1.82 scheint $id_article nicht mehr die Schlaufenvariable zu sein (siehe auch Anhang generiertes php).

Kann mir jemand sagen, wie man der Artikel-Nr, der Schlaufe bekommt ($Pile[$SP]['id_article'] hab ich versucht).
Ich möchte, dem aktuellen Artikel in der Navigation eine andere Klasse zuordnen.

Ich sehe grad, dass es eine neue Balise #EXPOSE gibt (die offenbar das machen soll, was ich suche).
http://www.spip.net/fr_article2319.html
Mache ich da auch was falsch? #EXPOSE hat immer blank

beste Grüsse
Patrick

--- mein INCLURE ----- Site http://virtualhousecommunity.com.jovinus-meta.net/spip1.82d/article.php3?id_article=5
<!-- Hauptnavigation links -->
<!-- Artikel unter virtualhousecommunity -->
<BOUCLE_r1_0(RUBRIQUES) {id_rubrique=1}>

<BOUCLE_art_nopub(ARTICLES){id_rubrique}{par num titre}{doublons}{titre_mot=nopublish}>
</BOUCLE_art_nopub>
<?php /*$article= #ID_ARTICLE;*/ <- meine php.Statements
print "article:=$article/$id_article";
?>
<BOUCLE_art(ARTICLES){id_rubrique}{par num titre}{doublons}>
<?php print "article=$article/$id_article/".$Pile[$SP]['id_article'].'/'; ?>
<?php if ($article == $id_article) { ?>
<li class='lien#EXPOSE'> <----Expose ist immer blank
<?php } else { ?>
<li class="class=lien#EXPOSE">
<?php } ?>
<a href="#URL_ARTICLE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>[(#TITRE|supprimer_numero)]</a></li>
</BOUCLE_art>

<BOUCLE_menu_R_nopub(RUBRIQUES){id_parent}{doublons}{titre_mot=nopublish}>
</BOUCLE_menu_R_nopub>
<BOUCLE_menu_R(RUBRIQUES){id_parent}{par num titre}{doublons}>
<li><a href="#URL_RUBRIQUE" [title="(#DESCRIPTIF|textebrut|entites_html)"]>[(#TITRE|supprimer_numero)]</a></li>
</BOUCLE_menu_R>

</BOUCLE_r1_0>
<!-- Ende Rubriken -->

<li><a href="http://virtualhousecommunity.com.jovinus-meta.net/spip1.82d/ecrire/articles.php3?id_article=#ID_ARTICLE&submit=Artikel+bearbeiten+(9)">Artikel bearbeiten</a></li>
</ul>

----
<?php
/*
* Squelette : squelettes/vhc_navi.html
* Date : Tue, 01 Nov 2005 06:55:17 GMT$id_article
* Compile : Tue, 01 Nov 2005 07:01:34 GMT (0.03s)
* Boucles : _art_nopub, _art, _menu_R_nopub, _menu_R, _r1_0
*/
//
// <BOUCLE articles>
//
function BOUCLE_art_nopubhtml_4c984912d56508a331b068dfa01f2780(&$Cache, &$Pile, &$doublons, &$Numrows, $SP) {

   // REQUETE
   $result = spip_abstract_select(
       array("0+articles.titre AS num",
       "articles.id_article"), # SELECT
       array("spip_mots_articles AS mots_articles7","spip_mots AS l_mots7","spip_articles AS articles"), # FROM
       array("(articles.id_rubrique = '" . addslashes($Pile[$SP]['id_rubrique']) . "')",
       "" .calcul_mysql_in('articles.id_article', "0".$doublons[$doublons_index = ('articles' . '')], 'NOT') . "",
       "articles.id_article=mots_articles7.id_article",
       "mots_articles7.id_mot=l_mots7.id_mot",
       "(l_mots7.titre = '" . addslashes('nopublish') . "')",
       "articles.statut='publie'"), # WHERE
       'articles.id_article', # GROUP
       array('num'), # ORDER
       '', # LIMIT
       '', # sous
       '', # HAVING
       'articles', # table
       '_art_nopub', # boucle
       ''); # serveur
   $t0 = "";
   $SP++;

   // RESULTATS
   while ($Pile[$SP] = @spip_abstract_fetch($result,"")) {
       $doublons[$doublons_index] .= ','. $Pile[$SP]['id_article']; // doublons

       $t0 .= '
';
   }

   @spip_abstract_free($result,'');
   return $t0;
}

//
// <BOUCLE articles>
//
function BOUCLE_arthtml_4c984912d56508a331b068dfa01f2780(&$Cache, &$Pile, &$doublons, &$Numrows, $SP) {
   $old_lang = $GLOBALS['spip_lang'];

   // REQUETE
   $result = spip_abstract_select(
       array("0+articles.titre AS num",
       "articles.id_article",
       "articles.descriptif",
       "articles.titre",
       "articles.lang"), # SELECT
       array("spip_articles AS articles"), # FROM
       array("(articles.id_rubrique = '" . addslashes($Pile[$SP]['id_rubrique']) . "')",
       "" .calcul_mysql_in('articles.id_article', "0".$doublons[$doublons_index = ('articles' . '')], 'NOT') . "",
       "articles.statut='publie'"), # WHERE
       '', # GROUP
       array('num'), # ORDER
       '', # LIMIT
       '', # sous
       '', # HAVING
       'articles', # table
       '_art', # boucle
       ''); # serveur
   $t0 = "";
   $SP++;

   // RESULTATS
   while ($Pile[$SP] = @spip_abstract_fetch($result,"")) {

       $Cache['id_article'][$Pile[$SP]['id_article']] = 1; // invalideurs
       $doublons[$doublons_index] .= ','. $Pile[$SP]['id_article']; // doublons
       if (!$GLOBALS['forcer_lang'])
            $GLOBALS['spip_lang'] = ($x = $Pile[$SP]['lang']) ? $x : $old_lang;
       $t0 .= ('
<?php print "article=$article/$id_article"; ?>
<?php if ($article == $id_article) { ?>
<li>
<?php } else { ?>
<li class="active">
<?php } ?>
<a href="' .
interdire_scripts(htmlspecialchars(vider_url(generer_url_article($Pile[$SP]['id_article'])))) .
'" ' .
(($t1 = interdire_scripts(entites_html(textebrut(traiter_raccourcis($Pile[$SP]['descriptif']))))) ?
           ('title="' . $t1 . '"') :
           ('')) .
'>' .
interdire_scripts(supprimer_numero(typo($Pile[$SP]['titre']))) .
'</a></li>
');
   }

   $GLOBALS['spip_lang'] = $old_lang;
   @spip_abstract_free($result,'');
   return $t0;
}

//
// <BOUCLE rubriques>
//
function BOUCLE_menu_R_nopubhtml_4c984912d56508a331b068dfa01f2780(&$Cache, &$Pile, &$doublons, &$Numrows, $SP) {

   // REQUETE
   $result = spip_abstract_select(
       array("rubriques.id_rubrique"), # SELECT
       array("spip_mots_rubriques AS mots_rubriques8","spip_mots AS l_mots8","spip_rubriques AS rubriques"), # FROM
       array("(rubriques.id_parent = '" . addslashes($Pile[$SP]['id_rubrique']) . "')",
       "" .calcul_mysql_in('rubriques.id_rubrique', "0".$doublons[$doublons_index = ('rubriques' . '')], 'NOT') . "",
       "rubriques.id_rubrique=mots_rubriques8.id_rubrique",
       "mots_rubriques8.id_mot=l_mots8.id_mot",
       "(l_mots8.titre = '" . addslashes('nopublish') . "')",
       "rubriques.statut='publie'"), # WHERE
       'rubriques.id_rubrique', # GROUP
       array(), # ORDER
       '', # LIMIT
       '', # sous
       '', # HAVING
       'rubriques', # table
       '_menu_R_nopub', # boucle
       ''); # serveur
   $t0 = "";
   $SP++;

   // RESULTATS
   while ($Pile[$SP] = @spip_abstract_fetch($result,"")) {
       $doublons[$doublons_index] .= ','. $Pile[$SP]['id_rubrique']; // doublons

       $t0 .= '
';
   }

   @spip_abstract_free($result,'');
   return $t0;
}

//
// <BOUCLE rubriques>
//
function BOUCLE_menu_Rhtml_4c984912d56508a331b068dfa01f2780(&$Cache, &$Pile, &$doublons, &$Numrows, $SP) {
   $old_lang = $GLOBALS['spip_lang'];

   // REQUETE
   $result = spip_abstract_select(
       array("0+rubriques.titre AS num",
       "rubriques.id_rubrique",
       "rubriques.descriptif",
       "rubriques.titre",
       "rubriques.lang"), # SELECT
       array("spip_rubriques AS rubriques"), # FROM
       array("(rubriques.id_parent = '" . addslashes($Pile[$SP]['id_rubrique']) . "')",
       "" .calcul_mysql_in('rubriques.id_rubrique', "0".$doublons[$doublons_index = ('rubriques' . '')], 'NOT') . "",
       "rubriques.statut='publie'"), # WHERE
       '', # GROUP
       array('num'), # ORDER
       '', # LIMIT
       '', # sous
       '', # HAVING
       'rubriques', # table
       '_menu_R', # boucle
       ''); # serveur
   $t0 = "";
   $SP++;

   // RESULTATS
   while ($Pile[$SP] = @spip_abstract_fetch($result,"")) {

       $Cache['id_rubrique'][$Pile[$SP]['id_rubrique']] = 1; // invalideurs
       $doublons[$doublons_index] .= ','. $Pile[$SP]['id_rubrique']; // doublons
       if (!$GLOBALS['forcer_lang'])
            $GLOBALS['spip_lang'] = ($x = $Pile[$SP]['lang']) ? $x : $old_lang;
       $t0 .= ('
<li><a href="' .
interdire_scripts(htmlspecialchars(vider_url(generer_url_rubrique($Pile[$SP]['id_rubrique'])))) .
'" ' .
(($t1 = interdire_scripts(entites_html(textebrut(traiter_raccourcis($Pile[$SP]['descriptif']))))) ?
           ('title="' . $t1 . '"') :
           ('')) .
'>' .
interdire_scripts(supprimer_numero(typo($Pile[$SP]['titre']))) .
'</a></li>
');
   }

   $GLOBALS['spip_lang'] = $old_lang;
   @spip_abstract_free($result,'');
   return $t0;
}

//
// <BOUCLE rubriques>
//
function BOUCLE_r1_0html_4c984912d56508a331b068dfa01f2780(&$Cache, &$Pile, &$doublons, &$Numrows, $SP) {
   $old_lang = $GLOBALS['spip_lang'];

   // REQUETE
   $result = spip_abstract_select(
       array("rubriques.id_rubrique",
       "rubriques.lang"), # SELECT
       array("spip_rubriques AS rubriques"), # FROM
       array("(rubriques.id_rubrique = '" . addslashes('1') . "')",
       "rubriques.statut='publie'"), # WHERE
       '', # GROUP
       array(), # ORDER
       '', # LIMIT
       '', # sous
       '', # HAVING
       'rubriques', # table
       '_r1_0', # boucle
       ''); # serveur
   $t0 = "";
   $SP++;

   // RESULTATS
   while ($Pile[$SP] = @spip_abstract_fetch($result,"")) {

       $Cache['id_rubrique'][$Pile[$SP]['id_rubrique']] = 1; // invalideurs
       if (!$GLOBALS['forcer_lang'])
            $GLOBALS['spip_lang'] = ($x = $Pile[$SP]['lang']) ? $x : $old_lang;
       $t0 .= ('

' .
BOUCLE_art_nopubhtml_4c984912d56508a331b068dfa01f2780($Cache, $Pile, $doublons, $Numrows, $SP) .
'
<?php /*$article= ' .
$Pile[0]['id_article'] .
';*/
print "article:=$article/$id_article";
?>
' .
BOUCLE_arthtml_4c984912d56508a331b068dfa01f2780($Cache, $Pile, $doublons, $Numrows, $SP) .
'

' .
BOUCLE_menu_R_nopubhtml_4c984912d56508a331b068dfa01f2780($Cache, $Pile, $doublons, $Numrows, $SP) .
'
' .
BOUCLE_menu_Rhtml_4c984912d56508a331b068dfa01f2780($Cache, $Pile, $doublons, $Numrows, $SP) .
'

');
   }

   $GLOBALS['spip_lang'] = $old_lang;
   @spip_abstract_free($result,'');
   return $t0;
}

//
// Fonction principale du squelette squelettes/vhc_navi.html
//
function html_4c984912d56508a331b068dfa01f2780 ($Cache, $Pile, $doublons=array(), $Numrows='', $SP=0) {
$t0 = ('
<!-- Hauptnavigation links -->
<!-- Artikel unter virtualhousecommunity -->
' .
BOUCLE_r1_0html_4c984912d56508a331b068dfa01f2780($Cache, $Pile, $doublons, $Numrows, $SP) .
'
<!-- Ende Rubriken -->

<li><a href=« http://virtualhousecommunity.com.jovinus-meta.net/spip1.82d/ecrire/articles.php3?id_article=’ .
$Pile[0][‹ id_article ›] .
'&submit=Artikel+bearbeiten+%289%29 »>Artikel bearbeiten</a></li>
</ul>

');

   return array(
       'texte' => $t0,
       'squelette' => 'html_4c984912d56508a331b068dfa01f2780',
       'process_ins' => ((strpos($t0,'<'.'?')=== false) ? 'html' : 'php'),
       'invalideurs' => $Cache
   );
}

?>
_______________________________________________
Spip-de@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-de

Hallo Klaus, Danke für die Hinweise.

>u.U. rührt Dein Problem gar nicht von $id_article her. Meines Wissens wird diese Variable weiter verwendet,
>auch wenn die Sichtbarkeit von Kontextvariablen verbessert worden ist.

Als erstes versuche ich das mal ohne <INCLURE> . Komisch ist ja schon, dass der aktuelle Artikel korrekt bekannt ist , aber in der localen Boucle die Variabel nicht, oder nicht korrekt geführt wird. Vielleicht geht deswegen auch #EXPOSE nicht.
Früher war der Code im Cache irgendwie transparenter, jedenfalls sah man die Schlaufenvariablen gerade und konnte so relativ einfach php-Code einbauen (,was natürlich zu Incompatibilitäten führen kann). .
Ich könnte das Template mal einer 1.72-Installation testen.

Ansonsten scheint mir SPIP 1.82d aber recht ansprechend (die Konkatenationsreihenfolgen sitmmen nun mal schon, sodass die Aufrufe von <INCLURE> in ../squelettes gefunden werden).

Auf das Feature mehrsprachig bin ich mal gespannt.

Gruss und schöner Abend
Patrick