最近のトラックバック

  • event (夢茶爺&苦茶爺のPC奮戦備忘録)

カウンタ

おすすめ本

AccRanking

カテゴリ「a-blog cms」の14件の記事 Feed

2010年3月23日 (火)

『a-blog cms』その3・概要(言葉の意味)

今回『a-blog cms』を使って仕事をしていますが、最初このCMSの用語といいますか言葉の意味を理解するのに時間が掛かりました。
私が持っているそれぞれの言葉の意味と、今回の『a-blog cms』で使用されている用語で感覚が違うものがありました。それで、少し重要と思われる用語と、私なりに理解した内容を記します。

取り上げる用語としては、ブログ、テーマ、テンプレート、エントリー、カラム、フィールド、モジュール、フォーム、ルール、モジュールID、URLコンテキスト等があります。
まだ他にも重要な用語がありますが、取りあえずこれらを私なりの解釈を記します。間違っていたらごめんなさい。(本当は、『a-blog cms』の本家マニュアルを見て頂ければ分かることですが)


『ブログ』

 ブログは『a-blog cms』のベースとなるものである。ある主題(この場合は一般的な意味としてのテーマ)に沿ったブログを作成し、そのテーマに合ったブログコンテンツの表現方法でサイト表示を行う。
また、ブログは階層的に作ることができ、親ブログ、子ブログ、孫ブログと階層を深くできる。
階層毎により上位のブログを表示できたり。できなかったりの設定ができる。

『テーマ』

テーマとは上で記した様に、主題としての側面もあるし、そこから派生した表示する1個のサイトとしてのディレクトリ(アドレス)としての意味もある様に思う。
『a-blog cms』をインストールした直後は以下の様なディレクトリ構成になっている。
テーマは themes ディレクトリ内に作成される。

Ws000000_3  

company1からshop1は『a-blog cms』がサンプルとして提供しているテーマで、これらのテーマを自分なりに変更したりして、独自のサイトにしていってほしいようである。
systemテーマは特別なテーマで、『a-blog cms』の管理画面用のテンプレートが格納されている。
そのため、この内容を変更しないほうが良い様である。
独自に管理画面を変更したい場合には、systemテーマ内の構造を自分のテーマにコピーしてからそこで変更する様である。(systemからコピーするのは変更したいファイルのみで、後はそのままにしておくと、足りないテンプレートは、systemから読込まれるそうです)

『テンプレート』

いわゆるテンプレートで、『テーマ』ディレクトリの配下に置き、このファイルを使ってブログのデータをサイトとして表現させるものである。
このテンプレートファイルは、HTMLファイルの中に動的に変化する部分を、『a-blog cms』で規定されている予約語によりプログラム的に記述していく。
動的な部分がなければ単なるHTMLファイルとして置いておいても問題無い様です。

『エントリー』

ブログに登録される1件のデータ(ブログなので記事の方がしっくりくるかも)のこと。
1件のエントリーにはいろいろなデータとして、テキスト、画像データ、GoogleMAPなどを持つことができる。これらのデータをどの様に見せるかの表現方法を担っているのがテンプレートと言うことになる。

『カテゴリー』

1つのエントリーが属する区分を定義するもので、エントリー入力のときに入力するが、必須入力ではない。このカテゴリーを用いて各テンプレートでの表示制限を掛けたりすることができる。この制限のやり方としては、ルール、モジュールID、ブログ設定でのコンフィグなどがある。

『カラム』

1件のエントリーに持つ、テキスト、画像データ、GoogleMAPなどのデータのことをカラムと称する様である。(データベースで言うところのテーブル内のカラムとは意味が異なるのでご注意を)

『フィールド』

カラムデータでは登録できないと言うよりも、エントリーに紐付けるカスタムなデータをフィールド、正式にはカスタムフィールドと称する様です。このカスタムフィールドは、エントリー入力のテンプレート内にHTMLのINPUTタグとして宣言する。そのため、INPUTの機能としてのコンボボックス、ラジオボタン、チェックボックス、TEXTボックスでの入力が可能です。(入力するデータが商品情報であれば、商品コード、商品分類、単価などでしょうか)

