Sitemap: Warning: Cannot use a scalar value as an array

Diskussion zum Modul Menu (Automatische Navigation) für ConPresso 4
leh00
ConPresso-Newbie
Beiträge: 13
Registriert: 29.05.2008 21:00
Hat sich bedankt: 2 Mal

Sitemap: Warning: Cannot use a scalar value as an array

Beitrag von leh00 »

Hallo Zusammen,

ich habe meine 4.0.7'ner Version von Compresso auf 4.1.2 umgestellt. Datenbank und Web sind soweit ok - jedoch bekomme ich die Sitemap mit dem mod_Menu nicht hin...

Ich möchte gerne die Sitemap unterhalb eines Artikels (Hinweis/Erklärung) im Hauptinhaltsbereich der Webseite in einer eigenen Rubric ausgeben.

Bisher habe ich das mittels:

require(CPO_BASEDIR.$activeModules['Menu']['directory'].'/includes/sitemap.inc.php');

in der Index.php diese speziellen Rubric ohne Probleme gemacht.

Seit der Installation von Compresso 4.1.2 und des mod_Menu 4.1 (auch mit mod_Menu RC)1 habe ich folgendes Problem:

Wenn ich aus der Index.php in einem andern Rubric-Verzeichnis:

require(CPO_BASEDIR.$activeModules['Menu']['directory'].'/includes/sitemap.inc.php');

aufrufe, erhalte ich immer folgende Fehlermeldungen (eine pro Zeile in der Sitemap)

Warning: Cannot use a scalar value as an array in /volume1/web/s412/_mod_menu/includes/inc_build_nav.inc.php on line 115

nach erfolgter Ausgabe der Fehler wird die Sitemap korrekt ausgegeben...

Irgend eine Idee warum die Zuweisung beim Array auf Linie 115 nicht mehr klappt?

Wenn ich http://www.meineseite.com/_mod_menu aufrufe wird die Sitemap korrekt angegeben.

Danke und Gruss
Leh00
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Ich möchte gerne die Sitemap unterhalb eines Artikels (Hinweis/Erklärung) im Hauptinhaltsbereich der Webseite in einer eigenen Rubric ausgeben.
Das bietet die mod_menu/index.php (in Version 4.1) ja bereits.
Jetzt nur noch eine Rubrik erstellen mit mod_menu als Verzeichnis, Artikel schreiben, fast fertig.
Nur noch "Artikel ausgeben" auf was anderes als "keine" einstellen.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
leh00
ConPresso-Newbie
Beiträge: 13
Registriert: 29.05.2008 21:00
Hat sich bedankt: 2 Mal

Beitrag von leh00 »

Hallo Markus,

besten Dank für deine Antwort.

Ich hatte erst Heute wieder Zeit mich um dieses Problem zu kümmern.

Die Sache sieht so aus:
- _mod_menu als Rubric -> klappt wunderbar

- wenn ich einen Artikel einfüge und oberhalb der Sitemap anzeige, kommen wieder all die Fehlermeldungen...

- wenn ich einen Artikel unterhalb der Sitemap anzeige, klappt alles...

- wenn ich innerhalb der Seite dieses Codeschnipsel einfüge, kommen auch all die Fehlermeldungen:

Code: Alles auswählen

// ab hier nix mehr ändern
if (!defined('CPO')) exit;

$query = "SELECT rubric_id, commentary, verfallsdatum, templates_id, nr, idx, email, autor, pub_datum, titel, initial, freigabe, changer FROM " . CPO_NEWS . " WHERE " . ( $cpoSystem['release'] ? "artikel_archiv<2 AND freigabe=" . STATE_RELEASED : "artikel_archiv<1 AND freigabe!=" . STATE_BLOCKED ) . " AND pub_datum<='" . date('Y-m-d H:i:s', time()) . "' AND verfallsdatum>='".date('Y-m-d H:i:s', time())."' AND rubric_id='".$rubrikid."' ORDER BY ".$sortierung." LIMIT 0," . $artikelanzahl . " ";
$db = new DB;
$db->query($query);


while($db->next_record()) {
    $db_template      = $db->v('templates_id');
    $db_nr            = $db->v('nr');
    $db_idx           = $db->v('idx');
    $db_email         = $db->v('email');
    $db_autor         = $db->v('autor');
    $db_changer       = $db->v('changer');
    $db_pub_datum     = $db->v('pub_datum');
    $db_verfallsdatum = $db->v('verfallsdatum');
    $db_commentary    = $db->v('commentary');
    $db_titel         = $db->v('titel');
    $db_initial       = $db->v('initial');
    $db_freigabe      = $db->v('freigabe');
    $db_rubric_id     = $db->v('rubric_id');
    require(CPO_BASEDIR.'_include/select_template.php');
}
Dieses Schnipsel habe ich für die Ausgabe bestimmter News drin...

Hast du noch eine Idee ?

Danke und Gruss
Leh00
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Sorry, im Augenblick bin ich nicht dazu in der Lage so theoretische Diskussionen zu führen.

Warum muß ich eigentlich erraten, was in der Zeile steht, die den Fehler produziert, was Du sonst noch so installiert hast und welche Modifizierungen sonst noch im System stecken...

Es wäre ja auch zu einfach, wenn man sich das anschauen könnte und man einfach ein paar Kontrollausgaben macht. Sooo will das ja keiner. Raten ist viel, viel schöner...

