2016-12-04 3 views
1

製品フィルタブロックに新しいテンプレートオプションを追加したいとします。CS-Cart製品フィルタブロック用の新しいテンプレート

これまでのところ、私はから既存のoriginal.tplをコピーした:

templates\blocks\product_filters 

とにそれを置く:

templates\addons\my_changes\blocks\product_filters 

その後、私は、ファイルの名前を変更しました:example.tpl、編集ファイルの先頭行は次のようになります。

{** block-description:example **} 

この基本プロセスは他のブロックでは機能しましたが、この製品では機能しませんフィルターは1つです。テンプレートリストで使用できるオプションは、[オリジナル]と[水平フィルタ]のみです。

新しいテンプレートを表示するために何か特別なことはありますか?

答えて

1

ブロックで使用できるテンプレートは、 "app/schemas/block_manager/blocks.php"ファイルにあるスキーマで定義されています。

'templates' => 'blocks/products', 

design/themes/[theme name]/templates/blocks/productsディレクトリでブロックマネージャの検索テンプレートを行います

は通常、スキーマは、それが「製品」ブロックのために行われているように、ブロックで使用できるすべてのテンプレートを含むディレクトリへのパスが含まれています。

残念ながら、いくつかの理由により、「product_filters」ブロックのスキーマは、他のブロックのスキーマに比べて矛盾していない - それは、使用する具体的なテンプレートのリストが含まれています

'templates' => array(
    'blocks/product_filters/original.tpl' => array(), 
    'blocks/product_filters/selected_filters.tpl' => array(), 
    'blocks/product_filters/horizontal_filters.tpl' => array(), 
), 

そのため、何のディレクトリブロックに対して利用可能なテンプレートのリストを決定する瞬間にスキャンが実行されている。

これは、使用しているアプローチが「product_filters」ではなく他のブロックで機能する理由です。 -

あなたのための解決策は簡単です、あなたは次の内容で「アプリ/アドオン/ my_changes /スキーマ/ block_manager/blocks.post.php」ファイルを作成する必要があります。その後

<?php 
$schema['product_filters']['templates'] = 'blocks/product_filters'; 

return $schema; 

をクリアしてくださいキャッシュし、 "my_changes"アドオンがインストールされ、有効になっていることを確認してください。

この問題を指摘していただきありがとうございます。今後のリリースで修正させていただきます。

+1

この情報をお寄せいただきありがとうございます。もう1つのこと - 私は実際にホームページの製品フィルターブロックを使用していますが、これは標準のリストとは異なるリストを持つようです。これに追加する必要がある別のスキーマファイルがありますか? – user500665

+1

@ user500665上記のコード例では、「product_filters」を「product_filters_home」に置き換えるだけです。 –

関連する問題