『モジュール』

『a-blog cms』を理解する上で非常に悩んだもののひとつです。

プログラマの私の経験からすれば『モジュール』というものは、色々な関数やクラスの集まりで、それらを外部からコールするなり参照し継承して利用するなりし、結果的にプログラムにリンクされるものであると理解していました。そのため、最初に考えたのは何かオブジェクトをリンクして利用するのかとも思いしました。WEBのプログラマからすれば、コンパイルしてリンクと言うのは少々古いのかもしれませんが、昔気質なプログラマはこんな感じなんです。

話を『a-blog cms』に戻すと、このモジュールがなければテンプレートが記述できない様になっている、というよりはテンプレートを記述するためにモジュールがあるといった感じです。
要は、モジュールの記述作法を理解しない限り『a-blog cms』ではシステムが構築できない様です。
大げさに記述作法といってもそんなに難しいわけではなく、色々なモジュールを使ったテンプレートの雛型が公式サイトには載っています。
それで以下に公式サイトからの引用で「Entry_Headline」モジュールの使用例を記します。
(サポート・マニュアル > リファレンス > ビルトインモジュール:の中から)

<!-- BEGIN_MODULE Entry_Headline -->
<a href="{indexUrl}">一覧へ</a>
<a href="{indexUrl}rss2.xml">rss</a>
<ul><!-- BEGIN entry:loop -->
    <li><a href="{url}">{title}</a><!-- BEGIN category:veil --> 【{categoryName}】<!-- END category:veil -->{date#Y}年{date#m}月{date#d}日( {date#week} ) {date#h}時{date#i}分{date#s}秒</li><!-- END entry:loop -->
</ul>

<!-- BEGIN pager:veil -->
<p>
    全 {itemsAmount} 件中 {itemsFrom} ~ {itemsTo} 件目を表示
    <!-- BEGIN page:loop --><!-- BEGIN link#front --><a href="{url}"><!-- END link#front -->{page}<!-- BEGIN link#rear --></a><!-- END link#rear --><!-- BEGIN glue -->, <!-- END glue --><!-- END page:loop -->
    <!-- BEGIN lastPage:veil --> ...<a href="{lastPageUrl}">{lastPage}</a><!-- END lastPage:veil -->
</p>
<p>
    <!-- BEGIN backLink --><a href="{url}">&laquo; 前の{backNum}件</a><!-- END backLink -->
    <!-- BEGIN forwardLink --><a href="{url}">次の{forwardNum}件 &raquo;</a><!-- END forwardLink -->
</p>
<!-- END pager:veil -->
<!-- END_MODULE Entry_Headline -->

HTML内のモジュールはコメントタグとして記述されている「BEGIN_MODULE」「END_MODULE」でサンドイッチされている。さらにその中で「BEGIN xxxxx」「END xxxxx」でサンドイッチされた部分があるが、xxxxxのデータが存在する場合にBEGIN...END内が展開される。「{}」の部分はそれぞれの変数名が持っている値を表示する。

『フォーム』

Webサイト上でよくあるユーザからの問い合わせ入力等を行うページをフォームというらしい。
HTMLで記述したフォームテンプレート(テンプレートとは言わないかも)を複数サイト上に設置することができる。入力項目に必須条件をつけたり、文字数制限等をつけたりもHTMLの記述で可能である。
ただし、項目間の連携による細かなチェックは少し難ありですが、一般的な問い合わせの内容であれば問題の無い項目チェックが可能です。

『ルール』

各ブログに付属する、処理分岐用の条件付けの様なもので、ユーザー、カテゴリー、エントリー、エージェントの条件付けを行い、そのルールのコンフィグ設定で表示させるテンプレートを切り分けると言った感じです。(書いていて少し自分でも意味不明な気がしますが...)
例えば、『ブログA』に『ルール1』を作り、その条件としてカテゴリーIDが「10」であるとすれば、カテゴリーIDが「10」の場合は『ルール1』のコンフィグに設定されたテンプレートが使用されることになる。

『モジュールID』

上記で説明した、『モジュール』のための条件付けである。(『モジュール』に渡される引数の様なものである。)モジュールをそのまま使えば、そのモジュールに対応したデータの全てが処理対象となるが、『モジュールID』を付加することで、処理対象を絞り込むことができる。

『URLコンテキスト』

この「コンテキスト」という言葉ですが、ぱっと呼んだ感じでは意味が分からなかったので少し調べてみた。
「IT用語辞典バイナリ」より引用
-----
コンテキストとは、プログラムの実行に必要な各種情報のことである。
「context」(コンテキスト)は、「文脈」、「前後関係」などと訳されるが、IT用語としては意味がイメージしづらく、単にコンテキストとある場合は、何らかの制御情報と考える方がわかりやすいことが多い。

-----
ということは『URLコンテキスト』とは『URLの制御情報』と考えればいいのかな?

『a-blog cms』ではWebページとして表示されたページのURLが、単にURLアドレスとしてではなくそのページがどの様な状態なのかを表しているので、コンテキストと呼ぶらしい。
ちなみに以下の様な感じです。(本家のサイトから引用・改変)

例1.testブログの、newsカテゴリーにいる場合のパス
    http://www.xxxxxxxx/test/news/
例2.例1に「新商品」というキーワード情報が指定されている場合のパス
    http://www.xxxxxxxx/test/news/campaign/keyword/新商品/
例3.例1に「2ページ目」というページ情報が指定されている場合のパス
    http://www.xxxxxxxx/test/news/campaign/page/2/

これを見ても最初はよく分からなかったのですが、そのうちURLの中にデータを絞り込む引数があるのだと理解した。直接ブラウザのURLアドレスのところで手入力しても同じですので、試してみるとよりはっきりするかもしれません。

2010年3月19日 (金)

『a-blog cms』その2・ローカル環境でのトライアル期限切れを回復する方法について

テスト用としてローカルなLinuxサーバでa-blog cmsを使用していますが、最近トライアル期間が終了しました。トライアル期間が切れてしまうと管理画面での設定ができなくなってしまいます。
これではデバッグができないので、何とかしなければと、アップルップル様に再度ライセンスの取得が必要なのかと、問い合わせたら特に必要なく、そのままお使いくださいということでした。しかし、トライアル期限切れの件を再度聞いてみるのも気が引けたので何とか自分で対応。と言うことで、以下にその方法(そんなに大した内容でもないですが)を記します。

現在はバージョン1.2.1なので、その1.2.1のアップデート方法と同じになる様です。

基本的な手順は、正式なドキュメントの『お読みください』から引用します。

1)以下のファイル・フォルダをバックアップします。
・license.php 
・config.server.php 
・カスタマイズしているテーマフォルダ
・.htaccess(カスタマイズしている場合のみ)
・「private」フォルダ(カスタマイズしている場合のみ)

