Archives

You are currently viewing archive for May 2013
Nucleus URL

Nucleusのサイト構造とURLの静的化


NucleusのURLを静的化させるのに面倒なことは何もない。
プラグインもいらない。URLモードもNormalのまま。NP_CustomURLとかテストしたけどあまりに面倒なのでやめた。なんだか知らないが、このプラグインの作者さんまで四苦八苦して設定しているらしい。
どうにでもなるが、できればサイト構成から考えておくとURLの静的化もらくだ。Nucleusでサイト構成する際には、ホーム直下の第一階層の分類をカテゴリー分類しないで、大枠をブログ構成すること。これは絶対外せない。
何の気なしにカテゴリー構成で始めてしまうと、当然すぐ直下の第二階層がサブカテゴリーとなってしまい、Nucleusでサイト構成する場合、色々と都合が悪い。無限階層対応のNP_MultipleCategoriesもあるので、ちょっと試してみるかとカテゴリー構成で始めたもののやっぱりダメだと、大鉈をふるってブログ構成に構成し直すということもあった。
これまでに非常に多くのウェブサイトをNucleusで制作してきたけれども、悪いこと言わないからNucleusでウェブサイト制作するならブログ構成で始めるべきだ。ディレクトリ作成を面倒くさがってはいけない。
それでもってURLの静的化はこうだ。
基本的に、リンク部分ではデフォルトの<%categorylink%>、<%itemlink%>、<%bloglink%>、<%catlink%>、<%nextlink%>、<%prevlink%>等は利用しない。で、.htaccessとURLの記述はこうしている。これでバッチリ全く問題ない。

.htaccess


RewriteRule ^(.+)/catid_([0-9]+).html$ $1/index.php?catid=$2 [L]
RewriteRule ^(.+)/catid_([0-9]+)-itemid_([0-9]+).html$ $1/index.php?catid=$2&itemid=$3 [L]
RewriteRule ^special/(.+).html$ index.php?special=$1 [L]
RewriteRule ^(.+)/archivelist_([0-9]+)-catid_([0-9]+).html$ $1/index.php?archivelist=$2&catid=$3 [L]



Link


#prev
<%if(previtem)%><span class="prev"><a href="<%blogsetting(url)%>catid_<%category(id)%>-itemid_<%previtem%>.html" title="">PREV&nbsp;:&nbsp;<%previtemtitle%></a></span><%endif%>

#next
<%if(nextitem)%><br /><span class="next"><a href="<%blogsetting(url)%>catid_<%category(id)%>-itemid_<%nextitem%>.html" title="">NEXT&nbsp;:&nbsp;<%nextitemtitle%></a></span><%endif%>

#bloglist
<a href="<%blogurl%>" title=""><%blogname%></a>

#categorylist
<a href="catid_<%catid%>.html" title=""><%catname%></a>

#categorylink
Category: <a href="<%blogurl%>catid_<%catid%>.html" title=""><%Category%></a>

#itemlink
<a href="<%blogurl%>catid_<%catid%>-itemid_<%itemid%>.html" title=""><%title%></a>
ProcessWire

ProcessWireのインストールと基本チュートリアル


20130502-processwireweb.png

MODXの技術者がごっそり移っちゃったとかいわれてるProcessWire(プロセスワイヤー)をインストールしてみたが、これはかなり感じがいい。テクニカルレビューというほど使い込んではいないが、ざっくりいじってみてみた感想です。ProcessWireの管理ページは無駄がなく現時点では異様にシンプルに見え、ワードプレスのダッシュボードの様な子どもっぽさは微塵もないので大人向け。ツリー型にサイトを見渡し構成する感じで、ここはMODXの様な感じ、テンプレートはphpソース混じりのソースとなりWordPressの様な感じだが、テンプレートで利用される$pageとか$config等といった変数はかなりスッキリと体系づけられていて利用する用途に迷うことはない。加えて公式サイトのProcessWire API Variables( processwireで利用される変数一覧 )のページではサンプル書式を適宜利用して各変数、書式等がわかりやすく説明されているのもありがたい。
WordPressは変数名が類似していたり、その変数のネーミングセンスはいったいどうなの?と思う様なものが多く、独自にクエリを組んでデータベースから持ってきてしまうという様なことが多かったが、この点ProcessWireは問題なさそうである。
URLの処理についてもMODXやWordPressのような、なんでそうくるかな?、なあんでできないの?みたいな感じがない。
テンプレートの入力フィールドの設定は自由度が高く管理ページから行うが、レイアウトの編集はエディタでテンプレートファイルの編集を直接行う形になる。
また、モジュールをインストールすることで多くの機能を付加し利用するが、既に非常に多くのモジュールが存在する。


ProcessWire Installation Requirements
A web server running Apache.
PHP version 5.2.4 or greater (but PHP 5.3+ strongly preferred)
MySQL 5.0.15 or greater.
Apache must have mod_rewrite enabled.
Apache must support .htaccess files.


さて、ProcessWireのインストールだが、ProcessWireのウェブサイトのDownloadのページにあるダウンロードボタンが明示されているので、これをクリックしてダウンロード。解凍するとProcessWire-masterというフォルダができるので、これをサーバにアップする。htaccess.txt等があるがここで名称変更する必要はない。アップする場所やディレクトリ名称は別にどうでも良い。サーバにアップしたら、ブラウザにてアップしたディレクトリにアクセスするとインストールの初期画面が開くので、緑の「Get started」ボタンをクリックしてインストールを始める。phpのバージョンなどを確認するCompatibility Check、MySQLのデータベースの設定、Admin情報の設定を経てCreate Accountでインストール完了。install.phpは自動で削除され、htaccess.txtも自動的に設定変更の上.htaccessに名称変更され保存される。/site/install/ディレクトリはインストール完了後に自分で削除する必要がある。
インストール完了後はログインして管理ページとベーシックサンプルサイトを見ることができる。なお、管理ページのMODULESというメニューをクリックした際にページが真っ白になってしまうという様な場合はphp.iniなどのメモリ設定を確認、16MBではエラーとなって真っ白なページになってしまうようだ。
モジュールには、Japanese Language Pack (ja-JP)という日本語ランゲージパック等もあるにはあるのだが、日本語入力については日本語ランゲージパックは不要である。日本語ランゲージパックにより日本語化される範囲が現時点ではごく少ないうえ、フォーラムの情報は英語であることもあり、変に日本語訳してしまうと現時点でのフォーラムの情報を調べるのが困難になると思われるので私は現時点での日本語ランゲージパックのインストールはお勧めしない。
基本のチュートリアルはForums→Tutorials→Small Project Walkthrough (Planets) にあるが、以下はそれをざっくり訳したものです。ここでは新規にテンプレートを作成し、入力項目のフィールドを設定、新規にページを生成するというところまでを行います。

processwire

ProcessWire API Variables( processwireで利用される変数一覧 )

Read More