Blog 80codeサーバーでのJoomla!1.5のSEF
以下は、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.7がリリースされています : Joomla!
Joomla!1.5.7がリリースされています。
今回も早めにアップグレードした方が良さそうです。
若干の機能追加もあり、変更部分を見てみると現在作成中のJContentPlusにも反映しないといけなさそうなものや、反映した方がよさそうなものもありました。
サードパーティーのエクステンションの動作には影響は無いでしょうが、今回の変更内容を考慮したものに変更した方が良いものがあるかもしれません。
アップグレード方法はこちらで以前に書いた方法(といっても上書きするだけですが・・)でOKでした。demo.joomler.netもさっさとHackした部分を除いてFTPで上書きしただけです。Hackした部分は変更内容のみ反映してから上書きしました。所要時間5分くらいでしょうか。
さっさとやってしまいましょう。
一晩たったらもうアップデートしていたよ
ScribeFireですが、MovableTypeの変更で2.3.2に対応と書いたらもう今日になったら3.0になってるし。
まあ、大きな仕様の変更はなさそうなので大丈夫そうですが。
昨日そういえば、こっそりとJoomla! Pagebreak Plugin for Windows Live Writerのファイルを置き換えたことを書くのを忘れていました。5ダウンロードの時だったので該当っぽいと思われる方は、再ダウンロードしてください。
これは、ログを見ていて気づきました。Windows Live Writerのプラグインの作成方法をいろいろ調べていてアイコンの大きさが20x18か、16x16(これはログを見て知った。)に限定されているとは読んで知ってはいたのですが、大きいのでも問題なく表示されていたのでそのままにしていました。ところが、ログを見ているとなにやらアイコンサイズが違うというようなメッセージが出力されていました。それで急遽ファイルを置き換えたわけです。(黙って)
Joomla! Pagebreak pluginを公開しました。
現在、Joomla!1.5用のみとなっています。(1.0は、単純なので必要ないかもしれない。)
下記のように改ページ(Pagebreak)をWindows Live Writer上から簡単に作成、投稿可能になります。HTMLソースから書き入れなければいけない手間が省けます。
そうでなくても不手際のある私ですが、C#は、はじめてです・・・。
改ページ(Pagebreak)とは?
ここで改ページ機能を知らない方もいるでしょうから、少し・・・。Joomla!の記事編集画面の下に改ページ(Pagebreak)というボタンがあります。それをクリックすると選択した場所にJoomla!1.0.xならmospagebreakと括弧付きで挿入されます。Joomla!1.5ならhrタグに属性を付加したものが挿入され、上の画像のように一つの記事をあたかも別々の記事があるかのようにIndexを作成してくれる機能です。
エクステンションのパラメータでサポートされているタイプ : Joomla!1.5
Joomla!でエクステンションを作成するとき、必ず必要なのが、エクステンション名.xmlです。
この中でエクステンションの設定値などをタイプやデフォルト値で指定する「params」というものがあります。
さて、今回質問があったのであらためて見てみました。
<param name="名前" type="タイプ" default="初期値" label="ラベル(表示名)" description="説明" />
上記のようにパラメータを指定しますが、どのように使うのか。
- 名前(name)について
これは、$params->get('ここ');で取得する名前を指定します。 - タイプ属性 ( type )について
これにはいくつかデフォルトで指定できるものが用意されています。 - calendar
これは、カレンダーを表示させ、日付を指定させることができます。この時の日付フォーマットは、属性で format="%Y-%m-%d" などとparam内に書けばフォーマットを指定でいます。
例:
<param name="mydate" type="calendar" label="Select Date" format="%Y-%m-%d" default="" description="" /> - category
これは、カテゴリーのリストを表示してくれます。また、scope属性でsectionの範囲を指定することもできます。
例:
<param name="catid" type="category" label="Select Cat" scope="content" default="" description="" /> - editors
これは、エディタを選択するリストを表示します。
例:
<param name="editor" type="editors" label="Select Editor" default="" description="" /> - filelist
これはファイルリストを表示します。4つの属性値を指定できます。 - directory
- fitler
- exclude
- stripext
- folderlist
これはフォルダのリストを表示します。3つの属性値を指定できます。 - directory
- filter
- exclude
- helpsites
これは、ヘルプサイトのリストを表示します。デフォルトでは、http://help.joomla.orgのみとなっています。 - hidden
これは、hiddenフォームを作成してくれます。ユーザーの入力はできません。
ちなみにJBackupで使っています。 - imagelist
イメージリストを表示します。指定できる属性は、filterのみで以下のように指定します。
filter='\.jpg$|\.gif$'
と指定すれば、jpgとgifのみのリストとなります。 - languages
言語のリストを表示します。属性はclientです。指定できる値は、JPATH_以下の文字です。 - list
これは、一般的によく使われているので説明しません。 - menu
メニューのリストを表示してくれます。 - menuitem
メニューアイテムを表示してくれます。 - password
type属性がpasswordのフォームを表示してくます。 - radio
これは、一般的によく使われているので説明しません。 - section
セクションのリストを表示してくれます。属性はありません。また、マルチセレクトにはなりません。
例:
<param name="sectionid" type="section" label="Select Section" default="" description="" /> - spacer
これは、一般的によく使われているので説明しません。
Tips:default属性に値を入れるとそれがボーダーの代わりに表示されます。 - sql
これは、自由にカスタマイズできるリストを作成してくれます。query属性にSQLクエリを入力すれば、その結果をリスト化してくれます。 - text
これは、一般的によく使われているので説明しません。 - textarea
これは、一般的によく使われているので説明しません。 - timezones
タイムゾーンのリストを表示してくれます。 - usergroup
ユーザーグループのリストを表示してくれます。 - もっとカスタマイズしたフォームを作成したい場合
Joomla!1.5では<paramsタグ内に次のように属性を追加することでオリジナルのelementファイルを呼び出させてオリジナルのフォームを表示させることができます。
<params addpath="/components/com_jcontentplus/elements">
このように指定することで指定されたパス内のtype属性で指定した名前のファイルをロードしてくれます。そして以下のようなクラス名を呼び出してくれます。
例:type="myform"なら
class JElementMyform extends JElement{ここに対応するメソッドを書く}
このようにすることによってほとんど制限なくカスタマイズされたフォームを自由に作成することが可能です。
※JContentPlusでは多用していますので参照してみて下さい。 - default値について
これは、そのフォームの初期値です。はじめて表示した場合や、何も入力していない場合などにこの値が選択または、入力された状態で表示されます。 - description値について
マウスをフォームのタイトル部分にあてた時、表示されるTipに出力される説明です。
以上簡単に書いてみました。このように属性に指定することによって自動でフォームを作成してくれる機能がJoomla!1.0.xにももちろんありましたが、Joomla!1.5ではさらに拡張されているようです。私もすべてを使ってみたわけではありませんのであらためて便利さを感じました。
これだけ用意されているのでかなりコーディングも楽になりますね。




























