管理画面の基礎が出来たら次は一般の利用者向けに公開する画面の作成です。
これには下記の2種類の作り方があります。
- 管理画面と同様にシングルページとして作成する。
- サイトマップで「新規ページ」で追加するのと同様のページとして作成する。
1の場合、MVCモデルに従って view と controll を切り離して作成することで複雑な処理を行わせることが可能。
2の場合、パッケージ導入時に追加された画面を後で自分でカスタマイズすることが可能。
それぞれに利点があるので作成する機能に見合ったページを構築して下さい。
先ずは、 シングルページの追加から。
Filename: packages/dropshipping/controllers/shop/controller.php
<?php
defined('C5_EXECUTE') or die(_("Access Denied."));
class ShopController extends Controller {
public function view(){
$moshimoid = Config::get('MOSHIMOID','');
$this->set('moshimoid',$moshimoid);
}
}
?>Filename: packages/dropshipping/single_pages/shop/view.php
<?php
defined('C5_EXECUTE') or die(_("Access Denied."));
echo "MoshimoID:$moshimoid";
?>
これで controller.php で取得した情報を元に view.php で表示する準備が出来たわけですが
このままではこのページにアクセスすることが出来ません。
パッケージの導入時にシングルページとして登録するコードを追加してやる必要があります。
そのコードを追加すると パッケージの controller.php は下記のようになります。
Filename: packages/dropshipping/controller.php
<?php
defined('C5_EXECUTE') or die(_("Access Denied."));
class DropshippingPackage extends Package {
protected $pkgHandle = 'dropshipping';
protected $appVersionRequired = '5.2.0';
protected $pkgVersion = '1.0';
public function getPackageDescription() {
return t("Lets you add a Dropshipping as a block.");
}
public function getPackageName() {
return t("Dropshipping");
}
public function install() {
$pkg = parent::install();
Loader::model('single_page');
$d = SinglePage::add('/dashboard/moshimo',$pkg);
if(!empty($d)){
$d->update(array('cName'=>'もしもドロップシッピング',
'cDescription'=>'MOSHIMO IDの設定'));
}
$d = SinglePage::add('/shop',$pkg);
}
public function uninstall() {
$pkg = parent::uninstall();
}
}29行目が追加したシングルページ追加用のコードです。
これでパッケージを再度インストールし直すと
サイトマップにもSHOPという名称のページが公開画面に追加されることが確認できます。