2)テーマを更新します。
・「themes」フォルダ内の「system」フォルダを、フォルダごと入れ替えます。
・テーマをカスタマイズしている場合は、変更点に合わせてテンプレートを書き換えてからアップロードします。

3)license.phpと「themes」フォルダ以外のファイルを“上書き”します。

4)htaccessのファイル名を変更します。
/themes/htaccess.txt のファイルの名称を、FTPソフト上で「.htaccess」に変更します。

5)ライセンスファイルを更新します。
・インストールパッケージの「install」フォルダ内のファイル「license.php」をindex.php と同じ場所にアップロードします。

6)a-blog cmsを設置しているアドレスにアクセスし、アップデートプログラムを実行します。

7)アップデートプログラムの実行が終了したら、「setup」ディレクトリを削除します。

8)a-blog cmsを設置しているアドレスにアクセスします。


・アップデートプログラムの開始

 上記1)~5)の処理を行い、6)を実行すると以下のメンテナンスメニューが起動するので、システムの修正ツールの『ドメインの修正』を選択する。

Ablog_cms__1268895799345

・ドメイン修正画面

Ablog_cms__1268895833952
 現在設定されているドメイン名が表示されるが、変更することは無いので「ドメインの設定を修正します」をクリックする。その後で、修正したとのメッセージが表示される。

・ドメイン修正後画面

