2012-03-08 18 views

答えて

1

1.5.Xがコード化されているため、すべてのコントローラを書き換えて、製品コントローラからヘッダーコントローラに渡すことができるようにドキュメントクラスにメソッドを追加する必要があります。何か特別な理由がありますか?

+0

はい。 store.imayne.comを見てください。私は、私のvbulletinのサイトのように、そこにその灰色のバーを表示するためにブレッドクラムが必要です:iMayne.com – iMayne

+1

私は参照してください。これは、すべてのコントローラを編集しなければならない可能性があるため、達成するには大きな頭痛になるでしょう。代わりに、OCの1.4.9.6を使用することがあります。これはデフォルトでヘッダーにブレッドクラムがあります。正直言って、私はヘッダーかコンテンツのどちらに限定されているのか分からないし、モジュールIMHOを使ってどこの場所にでも設定できるはずだ –

1

他のすべてがちょうどCSSをハック失敗した場合、

.breadcrumb { 
    margin-left: -270px; 
    margin-top: -65px; 
} 

のようなものは、アップ、左にパンくずを移動します。

3

私たちが構築している新しいサイトについてこれを理解しておかなければなりませんでした。あなた自身の責任で使用してください(大きな問題に遭遇した場合は報告しますが、有名な最後の言葉は予告できません)

基本的にブレッドクラムはコントローラに組み込まれており、 $breadcrumbsヘッダーコントローラーの配列。次のようにsystem/engine/controller.phpを変更します。render()が呼び出された前に、これは$childrenのすべてのコントローラ/メソッドに、親コントローラ内のすべてのデータを送信します

[...snip...] 
protected function render() { 
    foreach ($this->children as $child) { 
     $this->data[basename($child)] = $this->getChild($child,array('parent_data'=>&$this->data)); 
} 
[...snip...] 

<?php 
class ControllerCommonHeader extends Controller { 
    protected function index($args=array()) { 
     // parent data 
     $this->data['parent_data'] = $args['parent_data']; 
[...snip...] 

そして、我々は$parent_data['whatever']とテンプレートですべてにアクセスできます。そして、私たちは次のようにヘッダコントローラでこれをピックアップする必要があります。この場合、$parent_data['breadcrumbs']は、それぞれpage.tplから削除したコードでループバックし、header.tplに追加したブレッドクラムの配列になります。

関連する問題