CSS-Auswahl, fuer jede Seite kann man ein eigenes CSS Auswaehlen |
Willkommen, Gast ( Anmelden | Registrierung ) [ Hilfe | Mitglieder | Suche ]
CSS-Auswahl, fuer jede Seite kann man ein eigenes CSS Auswaehlen |
Mon. 4. January 2010, 19:49
Beitrag
#1
|
|
Member Gruppe: Members Beiträge: 11 Mitglied seit: 12.03.2009 Mitglieds-Nr.: 1.828 |
Hallo Jungs,
ich bin gerade dabei ein Modul zu schreiben indem man auf jeder Seite, sofern man will, ein eigenes CSS-File auswaehlen kann. Habe hier soweit nichts anderes wie einfach eine SelectBox in dem man einfach die Farben auswaehlt u anhand der Farbe wird dann das richtige CSS genommen. Dies funktioniert zZ nur als Modulkonfoguration - ist leider nicht sinnvoll :-). Nun wollte ich fragen ob ihr mir hier helfen koennt, wie man in einem Modul-Source einfach eine DropDown bzw. Selectbox auf der Seite einbinden kann, sodass der Redaktuer dies auf der Seite aendern kann. Also irgendwo auf der Seite ist dann einfach ein Bleistifft bei dem dies bearbeiten kann u dahinter dann ein DropDown (oder gleich ein DropDown waere hier egal - wie es leichter geht). Habe da schon einiges probiert von den Seiten: http://wiki.sefrengo.org/howto/eigene-module-schreiben http://wiki.sefrengo.org/referenz/mipforms?s[]=mip&s[]=form Ich schaffe es zwar mit dem Code im Modul unter Frontendausgabe QUELLTEXT <cms:mod type="select" id="1" title="Select Stylesheet" size="1" multiple="false" elementName="Green, Brown, Blue, Pink, Orange, Red, Lightblue"/> ein DropDown auszugeben, jedoch wird dann der Wert automatisch bei jeder Seite ausgegeben im Preview. Und braeuchte diesen Wert aber als Variable. Ev verstehe ich hier was falsch... LG Marko Der Beitrag wurde von Marko Merl bearbeitet: Mon. 4. January 2010, 19:49 |
|
|
Mon. 4. January 2010, 23:53
Beitrag
#2
|
|
Advanced Member Gruppe: Moderators Beiträge: 911 Mitglied seit: 26.06.2006 Wohnort: Essen; Ruhrgebiet Mitglieds-Nr.: 4 |
Ich schreib da gerne morgen Abend oder übermorgen noch was genaueres dazu, hier aus zeitgründen erstmal nur ein kleiner Tipp:
Wenn du QUELLTEXT backslashes="true" im CMS Tag setzt, kannst du das ganze als String in PHP nutzen. Hier ein Beispiel:QUELLTEXT $variablen['Veranstaltungsform'] = <cms:mod type = "select" id = "10" title = "Veranstaltungsform" elementName = "Kurs, Wochenende, berufsbegleitend, Bildungsurlaub, eintägiges Seminar,mehrtägiges Seminar, mehrtägiges Seminar, Vollzeit, Vortrag/Kurzveranstaltung" menuoptions = "false" addslashes="true"/>; (Möglicherweise musst du halt noch eine typegroup dazu packen, da durch die menuoptions ="false" sonst kein editieren möglich ist! Probier mal. Wenn du weiterhin Schwierigkeiten kriegen wir das schon hin Liebe Grüße Sascha -------------------- |
|
|
Thu. 7. January 2010, 06:38
Beitrag
#3
|
|
Member Gruppe: Members Beiträge: 11 Mitglied seit: 12.03.2009 Mitglieds-Nr.: 1.828 |
Hallo nochmal,
habe nun das mal ausprobiert. Folgendes kam dabei raus: der SRC vom Modul - Frontendausgabe - sieht so aus: QUELLTEXT <CMSPHP> $var = <cms:mod type = "select" id = "1" addslashes="true"/>; </CMSPHP> <cms:mod type="typegroup" elements="select[1]" title="Select Stylesheet"/> Ich bekomme auch wunderschoen im Backend am editieren der Seite einen Bleistift wo ich dann zum Select Menu komme. Nur das ist ja leer, den ich weiss nun nicht, wo ich die Values hinpacke?! LG Marko |
|
|
Thu. 7. January 2010, 12:08
Beitrag
#4
|
|
Advanced Member Gruppe: Moderators Beiträge: 911 Mitglied seit: 26.06.2006 Wohnort: Essen; Ruhrgebiet Mitglieds-Nr.: 4 |
Das liegt daran, dass du das (bei mir oben vorhandene) Pflichtfeld "elementName" nicht genutzt hast. Darin werden die Selectelemente definiert. (Du kannst sogar andere Labels im Selectfeld haben als dann in der Variable gespeichert werden. Dazu nutzt du zusätzlich zu "elementName" noch "elementValue". In der gleichen Reihenfolge lassen sich so z.B. klingenden Auswahloptionen passende Werte zuordnen.)
Es gibt auch noch ein paar andere Elemente die interssant sein könnten, wie z.B. ein default Wert anzugeben oder die Seperierzeichen zu wählen (in meinem Beispiel ja Kommas). Schau mal in die passende Doku rein: Hier der Abschnitt zu dem CMS-Tag Select. Ach ja, bitte nicht die ganzen alten Beiträge zitieren Das wird sonst ein ewiger Rattenschwanz. Entweder einen kleinen Ausschnitt in den Quote Block auf den man sich bezieht oder einfach nur Antworten, denn der vorhergehende Beitrag ist ja eh oben drüber! (Hab das bei dir gerad rausgelöscht! -------------------- |
|
|
Thu. 7. January 2010, 14:48
Beitrag
#5
|
|
Member Gruppe: Members Beiträge: 11 Mitglied seit: 12.03.2009 Mitglieds-Nr.: 1.828 |
Hallo,
alles klar, wird gemacht :-). habe das nun hinbekommen u laeuft auch soweit. Nur wenn ich nun auf der Seite einen Wert auswaehle aus dem Select bekomme ich danach immer foglende Errormeldung auf der Seite: QUELLTEXT Fatal error: Call to undefined function type_output_select() in /var/www/web1/kunden/hulu/cms/inc/frontend.php(257) : eval()'d code on line 49 Der Code vom Module schaut nun so aus: QUELLTEXT <CMSPHP> $style = <cms:mod type = "select" id = "1" title = "Select Stylesheet" elementName = "Green,Brown,Blue,Pink,Orange,Red,Lightblue" menuoptions = "false" addslashes="true"/>; $path = 'cms/css/'; if($style != '') { $css = $path.$style.'.css'; echo '<link rel="StyleSheet" href="'.$css.'" type="text/css" />'; } </CMSPHP> <cms:mod type="typegroup" elements="select[1]" title="Select Stylesheet"/> Dieser wird bei dem Template bzw Layout im Header eingebunden. LG Marko Der Beitrag wurde von Marko Merl bearbeitet: Thu. 7. January 2010, 14:49 |
|
|
Thu. 7. January 2010, 15:26
Beitrag
#6
|
|
Advanced Member Gruppe: Moderators Beiträge: 911 Mitglied seit: 26.06.2006 Wohnort: Essen; Ruhrgebiet Mitglieds-Nr.: 4 |
OK, soweit so gut. Hab noch einen Kniff vergessen, den du bei so einem Konstrukt brauchst. Sefrengo hat da ein Cache Problem. Mach mal folgendes drauß:
QUELLTEXT <CMSPHP:CACHE> //Alle Variablen, die nur innerhalb des gecachten PHPs sichtbar sind, auch für dynamisches PHP zur Verfügung stellen $cms_mod['style'] = <cms:mod type = "select" id = "1" title = "Select Stylesheet" elementName = "Green,Brown,Blue,Pink,Orange,Red,Lightblue" menuoptions = "false" addslashes="true"/>; echo '<CMSPHP>'; if (is_array($cms_mod['value'])) { foreach($cms_mod['value'] AS $k => $v){ echo '$mvars["'.$k.'"] = "'. addslashes($v) .'";'."\n"; }} echo '</CMSPHP>'; </CMSPHP:CACHE> <CMSPHP> $style = $mvars['style']; $path = 'cms/css/'; if($style != '') { $css = $path.$style.'.css'; echo '<link rel="StyleSheet" href="'.$css.'" type="text/css" />'; } </CMSPHP> <cms:mod type="typegroup" elements="select[1]" title="Select Stylesheet"/> <CMSPHP> Ungeprüft, sollte aber laufen! -------------------- |
|
|
Thu. 7. January 2010, 19:06
Beitrag
#7
|
|
Member Gruppe: Members Beiträge: 11 Mitglied seit: 12.03.2009 Mitglieds-Nr.: 1.828 |
Hallo,
habe da nun ganz was anderes herausgefunden. man setzt einfach den ganzen Frontend Output unter QUELLTEXT <?php ?> anstatt unter QUELLTEXT <CMSPHP> </CMSPHP> dann gibts keinen Cache anscheinend.... Haut auf alle Faelle so problemlos hin! Danke dir saschapi |
|
|
Thu. 7. January 2010, 20:44
Beitrag
#8
|
|
Advanced Member Gruppe: Moderators Beiträge: 911 Mitglied seit: 26.06.2006 Wohnort: Essen; Ruhrgebiet Mitglieds-Nr.: 4 |
Ne. Mit <?php ?> ist es eben gechached!
Das funzt solange dunicht irgendwas "dynamisches" in deinem PHP machst (bspw. du prüfst Serverzeit oder Datum oder so). Dann bleibt es nämlich immer so lange gespeichert bis sich auf der Seite was ändert. Wenn du indes nur die Selectbox so nutzt wie du das beschrieben hast macht das IMHO durchaus Sinn! Freut mich jedenfalls wenn es jetzt funktioniert! -------------------- |
|
|
Fri. 8. January 2010, 11:15
Beitrag
#9
|
|
Member Gruppe: Members Beiträge: 11 Mitglied seit: 12.03.2009 Mitglieds-Nr.: 1.828 |
Super, danke der Info :-)
somit schoenes WE! |
|
|
Vereinfachte Darstellung | Aktuelles Datum: 22.9.24 - 22:37 |