Hallo,
Ich bin gerade dabei eine View Abstraktion für cakePHP zu schreiben. Ziel ist das Plugins nur noch eine Struktur als View zur Verfügung stellen und daraus dann der spezielle Code für die Website generiert wird.
Das hat den Sinn das Plugins dann nur noch in Projekte geworfen werfen müssen und sich automatisch an das Design der ganzen Website anpassen.
Die Strukturinformationen möchte ich als XML ablegen.
Dieser View würde nachdem er von cakePHP gerendert wurde nur schematische Daten enthalten und ich könnte ihn parsen und in HTML übersetzen.
Dafür lädt die ViewAl Klasse Plugins die dann die einzelne Tags/Tag Blocks mit dem richtigen HTML ersetzt. Damit das auch zu dem Design der jeweiligen Seite passt haben diese Plugins auch einen View der ganz normal von cake geparsed wird.
Also mache ich eigentlich nur folgendes:
cakePHP Plugins stellen Daten bereit (als XML) -> ViewAl lädt Plugins -> ViewAl Plugins übersetzten strukturieren Daten und übergeben sie an einen -> View. der das erzeugt was an der stelle der Daten stehen soll.
View eines ViewAl Plugins:
Um das ganze flexibel zu halten dachte ich daran in dem View der App die Möglichkeit zu schaffen einzelne Elemente des Plugin Views zu laden jedoch trotzdem auf alle Variablen zugriff zu haben die an den View übergeben werden. Somit kann man von Fall zu Fall Entscheiden ob Teile des Automatisch generiertem Codes genutzt werden oder nicht:
Die Plugins sollen neben dem View für die Strukturellen Informationen auch einen default View für das Layout bereitstellen der als Fallback genutzt wird wenn kein View in der App vorhanden ist.
Aus meinem Beispiel würde dann folglich das entstehen:
Ich wollte einfach mal Fragen was ihr von der Idee haltet. Verbesserungsvorschläge? Oder ob ihr denkt so etwas ist sinnvoll.
Vielen Dank im voraus!
Ich bin gerade dabei eine View Abstraktion für cakePHP zu schreiben. Ziel ist das Plugins nur noch eine Struktur als View zur Verfügung stellen und daraus dann der spezielle Code für die Website generiert wird.
Das hat den Sinn das Plugins dann nur noch in Projekte geworfen werfen müssen und sich automatisch an das Design der ganzen Website anpassen.
Die Strukturinformationen möchte ich als XML ablegen.
PHP-Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<accordion id="Foobaa">
<?php foreach($data as $row): ?>
<entry headline="<?php echo Sanitize::html($row['headline']); ?>">
<?php echo Sanitize::html($row['content']); ?>
</entry>
<?php endforeach; ?>
</accordion>
Dafür lädt die ViewAl Klasse Plugins die dann die einzelne Tags/Tag Blocks mit dem richtigen HTML ersetzt. Damit das auch zu dem Design der jeweiligen Seite passt haben diese Plugins auch einen View der ganz normal von cake geparsed wird.
Also mache ich eigentlich nur folgendes:
cakePHP Plugins stellen Daten bereit (als XML) -> ViewAl lädt Plugins -> ViewAl Plugins übersetzten strukturieren Daten und übergeben sie an einen -> View. der das erzeugt was an der stelle der Daten stehen soll.
View eines ViewAl Plugins:
PHP-Code:
<div class="accordion">
<?php foreach($entrys as $entry): ?>
<h1><?php echo Sanitize::html($entry['attr']['headline']) ?></h1>
<div><?php echo Sanitize::html($entry['content']) ?></div>
<?php endforeach; ?>
</div>
PHP-Code:
<div>
lalala Statischer Inhalt. Ja ich kann auch die $data variable verwenden:
$data count: <?php echo count($data); ?>
Und hier kommt mal ein teil der automatischem Views:
<?php echo $this->ViewAl->element('Foobaa') ?>
</div>
Aus meinem Beispiel würde dann folglich das entstehen:
PHP-Code:
<div>
lalala Statischer Inhalt. Ja ich kann auch die $data variable verwenden:
$data count: 2
Und hier kommt mal ein teil der automatischem Views:
<div class="accordion">
<h1>Foo</h1>
<div>FooContent</div>
<h1>Baa</h1>
<div>BaaContent</div>
</div>
</div>
Vielen Dank im voraus!
Kommentar