おすすめ本

最近のトラックバック

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

AccRanking

Ad

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

2010年7月22日 (木)

『a-blog cms』ログイン時の管理操作ボタンの中に直接指定のブログ新規入力ボタンを設置のその2

ログイン時の管理操作ボタンの中に、ブログID、カテゴリーIDを指定したボタンを設置する方法のその2です。

デバッグ作業でカテゴリーを削除したり、作成したりしているうちに、カテゴリーIDが変わってしまうことがあります。
そうすると、テンプレートの中で固定値でIDを記述してあると、入力でのカテゴリーの表示が意図しないものになります。

これを解消するには、ブログID及びカテゴリーIDをブログコード及びカテゴリーコードで取得する様なプライベートなモジュールを作成し それを%{BID} %{CID} に置き換えることです。

以下は操作ボタンの記述部分を抜粋します。


モジュール Private_GetBlogId Private_GetCategoryId はディレクトリ php/ACMS/GET の下に Private を作成し、 その中に GetBlogId.php GetCategoryId.php として作成します。

以下に、GetBlogId.php を示します。このモジュールは、直接ablog-cmsのテーブルを参照していますので これをお使いの場合は十分に注意して下さい。
以下に、GetCategoryId.php を示します。このモジュールは、直接ablog-cmsのテーブルを参照していますので これをお使いの場合は十分に注意して下さい。


2010年7月17日 (土)

『a-blog cms』ログイン時の管理操作ボタンの中に直接指定のブログ新規入力ボタンを設置する

今日のTIPSは、ログイン時の管理操作ボタンの中に、ブログID、カテゴリーIDを指定し最初からブログとカテゴリーが選択された状態での ブログ入力になる様にボタンを設置する方法です。

管理操作ボタンはthemes/system/admin/action.htmlが元になるファイルで、これを自分のテーマのadminディレクトリにコピーします。
(themes/自分のテーマ/admin/)
以下は元のaction.htmlの管理操作ボタンの抜粋です。

上のformタグで囲まれた部分を、それぞれ該当するブログID、カテゴリーIDに書き換えて以下の様にすれば個別のブログ入力になります。

Photo_2


2010年7月15日 (木)

『a-blog cms』フォームオプションのvalidator#regex:全角カタカナのチェック

フォームオプションの正規表現で全角カタカナかどうかをチェックする方法です。

前回の正規表現で{}をHTMLに出力したい場合には、{}の前に¥マークを付けるというのがありましたが、 今回は正規表現の中で¥マークは出てきますが、{}とは関係ないため、¥マークを2回以上記述する必要はありません。


2010年7月14日 (水)

『a-blog cms』フォームオプションのvalidator#regexではまったこと

フォームオプションの正規表現でのチェックの時に使うのが、validator#regexです。 これの設定の仕方ですが、ablog-cmsのサイトには以下の様な例が記されています。


ここで入力しているのは電話番号ですから、正規表現としては「\d{2,4}-\d{2,4}-\d{4}」となります。 しかしこのままですと、{}の部分がローカル変数の指定になるため、エスケープ処理として{}の前に¥(円マーク)を 付加している様です。 ¥マークを付けないと、{}の部分が空白でHTMLが出力され、以下の様になってしまいます。


このエスケープ処理ですが、どこで行われるのかと考えたのですが、どうもモジュール処理を展開するときに行っているようです。 但し、モジュールの処理の入れ子があった場合には以下の様に、モジュール処理の回数分¥マークを付けないとうまく正規表現がHTMLに変換されません。 それぞれのエスケープ処理で、¥マークが1個ずつはずされていく様です。 実際、内部の動きがどうなっているかは、その結果としてのHTMLを見るしかないので、この説明であっているかは定かではありません。 この辺りは、マニュアルには記載が無いので説明をお願いしたいものです。


2010年5月26日 (水)

『a-blog cms』その8・システムの内容を全てディレクトリコピーで移行した場合の注意点

最近システムをディレクトリごと移行したときに、ブログの入力をしていて気が付いたのですが、画像を入力したら以下の様なエラーが表示されました。

Warning: getimagesize(archives/001/201005/4bed13044a9c6.jpg) [function.getimagesize]:
failed to open stream: No such file or directory in /usr/local/httpd-2.2.2/htdocs/ablogcms

「ファイルが無いか、そんなディレクトリは在りません」とのエラーが表示されているようですが
「archives/001/201005/」のディレクトリは在るし、どうしたのかと思っていましたが、ディレクトリの書込み属性を設定を調べてみたら、不可になっていたのでした。
これに許可を与えると、問題なく画像ファイルは書き込まれました。

「a-blog cms」もgetimagesize関数をコールする前に、アップロードされたファイルを「archives/001/201005/」ディレクトリにコピーするはずなので、そこでエラーが出ればより分かりやすいのですが。

2010年5月18日 (火)

『a-blog cms』その7・Entry_Bodyの中でveilがきかない場合

