プラグインのスマートURL
hide001 > プラグインのスマートURL @ 2011/1/14 17:37 |
---|
BaserCMS1.6.8
CentOS5 PHP5.2 MySQL5.1 スマートURL:ON という環境です。 Blogプラグインを参考にプラグインを制作しています。 それをblog2としてその中にnews2を作ったとします。 blogならnewsというブログアカウントが標準でありますので /news/ で表示されます。同じように /news2/ で表示させるようにしたいのです。現状は 404 NOT FOUND エラー : リクエストされたアドレス '/news2' はこのサーバにありませんでした。 です。 どこらへんをチェックすればいいでしょうか? |
ryuring > Re: プラグインのスマートURL @ 2011/1/14 17:56 |
---|
こんにちは。
プラグインのルーティングについては、 /baser/config/routes.php を見ていただくと、88行目あたりで、 PluginContent::addRouteを利用してルーティングを追加しています。 上記メソッドは、plugin_contents テーブルを参照して、プラグイン用のルーティングを追加する機能を有します。 つまり、plugin_contents テーブルへのプラグイン情報の登録が必要となるという事です。 name フィールドに代替名、plugin フィールドにプラグイン名をセットします。 複数のコンテンツを保有するプラグインの場合、content_id にコンテンツを特定する番号をセットすると、次のようなURL変換が行われます。 【設定値】 name ・・・ news2 plugin ・・・ hoge content_id ・・・ 2 【変換例】 /news2/index → /hoge/index/2 そして、作ったコントローラーをPluginsControllerを継承させていると、 content_id を、$this->contentId で参照する事ができます。 ドキュメントがないので少しややこしいですね・・・ 頑張ってくださーい! Twitter:@ryuring |
hide001 > Re: プラグインのスマートURL @ 2011/1/14 19:08 |
---|
こんにちは、hide001です。
ご挨拶が後れましたが2011/01/21の福岡での勉強会参加申し込みを機にtwitterアカウントと同じ名前にしました。以前はlilac001で質問しておりました。 シンプルにphpMyAdminでplugin_contentsテーブルに id:3 content_id:1 (news1はblog2プラグインのcontent_idが1です) name:news2 plugin:blog2 で変換できました。 ありがとうございます。 実際の制作ではcakephpの領分、BaserCMSの領分、それとthemedやpluginのカスタマイズされた領分があり、それぞれに知識が必要でどこを参照しているかがピンとこないので、document整備、期待しています。 |