Seite 1 von 3

Modulanfrage

Verfasst: Mi 31. Jul 2019, 11:16
von farina
Gibt es ein Modul mit dem ich in den Voreinstellungen einer Vorlage z.b. dem body-tag eine css-Klasse geben kann?
Oder hat jemand eine Idee, wie man ein bestehendes Modul umfunktionieren könnte?
LG

Re: Modulanfrage

Verfasst: Mi 31. Jul 2019, 12:42
von Oldperl
Servus,

sorry, das kann ich nicht ganz nachvollziehen. Was bitte soll das Modul genau können/machen?

Gruß aus Franken

Ortwin

Re: Modulanfrage

Verfasst: Mi 31. Jul 2019, 12:56
von farina
Ich würde ganz gerne dem body-Tag eine Klasse zuordnen können.

Manchmal habe ich das gleiche Layout, dass mit einer anderen Klasse anders formatiert wird. Beispielsweise habe ich 2 Text-Module untereinander. Mit einer andere Body-class könnte ich die nebeneinader positionieren, ohne ein neues Layout anlegen zu müssen.
Momentan muß ich dafür das Layout duplizieren und mit neuer Klasse als neues Layout abspeichern.

Und ich stelle mir vor, dass man mit dem gleichen Layout eine neue Vorlage erstellt, eben mit der Möglichkeit die class zu wählen.
Weiß nicht, wie ich es anders erklären soll.

Vielleicht denke ich aber auch total quer. Bitte keine Hemmungen mir das zu sagen.
LG

Re: Modulanfrage

Verfasst: Mi 31. Jul 2019, 14:22
von Faar

Code: Alles auswählen

<body class='<container id="ID" name="css-class-modul">Body-Class</container>' >
Und dann kannst Du je nach Layout ein anderes CSS-Modul einfügen.
Das kann so einen Code haben:

Code: Alles auswählen

<?php
// Modul1 fuer Body-Class1
echo "class1";
?> 

Re: Modulanfrage

Verfasst: Mi 31. Jul 2019, 16:42
von farina
Danke. Das ist aber noch nicht das, was ich meine.

Im Input des Moduls müsste ein Formular sein entweder mit Auswahlliste oder Texteingabe.Damit man unter verschiedenen CSS-Klassen auswählen oder die CSS-Klasse eingeben kann.
Im Output wird dann nur die Variable ausgelesen.

Re: Modulanfrage

Verfasst: Mi 31. Jul 2019, 18:44
von Oldperl
Servus,

es würde doch bestimmt ausreichen wenn man die Klassennamen in einer Mandantenvariable als Kommaseparierte Liste speichern könnte, oder?

Gruß aus Franken

Ortwin

Re: Modulanfrage

Verfasst: Do 1. Aug 2019, 09:48
von farina
Meinst du in der Form in den Mandanteneigenschaften?

Code: Alles auswählen

Modulname | Variablenname| Css-Klassen mit Komma getrennt
Das wäre ja super!
Aber wie lese ich das dann aus? Mir fehlt es immer wieder an solchen basics?

Re: Modulanfrage

Verfasst: Do 1. Aug 2019, 12:42
von Oldperl
Servus,

na, dann wird es mal Zeit für ein Tutorial... 8)

Gruß aus Franken

Ortwin

Re: Modulanfrage

Verfasst: Do 1. Aug 2019, 13:22
von homtata
Wenn du dich wirklich in einen Inputbereich reinfuchsen willst, dann nimm mal den Inputbereich meines Moduls Terminliste (dort das Modul zur Terminausgabe und dessen Inputbereich). Dort ist - wenn auch sehr umfangreich - ein Inputbereich definiert, und einer davon liest auch über getEffectiveSetting einen Mandantenwert aus, der Semikolongetrennt ist und daraus ein select-field erstellt innerhalb des Inputbereichs. Ein anderer sucht nach allen vorhanden Smarty-Templates (.tpl) und macht daraus ein select-field. Kann man alles sehr vereinfachen für deine Zwecke.

Re: Modulanfrage

Verfasst: Do 1. Aug 2019, 13:45
von Faar
farina hat geschrieben:
Mi 31. Jul 2019, 16:42
Danke. Das ist aber noch nicht das, was ich meine.
Sofern es nicht zu viele Varianten sind, kann man doch für jede Klasse ein eigenes einfaches Modul machen und dann jeweils im Template einfügen, also für jede Variante auch ein eigenes Template (Vorlage).
Wenn es viele Varianten sind, empfiehlt sich natürlich eine Eingabe.

Re: Modulanfrage

Verfasst: Do 1. Aug 2019, 13:47
von Faar
Oldperl hat geschrieben:
Mi 31. Jul 2019, 18:44
es würde doch bestimmt ausreichen wenn man die Klassennamen in einer Mandantenvariable als Kommaseparierte Liste speichern könnte, oder?
Wie weißt man dann dem <body> Tag die jeweils zutreffende Klasse zu?
Das Auslesen ist für uns beide kein Problem aber ich sehe noch nicht die Logik der Zuweisung.
Wie stellst Du dir das vor?

Re: Modulanfrage

Verfasst: Do 1. Aug 2019, 13:54
von Faar
farina hat geschrieben:
Do 1. Aug 2019, 09:48
Meinst du in der Form in den Mandanteneigenschaften?

Code: Alles auswählen

Modulname | Variablenname| Css-Klassen mit Komma getrennt
Das wäre ja super!
Aber wie lese ich das dann aus? Mir fehlt es immer wieder an solchen basics?

Code: Alles auswählen

$klass_s = getEffectiveSetting($ModuleName, 'bodyclass', 'gruen,rot,gelb'); // hier holt man sich aus dem Mandanten die Daten oder gibt Werte vor, falls die Daten fehlen. Diese Daten sind in Form eines String, also Zeichenkette.
$klass_a = explode(",", $klass_s); //Um die einzelnen Klassen zu haben, muss man den String aufbrechen und erhält damit ein Array.
echo $klass_a[0]; // Der erste Wert im Array würde dann 'gruen' enthalten.
Aber um auf Oldperls Idee zurück zu kommen: Wie würde unterschieden werden, wann welche Klasse angezeigt werden soll?

Re: Modulanfrage

Verfasst: Do 1. Aug 2019, 13:56
von Faar
Oldperl hat geschrieben:
Do 1. Aug 2019, 12:42
na, dann wird es mal Zeit für ein Tutorial... 8)
Für die 4.8 gabs das glaub ich schon mal.
Ansonsten kann man (ich? :shock: ) das noch in die Docs schreiben.

Re: Modulanfrage

Verfasst: Do 1. Aug 2019, 14:02
von farina
so wie du das vorgeschlagen hast Faar
<body class='<container id="ID" name="css-class-modul">Body-Class</container>' >
klappt das nicht.
So wird im Quelltext der Webseite nur die genaue Zeichenfolge ausgelesen. Ich habe es bis jetzt noch nicht hinbekommen.

Re: Modulanfrage

Verfasst: Do 1. Aug 2019, 14:07
von Faar
Ok, dann anders:

Code: Alles auswählen

<container id="ID" name="css-class-modul">Body-Class</container>
Und im Modul steht dann:

Code: Alles auswählen

<?php
echo '<body class="xyz">';
?>
Natürlich braucht man dann für jede Klasse ein eigenes Modul.
Sonst muss man das über Input machen und wird natürlich ein wenig aufwändiger.