スポンサードリンク
Categories: 過去記事

1日ちょいで静的ページをCMS化できたよ、PivotX

■ [ネット] pivotx で某所のページ作成中のメモ

PHPしか動かなくてデータベースが使えないサーバー向けに、CMS導入するということで PivotX を利用して現在サイトを作っているわけだけど、これ、テンプレート作成もそんなに難しくなくて結構便利だし、かなり気に入ったので作業内容を少しメモしておく。

■ トップページに更新情報をブログ機能で載せたい場合

1個だけなら簡単だけど、例えば更新情報と簡単なお知らせ的プレスリリースとか載せたい場合は、ちょっと分かりづらかった。

例えばカテゴリが A B と2つあるときは、name に 共通の名前を入れて、カテゴリー設定で両者の出力を使い分ける。

<div>
[[ subweblog name="standard" category='A' ]][[ literal ]]

<p>[[ date format="%year%/%month%/%day%" ]]</p>
<p>[[title]] [[ editlink format="Edit" prefix=" - " ]]</p>
<p>[[introduction]]</p>
<p>[[more]]</p>

[[ /literal ]][[ /subweblog ]]
</div>

<div>
[[ subweblog name="standard" category='B' ]][[ literal ]]

<p>[[ date format="%year%/%month%/%day%" ]]</p>
<p>[[title]] [[ editlink format="Edit" prefix=" - " ]]</p>
<p>[[introduction]]</p>
<p>[[more]]</p>

[[ /literal ]][[ /subweblog ]]
</div>

この場合、サイト管理?ウェブログ?サブウェブログ で、サブウェブログに両方のカテゴリを出力させること。サブウェブログ設定は結構便利で、1ページに出力する記事数などもここでコントロールできる。

ただ、アーカイブページで使いたい subweblog name と、トップページで使う subweblog name が違う場合だと、トップページに

[[ subweblog name="other" noresult ]][[ literal ]]
[[ /literal ]][[ /subweblog ]]

なんて、何も出力しない subweblog name を追加で埋め込んでやらないと、サイト管理?ウェブログ?サブウェブログ にその subweblog name が出てこないので設定できない。

こんな事例はあまりないかもしれないが、自分の場合はデザイン上分けざるを得なかった。(ニュースリリースによくある、左右のフロートしたボックスを同じ高さに揃えるデザインにした場合、繰り返し出力するとデザインが崩れるため。力業で subweblog name をたくさん作って対処しました・・・)

■ トップページを静的ページっぽく作った場合のブログアーカイブ

ブログアーカイブのカテゴリ一覧は、トップページに対して出力されるため(ブログ的に)、トップページにアーカイブ一覧を出力するのが厳しいことがある。その場合、

index.php?c=カテゴリ名&o=0

とリンクすれば、アーカイブのテンプレートを使ってカテゴリ記事の一覧が表示できる。他のテンプレートタグを使う方法だと、

<ul>
[[category_list format="<li><a %active% href='%url%&o=0'>%display%</a></li>" isactive="id='active'"]]
</ul>

みたいに category_list タグを使う方法もある。(余談だが、category_list タグでも %active% とか isactive が使える。ドキュメントには全く書かれてないけど、これのおかげでサイトナビゲーション作成がとても便利だった)

ただ、エントリーページ(個別記事ページ) で自分の今いるカテゴリーをパンくずリストでリンクするのがどうしてもできなかったため、コードを変更した。

pivotx/modules/module_smarty.php 436行目辺りを

$output[] = sprintf("<a href='%s&o=0'>%s</a>", makeCategoryLink($value, $params['weblog']), htmlentities($thiscat['display'], ENT_QUOTES, "utf-8"));

こんな風に変更。これで

 [[category link="true"]]

できちんとリンクが張られるようになる。

■ その他

アーカイブのテンプレートを使ってカテゴリ記事の一覧を表示するとき、パンくずリストに自分がいるカテゴリ名を表示しようとしても、何故か

[[category]]

では表示されないため、以下のようなちょっとトリッキーな方法を採った。

<div id="breadcrumb">
<a href="[[home]]">トップページ</a> &gt; [[category_list format="<span %active%>%display%</span>" isactive="id='print'"]]
</div>

追加で、以下のような CSS を書いておく。

#breadcrumb span {
display: none;
}

#breadcrumb span#print {
display: inline;
}

これで、自分がいるカテゴリだけパンくずリストに表示される。

ということで、ざっとしたメモ。何か思い出したらまた追記するかも。

スポンサードリンク
GUILZ.ORG

Share
Published by
GUILZ.ORG
スポンサードリンク