ConPresso Community

Fragen, Antworten, Diskussionen rund um das Content Management System ConPresso

 
mod_pages - Fehlverhalten bei globalem css

 
Neue Antwort erstellen    ConPresso Community Foren-Übersicht -> Kleine und neue Module
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
BFNF
ConPresso-Newbie


Anmeldungsdatum: 15.07.2015
Beiträge: 4

BeitragVerfasst am: 15.07.2015 14:58    Titel: mod_pages - Fehlverhalten bei globalem css Antworten mit Zitat

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.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 7016

BeitragVerfasst am: 15.07.2015 16:03    Titel: Antworten mit Zitat

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?

_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
BFNF
ConPresso-Newbie


Anmeldungsdatum: 15.07.2015
Beiträge: 4

BeitragVerfasst am: 15.07.2015 16:46    Titel: Antworten mit Zitat

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);
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 7016

BeitragVerfasst am: 15.07.2015 17:02    Titel: Antworten mit Zitat

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
Code:
$global_css = htmlentities($db->v('css', ENT_COMPAT, 'ISO-8859-15'));

diese Zeile es aber tut
Code:
$local_css[] = htmlentities($db->v('css'), ENT_COMPAT, 'ISO-8859-15');


Mist, ich habe kein System mit PHP 5.4 auf dem ich das testen könnte...

_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
BFNF
ConPresso-Newbie


Anmeldungsdatum: 15.07.2015
Beiträge: 4

BeitragVerfasst am: 15.07.2015 17:10    Titel: Antworten mit Zitat

Jaaa! Die Sonderzeichen *sind* das Problem Very Happy
Wenn ich alle Sonderzeichen im globalen CSS austausche ä durch ae bis ß durch ss funktioniert das Modul wie erwartet.

Die Klärung warum die Zeile
Zitat:
$global_css = htmlentities($db->v('css', ENT_COMPAT, 'ISO-8859-15'));

nicht funktioniert und wie der Fix aussieht erwarte ich mit Spannung.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MarkusR
Handbuchversteher


Anmeldungsdatum: 01.01.1970
Beiträge: 7016

BeitragVerfasst am: 15.07.2015 17:25    Titel: Antworten mit Zitat

Peinlich, peinlich...

die Zeile muss lauten
Code:
$global_css = htmlentities($db->v('css'), ENT_COMPAT, 'ISO-8859-15');


also
$db->v('css',
wird zu
$db->v('css'),

und
));
wird zu
);
also eine Klammer weniger!

_________________
Ciao Markus
ConPresso-Module
ConPresso und PHP 7
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
BFNF
ConPresso-Newbie


Anmeldungsdatum: 15.07.2015
Beiträge: 4

BeitragVerfasst am: 15.07.2015 17:42    Titel: Antworten mit Zitat

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 Very Happy

Danke für die schnelle Hilfe !!!

Bis zum nächsten Mal
Grüße
MP
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neue Antwort erstellen    ConPresso Community Foren-Übersicht -> Kleine und neue Module Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen