Fehler bei der Layoutbearbeitung

timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

So, der HTML-Validator funktioniert wieder richtig, außerdem gibt es eine Funktion, mit der geprüft werden kann, ob ein bestimmter Tag vorhanden ist -> der Layout-Editor prüft jetzt auch, ob die Tags vorhanden sind.
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ich muss das thema leider wieder aufmachen da ich in ein nettes problem beim validtor geraten bin... (HerrB hatte das in ähnlicher form mit der variable $db)

ich setze für ein projekt direkt im layout php code ein.
soweit so gut -> die konstruktion sieht in etwa so aus

Code: Alles auswählen

<?php 

$properties = new PropertyCollection();

function img($idcat) {
    global $properties;
    return $properties->getValue("idcat", $idcat, "visual", "image");
}

$image = img($idcat);

?>
und das verursacht leider einen fatal php error in class.htmlvalidator.php -> function cleanHTML

der grund dafür ist an sich auch logisch...
da der code in der cleanHTML mittels eval ausgeführt wird kann inerhalb der funktion img $properties nie zur verfügung stehen...
sämtliche layouts nun nachzubessern und überall ein global reinzubauen wäre etwas problematisch...

ich würde daher eher vorschlagen das eval rauszunehmen bzw die funktion cleanHTML so anzupassen das sämtlicher php code ignoriert wird...
ich hab mich jetzt mal mit preg_replace gespielt und somit sämtlichen php code rausgefiltert...
das einzige was dann natürlich nicht mehr stimmt sind die zeilennummern angabe beim parsen, falls tags vergessen wurden...
jede zeile php code die rausgefiltert wird müsste somit durch -> \n ersetzt werden...

falls eine überprüfung des php codes durchgeführt werden soll müsste das ähnlich gehandhabt werden wie in modTestModule (ich glaub zumindestens das die funktion so heisst) -> also sämtlichen html code mit einer funktionsdefinition function foo () { [HTMLCODE] } ... umschließen...
*** make your own tools (wishlist :: thx)
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

Es gibt ja die Systemeinstellung layout/htmlvalidator, mit der die Prüfung ausgeschalten werden kann...

mit dem eval sollte primär vermieden werden, daß eben jener PHP-Code für die Validierung in Betracht kommt...
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

timo hat geschrieben:mit dem eval sollte primär vermieden werden, daß eben jener PHP-Code für die Validierung in Betracht kommt...
die idee mit dem eval ist ja keine schlechte -> mir gefällt diese möglichkeit
nur momentan ist preg_replace einfach der bessere weg...
*** make your own tools (wishlist :: thx)
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

hast du die Regular Expression gerade parat? Wenn nicht, baue ich das evtl später um
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

fertig ist sie ja...
das mit den zeilen nummern stimmt nur noch nicht...
und ich sitze momentan nicht vor meinem eigenen rechner(stromabschaltung)...
*** make your own tools (wishlist :: thx)
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

sieht bei mir momentan wie folgt aus:

Code: Alles auswählen

	function cleanHTML ($html)
	{

        // remove all php code from layout
        $resultingHTML = preg_replace('/<\?(php)?((.)|(\s))*?\?>/i', '', $html);

		/* We respect only \n, but we need to take care of windows (\n\r) and other systems (\r) */
		$resultingHTML = str_replace("\r\n", "\n", $resultingHTML);
		$resultingHTML = str_replace("\r", "\n", $resultingHTML);

        return $resultingHTML;

	}
*** make your own tools (wishlist :: thx)
timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo »

so die Funktion habe ich mal eingebaut

darf ich schließen?
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

timo hat geschrieben:darf ich schließen?
ist lieb dass du fragst...

geschlossen
*** make your own tools (wishlist :: thx)
Gesperrt