ich arbeite gerade an einer Art "PageBuilder" - einem Modul bei dem man sich das Layout mit Layoutblöcken zusammenstellen kann. Ich greife dabei teilweise auf Code-Schnippsel bestehender Module zurück. Da meine PHP und Contenido Kenntnisse nicht Bombe sind, wird das Ganze erstmal über die Kategorie- oder Artikelkonfiguration konfigurierbar sein. Ich hätte es am liebsten direkt in der Artikelansicht gelöst, aber dazu fehlen mit einfach die Contenido-Kenntnisse. Ich hab vor das Modul, wenn es mal läuft, hier zu veröffentlichen damit man es vielleicht gemeinsam weiterentwickeln kann.
Momentan stehe ich aber vor einem großen Problem. Ich würde gern alle Konfigurationen des Modul in einem Array legen und das in einem z.B. CMS_VAR[10] speichern. Aktuell ist es so dass bei jedem Durchlauf (1 Durchlauf ist ein Layoutblock der eingefügt wird) um 25 erhöht wird. Zum besseren Verständnis poste ich das einen Teil des Codes
Code: Alles auswählen
/ Variable für Anzahl der angezeigten Layout-Blöcke
$fValue="CMS_VALUE[10]"; // Kann in der Artikelkonfig über ein Input-Feld konfiguriert werde
// Unterstützte Content Typen
$cTypes = array('CMS_HTMLHEAD','CMS_HTML','CMS_TEXT','CMS_IMG','CMS_LINK');
// Start-Wert für Content Typen CMS_VAR[X]
$fValueStartWert = 100; //Ab dem Wert fange ich mit den CMS_VAR[X] an
// Wert mit dem CMS_VAR[X] bei jeder Schleife erhöht wird
$fValuePlusWert = 25;
//Maximale Anzahl an Layout-Blöcken
$fValueMaxWert = 20;
// Schleife für Ausgabe der angegebenen Layout-Blöcke
for ($i=1;$i<=$fValue;$i++){
$fVar=$fValueStartWert;
// Template-Variable
$fTemp =$fVar;
$fTempValue ="CMS_VALUE[$fTemp]";
$fTempVar ="CMS_VAR[$fTemp]";
// Sortier-Variable
$fSort = 1+ $fVar;
$fSortValue ="CMS_VALUE[$fSort]";
if(strlen($fSortValue)== 0){ $fSortValue = $fSort; }
$fSortVar ="CMS_VAR[$fSort]";
// ON/OFF-Variable
$fStatus = 2+ $fVar;
$fStatusValue ="CMS_VALUE[$fStatus]";
$fStatusVar ="CMS_VAR[$fStatus]";
?>
<li data-position="<?php echo $fSortValue; ?>">
?>
<div class="row-fluid">
<div class="span12" style="text-align:center;">
<h3 ><?php echo mi18n("Der Layout-Builder");?></h3>
<p><?php echo mi18n("Mit Hilfe des Layout-Builders kannst du dir dein eigenes individuelles Layout zusammenstellen. Hierfür kannst du auch eine Auswahl von vordefinierten Templates zurück greifen.");?></p>
</div>
<div class="span5"><?php echo mi18n("Anzahl der Layout-Blöcke angeben");?>:</div>
<div class="span6"><input type="text" name="<?php echo "CMS_VAR[10]"; ?>" value="<?php echo "$fValue"; ?>" <?php if($fValue>$fValueMaxWert){?>style="border:1px solid red;" <?php } ?>size="3" /> <?php echo mi18n("speichern");?> <?php echo $sSubmitLink;?></div>
</div>
<?php
if($fValue!=""){
// Maxwert Abfrage
if($fValue>$fValueMaxWert){
$fValue = $fValueMaxWert;
?>
<p style="background-color:red;color:#fff;line-height:1.6;padding:16px;text-align:center;">
<strong><?php echo mi18n("Achtung"); ?></strong>: <?php echo mi18n("Maximalwert von"); ?> <?php echo $fValueMaxWert; ?> <?php echo mi18n("überschritten. Bitte passen Sie den Wert an"); ?>!
</p>
<?php } ?>
<li data-position="<?php echo $fSortValue; ?>">
// INHALT DES MODUL-BLOCKS
// Hier werden weitere CMS_VAR[X] innerhalb des Layout-Blocks für bestimmte layoutspezifische Konfigurationen benötigt. Deshalb erhöre ich den "$fValuePlusWert" immer um 25 - damit genügend CMS_VAR pro durchlauf zur verfügung stehen.
</li>

Zurück zum Problem. Ich würde gern alle Konfigurationen des Modul in nur einer CMS_VAR[X] speichern und zwar in einem Array. Einige Variablen werden über Input-Felder mit Werten befüllt. Andere Werte kommen direkt aus dem Modul.
Gibt es einen Weg ein Array in ein CMS_VAR[] zu speichern ohne JS verwenden zu müssen (hier im Forum gibt es Lösungen die auf JS setzen)? Werte die ich direkt aus dem jeweiligen Template beziehen sind dabei kein Problem. Hier kann ich die ja in einem versteckten Input-Feld packen und normal versenden. Aber wie mache ich es mit Werten die vom User erst über ein Input-Feld mit Werten befüllt werden?
Ich hoffe ich habe euch nicht zu sehr und hoffe noch mehr, dass mir jemand helfen kann. Sobald das Modul lauffähig ist würde ich es wie gesagt auch hier posten da ich finde, das sowas extrem nützlich sein kann.
Viele Grüße
Matt