Ablog_cms__1268895855492
この後、メンテナンスメニューに戻り、前述の7)の処理を行い(「setup」ディレクトリを削除するか、もしくは別の名前に変更する)、8)の処理つまりルートブログの表示を行う。その後、ログインすれば管理画面での全ての表示が復活するはずです。

2010年3月16日 (火)

『a-blog cms』その1・インストール

インストールの前に先ずは、動作環境の確認からいきますと、以下の様な条件です。

1)PHP 5.0 以降(現状では4.3.3以降での動作を確認していますが、将来的に動作しなくなる可能性があります)
2)MySQL 5.0 以降(現状て?は4.1以降での動作を確認していますか?、将来的に動作しなくなる可能性があります)
3)ionCube ローダー(無料)が動作すること。
4)PHP用グラフィックライブラリGDが使用可能であること。
5)PHP 5.2.5以前の場合は、php.ini の safe_modeOff であるか、またはphp.iniが編集が可能であること。
6)PHP 5.2.5以降の場合はphp.iniが編集が可能であること。
7)modRewrite等「.htaccess」の設定が可能であること。
(以上、『a-blog cms』のサイトから引用しています)

自社サーバであればなんとかできますが、レンタルサーバ等の場合には確認が必要です。

今回の仕事を行うにあたって、実際のクライアントのサイト構築はレンタルサーバ上に行いますが、テスト用にローカルなLinuxサーバ上にインストールを行いました。

レンタルサーバであれば、そちらで全てやってもらえるので楽でしょうが、ローカルサーバでは
いろいろ大変なことがありました。

・PHPのバージョン確認

ローカルサーバの『phpinfo.php』で確認するとVersion-5.1.4なので特に問題は無い様である。


・ioncubeローダのインストール

とにかく『ioncubeローダ』が無いと話にならない様なので、AsialのHPからioncubeローダをダウンロードし、ZIPファイルを解凍する。(ioncube_loaders_lin_x86.zip)
PHPはVersion 5.1.4なので、Linuxのhtdocsのディレクトリの中にそのままコピーする。
取りあえずこれで、『ioncubeローダ』のインストール?は良い様である。


・a-blog cmsのインストール

以下のものをダウンロードし、一応解凍した。
# バージョン:1.2.1
# リリース日:2009/12/24
# サイズ:6.6MB

さらに、MySQLでablogcms用のデータベースを作成し、更にユーザを作成した。
ここでの注意点は『a-blog cms』はデータベースの文字コードを『utf8』でなければならない点です。(インストールされてるテンプレート等も全てファイルの文字コードは『utf8』になっている。)

>CREATE DATABASE `ablogcms` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

>insert into mysql.user (user,password,host) values('ablogcmsuser', password('ablogcmsuser'), 'localhost');

>grant all on *.* to ablogcmsuser@localhost;

>set password for root@localhost = password('root');

さて、準備はこれで揃ったと思い、以下のアドレスでアクセスしてインストールを開始する。
http://192.168.24.203/ablogcms/(192.168.24.203:ローカル環境のIP)
インストール画面が表示され、その後は画面の指示に従って行けばほぼ問題なくインストールが終了する。(処理の画面数は10個ぐらいです。全部このブログで表示してもよいのですが今回は割愛します)

「インストール画像の最初」
Ablog_cms

Ablog_cms_10
インストール最後の画面が表示されたので、いよいよ管理画面にログインを行おうとしたのですが
http://192.168.24.203/ablogcms/login/
の起動ができない!
どんなエラーかは画面をキャプチャしていないので忘れたのですが、原因として『apache』の『mod_rewrite.so』モジュールがロードされていなかったためと分かった。


『apache』の再コンパイルと設定

・apacheのソースのディレクトリ
 /usr/local/src/httpd-2.2.2

