Fehler im Editor? - Modulcode wird angezeigt

Gesperrt
Tbird
Beiträge: 25
Registriert: Do 15. Mär 2007, 12:23
Kontaktdaten:

Fehler im Editor? - Modulcode wird angezeigt

Beitrag von Tbird » Fr 14. Sep 2007, 08:50

Hallo!

Ich habe das folgende Problem:

Bild

Wenn ich eines der beiden Module (Navigationspfad oder Hilfsnavigation) ausschalte ist dieser Fehler weg...

Der Frame-Quelltext an der betreffenden Stelle dazu sieht wie folgt aus:

Code: Alles auswählen

<?php $cCurrentModule = 30; ?><?php $cCurrentContainer = 50; ?><?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname  :      Navigationpath
* Author(s)   :     Andreas Lindner
* Copyright   :     Contenido - four for business, Andreas Lindner
* Created     :     05-08-2005
************************************************/

#Settings
$separator = \'>\';
$max_length = 65;

#Get path to root
$dummy = conCreateLocationString($idcat, \' \'.$separator.\' \', $retval, true, \"navipath\", 1);

if ($retval==\'\') {
	$retval=\'&nbsp;\';	
} else {
	$pattern = \"\'>.*?<\'\";
	
	preg_match_all($pattern, $retval, $matches);
	$matches = $matches[0];
	
	#Get effective text length
	$length = 0;
	foreach ($matches as $value) {
		$length += strlen($value) - 2;
	}
	
	#Get shorten factor
	if ($length > $max_length * 4) {
		$shorten = 5;
	}
	elseif ($length > $max_length * 3) {
		$shorten = 4;
	}
	elseif ($length > $max_length * 2) {
		$shorten = 3;
	}
	elseif ($length > $max_length) {
		$shorten = 2;
	} else {
		$shorten = 1;
	}
	
	#Shorten items
	if ($length > $max_length) {
		foreach ($matches as $value) {
			if (strpos($value, $separator) === FALSE) {
				$text = substr($value, 1, strlen($value) - 2);
				$len = strlen($text);
				if (strpos($text, \' \') === FALSE) {
					$text_new = $text;
				} else {
					$text_new = capiStrTrimAfterWord($text, intval($len / $shorten));
				}
	
				if (strlen($text) != strlen($text_new)) {
					$text_new .= \'...\';
				}
	
				$text_new = \'>\'.$text_new.\'<\';
				$retval = str_replace(\'>\'.$text.\'<\', $text_new, $retval);
			}
		}
	}
	
	#$retval = str_replace(\'\"/index.html\"\', \'\"Home/index.html\"\', $retval);
}
if ($retval == \'&nbsp;\')
  $retval = \'<a href=\"\">Startseite</a>\'.\"\\n\";

echo \'Sie befinden sich hier: \'.$retval;
Wer hat da eine Idee oder schon einmal das Problem gehabt.
PS: verwende Contenido 4.6.15 (MR)

delinquent
Beiträge: 184
Registriert: Fr 17. Aug 2007, 12:15
Kontaktdaten:

Beitrag von delinquent » Fr 14. Sep 2007, 15:09

Dein Problem wird in der Maskierung der Hochkommas und Anführungszeichen mit Backslashes liegen. Mach mal aus

Code: Alles auswählen

$separator = \'>\';
$max_length = 65;
$separator = '>';
$max_length = 65;

und so weiter. Vielleicht hilft das...

Tbird
Beiträge: 25
Registriert: Do 15. Mär 2007, 12:23
Kontaktdaten:

Beitrag von Tbird » Fr 14. Sep 2007, 20:16

Vielleicht habe ich mich etwas mißverständlich ausgedrückt...

Der Modulcode an sich ist i.O., der obige Quelltext wird mit dieser Maskierung im editor ausgegeben ausgegeben - beginnenden mit

<?php $cCurrentModule = 30; ?><?php $cCurrentContainer = 50; ?><?php

Irgendwo muß ein Fehler sein zwichen Navigationspfad, Hilfsnavigation und der Editoranzeige. Die Anzeigen zur Korrektheit des PHP-Codes in den Modulen ist aber auf grün :roll:

delinquent
Beiträge: 184
Registriert: Fr 17. Aug 2007, 12:15
Kontaktdaten:

Beitrag von delinquent » Sa 15. Sep 2007, 09:11

Ach, *jetzt* hab ich's verstanden. Sorry :?

Hab ich persönlich noch nie erlebt :-) Wenn Du den Container mit was anderem Füllst, ist das Problem auch weg? Also, es tritt nur dann auf, wenn in einem bestimmten Container davor die Hilfsnavigation ist und genau in diesem Container der Navigationspfad?

wosch

Beitrag von wosch » Sa 15. Sep 2007, 09:12

Meldungen in der Art:
<?php $cCurrentModule = 30; ?><?php $cCurrentContainer = 50; ?><?php
...
werden im Frontend ausgegeben wenn das Frontend-Debugging aktiviert ist.
Kontrollier mal ob das nicht aus versehen (oder warum auch immer) eingeschaltet ist.
Hinweise zum aktivieren/deaktivieren findest du hier:
http://www.contenido.org/forum/viewtopic.php?t=15411

Falls nein würde ich als erstes mal kontrollieren was im Contaier 50 für ein Modul liegt.

Tbird
Beiträge: 25
Registriert: Do 15. Mär 2007, 12:23
Kontaktdaten:

Beitrag von Tbird » Sa 15. Sep 2007, 11:36

Also $cfg["debug"]["codeoutput"] ist auf false (sont wäre es ja auch bei anderen modulen der fall?)

in container 40 habe ich die "standard"-hilfsnavigation und in 50 den "standard"-navigationspfad.
das seltsame: nehm ich die hilfsnavigation raus, wird der code nicht mehr angezeigt? ersetze ich die hilfnaviagtion mit einem test-modul (nur echo 'irgendwas') funktioniert es auch. also muß es an der hilfsnavigation liegen:

Fehler erkannt:

ich habe in der hilfnavigation mit einer variable $output ( $output .= ...)
gearbeitet, diese variable wird aber auch von contenido-backend anscheinend selbst verwendet. Wieder was gelernt :idea:
Trotzdem danke für die Tipps von euch!

Gesperrt