CMSの最近のブログ記事

この問題に遭遇。そのものずばりな回答が下記ページにありました。

DBをSQLでエクスポートして、UTF-8で保存、「ujis」を「utf8」に、「ujis_japanese_ci」を「 utf8_general_ci」に変更してインポートして完了。
DROP DATABASEをエクスポートファイルに入れ忘れたので、手書きでファイル先頭に追加してインポート完了。でないとDBが存在するのでエラーになる。

MTテンプレートタグリファレンスのMTForのページで解説されている以下の変数は、MTEntries等のファンクションタグでも有効と思われる。__index__だけは違うかもしれない。

  • __first__
  • __last__
  • __odd__
  • __even__
  • __index__
  • __counter__

少なくとも、MTEntries内で、__first__と__last__が動作する事は確認済み。MT5にて。

問題は、MT5のドキュメントではMTFor等、一部の特殊なタグでしか記述されていない事。もっとも使用頻度の高いMTEntriesのページになぜ書かないのか。理解に苦しむ。

セットアップ

以下のJSファイルに、TinyMCEのプラグインオプションを記述。
mt-static/plugins/TinyMCE/js/initialize.js
本文欄のテキストフォーマットは「リッチテキスト」でなければ利用できない。

テンプレート挿入時のプレビューのCSSを有効にする

プレビュー表示時に使用されるHTMLファイルは
mt-static/plugins/TinyMCE/lib/jscripts/tiny_mce/plugins/template/blank.htm
なので、これにstyle要素を追加すればとりあえずそのCSSが有効となる。
ちなみに同じ場所にあるtemplate.htmはテンプレートボタンを押した際のポップアップページで、css/、js/にあるファイルはこのtemplate.htmに使用されている。

TinyMCEのプレビューボタン押下時のプレビューCSSを有効にする

プレビュー表示時に使用されるHTMLファイルは
mt-static/plugins/TinyMCE/lib/jscripts/tiny_mce/plugins/preview/preview.htm
なので、これにstyle要素を追加すればとりあえずそのCSSが有効となる。

Movable Typeの編集画面に高機能なWYSIWYGを追加するTinyMCE-MTPluginでも使用されている、TinyMCE。以下はTinyMCE:Plugins/Templateの和訳かつ要約です。

主な特徴は

  • MT Enterpriseの後継
  • 「Movable Type 5」ベース
  • Oracle Database/ Microsoft SQL Server/ MySQLなどの各種DBに対応
  • ディレクトリサービスとも連携
  • 基本ライセンス(無制限サーバ・無制限ユーザ)が189万円、年間メンテナンス費が25万2,000円。アカデミックライセンス/メンテナンスは100万8,000円/ 20万1,600円

従来も、別ページからリンクする、リンクしそうな見出しにはidを付与してましたが、今後は全面的につけた方が良いと。

eZ Publishのruncronjobs.phpを手動で実行して、以下のエラーが出た場合

PHP Fatal error:  Call to a member function subTree() on a non-object in /var/www/html/cronjobs/unpublish.php on line 48

Fatal error: eZ Publish did not finish its request

content.ini.append.phpのRootNodeListに指定したIDが存在しない等が理由。

以下はeZ Publishの4.x / Online Editor / Extensions / Documentationの和訳です。

4.x

eZ Publish Online Editor(OEと呼ぶ)は、直感的なインターフェースを使用して体裁の整ったページを作成できるようにするエクステンション。
Online Editorがあれば、文章を簡単に記事、商品説明、ウェブログ用などに体裁づけられる。XMLフィールドにテキストを配置し、ワープロライクなOEインターフェースを使用してコンテンツを体裁づける事が可能。
XMLの知識や手動でタグを配置する必要はない。ボタンをクリックするだけで、正しいeZ Publish XMLコードに変換してくれる。
eZ Publishのインストール後、OEは管理画面の一部になっている。XML blockデータ型を使用したデータを編集する時にはいつもOEが立ちあがる。

eZ Publishを提供するeZ Systemsによる徹底勉強会という事で、期待度高です。
これを機に疑問点を解消してこよう。

Power CMS for MT

| カテゴリ:CMS, MovableType | コメント(0) | トラックバック(0)

ワークフロー、高機能WYSIWYG、ページ分割、コンテンツのソート順指定、時限公開、CSVインポート、フォーム作成機能など、CMS機能をプラグイン形式で提供。スタンダード版とプロフェッショナル版の2種。

日本での普及に弾みがつきそうですね。

国内での採用実績があると、なおお客さんにお勧めしやすいです。

