2012-04-12 8 views
1

Ich richte ein paar CakePHP-Vorlagendateien (.ctp) für einen Controller test ein. Ich habe /test/index und test/search Seiten, die index.ctp bzw. search.ctp verwendet.CakePHP: Effizientes Laden eines statischen linken Menüs

Auf jeder dieser Seiten befindet sich ein linker vertikaler Menüabschnitt, aber es erscheint redundant und unnötig, den gleichen HTML-Code in alle .ctp Dateien aufzunehmen, die unter /test/ gehen.

Der Code für dieses Menü links ist etwas wie unten, und ich möchte vermeiden, kopieren und einfügen jedes Mal, wenn ich eine neue Seite erstellen. Gibt es eine Möglichkeit, eine separate Datei zu laden, die diesen Code für alle .ctp Dateien für die test-Controller enthält? Oder vielleicht nähere ich mich dem unpassenden Weg? Ich lerne gerade von der Standard-Vorlagendatei, die mit CakePHP 1.3 geliefert wurde.

<div class="actions"> 
    <h3><?php __('Menu'); ?></h3> 
    <ul> 
     <li><?php echo $this->Html->link(__('Product Search', true), array('action' => 'search')); ?></li> 
    </ul> 
</div> 

Auch während ich diese Frage muß, was ist die Bedeutung von Klassennamen („Aktionen“) im div-Tag?

Antwort

2

Sie können das HTML in eine element setzen, um es einfach wiederzuverwenden. Legen Sie den HTML-Code, den Sie wiederverwenden möchten, in eine Datei unter: app/views/elements/some_element.ctp. Nenn es, wie du willst.

Dann fügen Sie diese zu Ihrer Ansicht oder Layout-Dateien:

echo $this->element('some_element');

actions ist nur eine Klasse. Die einzige Bedeutung ist, was Sie in Ihrem CSS geben.

Mit dem Standard-Cake-CSS und -Layout actions ist ein div, das nach links schwebt, um einen einfachen Zugriff auf von baking generierte Links zu ermöglichen.

+0

Sie beide meine Fragen genagelt. Ich danke dir sehr! – musicliftsme

Verwandte Themen