Die Elemente vereinfachen die Erstellung von komplexen und meist wiederholenden Bereiche für Kunden.
Elemente werden mithilfe einer while-Schleife wiederholt aus der Datenbank ausgegeben.
Die Abfrage erfolgt über einen MySQL Befehl.
Die Elemente werden in einer Datenbank gespeichert unter diesem Relationsnamen: texte_elemente
Diese Relation besitzt folgende Attribute:
| Attribute | Erklärung |
|---|---|
id | ID |
id_text | Seiten-ID |
lan | Sprachkürzel → de |
typ | Elementvorgabe ID |
value1 bis value12 | Vorgabe Value |
reihenfolge | Reihenfolge |
1. Lege eine neue Elementvorgabe an. Der Name soll für den Kunden verständlich sein. (Einstellungen → Konfiguration → Element Vorlagen)
2. Erstelle eine neue Datei in dem template/plugins/ Ordner mit dem Namen element_SEITENNAME_BEZEICHNUNG.php
3. Füge folgenden Code in die neu erstellte Datei ein:
→ < v4.0.0
<?php
$i = 0;
$result = cube_query('
Select *
from texte_elemente
where id_text="' . gibmomentaneid() . '" and typ="VORLAGEN ID" and showing="1" and lan="' . $_GET['lan'] ODER $_SESSION['lan'] . '"
order by reihenfolge');
while ($row = $result->fetch_assoc()) { $i++;
// Einzelnes Bild
$image = unserialize($row['value1']);
$imageSrc = "template/elemente/" . $row['id'] . "/(original|1200|800|400|200)/" . $image[0];
// Mehrere Bilder
$imageArray = unserialize($row['image']);
$imageArraySum = count($imageArray);
for ($c = 0; $c < $imageArraySum; $c++) {
echo "template/elemente/" . $row['id'] . "/(original|1200|800|400|200)/" . $imageArray[$c];
}
// Zum Beispiel
echo "<h2>[$row['value2']]</h2>";
}
?>← < v4.0.0
→ v5.0.0-v5.2.0
<?php
$i = 0;
$result = cube_query('SELECT * FROM texte_elemente WHERE id_text="' . $pageoptions_infos['pageId'] . '" and typ="ELEMENTTYP" and showing="1" and lan="' . $pageoptions_infos['language']['lan'] . '" ORDER BY reihenfolge');
if ($result->num_rows > 0) { // Wenn ein Element vorhanden ist, führe aus
while ($row = $result->fetch_assoc()) { $i++;
// Einzelnes Bild
$image = unserialize($row['image']);
$imageSrc = "template/elemente/" . $row['id'] . "/(original|1200|800|400|200)/" . $image[0];
// Mehrere Bilder
$imageArray = unserialize($row['image']);
$imageArraySum = count($imageArray);
for ($c = 0; $c < $imageArraySum; $c++) {
echo "template/elemente/" . $row['id'] . "/(original|1200|800|400|200)/" . $imageArray[$c];
}
// Zum Beispiel
echo "<h2>[$row['value2']]</h2>";
}
}
?>← v5.0.0-v5.2.0
→ v5.2.1-v5.2.2
<?php
$i = 0;
$result = cube_query('SELECT * FROM texte_elemente WHERE id_text="' . $this->pageOptions['pageId'] . '" and typ="ELEMENTTYP" and showing="1" and lan="' . $this->pageOptions['language']['lan'] . '" ORDER BY reihenfolge');
if ($result->num_rows > 0) { // Wenn ein Element vorhanden ist, führe aus
while ($row = $result->fetch_assoc()) { $i++;
// Einzelnes Bild
$image = unserialize($row['image']);
$imageSrc = "template/elemente/" . $row['id'] . "/(original|1200|800|400|200)/" . $image[0];
// Mehrere Bilder
$imageArray = unserialize($row['image']);
$imageArraySum = count($imageArray);
for ($c = 0; $c < $imageArraySum; $c++) {
echo "template/elemente/" . $row['id'] . "/(original|1200|800|400|200)/" . $imageArray[$c];
}
// Zum Beispiel
echo "<h2>[$row['value2']]</h2>";
}
}
?>← v5.2.1-v5.2.2
→ > v5.2.3
<?php
$i = 0;
$result = cube_query('SELECT * FROM texte_elemente WHERE id_text="' . $this->pageOptions['pageId'] . '" and typ="ELEMENTTYP" and showing="1" and lan="' . $this->pageOptions['language']['lan'] . '" ORDER BY reihenfolge');
if ($result->num_rows > 0) { // Wenn ein Element vorhanden ist, führe aus
while ($row = $result->fetch_assoc()) { $i++;
// Einzelnes Bild
$image = unserialize($row['image']);
$imageSrc = "template/elemente/" . $row['id'] . "/(1920|1200|800|400|200)/" . $image[0];
// Mehrere Bilder
$imageArray = unserialize($row['image']);
$imageArraySum = count($imageArray);
for ($c = 0; $c < $imageArraySum; $c++) {
echo "template/elemente/" . $row['id'] . "/(1920|1200|800|400|200)/" . $imageArray[$c];
}
// Zum Beispiel
echo "<h2>[$row['value2']]</h2>";
}
}
?>← > v5.2.3
Weitere Vorlagen findest du unter → Elemente Vorlagen
4. Setze den nicht wiederholenden Code außerhalb der PHP Tags.
→ > v5.0.0
5. Auf der jeweiligen Seite im VISION unter dem Code Icon → Verfügbare Elemente die erstellte Vorlage aktivieren und Elemente hinzufügen.
← > v5.0.0
| Elementtyp | Richtige PHP Ausgabe |
|---|---|
|
|
| Datum | |
| Uhrzeit | |
| Bild |
|
| Datei Upload | |
| Radio Button | |
| Icon Auswahl | |
| Interner Link |
|
| Interner & externer Link | |
|
|
<?php
$i = 0;
$query = <<<SQL
SELECT
id,
image,
value1 AS headline
FROM
texte_elemente
WHERE
id_text='{$this->pageOptions["pageId"]}' AND
typ='ElementTyp' AND
showing='1' AND
lan='{$this->pageOptions["language"]["lan"]}'
ORDER BY
reihenfolge
SQL;
$result = cube_query($query); ?>
<?php while ($row = $result->fetch_object()) : ?>
<?php $i++;
// Einzelnes Bild
$image = unserialize($row->image);
$imageSrc = "template/elemente/{$row->id}/original/{$image[0]}";
// Mehrere Bilder
$imageArray = unserialize($row->image);
$imageArraySum = count($imageArray);
?>
<?php for ($c = 0; $c < $imageArraySum; $c++) : ?>
<?php echo $imageArray[$c]; ?>
<?php endfor ?>
<h2><?php echo $row->headline ?></h2>
<?php endwhile ?>Z:\vision_alex_test\admin\module\textelemente.php
$result = cube_query("insert into texte_elemente(id,id_text,lan,typ,showing,topelement,image,slug,value1,value2,value3,value4,value5,value6,value7,value8,value9,value10,value11,value12,value13,reihenfolge,timestamp)
values('" . $next_id . "','" . $copy['id_text'] . "','" . $copy['lan'] . "','" . $copy['typ'] . "','" . $copy['showing'] . "','" . $copy['topelement'] . "','" . $copy['image'] . "','" . $copy['slug'] . "','" . $copy['value1'] . "','" . $copy['value2'] . "','" . $copy['value3'] . "','" . $copy['value4'] . "','" . $copy['value5'] . "','" . $copy['value6'] . "','" . $copy['value7'] . "','" . $copy['value8'] . "','" . $copy['value9'] . "','" . $copy['value10'] . "','" . $copy['value11'] . "','" . $copy['value12'] . "',,'" . $copy['value13'] . "','" . $copy['reihenfolge'] . "','" . $copy['timestamp'] . "')");(Default in Zeile 150):
Z:\vision_alex_test\admin\module\elemente_vorgaben.php
(Default in Zeile 33):
<?php
$value_anzahl = 13;Z:\vision_alex_test\admin\module\elemente\main.php
(Default in Zeile 2):
define("ELEMENT_VALUES", 13);1. In der Datenbank im Projekt unter texte_elemente eine neue Spalte anlegen: (Name: value13, Typ: meistens text, Kollation:utf8mb3_bin)

2. In der Datenbank im Projekt unter texte_elemente_vorgaben eine zwei neue Spalten anlegen: (name13, varchar(255), utf8mb3_bin) und (feld13, varchar(255), utf8mb3_bin)

Du hast alle Elemente erstellt und vergessen, dass das Projekt Mehrsprachigkeit haben muss? Hier ist die Lösung:
"texte_elemente".Elemente werden für alle Sprachen gleichzeitig ausgeblendet, mit diesem Snippet wird nur das ausgewählte Element ausgeblendet.
mysql_query("update texte_elemente set showing='" . $value . "' where lan='" . $_GET['kuerzel'] . "' and id='" . $_GET['showid'] . "'");
header('Location:textelemente.php?id=' . $_GET['id'] . '&kuerzel=' . $_GET['kuerzel'] . '&lastedit_typ=' . $_GET['lastedit_typ']);→ > v5.0.0
Behoben ab Version 5.4
Z:\vision_alex_test\admin\module\textelemente.php
(Default in Zeile: ca. 428)
if ($row_c['slug'] == 1) {
echo '<th>URL</th>';
}
ersetzen durch
if (explode(",", $row_c['slug'])[0] == 1) {
echo '<th>URL</th>';
} Z:\vision_alex_test\admin\module\elemente\main_vorschau.php
(Default in Zeile: ca. 23)
Diesen Code durch fehlerhaften in Zeile 23 ersetzen:
echo ($row_c['slug'] ? '<td>' . getElementVorschauSEO($test['slug'], $value) . '</td>' : "");
ersetzen durch
echo (explode(",", $row_c['slug'])[0] ? '<td>' . getElementVorschauSEO($test['slug'], $value) . '</td>' : "");Value 1 ist immer der Image-Tag!loop:NameDesLoops_IdDesElementes<div id="number_[[ID]]">
<div class="col-md-4">
<value1><h1>[[value1]]</h1></value1>
<value1_else><h1>Kein Inhalt</h1></value1_else>
<img src="[[value2_img400]]" class="img-responsive"/>
<a href="[[value3]]">[[value3]]</a><br/>
<a href="[[value4_link]]">Hier kommt der Link</a><br/>
[[value5]]
</div>
</div>← > v5.0.0