Joomla!の最近のブログ記事

Joomlaコンポーネント内で(モジュールでも良いけど)カレンダーを表示させるのは簡単で、以下のようにやればいい(ただし正式なドキュメントは見あたらず)。

JHTML::_('calendar', ....);

Joomlaのカレンダー機能はこのカレンダーを使っているらしい。

オリジナルのカレンダーのドキュメントを見ると色々カスタマイズ出来るみたいだけど、Joomlaからだと以外に面倒だったのでメモ。本家フォーラムでも同じ事を質問してる人がいた。

自分用メモ。

JoomlaでJSON出力する方法。Joomlaのドキュメントページより。

PHPではjson_encodeを使って出力するだけ。HTTPレスポンスのヘッダも変えてるか。

JavaScript側の処理に関しての注意点はこちらのページが分かりやすい。MooTools 1.2 だとJSON.decodeというのが使えるみたいだけど、Joomla 1.5に付属のMooTools 1.1では使えないっぽい。

(追記) MooTools 1.1のドキュメントの場所を教えてもらった。MooToolsのページから探しても見付からなかった・・・

自分用メモ。

Joomlaコンポーネントを作る時は、これを参考にちゃんとSQLインジェクションの対策しなくちゃダメよ。

 

 

タイトル通り。全画面表示したりとか、新規ウィンドウに表示したりとかしたい。

新しいテンプレートを使って、全画面表示したいコンポーネントのページに適用するだけ。

ここを参考にした。


ここ1ヶ月くらい作成中のJoomla!コンポーネントがようやく形になってきた。そのコンポーネント内部ではCommunity Builderで追加したフィールドの値を参照してる。

そうしたことをするには、以下のようなコードを埋め込む必要がある。

global $_CB_framework, $ueConfig, $mainframe;
if ( defined( 'JPATH_ADMINISTRATOR' ) ) {
    if ( ! file_exists( JPATH_ADMINISTRATOR . '/components/com_comprofiler/plugin.foundation.php' ) ) {
        echo 'CB not installed!';
        return;
    }
    include_once( JPATH_ADMINISTRATOR . '/components/com_comprofiler/plugin.foundation.php' );
} else {
    if ( ! file_exists( $mainframe->getCfg( 'absolute_path' ) . '/administrator/components/com_comprofiler/plugin.foundation.php' ) ) {
        echo 'CB not installed!';
        return;
    }
    include_once( $mainframe->getCfg( 'absolute_path' ) . '/administrator/components/com_comprofiler/plugin.foundation.php' );
}
cbimport( 'cb.plugins' );
cbimport( 'language.front' );

でないと、以下のようなエラーが出る。

Fatal error: Class 'comprofilerDBTable' not found in /path/to/joomla/administrator/components/com_comprofiler/library/cb/cb.tables.php on line 16

詳しくはここを参照

環境:
Joomla 1.5.15
Community Builder 1.2.2

まだまだJoomlaのコンポーネントを作成中。

JoomlaでMVCスタイルに沿ってコンポーネントを作る場合、各クラス・ファイル名をJoomla流儀の命名規則にしておかないと結構面倒。

■ViewでView名とは違う名前のModelを使いたい
admin側の機能を先に作ったんだけど、ユーザー側のコードでもadmin側で作ったmodelを使いたい。色々調べたり試行錯誤したりして、1時間くらいかかってしまった...

フォーラムのこの書き込みが結構役に立った。

またまたJoomla!コンポーネント作成の話。

Webアプリを作ってりゃトランザクションが必要な場面の1つや2つはあるもの。そのやり方だけど、JDatabaseのsetQueryメソッドでSTART TRANSACTIONとかを実行するという原始的なやり方。英語のフォーラムより

JDatabaseにBeginTransとかのメソッドがあるけど、中身は全部空。今後実装されるのかな・・・

当たり前だけど、トランザクションを使うには、テーブルはInnoDBじゃないとダメ。Joomla!のテーブルはMyISAMなので要注意。

引き続きJoomla!でコンポーネント作成中。

例えば生徒テーブルと先生テーブルがあるとする。生徒テーブルには担任の先生のIDを格納するフィールドがあって、先生テーブルを参照している。生徒の編集ページでは、担任の先生をプルダウンから選択したい。

こういう時の方法に関する本家フォーラムの書き込み

でも、昨日も書いたけど、こういうのはフレームワークで出来るようになっていると嬉しい。

Joomla! 1.6でMVC

| コメント(0) | トラックバック(0)

引き続きぼちぼちJoomla!でコンポーネントを作ってるんだけど、単純なCRUDを作るのが結構めんどくさい。せっかく省力化のためにCMS使うのに、ちょっと機能追加しようと思ってコンポーネントを作ろうと思ったら、単純なCRUDに時間がかかっては本末転倒のような...symfonyみたいなフレームワークを一度使っちゃうともう元には戻れないなぁ。

さて、何かいい方法がないかと思って調べてたら、1.6ではそのあたりが結構改善されているっぽい。1.6でのMVCのチュートリアルなんだけど、XMLでビューの定義とかをしている。

1.6に乗り換えようかなぁと思ったけど、まだα版なので断念した。

Joomla!のコンポーネントを作り始めて10日間ぐらいか。だんだん慣れてきた。

役に立ったページをメモ代わりに。(全部英語だけど)

MVCでコンポーネントを作るときに基本的な事を解説した
チュートリアル
もう一つチュートリアル。こっちは多言語対応?。まだ詳しく見てない。


"500 view not found" なんてエラーが出たときに検索してて見つけたスレッド。Model, View, Controllerのファイル名、クラス名、ディレクトリ構造は規則に従っておくと楽だけど、そうじゃないと色々トラブルが起きる。

で、そんなトラブルが起きたときに、結局はソースを見るのが一番手っ取り早かったりする。Joomla!のソースは結構分かりやすい。

JModel, JView, JController 各クラスのドキュメント。ソースもそっからたどれる。

インストールファイルのサンプル&説明のページ

このブログの作者

名前:kazu
仕事:IT関係の何でも屋
メール:kazu 後幕 kazu どと tv
詳しくはこの辺

このアーカイブについて

このページには、過去に書かれたブログ記事のうちJoomla!カテゴリに属しているものが含まれています。

次のカテゴリはMovable Typeです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