Home arrow Extensions arrow Plugins

7月
03
2008

プラグインだけを使った投稿可能なエクステンションを考えてみた

diggに追加!

メールで相談があったので考えてみた。
(たまにそういった相談があったりする。もちろんはじめての方ばかりです。)

Joomla!のエクステンションでできることをまず整理してみた。

  • コンポーネント
    • コンポーネントだけができること
      • 独自のコンポーネントのURLを作ることができる。
        というかつくられる。
      • データベースをインストールできる。
    • 他でもできること
      • データを表示する。
  • モジュール
    • モジュールだけができること
      • ページ内で表示する領域をモジュールポジションで決められる。
        これくらいか・・・。
    • 他でもできること
      • データを表示する。
  • プラグイン
    • プラグインだけができること
      • プラグインが呼び出されるタイミングに合わせてそのデータに対して処理をする。
        これくらい?
    • 他でもできること
      • データを表示する。

さて、書いてみると作成するのに一番面倒そうなのは、コンポーネントですね。次はモジュールでもプラグインでも同じくらいっぽいです。内容によってはといった感じでしょうか。

今回の相談ではまず、

  • 投稿機能
  • 内容をデータに反映(表示)

の2点が大きな目的です。単純に考えるとコンポーネントを作成するしか無いのですが、もしデータベースなりで(データベースでなくてもファイルベースでも構わないならそれでもOK)、とにかくデータを管理することさえできれば、モジュールでもプラグインでもコンポーネント並のことができるのではないかと考えました。

・・・いやいや、もっと簡単なのを思いつきました。

よく考えてみれば、Joomla!のコンテンツのデータベーステーブル(jos_content)には、現在使われていないフィールドが存在します。それを使いましょう。「parentid」です。これを使えば記事のひもづけができる。それなら、記事をデータベース(データを保存するもの)として使えるからデータの保存方法を考えなくても良さそうだ。

そこで、こんな方法は(流れ)どうでしょう。

  • イベント記事を作成する。(コンテンツアイテム)
    プラグインなので何か母体がないと表示されません。なのでイベントがあれば先に告知などをするでしょうから、先にそれを作成する。
  • 記事で表示されるプラグインを作成する。
  • ログインしたら、元のイベント記事IDをparentidとした記事が無ければ、フォームをプラグインで表示する。あれば何もしないか、元のイベント記事IDをparentidとしている記事を表示するか、その記事へのリンクを表示(これが良いでしょうね)する。
    • フォームからの投稿は、表示される記事に向けてPOSTする。(これがミソですか。)
    • POSTされたそのプラグイン用のデータがあれば、そのプラグイン自身でその元記事をparentidとする新規記事に投稿されたデータを処理して記事として格納する。

プラグインに必要な条件処理(パラメータ)

  • イベントカテゴリーまたは、セクションでのみ動作させる。
    やたらめったらフォームが表示されても困る。ログインしないと表示されないけど。
  • 投稿権限レベルの設定(登録ユーザー、編集者など。一般は駄目でなるべく上の方が良い)
    このレベル設定によって投稿したデータ(記事になる)が自動で表示されるのか、管理者が許可しないと表示されないのかを決定するように記事を登録する。具体的には、Authorなら自分の記事だけだし、Editor以下は管理者の許可がいる。Publisherで初めて自分の投稿がそのまま表示されるといった具合です。

できた!!

なんとなくできそうですね。コンポーネントを作成しようと思うとたくさん書かないと駄目ですが、プラグインなら楽そうです。

ここまで書いたらプラグインを作成できる方なら可能ではないかと・・・。

有料ならいくらで作ってくれるかって?
そうですねぇ・・・有料で私が配布しても良くて且つうちのリンク広告付きで5,000円、駄目なら5万円くらいでしょうか(かな~り大雑把)

・・・なんて野郎だ、相談に来ているのにふんだくるのか・・・いや、でも仕事だも~ん。でも、儲けようと思ってたらここまで書かないでしょ・・・。

 

Related Articles

文字コード(UTF-8)で困惑
他の文字コードの違うCMSを使っていたり、初めてCMSを使う方でJoomla!を使用するときエラーが出たり、動かないって困ったことはないでしょうか。私は、今でもエディタによってはデフォルトの...
ダウンロード数を比較してみるとまだ 1.0.x 多し?! : Joomla!
ふと、MovableType XML-RPC Pluginのダウンロード数を比較してみるとアップデートしたファイルのダウンロード数ではJoomla!1.5用の約7割がJoomla!1.0.x用のダウン...
Joomla!1.5の最新リビジョンで異なるDatabase Charsetを試してみた
Database CharsetをCP1251にし、以前にテストしたロシア語Joomla!1.0.xのデータベースをマイグレートしてみた。 Joomla!1.5では、1.0.xからデータベースをインポ...
複数のJavascript、複数のスタイルシートを結合する
Joomla!にインストールするエクステンションが増えてくるとロードするJavascriptや、スタイルシートが次第に増えてきます。ヘッダ部分がかなり頭でっかちになってしまっているJoomla!サイト...
SQLインジェクション解析 その後:iLogScanner IPA
前回3月のログで解析を行ったら397件のSQLインジェクション攻撃が発見されましたが、今回4月のログを再び解析してみました。 激減?141件でした。 なんと今回の解析後のログファイルを見てみ...
Frontpage Auto Updateをアップデートしました:Joomla! 1.5
Frontpage Auto Updateプラグインをバージョン1.0.1にアップデートしました。 このアップデートは、Joomla!1.5用だけです。 変更したところ Joomla!の1...
Operaで管理画面を開いたら : Joomla! Backend
そういえば、ブラウザのOperaがいつの間にか無くなっていた。最近頻繁にFirefoxが応答不能になるので新しいテンプレートの検証ようにも入れて置こうと思い、何気なくインストールしてみた。 Joom...
Joomla!1.5.4がリリースされています
いつものようにhttp://demo.joomler.netを上書きアップデートしました。 アップデート方法は、以前に記事にしたのと同じです。(かなり私はショートカットしていますが) 今回の...
MTmail でモバイル「Joomla!モブログ」 : MovableType XML-RPC
携帯(PCでも)メールから記事を投稿できる無料サービスMTmail専用プラグイン(Joomla!1.5のみ)を以下で公開しています。 mtmail_for_tester.zip Joomla!...
Joomla.orgのデザインが一新:Joomla!
休みを終えて・・・ふとPCの前に座ってあることに気がつきました。「RSSリーダー見てないよな・・・。」 やはりたくさんの記事がある。中には300件を超しているものまで・・・。もうそういうのは目を瞑っ...
MovableType XML-RPCをアップデートしました
PDFフォント : Joomla!1.5
作成します。JTagReplacer : Joomla! Component
Joomla!1.5.5がリリースされました : Joomla!1.5
Dreamweaver用エクステンション
Joomla! 1.5RC3 がリリースされました
携帯 Google Mapモジュールのデモ : 携帯 Joomla!
Google Custom Search について
Joomla! サイトのローカルコピーを作成
Windows Live Writerのナイスなプラグイン

C_square_trans.png Components
Joomla! Extensions
M_square_trans.png Modules
Joomla! Extensions
P_square_trans.png Plugins
Joomla! Extensions
Templates
Joomla! Extensions
a_delphi.gif Delphi for PHP
Delphi for PHP related

for Mobile