Movable Type 4には、MTIf以外にも様々な条件式がある。その中で、例えばMTIfCategoryにはMTElseが使えるとは書かれていないが、モディファイアを用いなければ使える。

MTAuthorHasPageにははっきりとMTElseが使えると書かれている。

MTElseの解説には、「条件タグの条件に合致しなかったときに、実行するブロックタグです。」と書かれている。どの条件タグかは書かれていない。
さらに、MTElseはMT4.1で拡張され、各種モディファイアが使えるようになった。

以上から判断すると、いずれの条件式にもMTElseのモディファイアは用いる事が可能のように読み取れるが、MTIfCategoryで試したところ正常に機能しなかった。正常に機能しないどころか、ページ生成は正常に完了し、そのページを見るとMTIfCategoryのくだりがパースされずそのまま出力されていた。なんだそりゃ。

結論からするとこういう事かと。

  • MTElseはモディファイアを用いなければどの条件式にも使える(推測)
  • MTElseにモディファイアを用いるのはMTIfの場合のみ可

ちなみに、MTIfCategoryにMTElseIf(MTElseIfはMTIfにしか用いる事ができないと書かれている)を使った所、単なるMTElseとして処理されました。ますます謎。

もう可能な限りMTIfだけ使うのが一番手っ取り早い。

Movable Type 4のカスタムフィールドにある、チェックボックス形式。
これにチェックがついているかどうかにMTIfNonEmptyは使えない。が、このカスタムフィールド追加前に追加したブログ記事等については、Emptyと判定される。ひとたびその記事を再編集すると、Emptyではなく0(多分。未確認)となる。

よって、サイト構築中にチェックボックスが必要になり、その判定にMTIfNonEmptyを使用しても当初は想定通りの判定となるが、過去のブログ記事等を編集するごとに逆の判定になっていくので注意が必要。

それにしてもMT4のドキュメントは説明が足りなくないですか。必要な情報をブログ形式で提供しているのも参照しづらい。きちんとしたドキュメントを提供している他のCMSを見習ってほしい。

Aというカテゴリの子カテゴリとしてAAがあるとする。仮にaという記事がAAカテゴリにのみ属していた場合、個人的にはAカテゴリの記事一覧にaという記事は表示されるべきだと思う。AAはAの子なのだから。しかしMovable Type 4.2はまったく逆の処理を行う。

ハマッたケース1つ目。Aカテゴリのアーカイブに1件も記事が出てこない。記事一覧の表示方法に、「include_subcategories」という子カテゴリの記事も含む指定があるが、Aに属する記事が1件もない場合、たとえAAに属する記事が存在してもそれすら出てこない。これは全く理解不能。バグではないのか。

ハマッたケース2つ目。Aに属する記事が1件もない場合、AAに何件記事があろうとも、Aの期間別(月別、年別など)アーカイブは生成されない。
1つ目のケースは、Aにダミー記事を1件持たせれば解決できる(If文でそのエントリーだけ出力しない)。しかし、この2つ目のケースはページ生成プロセスすら働かないので、include_subcategoriesで出力できるかどうか以前の問題。ダミー記事が作成された年、月のアーカイブだけ生成される。

よって、アーカイブページを広範に活用するのであれば、記事に対し直接属するカテゴリの他に、その親カテゴリも指定しなければならない。カテゴリが3階層あれば3つ。4階層あれば4つ。なんて非合理的な。
それを除くと、かなり優秀なツールだと思いますが。

ez Components

| カテゴリ:CMS, ezPublish | コメント(0) | トラックバック(0)

ez Publishに必要なez Componentsの概要とインストール方法。

ezPublishには通常インストール、手動インストール、自動インストールの3タイプがある。
以下はバージョン4.0.1の通常インストールのメモ。

MTEntriesブロックタグにおいて、子カテゴリに属する記事も出力するためのinclude_subcategoriesモディファイア。
これは、MTEntriesタグにcategoryもしくはcategoriesモディファイアを用いた場合のみ機能する。

カテゴリインデックスの場合、MTEntriesタグによって該当のカテゴリの記事のみが出力されるのがデフォルトなので、わざわざcategoryもしくはcategoriesモディファイアを用いたりしない。しかし、Aというカテゴリインデックスにおいて、その子カテゴリであるAA、ABカテゴリの記事をまとめて出力したい場合、include_subcategoriesを用いても機能しない。記事それぞれの、第2所属カテゴリとして、カテゴリAを指定しないと望んだように表示されない。categoryもしくはcategoriesモディファイアを用いてしまうと、今度はカテゴリAおよびAA、ABそれぞれのテンプレートを用意しないといけない。