・再コンパイルのコンフィグの設定を「kterm」から実行

 #.configure \
 > --prefix=/usr/local/httpd-2.2.2 \
 > --enable-so \
 > --enable-info \
 > --enable-rewrite \
 > --enable-usertrack \
 > --enable-dav --enable-shared \
 > --enable-ssl --with-ssl=/usr/local/ssl
 > --enable-rewrite=shared
 checking ... しばらくメッセージが続く

 # make                                                 :コンパイル開始
  ... コンパイルメッセージ
 # make install                                         :インストール

 インストール後、シンボリックリンクを作成

 # ln -s /usr/local/httpd-2.2.2 /usr/local/apache2


更に『php』再コンパイル

zlibのモジュールが設定していなかったので、再コンパイルする。

・再コンパイルのコンフィグの設定を「kterm」から実行

 #.configure \
 > --prefix=/usr/local/php \
 > --with-apxs2=/usr/local/apache2/bin/apxs \
 > --enable-zend-multibyte \
 > --enable-mbstring \
 > --enable-mbregex \
 > --with-mysql=/usr/local/mysql \
 > --with-png-dir \
 > --with-jpeg-dir \
 > --with-oci8=instantclient,/usr/lib/oracle/10.1.0.4/client/lib \
 > --enable-signchild \
 > --with-zlib-dir \
 > --with-freetype-dir \
 > --enable-ftp \
 > --with-config-file-path=/usr/local/apache2/conf \
 > --with-gd
 checking ... しばらくメッセージが続く

 # make                                                 :コンパイル開始
  ... コンパイルメッセージ
 # make install                                         :インストール

この後、念のためLinuxのサービスを再起動してから、先ほどのログインアドレスにアクセスするとやっとログイン画面が表示された。

この全ての作業で丸1日かかってしまった。coldsweats01

以上、インストールの顛末記でした。

2010年3月15日 (月)

a-blog cms

2010年も3月になって暫くぶりの更新です。
(もう飽きられてしまったかな)

ところで最近仕事で『a-blog cms』を触っています。
1月の後半から3月までどっぷりと言った感じでした。

今回、CMSと言われるツールを初めて使ったのですが、結構簡単にWEBサイトが構築できるものだなと感心しました。

「CMS」の言葉さえ知らなかったのですが、ウイキペディアによれば「CMS」とはコンテンツマネジメントシステム(Content Management System)と呼ばれるもので
「Webコンテンツを構成するテキストや画像などのデジタルコンテンツを統合・体系的に管理し、配信など必要な処理を行うシステムの総称」らしいです。

要は、Webサイトのクライアントが、Web構築用のHTML等の言語を知らなくても、サイト上に表示する記事やデータのみを更新、管理できるシステムのことらしい。

まあ、この様な便利な?システムが出てくると、一からサイトをPHPなどで作成しなくても良くなり、われわれの仕事が無くなっていくのかもしれないと危惧しています。
そのためにも、新しいことをやって行かないと...

『a-blog cms』ですが、名古屋の会社で有限会社アップルップルが開発元です。
取りあえず以下にURLを張っておきます。
(勝手にリンクを張ってもいいのかわかりませんが、取りあえず宣伝なのでいいのかな?
 もし不都合でしたらリンクは削除いたします。)

611d7e2b

 

 

 

  有限会社アップルップル
http://www.appleple.com/

ところで『a-blog cms』の概要ですが、以下のような感じです。

1)『a-blog』を元にしたCMSで、クライアントが更新しやすくなっている。
2)静的なサイトからの導入ができ、少しずつコンテンツを動的に変えていける。
3)サイトの表示はテンプレートを用いて行うため、HTMLを知っていれば簡単にクライアントでも表示の変更ができる。
4)ブログのシステムが基本なので、各データはブログの表示構成コンテンツとして登録していく。
5)ブログの標準表示コンテンツとしてはテキスト、画像、Google地図、Youtubeなどがある。
6)標準表示コンテンツ以外で必要なデータはカスタムフィールドとして登録可能である。
  (これには管理者権限でのブログ入力画面に手を入れる必要がある)

ほかにも色々ありますが、この『a-blog cms』非商用使用の場合には無料で使用できるようです。結構太っ腹ですね。
もっとも、インストールされたソースはiconcubeで暗号化されていますので、読めません。
オープンソースと謳っていないのであたりまえですが。

今後はこの『a-blog cms』について少し書いていこうと思います。