Modulanfrage
-
- Beiträge: 4256
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: Modulanfrage
Servus,
bitte Nein, so nicht! Das geht alles in einem Modul. Select-Feld zur Auswahl im Editor, speichern in VAR und VALUE. Auswahl Anzeige, sprich die CSS-Klasse, je nach Auswahl in VALUE.
Gruß aus Franken
Ortwin
bitte Nein, so nicht! Das geht alles in einem Modul. Select-Feld zur Auswahl im Editor, speichern in VAR und VALUE. Auswahl Anzeige, sprich die CSS-Klasse, je nach Auswahl in VALUE.
Gruß aus Franken
Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
Re: Modulanfrage
OK, du hast ja recht, das wäre eleganter.
Wo ist das Posting des Codes?
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.
Re: Modulanfrage
wenn man in den Input des Moduls dieses schreibt
Dann erhält man in der Vorlage ein Auswahlmenü, insofern das Modul nicht über die body-class eingebunden ist.
Ich müsste nun:
- den richtigen input schreiben
- den richtigen output schreiben
- das ganze der body-class zuweisen
Vielleicht geht es ja auch gar nicht.
Ich verspreche mir davon weniger Layouts, was eine umfangreiche Site übersichtlicher macht. Bei Änderungen muß man nur ein Layout ändern.
Nach der jetzigen Methode muss ich eine Layout duplizieren und mit neuer body-class versehen. Bei Änderungen an allen Layouts ändern. Und das finde ich immer sehr nervig.
Code: Alles auswählen
?>
<form id="classes">
<select name='class1'>
<option value=''>Bitte wählen</option>
<option value='eins'>eins</option>
<option value='zwei'>zwei</option>
<option value='drei'>drei</option>
<button type="submit">Eingaben absenden</button>
</select>
</form>
<?php
Ich müsste nun:
- den richtigen input schreiben
- den richtigen output schreiben
- das ganze der body-class zuweisen
Vielleicht geht es ja auch gar nicht.
Ich verspreche mir davon weniger Layouts, was eine umfangreiche Site übersichtlicher macht. Bei Änderungen muß man nur ein Layout ändern.
Nach der jetzigen Methode muss ich eine Layout duplizieren und mit neuer body-class versehen. Bei Änderungen an allen Layouts ändern. Und das finde ich immer sehr nervig.
-
- Beiträge: 4256
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: Modulanfrage
Servus,
Gruß aus Franken
Ortwin
das schafft ihr schon, ihr seid doch alle Profis...
Gruß aus Franken
Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
Re: Modulanfrage
Nö leider nicht
Re: Modulanfrage
Man kann es auf die alte Methode mit Tabellen machen oder moderner hiermit: https://api.contenido.org/latest/class- ... ement.html
Wobei man das hier mit hinzu nehmen sollte: https://api.contenido.org/latest/class-cHTML.html
Ich habs nicht getestet aber vielleicht funktioniert es ja:
Wobei man das hier mit hinzu nehmen sollte: https://api.contenido.org/latest/class-cHTML.html
Ich habs nicht getestet aber vielleicht funktioniert es ja:
Code: Alles auswählen
$classarray = array("rot", "gruen", "gelb");
$selectElem = new cHTMLSelectElement("CMS_VAR[0]","", "CMS_VAR[0]");
$selectElem->setClass("Klass_select");
$selectElem->appendOptionElement(new cHTMLOptionElement(i18n("Please choose"), ""));
foreach ($classarray as $option) {
if ("CMS_VALUE[0]" != $option) {
$selectElem->appendOptionElement(new cHTMLOptionElement($option, $option));
} else {
$selectElem->appendOptionElement(new cHTMLOptionElement($option, $option, true));
}
}
echo $selectElem->toHTML();
echo ' <input type="image" src="images/submit.gif">';
Zuletzt geändert von Faar am Do 1. Aug 2019, 15:51, insgesamt 1-mal geändert.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.
Re: Modulanfrage
Das Script von Faar ist im im Input.
Leider ist das einzige was in den Voreinstellungen der Vorlage zu sehen ist, der anklickbare submit-Button.
Leider ist das einzige was in den Voreinstellungen der Vorlage zu sehen ist, der anklickbare submit-Button.
Re: Modulanfrage
achje, da fehlt eine Ausgabe mit echo.
Habs oben geändert.
Wie gesagt, ich habe es nicht getestet sondern nur theoretisch zusammen gebaut.
Habs oben geändert.
Wie gesagt, ich habe es nicht getestet sondern nur theoretisch zusammen gebaut.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.
-
- Beiträge: 4256
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: Modulanfrage
Servus,
ich bin dann mal so frei...
Modulname: phpBO CSS-Class-Selector
Type: content
Beschreibung:
Modul-Input:
Modul-Output:
Gruß aus Franken
Ortwin
ich bin dann mal so frei...
Modulname: phpBO CSS-Class-Selector
Type: content
Beschreibung:
Code: Alles auswählen
*de*
Mit diesem Modul können Sie über die Konfiguration der Vorlage einem HMTL-Tag einen CSS-Klassennamen zuweisen. Gehen Sie dafür wie folgt beispielsweise für den body-Tag wie folgt vor.
1. Im Layout im body-Tag den Class-Parameter ergänzen
2. Als Inhalt eine container-Tag erstellen und diesem dann dieses Modul zuweisen
3. In den sprachabhängigen Mandanteneinstellungen eine kommaseparierte Liste der gewünschten CSS-Klassennamen ablegen (phpbo-css-class-selector|classnames|[Liste])
4. In der Vorkonfiguration der Vorlage den gewünschten Eintrag selektieren.
Code: Alles auswählen
?><?php
/**
* description: CSS Classname Selector (Input)
*
* @package Module
* @subpackage phpBO
* @version 1.0
* @author ortwin.pinke@php-backoffice.de
* @copyright PHP-Backoffice <php-backoffice.de>
* @license http://www.gnu.de/documents/gpl-3.0.de.html
* @link http://php-backoffice.de
*/
$bDisableFlag = true;
$iSelected = 0;
$oClientLang = new cApiClientLanguage(false, cRegistry::getClientId(), cRegistry::getLanguageId());
$sCssClassNames = $oClientLang->getProperty("phpbo-css-class-selector", "classnames");
$aCssClassNames = explode(",", $sCssClassNames);
if(is_array($aCssClassNames) && count($aCssClassNames) > 0) {
$bDisableFlag = false;
$iSelected = "CMS_VALUE[1]";
}
$oCfgTable = new UI_Config_Table();
$oSelCssClass = new cHTMLInputSelectElement("CMS_VAR[1]", 1, '', $bDisableFlag);
$oOption = new cHTMLOptionElement(mi18n("-- Please Select --"), '');
$oSelCssClass->addOptionElement(0, $oOption);
foreach($aCssClassNames as $iKey => $sCssClassName) {
$oSelCssClass->appendOptionElement(new cHTMLOptionElement($sCssClassName, $iKey+1));
}
$oSelCssClass->setDefault($iSelected);
$oCfgTable->setCell('select', 0, mi18n("Select CSS Class"));
$oCfgTable->setCell('select', 1, $oSelCssClass->render()."\n ");
$oCfgTable->render(true);
?><?php
Code: Alles auswählen
<?php
/**
* description: CSS Classname Selector (Output)
*
* @package Module
* @subpackage phpBO
* @version 1.0
* @author ortwin.pinke@php-backoffice.de
* @copyright PHP-Backoffice <php-backoffice.de>
* @license http://www.gnu.de/documents/gpl-3.0.de.html
* @link http://php-backoffice.de
*/
$oClientLang = new cApiClientLanguage(false, cRegistry::getClientId(), cRegistry::getLanguageId());
$sCssClassNames = $oClientLang->getProperty("phpbo-css-class-selector", "classnames");
$aCssClassNames = explode(",", $sCssClassNames);
if(!empty($aCssClassNames[0])) {
array_unshift($aCssClassNames, "");
}
if(isset($aCssClassNames["CMS_VALUE[1]"]) && !empty($aCssClassNames["CMS_VALUE[1]"])) {
echo $aCssClassNames["CMS_VALUE[1]"];
}
?>
Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
Re: Modulanfrage
Hätte ich ja auch mal merken können.
Super das klappt. Ich kann die Klasse in den Voreinstellungen der Vorlage auswählen.
Jetzt muss ich sie "nur" noch im Output auslesen und in den body-Tag bekommen.
Da hatte ich vorhin schonmal ganz anarchisch gedacht, man ersetzt den eröffnenden body-Tag durch das Modul.
Im Output steht dann irgendwie sowas
Oh sorry. Das bezieht sich auf Faar. Hatte den Post danach noch nicht gelesen.
Super das klappt. Ich kann die Klasse in den Voreinstellungen der Vorlage auswählen.
Jetzt muss ich sie "nur" noch im Output auslesen und in den body-Tag bekommen.
Da hatte ich vorhin schonmal ganz anarchisch gedacht, man ersetzt den eröffnenden body-Tag durch das Modul.
Im Output steht dann irgendwie sowas
Code: Alles auswählen
echo "<body class="Variable-aus-Input">";
Re: Modulanfrage
So vielleicht:
Code: Alles auswählen
<?php
$bodytag = "CMS_VALUE[0]";
echo '<body class="'.$bodytag.'">';
?>
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.
Re: Modulanfrage
@Oldpearl:
Danke!!!! und das mal eben auf die Schnelle!
Das klappt insofern nicht, als der cms-Container nicht als Klasse akzeptiert wird. Im Quelltext steht dann genau das gleiche wie im Layout
Danke!!!! und das mal eben auf die Schnelle!
Das klappt insofern nicht, als der cms-Container nicht als Klasse akzeptiert wird. Im Quelltext steht dann genau das gleiche wie im Layout
Code: Alles auswählen
<body class='<container id="10" name="layout_css_class" types="content" mode="optional" default="layout_css_class">layout_css_class</container>'>
Re: Modulanfrage
Man kann container nicht in Hochkommas verschachteln.
Du kannst ihn einbinden, erzeugst aber in Oldperls Modul kein echo, sondern speicherst in einer Variablen ab, die du dann im Quellcode einbinden kannst.
Im Layout z.B. vor dem Bodytag oder im Header irgendwo:
Den Output im Modul ändern von
in
und dann im Layout den Body wie folgt unterbrechen:
<body class='<?php echo $myClass; ?>'>
Du kannst ihn einbinden, erzeugst aber in Oldperls Modul kein echo, sondern speicherst in einer Variablen ab, die du dann im Quellcode einbinden kannst.
Im Layout z.B. vor dem Bodytag oder im Header irgendwo:
Code: Alles auswählen
<container id="10" name="layout_css_class" types="content" mode="optional" default="layout_css_class">
Code: Alles auswählen
echo $aCssClassNames["CMS_VALUE[1]"];
Code: Alles auswählen
$myClass = $aCssClassNames["CMS_VALUE[1]"];
<body class='<?php echo $myClass; ?>'>
-
- Beiträge: 4256
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: Modulanfrage
Servus,
danke @homtata, wobei der body-Tag an sich schon problematisch ist.
Alternativ kannst Du auch den Output meines Moduls ersetzen durch
und dann den body-Tag komplett im Layout durch
ersetzen. Das funktioniert (getestet)
Gruß aus Franken
Ortwin
PS: Grundsätzlich muss man aber auch immer noch Chains im Auge behalten, die das HTML prüfen und eventuell auch nachträglich noch Änderungen machen.
danke @homtata, wobei der body-Tag an sich schon problematisch ist.
Alternativ kannst Du auch den Output meines Moduls ersetzen durch
Code: Alles auswählen
<?php
/**
* description: CSS Classname Selector
*
* @package Module
* @subpackage phpBO
* @version 1.1
* @author ortwin.pinke@php-backoffice.de
* @copyright PHP-Backoffice <php-backoffice.de>
* @license http://www.gnu.de/documents/gpl-3.0.de.html
* @link http://php-backoffice.de
*/
$oClientLang = new cApiClientLanguage(false, cRegistry::getClientId(), cRegistry::getLanguageId());
$sCssClassNames = $oClientLang->getProperty("phpbo-css-class-selector", "classnames");
$aCssClassNames = explode(",", $sCssClassNames);
if (!empty($aCssClassNames[0])) {
array_unshift($aCssClassNames, "");
}
if (isset($aCssClassNames["CMS_VALUE[1]"]) && !empty($aCssClassNames["CMS_VALUE[1]"])) {
echo '<body class="' . $aCssClassNames["CMS_VALUE[1]"] . '" >';
} else {
echo '<body class="empty">';
}
?>
Code: Alles auswählen
<container id="6000" name="css_class" types="content" mode="fixed" default="phpBO CSS-Class-Selector">css_class</container>
Gruß aus Franken
Ortwin
PS: Grundsätzlich muss man aber auch immer noch Chains im Auge behalten, die das HTML prüfen und eventuell auch nachträglich noch Änderungen machen.
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
Re: Modulanfrage
Klappt, Danke!
Und ich habe die andere Version von Faar auch mal weiterverfolgt. Die klappt auch. Danke!
Allerdings mit einer großen Einschränkung. Im Backend wird im Editor nichts mehr angezeigt. Hier fehlt dann wahrscheinlich der body-Tag.
Und ich habe die andere Version von Faar auch mal weiterverfolgt. Die klappt auch. Danke!
Allerdings mit einer großen Einschränkung. Im Backend wird im Editor nichts mehr angezeigt. Hier fehlt dann wahrscheinlich der body-Tag.