今回はエントリーの中に画像のカスタムフィールドを持って、Entry_Bodyのなかでその画像データの有無により、画像表示ページのリンクを表示/非表示の制御を行うところでちょっとドジを踏んでしまいました。
以下にその顛末を記します。



「img1@path」をBEGIN,ENDの中で使用せずにかつ「entry:loop.eid」を利用すると「img1@path」が無いにもかかわらず行が生成される。
これは、いくらveilで制御しても、「entry:loop.eid」にはデータが存在するをため、行が生成されてしまう様です。

「entry:loop.eid」を利用をやめて以下のようにしても、今度は全く行が生成されない「img1@path」をBEGIN,ENDの中で使用していないので、当然と言えばそうでしょうが。



それで仕方なく、テンプレートの後ろにGET変数を無理やりつける形で、「img1@path」を使用すると、ほしかった制御になった。

2010年5月17日 (月)

『a-blog cms』その6・WYSIWYGエディタで改行時に
にする(小ネタ)

WYSIWYGエディタで改行を入れるとタグが生成されるが、これを<br />に変えたいと言う要求がありまして、少し調べました。 WYSIWYGエディタは「ckeditor」と言うものを利用している様で、この環境を設定できるスクリプトが a-blog cmsのディレクトリ内にありました。それを変更してやれば目的のことができる様です。 そのスクリプトファイルはjs/ckeditor/config.jsで、以下に内容を記します。



デフォルトの環境を変えるのは「例」の様にしなさい、と書いてあるので早速「enterMode」を変えてみました。 結果は望んでいたようになりました。



CKEDITORの環境については以下のページを参照して下さい。

http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html

2010年5月14日 (金)

『a-blog cms』その5・校正オプション利用時のちょっとした注意点(小ネタ)

各ビルトインモジュールを使ったり、フォームでのカラムデータやカスタムフィールドデータを校正するときに 同じ変数を2箇所で使うときには注意が必要です。 例えば、エントリーに「inputdata」というカスタムフィールドが登録されているとして、以下の様にテンプレートに記述すると 「inputdata1」は思ったものが「value」に設定されますが、「inputdata2」は「inputdata1」と同じ内容になってしまいます。



この2行をいれかえて以下の様にすれば、「inputdata2」には改行が「<br />」に変換されずに設定されます。


この挙動から考えて、「a-blog cms」は上から順次テンプレート処理を行うとき、同じフィールド名を使うときには 最初に施された校正結果をそのまま持ってきて使うようです。

2010年5月11日 (火)

『a-blog cms』その4-2・ページャで「現在ページ」/「MAXページ」の表示を行う

「前回の記事で、「現在ページ」/「MAXページ」の表示を行う方法について掲載する...」
というようなことを載せていましたので、それの回答です。

先ずは、テンプレートファイルの抜粋から以下に示します。
テンプレートの中でプライベートな関数を使用していますが、この部分には最初{page}としていましたが
ページ数が1ページしかない場合には、ページャの{page}変数には「a-blog cms」からデータが設定されてきません。
(これは「a-blog cms」マニュアルのビルトインモジュールの変数表を見れば、pager:veil が点線で囲まれているので当然と言えばそうなのですが、ページが1ページしかなければページャの必要が無いということでしょう)

それで、このテンプレートページに渡されてくる、ページNOをプライベート関数で拾うことにしました。この関数は、テンプレートの後に載せておきます。

尚、このテンプレートで使用しているモジュールIDは「searchResults」と宣言していますが、これのコンフィグの設定は以下の様な値にしてあります。
「前後に表示するページ数」を「0」にしないと今回の目的に適応しません。

Mdule

後、「javascript」がありますが、最終ページになった場合に{lastPage}の値が設定されずNULLになってしまうのでそれを補正するためのものです。


現在のページに渡されてきたページNOを取得する関数。

「現在ページ」/「MAXページ」の表示のために、これだけ面倒なのもどうかと思うのですが、 クライアントが要求するため仕方ありません。 これらの方法よりも良いものがありましたら、だれか教えて頂けないでしょうか。

2010年4月14日 (水)

『a-blog cms』その4・検索結果の一覧でページャを上としたの2ヶ所に表示する方法について(小ネタ)

私が「a-blog cms」でサイトを構築していく上で、戸惑ったり悩んだりしたことをTIPSとして載せていきます。

今回は最初として、モジュール「Entry_Summary」を利用した場合に、ページャを上下2ヶ所に設置する方法を記します。
方法は簡単で、「Entry_Summary」モジュール等を2回利用し、それぞれの中で「pager:veil」の処理を記述します。


(基本的な記述は、「アップルップル」さんのマニュアルより引用しています)
尚、この例の中では、モジュールIDとして「searchResults」の名称を定義しています。

ところで、「a-blog cms」のページャなのですが、全体のページの中でどの位置にあるかを示すような「現在ページ」/「MAXページ」の表示ができない様です。
これを解消するにはJavaScriptで何とかするしかないようです。この方法については後日、掲載します。