Home arrow Blog 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

Joomler!.netについて
管理者 Joomler!.netはJoomla! CMS 用のエクステンションやWEB制作を業としているフリーランサーが運営しています。 目的 Joomla!...
Joomla!のバックエンドをPrismで開く
mozillaからリリースされている「Prism」を使うと便利かもしれない。Win・Mac・Linux版出そろって早速使っています。(Win版) Mozilla のPrismペー...
Joomla!じゃぱんのフォーラムにやっとログインできた
ちょうど一月ほど前に「あ、これ知ってるから書き込もう。」と思ってログインしようと思ったら「60分後にログインしてください。」と出るではないか・・・。え、もしかして私・・・「ブロックユーザー」ですか!?...
Google Custom Searchを使って検索結果を自分のサイトで表示する
フォーラムでforum.joomla.orgのようにmod_google_custom_searchで表示できないかと聞かれたのですが、このモジュールではforum.joomla.orgのような表示は...
Joomla!1.5の日本語ランゲージファイル
はじまりは、Joomla!じゃぱんのフォーラムにてPDFが表示できないとの投稿が(元スレ)あり、私がよく読みもせずPDFフォントが含まれていないことが原因のWarningエラーだと思いこんでいたのです...
Yahoo Babelfish Web 翻訳
先日から、記事毎にイギリス国旗がはためいていると思います。これは、Web翻訳へのリンクです。もっときれいに表示する予定だったのですが、YahooのBabelfishは、フレーム化を阻止してく...
News機能:Joomla!
Joomla!には便利な機能があってサイトのRSSを取得して表示する機能があります。ですが、そのまま表示させている方は少ないと思います。見栄えが悪いのじゃないかと・・・。 リクエストがあったのでRS...
はじめてJoomla!1.5のFCKエディタとJCEエディタを使ってみた : Joomla!1.5
いつもブログエディタ(Windows Live Writer)でのみ編集しているのでサードパーティーのエディタはJoomla!1.5にはインストールしていません。(このサイトにはJCEエディタはインス...
jQueryでLightBox
jQueryでLightBoxみたいな表示ができるプラグインがありますが、それをもじってひねっている最中です。そんな中AptanaがAptana Studioになったものを使っているのですが...
JBackupプラグインをアップデートしました : Joomla!
バージョンを1.1.1としています。 先日からすでにファイルは、公開しています。 変更点 Crontab + wgetによる呼び出しをサポートしました SQLファイルは、テーブル毎に...
Joomla!1.0.14RC1になりました
Joomlaos.de : JGTdoc と WebLink Info
SQLインジェクション攻撃 5月:iLogScanner IPA
Joomla!の Cache
セキュリティについてアナウンスされました : Joomla!1.5
Joomla!1.0.xの管理で表示する記事一覧のソート : Hack
demo.joomler.netを1.5.1にしました
Joomla!1.5でmootools1.2を使う : Joomla!1.5
あ~またアップデートというかバグつくるなよ
HTMLをこれで管理することにしよう :

joomler_kun_48.gif Blog
Joomler! Blog

for Mobile