... in drei, vier Wochen habe ich vielleicht wieder Lust dazu...

Der Codeschnipsel alleine muß schon Berge an Fehlern produzieren, wenn das wirklich ALLES ist...

BTW: einer der wichtigsten Leitsätze: "never change a running system"
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
leh00
ConPresso-Newbie
Beiträge: 13
Registriert: 29.05.2008 21:00
Hat sich bedankt: 2 Mal

Beitrag von leh00 »

Hallo Markus,

deine Lustlosigkeit kann ich verstehen... :wink:

Also ich hab nun mein "schuldiges" Seitenlayout (_local_footer.php/_local_header.php) entfernt und die Menu Rubrik alleine aufgerufen... Geht...

Soweit so gut... einen Artikel mit 3 zeilen Blabla vor die Sitemap gelegt und die Fehler sind wieder da... Artikel hinter die Sitemap... Kein Problem...

Ich hab schon alle Module rausgekippt -> der Fehler bleibt...

Also ich werde mit eine leere, neue 4.1.2 Version von Conpresso installieren und dann das 4.1er mod_menu installieren und dann dem Übel auf den Grund zu gehen...

Gruss
Leh00
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Ich kann Dír nur anbieten das Original zu betrachten, um der Sache auf die Spur zu kommen.
Bei mir ist in der Zeile $level das Array. Was ist es bei Dir?
Ich weiß wirklich nicht, was in Deiner Version in dieser Zeile steht.
Das zu sagen wäre ein Anfang...
Du schilderst nur die Symptome, versteckst aber den Patienten.
Ohne vernünftie Anamnese kann das nur Dr. House und der kommt erst in 45 Minuten und dann eine Woche nicht mehr...
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
leh00
ConPresso-Newbie
Beiträge: 13
Registriert: 29.05.2008 21:00
Hat sich bedankt: 2 Mal

Beitrag von leh00 »

Also ich hab noch kurz vor'm verzweifeln die Linie 115 mit dem $level auskommentiert... und siehe da es funzt sprich der Fehler liegt auf Zeile 115...

Ich hab mal all die Script's von Conpresso nach $Level durchsucht und diese Variable in verschiedenen Scripts gefunden... (buildpage.inc.php, function.php, inc_menu_function.inc.php, parser.php, PEAR.php, printnavigation.inc.php, Worksheet.php)

Der Scalar-Fehler könnte doch daran liegen, dass die Variable $Level von einem vorherlaufenden Script bsp. als Integer initiert wird -> dann aber in deinem Script als Array angesprochen wird...

Dies führt zu diesem Scalar-Fehler... und das noch alles ohne Dr. Haus oder so...

Wie denkst du darüber?
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Ich hatte jetzt erst mal den Verdacht des "Rubriken-Recyclings" d.h. mehrfachen Einbindens der gleichen Rubriken, was IMMER zu Fehlern führt.

Du kannst mal ziemlich an den Anfang von
_mod_menu/includes/inc_build_nav.inc.php
folgende Zeile setzen:

Code: Alles auswählen

$level = array();
PEAR.php und Worksheet.php gehüren aber nicht zu ConPresso, oder?
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
leh00
ConPresso-Newbie
Beiträge: 13
Registriert: 29.05.2008 21:00
Hat sich bedankt: 2 Mal

[Solved] Cannot use a scalar value as an array

Beitrag von leh00 »

Hallo Markus,

besten Dank für die Info mit dem

Code: Alles auswählen

$level = array();
Nun funzt alles so wie es soll...

Gruss
Leh00
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

PEAR.php und Worksheet.php gehüren aber nicht zu ConPresso, oder?
Die können eine Fehlerquelle sein, insofern dort z.B. $level als Objekt definiert ist...
Was sind das für Dateien? Zippen und Posten, bitte!
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7115
Registriert: 01.01.1970 02:00
Hat sich bedankt: 102 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Google findet für die Kombination aus
Cannot use a scalar value as an array
und
PEAR
über 10.000 Seiten...
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
leh00
ConPresso-Newbie
Beiträge: 13
Registriert: 29.05.2008 21:00
Hat sich bedankt: 2 Mal

Beitrag von leh00 »

Hallo Markus,

Nein - die beiden haben mit Conpresso nichts zu tun... Die Suche war nur einen Level zu hoch angesetzt.

Gruss
Leh00
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 02:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Variablen-Kollision mod_menu vs. Enhanced Parser

Beitrag von Mr. Magpie »

MarkusR hat geschrieben:Ich hatte jetzt erst mal den Verdacht des "Rubriken-Recyclings" d.h. mehrfachen Einbindens der gleichen Rubriken, was IMMER zu Fehlern führt.

Du kannst mal ziemlich an den Anfang von
_mod_menu/includes/inc_build_nav.inc.php
folgende Zeile setzen:

Code: Alles auswählen

$level = array();
Ich habe, glaub' ich, den wahren, mindestens aber einen Verursacher des Problems gefunden: http://community.conpresso.de/viewtopic ... 6635#26635

Eine Lösung kann die von Markus empfohlene Zeile sein, eine andere die Umbenennung von $level im Enhanced Parser.

Offenbar ist $level global definiert.
Günther Ludwig