いつの間にか、RC1が・・・とうとう出てるじゃないですか・・・。そろそろ動かないとだめですか・・・。
早速インストールしてみた。
前からでしたっけ?インストール時に管理者のユーザ名を指定できるのって・・・。これは良いことです。管理者だからって何もadminに限定しなくても良いし、Joomlaで作られたサイトは、adminってわかっているからパスワードを適当なものにしておくと危ないと思っていたし。
でも、まあサンプルだからとはいえ、いきなり多階層を見せつけるがごとく深い階層の記事が一番に来てるのは何とも言えない気がします・・・。(実際これだけ長かったら、レイアウトに困ることってないかな・・・)
何かとコンポーネントが必要では無いかと考えがちですが、プラグインとテンプレート(テンプレートのオーバーライドで行ってNoHack)で大抵の事ができると思う。
たとえば、コンタクト。
こんな風に作れば簡単にオリジナルのものが作成できるでしょう。
(実際に作成してはいないので想像で書きます。)
終わり。
これだけでオリジナルのお問い合わせが作成できます。データを格納したければ、データベーステーブルを新たに作成しなければいけませんが、ワンオフのアプリケーションなら手作業で作成すれば済みます。
以下は、80codeサーバーでのみのことです。
昨日Hackが駄目ってわかってよく考えてみれば(考えなくてもそうだ)PHP_SELFに正しい値が入らないのが原因なのでそれに正しい値を入れてやれば解決することだなと・・・。ややこしい事をしなくても良いのである。
例えば、http://yourdomain.com/がJoomla!1.5で稼働しているすると
Joomla!1.5ルートの index.phpの冒頭に
$_SERVER['PHP_SELF'] = $_SERVER['SCRIPT_NAME'] = '/index.php';
を書き足せば何もHackしなくて済む。
さらにindex2.phpにも同様に
$_SERVER['PHP_SELF'] = $_SERVER['SCRIPT_NAME'] = '/index2.php';
を書く。これだけ・・・。バックエンドは何もしなくて良い。要はSEFの時だけ影響を受けるので必要ない。
ルート以下のディレクトリにJoomla!1.5を置いた場合はそのディレクトリ名も追加しなきゃならない。
例えば、http://yourdomain.com/joomla/なら
$_SERVER['PHP_SELF'] = $_SERVER['SCRIPT_NAME'] = '/joomla/index.php';
と言った具合に。
$_SERVER['SCRIPT_NAME']をなぜ加えているのかというと、エクステンションによっては、使っているようです。なので同じように初期化してしまいます。
でも、php.iniとかで設定できないのか?・・・。
今日も、先日ブックマークしていたもので、Joomla!1.5のシンプルなコンポーネントの作成方法を解説されているサイトをご紹介します。
「Create MVC-model-view-controller component for joomla 1.5 - Hello World」

こちらでは、何よりフォルダ構成がわかりやすく書かれていて、またMVCがわかりやすく図示されています。サンプルコンポーネント自体は、本当にシンプルなものなのでこれだけでは、到底まともなコンポーネントなどできそうにありませんが、構造を理解する上では十分なのではないかと思います。説明で使用されているサンプルコンポーネントがサイト下部でダウンロードできるのでコードをエディタで見ながら、また、他のサンプルと比較しながら見ていくと良いのではと思います。
Fireboardで先日プロフィール欄のユーザが登録されたURLをクリックしたらhttp://がダブっていてちゃんと表示されませんでした。これは、プロフィール登録時にhttp://とともにURLを登録した場合に生じます。登録時には例としてhttp://抜きのアドレスが表示されているだけで、http://を入力してはいけないなどの説明はありませんから、入力してしまう場合もあり得ると思います。また、http://が入力されていないことを前提に表示するようになっている(必ず登録URLの先頭にhttp://を付加するようになっている)ので、必ずhttp://は入力しない、または入力できないようにしなければいけないですね。
かなり甘いですが、表示側のコードを編集しようと思うと数カ所あったので登録する側で簡易処理しました。
Root/components/com_fireboard/template/default/plugin/myprofile/myprofile.php
$rowu->birthdate = $bday1."-".$bday2."-".$bday3;
を
$rowu->birthdate = $bday1."-".$bday2."-".$bday3;
$rowu->websiteurl = str_replace('http://', '', $rowu->websiteurl);
に変更というより2行目を追加しました。これで登録時にhttp://が入力されていてもhttp://は削除されます。・・・・・これってこれだけで・・・いいのか?う~~~~ん。現状を基本とするとこれだけですねぇ・・・。
この変更は、すでに登録された方には適用されません。更新すれば別ですが、登録済みの方の場合は、phpMyAdminなどで#__fb_usersテーブルのwebsiteurlフィールドに登録されている値を修正すればOKです。