LoginSignup
1
3

More than 5 years have passed since last update.

CS-Cart: Addonでコントローラを追加して管理画面を作る

Posted at

CS-Cartの自作Addonでコントローラを追加して、管理画面(backend)を追加する方法。

CS-CartではURLとコントローラがどう対応しているか?

http://example.com/admin.php?dispatch=[コントローラ名].[モード名]

上のURLは下のコントローラに対応する。

app/addons/[アドオンID]/controllers/backend/[コントローラ名].php

コントローラ名はグローバルなので、dispatchパラメータにはアドオン名が含まれない。
モード名は、コントローラのファイルで自動定義される$mode変数に入ってくるので、ファイル名には出てこない。

例えば、http://example.com/admin.php?dispatch=my_controller.updateにアクセスしたら、インストールされているアドオンからmy_controller.phpを探してきて実行される。

コントローラを作ったのに404になるのですが?

コントローラを作っただけでは、CS-Cartは404エラーを返す。これはviewテンプレートがないため。テンプレートを作るとエラーが解消される。

テンプレートのファイル名は

  • design/backend/templates/addons/[アドオンID]/views/[コントローラ名]/[モード名].tpl

となる。

design/backend/templates/addons/myaddon/views/my_controller/update.tpl
{capture name="mainbox"}
    メインボックス
{/capture}

{capture name="buttons"}
    ボタン
{/capture}

{capture name="sidebar"}
    サイドバー
{/capture}

{include
    file="common/mainbox.tpl"
    title=__("my_addon")
    content=$smarty.capture.mainbox
    buttons=$smarty.capture.buttons
    sidebar=$smarty.capture.sidebar}
1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3