こんにちわ。
Wayfinderの事で教えてください。
リンク属性にrel="category"とすることでcategoryFoldersTplが適応されますよね。
これを任意の階層でrel="sub_category"とすることでsub_categoryFoldersTplを適応させたいのですが、可能でしょうか?
よろしくお願いします。
Wayfinderの改造 - テンプレートの追加 【解決済み】
Re: Wayfinderの改造 - テンプレートの追加
フォルダに適用するテンプレートが有限なら、wayfinder.inc.phpのL160近辺のコードの複製で対処できそうな気がしますが、いかがでしょ?Ryo さんが書きました:リンク属性にrel="category"とすることでcategoryFoldersTplが適応されますよね。
これを任意の階層でrel="sub_category"とすることでsub_categoryFoldersTplを適応させたいのですが、可能でしょうか?
(未検証なので自分で検証してください)
【変更前】
コード: 全て選択
} elseif ($resource['isfolder'] && ($resource['template']=="0" || is_numeric(strpos($resource['link_attributes'],'rel="category"'))) && $this->_templates['categoryFoldersTpl'] && ($resource['level'] < $this->_config['level'] || $this->_config['level'] == 0)) {
$usedTemplate = 'categoryFoldersTpl';
コード: 全て選択
} elseif ($resource['isfolder'] && ($resource['template']=="0" || is_numeric(strpos($resource['link_attributes'],'rel="category"'))) && $this->_templates['categoryFoldersTpl'] && ($resource['level'] < $this->_config['level'] || $this->_config['level'] == 0)) {
$usedTemplate = 'categoryFoldersTpl';
} elseif ($resource['isfolder'] && ($resource['template']=="0" || is_numeric(strpos($resource['link_attributes'],'rel="sub_category"'))) && $this->_templates['categoryFoldersTpl'] && ($resource['level'] < $this->_config['level'] || $this->_config['level'] == 0)) {
$usedTemplate = 'sub_categoryFoldersTpl';
Re: Wayfinderの改造 - テンプレートの追加
sama55さま
アドバイスありがとうございます。
追加したいテンプレートは一つだけだったので、160行目のコード複製をやってみましたが、動作しないです
試しに、適応される事がはっきりしている、160行目付近のrowTplやouterTplをsub_categoryFoldersTplに変更してみると、該当部分のhtmlが出力されなくなります。
他の部分にテンプレート名の設定か、適応順序の設定などがあるのかな、と思ってコードを眺めてみましたが、わかりませんでした。
アドバイスありがとうございます。
追加したいテンプレートは一つだけだったので、160行目のコード複製をやってみましたが、動作しないです
試しに、適応される事がはっきりしている、160行目付近のrowTplやouterTplをsub_categoryFoldersTplに変更してみると、該当部分のhtmlが出力されなくなります。
他の部分にテンプレート名の設定か、適応順序の設定などがあるのかな、と思ってコードを眺めてみましたが、わかりませんでした。
Re: Wayfinderの改造 - テンプレートの追加
やはりちゃんとテストしないとダメですね。 I'm sorry...Ryo さんが書きました:追加したいテンプレートは一つだけだったので、160行目のコード複製をやってみましたが、動作しないです
私の環境では下の変更で動いたので試してみてください。
【Wayfinderスニペットの改造】 ※1行追加
コード: 全て選択
//get user templates
$wf->_templates = array(
'outerTpl' => isset($outerTpl) ? $outerTpl : '',
'rowTpl' => isset($rowTpl) ? $rowTpl : '',
'parentRowTpl' => isset($parentRowTpl) ? $parentRowTpl : '',
'parentRowHereTpl' => isset($parentRowHereTpl) ? $parentRowHereTpl : '',
'hereTpl' => isset($hereTpl) ? $hereTpl : '',
'innerTpl' => isset($innerTpl) ? $innerTpl : '',
'innerRowTpl' => isset($innerRowTpl) ? $innerRowTpl : '',
'innerHereTpl' => isset($innerHereTpl) ? $innerHereTpl : '',
'activeParentRowTpl' => isset($activeParentRowTpl) ? $activeParentRowTpl : '',
'categoryFoldersTpl' => isset($categoryFoldersTpl) ? $categoryFoldersTpl : '',
'subcategoryFoldersTpl' => isset($subcategoryFoldersTpl) ? $subcategoryFoldersTpl : '', //★ add line ★
'startItemTpl' => isset($startItemTpl) ? $startItemTpl : '',
);
コード: 全て選択
} elseif ($resource['isfolder'] && ($resource['template']=="0" || is_numeric(strpos($resource['link_attributes'],'rel="subcategory"'))) && $this->_templates['subcategoryFoldersTpl'] && ($resource['level'] < $this->_config['level'] || $this->_config['level'] == 0)) {
$usedTemplate = 'subcategoryFoldersTpl';
[[Wayfinder? &startId=`0` &categoryFoldersTpl=`FolderTpl` &subcategoryFoldersTpl=`subFolderTpl`]]
【リソース(リンク属性)の設定】
FolderTplを適用する場合: rel="category"
subFolderTplを適用する場合: rel="subcategory"
【確認したこと】
FolderTplとsubFolderTplチャンクを作り、双方のチャンクに違う文字列を埋め、正しく呼び分けられることを確認。
Re: Wayfinderの改造 - テンプレートの追加
sama55さま
できました!!!
wayfinderってスニペットもあったのですね・・・。スニペットコールで呼び出してるんだから当然か(汗
ありがとうございました。
できました!!!
wayfinderってスニペットもあったのですね・・・。スニペットコールで呼び出してるんだから当然か(汗
ありがとうございました。