イマイチな実装だなぁ。それとも理解不足なのか?普通、カテゴリAにおいてMTEntriesを用いたら、それだけでAA、ABの記事が出そうなものだけど。

追記:2009.01.19

categoryもしくはcategoriesモディファイアが無くても機能するが、Aカテゴリに記事が1件もない場合、AA、ABカテゴリの記事も出力されない、という不具合の様子。AAもしくはABカテゴリの記事を、1件でもAカテゴリに属させると表示される。

MTCategoriesやMTSubCategoriesには、MTEntriesのようなsort_byモディファイアがない。それを解決し、任意の順序でカテゴリーやフォルダを出力できるプラグイン。

MovableTypeには、タイプごとに様々な拡張ソリューションパックが付属し、それぞれの機能を実現している。

Commercial Pack
Movable Type Commercialのみに付属と思われる(明確な記述がない)。これがないと、MTEntriesのsort_byにカスタムフィールドを使用できない。
Community Pack
Movable Type、Movable Type Enterpriseに付属と思われる。多数の投稿者によるグループ・ブログや、ユーザー参加型のブログ・サイトを運営することが可能になる。
Professional Pack
MTOS以外の全てに付属と思われる。ブログではなく汎用ウェブサイトに向いたテンプレートなどが含まれる。
Enterprise Pack
Movable Type Enterpriseのみに付属。Enterprise版の機能を実現するパックと思われる。

もっと細かく調べたかったものの、総じて、MovableType、Six Apartのサイトはあるべき場所に情報がなく、情報も部分的だったりして、非常に分かりづらい。

この場合、値の区切りにカンマが必要となる。カンマの出力にはMTEntriesタグのglueモディファイアを使用する。

<mt:Entries glue=","><$mt:EntryID$></mt:Entries>

出力結果は以下のようになる。

10,9,8,7,6,5,4,3,2,1
1. IDを変数としてセット。ウェブページの場合はPageID。
<mt:SetVarBlock name="nav_on"><$mt:PageID$></mt:SetVarBlock>
2. mt:Ifで条件分岐。このように、ElseをElseIfの中に、その2つをIfの中に入れないと正常に機能しない。
<mt:If name="nav_on" eq="11">
	<$mt:Include module="トップページの詳細"$>
<mt:ElseIf name="nav_on" eq="12">
	<$mt:Include module="トップページの詳細"$>
<mt:Else>
	<$mt:Include module="ウェブページの詳細"$>
</mt:Else>
</mt:ElseIf>
</mt:If>

これはFunction Reference/WP Query - WordPress Codexの和訳かつ要約です。

これはTemplate Hierarchy - WordPress Codexの和訳かつ要約です。

これはStepping into Templates - WordPress Codexの和訳かつ要約です。

以下はCategory Templates - WordPress Codexの和訳かつ要約です。

WP-CMS

| カテゴリ:CMS, WordPress | コメント(0) | トラックバック(0)

WP-CMSはWordPressの管理画面の機能性をよりCMSのように動作するよう変えるプラグイン。WordPressをサイト管理者にとってユーザーフレンドリーなものにするために、ブログとしての機能性はオプションになり、ページを記述する機能に特化させる。

The Loop << WordPress Codexの和訳かつ要約です。

Using Custom Fields << WordPress Codexの和訳かつ要約です。

WordPress MUが何なのかはWordPress MU : blog.ludicmind.netを。
以下はInstalling WPMUの和訳かつ要約。

WordPress MUのインストール

  1. WordPress MU(以下MU)パッケージをダウンロード、解凍する。作られたフォルダが「wordpressmu」という名前でなければ、そのように変更するのをお薦めする。
  2. MUの為のMySQLデータベースを作成する。
  3. ファイル群をウェブサーバーにアップロードする。ドメインのルートに置いても、サブディレクトリに置いてもよい。
  4. /index.phpにアクセスして、インストールスクリプトを実行する。アップグレードならばこの手順はスキップ。もし真っ白なページが表示され、ログにエラーがなければ、php-mysqlがインストールされているか確認を。

Apacheの設定

以下はApache 2.0の場合だが、1.3もほぼ同じ。

  1. "LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so"という行がhttpd.confにあるか確認を。なければ追加。
  2. <Directory>ディレクティブにおいて"AllowOverride FileInfo Options"と記述する。
  3. <VirtualHost>セクションを適切に設定する。

DNS

サブドメインでMUを運用するなら、DNSを適切に設定しなさい、という当然の記述と、MUに限らず行うべきPHPのセキュリティに関する記述。

Related

TwitThis

今読んでいる記事をTwitterに投稿