mod_pages - Fehlverhalten bei globalem css
mod_pages - Fehlverhalten bei globalem css
Hallo zusammen,
ich verwende folgende Versionen
Conpresso 4.1.6
Modul Pages 4.1
Apache/2.2.22
PHP 5.4
MySQL 5.1.73
Hoster 1und1
Alles funktioniert gut bis auf folgende Einschränkung:
Die Speicherung des globalen CSS im Modul Pages verhält sich falsch. Wenn ich im Formularfeld „Seiten-CSS:“ ein etwas größeres CSS anlege und auf Template speichern klicke, verschwindet der Eintrag aus dem Formularfeld. Aber das CSS wird in der Datenbank eingetragen und im Frontend angewandt.
Problematisch wird dies, wenn ich an Seiten-Kopf oder –Fuß oder Rubrik-Templates Änderungen mache und auf Speichern klicke, da dann das leere Formularfeld in die Datenbank geschrieben und somit das CSS gelöscht wird.
Wenn ich dasselbe CSS in Rubrik-CSS anwende funktioniert das mit dem Modul einwandfrei. Es liegt also nicht am CSS.
Wenn ich bei ausgefülltem Formularfeld die Voreinstellung mit dem CSS speichere und später lade, wird das CSS wieder in die Datenbank geschrieben. Für mich sieht es so aus, als ob das Füllen des Formularfelds mit dem CSS aus der Datenbank fehlschlägt. Aber warum nur beim globalen CSS? Bei allen anderen Felder gibt es kein Problem.
Ich habe schon versucht, das Problem zu lösen, aber komme allein nicht weiter.
Bitte gebt mir einen Tipp wie ich die Funktion des Moduls vollständig herstellen kann.
ich verwende folgende Versionen
Conpresso 4.1.6
Modul Pages 4.1
Apache/2.2.22
PHP 5.4
MySQL 5.1.73
Hoster 1und1
Alles funktioniert gut bis auf folgende Einschränkung:
Die Speicherung des globalen CSS im Modul Pages verhält sich falsch. Wenn ich im Formularfeld „Seiten-CSS:“ ein etwas größeres CSS anlege und auf Template speichern klicke, verschwindet der Eintrag aus dem Formularfeld. Aber das CSS wird in der Datenbank eingetragen und im Frontend angewandt.
Problematisch wird dies, wenn ich an Seiten-Kopf oder –Fuß oder Rubrik-Templates Änderungen mache und auf Speichern klicke, da dann das leere Formularfeld in die Datenbank geschrieben und somit das CSS gelöscht wird.
Wenn ich dasselbe CSS in Rubrik-CSS anwende funktioniert das mit dem Modul einwandfrei. Es liegt also nicht am CSS.
Wenn ich bei ausgefülltem Formularfeld die Voreinstellung mit dem CSS speichere und später lade, wird das CSS wieder in die Datenbank geschrieben. Für mich sieht es so aus, als ob das Füllen des Formularfelds mit dem CSS aus der Datenbank fehlschlägt. Aber warum nur beim globalen CSS? Bei allen anderen Felder gibt es kein Problem.
Ich habe schon versucht, das Problem zu lösen, aber komme allein nicht weiter.
Bitte gebt mir einen Tipp wie ich die Funktion des Moduls vollständig herstellen kann.
- MarkusR
- Handbuchversteher
- Beiträge: 7369
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 112 Mal
- Danksagung erhalten: 936 Mal
- Kontaktdaten:
Ich habe mir in der offiziellen(!) 4.1 sowohl das Abspeichern als auch das Aufrufen der Daten in und aus der Datenbank angesehen.
Die Felder sind gleich definiert.
Der Abruf erfolgt auf die gleiche Weise und auch die Anzeige erfolgt in identischen Feldern.
Das einzige was mir dazu einfällt wäre, dass es eine Rubrik mit der ID=0 gibt, wobei die Zählung eigentlich ab 1 aufwärts als Autowert erfolgt, also niemals 0 sein kann.
Diese Rubrik müsste dann aber auch angezeigt werden.
Ansonsten müsste man mit Kontrollausgaben den Punkt ermitteln, an dem das CSS verloren geht.
Ist das ganz sicher eine offizielle 4.1 und keine vermischte Version?
Was steht in den Zeilen 90-120 von edit.php?
Die Felder sind gleich definiert.
Der Abruf erfolgt auf die gleiche Weise und auch die Anzeige erfolgt in identischen Feldern.
Das einzige was mir dazu einfällt wäre, dass es eine Rubrik mit der ID=0 gibt, wobei die Zählung eigentlich ab 1 aufwärts als Autowert erfolgt, also niemals 0 sein kann.
Diese Rubrik müsste dann aber auch angezeigt werden.
Ansonsten müsste man mit Kontrollausgaben den Punkt ermitteln, an dem das CSS verloren geht.
Ist das ganz sicher eine offizielle 4.1 und keine vermischte Version?
Was steht in den Zeilen 90-120 von edit.php?
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
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Danke für die schnelle Antwort.
Da ich die Dateien von der offiziellen Seite herunter geladen habe, gehe ich davon aus, dass es die offizielle Version 4.1 ist. Vermischen könnte natürlich passiert sein, also prüfe ich das mal - moment ...
Also in edit.php steht oben Version 4.1 March 2013
Die gewünschten Zeilen enthalten - siehe ganz unten. (besser leesbar)
Kontrollausgaben:
Der Fehler scheint vom Inhalt abhängig zu sein.
Ich kan 20 mal den folgenden Block wiederholt hintereinander (also viele Zeilen) in das Formularfeld schreiben und es wird im Formularfeld auch nach dem Speichern angezeigt.
/* start of global css handled by mod_pages */
h1 { font-family:Optima,Georgia,TimesNewRoman,Times,serif; font-size:1.5em; color: #7C1417; font-weight: bold; font-style:italic;}
h2 { font-family:Optima,Georgia,TimesNewRoman,Times,serif; font-size:1.1em; color: #7C1417; font-weight: bold; font-style:italic;}
h3 { font-family:Optima,Georgia,TimesNewRoman,Times,serif; font-size:1em; color: #7C1417; font-weight: bold; font-style:italic;}
.drSpElKopf #h7 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size:0.8em; color: #999999; font-weight: bold; }
Aber wenn ich nur den folgenden Block abspeichere, ist ein leeres Formularfeld nach dem Speichern die Folge. Aber nur bei CSS!
body {
font: 100% Verdana, Arial, Helvetica, sans-serif;
background: FloralWhite url(/_data/seg_matte_1600_25.png) fixed no-repeat center top;
margin: 0; /* Es empfiehlt sich, margin (Rand) und padding (Auffüllung) des Body-Elements auf 0 einzustellen, um unterschiedlichen Browser-Standardeinstellungen Rechnung zu tragen. */
padding: 0;
text-align: center; /* Hierdurch wird der Container in IE 5*-Browsern zentriert. Dem Text wird dann im #container-Selektor die Standardausrichtung left (links) zugewiesen. */
color: #000000;
}
So, hier kommen die Zeilen aus edit.php:
$rubric_header = array();
$query = "SELECT header, footer, css FROM ".$dbPrefix."_mod_pages WHERE id=0"; // the globals
DEBUG(1, $query, __FILE__, __LINE__);
$db = new DB;
$db->query($query);
$db->next_record();
$global_header = htmlentities($db->v('header'), ENT_COMPAT, 'ISO-8859-15');
$global_footer = htmlentities($db->v('footer'), ENT_COMPAT, 'ISO-8859-15');
$global_css = htmlentities($db->v('css', ENT_COMPAT, 'ISO-8859-15'));
$query = "SELECT * FROM ".$dbPrefix."_mod_pages"; // the globals
DEBUG(1, $query, __FILE__, __LINE__);
$db = new DB;
$db->query($query);
while ($db->next_record()):
$local_id[] = htmlentities($db->v('id'), ENT_COMPAT, 'ISO-8859-15');
$local_header[] = htmlentities($db->v('header'), ENT_COMPAT, 'ISO-8859-15');
$local_footer[] = htmlentities($db->v('footer'), ENT_COMPAT, 'ISO-8859-15');
$local_css[] = htmlentities($db->v('css'), ENT_COMPAT, 'ISO-8859-15');
$local_default[] = htmlentities($db->v('def_rubric'), ENT_COMPAT, 'ISO-8859-15');
$local_using[] = htmlentities($db->v('use_rubric'), ENT_COMPAT, 'ISO-8859-15');
endwhile;
$query = "SELECT id, name FROM ".$dbPrefix."_rubric"; // the globals
DEBUG(1, $query, __FILE__, __LINE__);
$db = new DB;
$db->query($query);
Da ich die Dateien von der offiziellen Seite herunter geladen habe, gehe ich davon aus, dass es die offizielle Version 4.1 ist. Vermischen könnte natürlich passiert sein, also prüfe ich das mal - moment ...
Also in edit.php steht oben Version 4.1 March 2013
Die gewünschten Zeilen enthalten - siehe ganz unten. (besser leesbar)
Kontrollausgaben:
Der Fehler scheint vom Inhalt abhängig zu sein.
Ich kan 20 mal den folgenden Block wiederholt hintereinander (also viele Zeilen) in das Formularfeld schreiben und es wird im Formularfeld auch nach dem Speichern angezeigt.
/* start of global css handled by mod_pages */
h1 { font-family:Optima,Georgia,TimesNewRoman,Times,serif; font-size:1.5em; color: #7C1417; font-weight: bold; font-style:italic;}
h2 { font-family:Optima,Georgia,TimesNewRoman,Times,serif; font-size:1.1em; color: #7C1417; font-weight: bold; font-style:italic;}
h3 { font-family:Optima,Georgia,TimesNewRoman,Times,serif; font-size:1em; color: #7C1417; font-weight: bold; font-style:italic;}
.drSpElKopf #h7 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size:0.8em; color: #999999; font-weight: bold; }
Aber wenn ich nur den folgenden Block abspeichere, ist ein leeres Formularfeld nach dem Speichern die Folge. Aber nur bei CSS!
body {
font: 100% Verdana, Arial, Helvetica, sans-serif;
background: FloralWhite url(/_data/seg_matte_1600_25.png) fixed no-repeat center top;
margin: 0; /* Es empfiehlt sich, margin (Rand) und padding (Auffüllung) des Body-Elements auf 0 einzustellen, um unterschiedlichen Browser-Standardeinstellungen Rechnung zu tragen. */
padding: 0;
text-align: center; /* Hierdurch wird der Container in IE 5*-Browsern zentriert. Dem Text wird dann im #container-Selektor die Standardausrichtung left (links) zugewiesen. */
color: #000000;
}
So, hier kommen die Zeilen aus edit.php:
$rubric_header = array();
$query = "SELECT header, footer, css FROM ".$dbPrefix."_mod_pages WHERE id=0"; // the globals
DEBUG(1, $query, __FILE__, __LINE__);
$db = new DB;
$db->query($query);
$db->next_record();
$global_header = htmlentities($db->v('header'), ENT_COMPAT, 'ISO-8859-15');
$global_footer = htmlentities($db->v('footer'), ENT_COMPAT, 'ISO-8859-15');
$global_css = htmlentities($db->v('css', ENT_COMPAT, 'ISO-8859-15'));
$query = "SELECT * FROM ".$dbPrefix."_mod_pages"; // the globals
DEBUG(1, $query, __FILE__, __LINE__);
$db = new DB;
$db->query($query);
while ($db->next_record()):
$local_id[] = htmlentities($db->v('id'), ENT_COMPAT, 'ISO-8859-15');
$local_header[] = htmlentities($db->v('header'), ENT_COMPAT, 'ISO-8859-15');
$local_footer[] = htmlentities($db->v('footer'), ENT_COMPAT, 'ISO-8859-15');
$local_css[] = htmlentities($db->v('css'), ENT_COMPAT, 'ISO-8859-15');
$local_default[] = htmlentities($db->v('def_rubric'), ENT_COMPAT, 'ISO-8859-15');
$local_using[] = htmlentities($db->v('use_rubric'), ENT_COMPAT, 'ISO-8859-15');
endwhile;
$query = "SELECT id, name FROM ".$dbPrefix."_rubric"; // the globals
DEBUG(1, $query, __FILE__, __LINE__);
$db = new DB;
$db->query($query);
- MarkusR
- Handbuchversteher
- Beiträge: 7369
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 112 Mal
- Danksagung erhalten: 936 Mal
- Kontaktdaten:
Das "ü" im CSS-Code ist vermutlich der Verursacher, aber eigentlich sollte es durch htmlentities in sein Pendant ü umgewandelt werden und dann ohne Probleme im Code-Feld angezeigt werden.
Die Frage bleibt aber, warum diese Zeile nicht funktioniert
diese Zeile es aber tut
Mist, ich habe kein System mit PHP 5.4 auf dem ich das testen könnte...
Die Frage bleibt aber, warum diese Zeile nicht funktioniert
Code: Alles auswählen
$global_css = htmlentities($db->v('css', ENT_COMPAT, 'ISO-8859-15'));
Code: Alles auswählen
$local_css[] = htmlentities($db->v('css'), ENT_COMPAT, 'ISO-8859-15');
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
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Jaaa! Die Sonderzeichen *sind* das Problem
Wenn ich alle Sonderzeichen im globalen CSS austausche ä durch ae bis ß durch ss funktioniert das Modul wie erwartet.
Die Klärung warum die Zeile
Wenn ich alle Sonderzeichen im globalen CSS austausche ä durch ae bis ß durch ss funktioniert das Modul wie erwartet.
Die Klärung warum die Zeile
nicht funktioniert und wie der Fix aussieht erwarte ich mit Spannung.$global_css = htmlentities($db->v('css', ENT_COMPAT, 'ISO-8859-15'));
- MarkusR
- Handbuchversteher
- Beiträge: 7369
- Registriert: 01.01.1970 01:00
- Hat sich bedankt: 112 Mal
- Danksagung erhalten: 936 Mal
- Kontaktdaten:
Peinlich, peinlich...
die Zeile muss lauten
also
$db->v('css',
wird zu
$db->v('css'),
und
));
wird zu
);
also eine Klammer weniger!
die Zeile muss lauten
Code: Alles auswählen
$global_css = htmlentities($db->v('css'), ENT_COMPAT, 'ISO-8859-15');
$db->v('css',
wird zu
$db->v('css'),
und
));
wird zu
);
also eine Klammer weniger!
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
ConPresso-Module
Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!
Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Ja, das war es. Jetzt funktioniert es prima!
Braucht Ihnen/Dir nicht peinlich sein. Ich habe vorhin den Unterschied in der Struktur dieser Zeile zu den vorangehenden Zeilen bemerkt und die Zeile auch so wie jetzt korrigiert. Bekam aber eine Fehlermeldung und dachte daher, auf dem Holzweg zu sein. Jetzt war ich verdutzt und habe festgestellt, dass ich das ; am Zeilenende vergaß - *das* ist auch peinlich
Danke für die schnelle Hilfe !!!
Bis zum nächsten Mal
Grüße
MP
Braucht Ihnen/Dir nicht peinlich sein. Ich habe vorhin den Unterschied in der Struktur dieser Zeile zu den vorangehenden Zeilen bemerkt und die Zeile auch so wie jetzt korrigiert. Bekam aber eine Fehlermeldung und dachte daher, auf dem Holzweg zu sein. Jetzt war ich verdutzt und habe festgestellt, dass ich das ; am Zeilenende vergaß - *das* ist auch peinlich
Danke für die schnelle Hilfe !!!
Bis zum nächsten Mal
Grüße
MP