TopicPath - Breadcrumbs互換のパン屑リストスニペットを配布します

プログラム(機能)関連の開発の話題
アバター
yama
管理人
記事: 2958
登録日時: 2009年7月29日(水) 02:50

TopicPath - Breadcrumbs互換のパン屑リストスニペットを配布します

投稿記事by yama » 2012年1月30日(月) 22:59

http://modx.jp/docs/extras/snippets/topicpath.html
Breadcrumbs互換のパン屑リストスニペット「TopicPath」を配布します。Breadcrumbsとは名前は異なりますが、基本的にはBreadcrumbsのコードをベースに改善する方向で開発を進めました。

Breadcrumbsは動作面においては完成度が高いスニペットでしたが、カスタマイズ方法が今ひとつMODX的でないこと、公開されているドキュメントと実際の実装が異なっていること、本体コードが多めであることなどを懸念し、しばらく前から同梱をとりやめていました。代替としてWayfinderのbreadcrumbコンフィグを調整して提供していましたが、これはこれで自由度が低く不便を感じていた人も多かったのではと思います。

・処理のほぼ全てをclass化(オブジェクト化)し、ファイルに記述
・デザイン構成をテーマ[テンプレート1~5]という構成に整理
・テンプレートのHTMLをスニペットコール内で指定して自由にカスタマイズできる
・MODX RevolutionやWayfinder・Dittoなどを参考に、MODXユーザにはなじみやすいパラメータ名に変更
・テーマ名(テンプレート名)もdefaultString・defaultListなど少し分かりにくかったため、list・raw(またはdefault)に変更
・各部の処理を改善
・&stylePrefixパラメータを廃止

ゆくゆくは、テンプレートコードをチャンクなどで指定できるようにする方向で今後も開発を進めます。
アバター
yama
管理人
記事: 2958
登録日時: 2009年7月29日(水) 02:50

Re: TopicPath - Breadcrumbs互換のパン屑リストスニペットを配布します

投稿記事by yama » 2012年2月05日(日) 14:00

パラメータ名を変更しました
&tplFirstTopicInner → &tplFirstTopicOuter
&tplLastTopicInner → &tplLastTopicOuter
アバター
yama
管理人
記事: 2958
登録日時: 2009年7月29日(水) 02:50

Re: TopicPath - Breadcrumbs互換のパン屑リストスニペットを配布します

投稿記事by yama » 2012年11月19日(月) 11:45

TopicPath1.xの特長を引き継ぎつつ、今回はゼロから作り直した2.0.0です。

TopicPath1.x・Breadcrumbsの問題点
・テンプレートの設定が分かりにくい。リンクをつける・つけないをテンプレートで表現できず、パラメータで指定する必要がある。テンプレートが3層構造になっているのも分かりにくく、自由度も低い。
・コードが整理されておらず、機能追加・改善がしにくい

Version2では、基本的にテンプレート記述だけでパン屑リストを自由に組み立てられるようにしました。
使い方などは後日改めて説明します
添付ファイル
topicpath200-alpha.zip
(2.53 KiB) ダウンロード数: 284 回
アバター
yama
管理人
記事: 2958
登録日時: 2009年7月29日(水) 02:50

Re: TopicPath - Breadcrumbs互換のパン屑リストスニペットを配布します

投稿記事by yama » 2012年11月19日(月) 16:45

以下、簡易ですが説明です
●基本

コード: 全て選択

[[TopicPath]]


●テンプレートを指定する場合
5種類のテンプレートを指定できます。

コード: 全て選択

[[TopicPath?
  &tplOuter        ='<ul>[+topics+]</ul>'
  &tplHomeTopic    ='<li><a href="[+href+]" title="[+desc+]">[+title+]</a></li>'
  &tplCurrentTopic ='<li>[+title+]</li>'
  &tplOtherTopic   ='<li><a href="[+href+]" title="[+desc+]">[+title+]</a></li>'
  &tplSeparator    =''
]]

※従来の&currentAsLinkのような「リンクを張る・張らない」のパラメータは廃止しました。リンクを張りたい場合はテンプレート側でそのように記述します。

●その他のパラメータ
&theme - デフォルトは「string」。「list」を指定するとリストタグ形式で出力します
&menuItemOnly 0|1 - 「メニューに表示」をチェックしているリソースのみをパン屑リストに並べる
&ignoreIDs - パン屑リスト上に並べたくないリソースをカンマ区切りで複数指定
&showTopicsAtHome トップページにもパン屑リストを表示する。(リストというよりトップのリンクのみになりますが)
&ignoreIDs - パン屑リスト「を」表示しないリソースをカンマ区切りで複数指定
&disabledOn - パン屑リスト「を」表示しないリソースをカンマ区切りで複数指定
&disabledUnder - パン屑リスト「を」表示しないリソース・・・の「上の階層」のリソースをカンマ区切りで複数指定
&limit - パン屑リスト表示数の上限。デフォルトでは100階層以上は表示しません
&topicGap - 階層が深すぎて途中を省略した時に、省略部分の代わりに表示する文字列
&titleField - パン屑リストのトピック名として出力する対象フィールド。プレースホルダは[+title+]。デフォルトではmenutitle、入力されてなければpagetitle
&descField - パン屑リストのtips表示文字列として出力する対象フィールド。プレースホルダは[+desc+]。デフォルトではdescription、入力されてなければlongtitle・pagetitle
&homeId - トップとして指定するリソースID。デフォルトでは[(site_start)]
&stopIDs - ここで指定したリソースID以下はパン屑リスト上に並べない