SOY CMS / SOY Shop

ブログトップ

SOY CMS内でSOY ShopのMyPageLogicを読み込む

2014年03月25日

先日公開したSOY CMS1.7.1でSOY Shopログインチェックというプラグインが追加されました。

ログイン必須の会員用ブログの運営

ブログの記事詳細ページにログインフォームを設置する


SOY Shopログインチェックプラグインというのは、

SOY CMSでは会員情報を標準機能で持つことができないので、

SOY Shopの顧客情報の機能を利用して会員制サイトを運営するためのプラグインです。


SOY Shopの顧客情報、すなわちマイページ機能ですが、

マイページ機能を使うためにはSOY CMS側でSOY ShopのMyPageLogicを呼び出さなければなりません。


今回はSOY CMS側でMyPageLogicの呼び出しについて見ていきたいと思います。




SOY Shopログインチェックプラグインを見ると



このようになっており、

soyshop_login_check.phpから読み込まれます。


処理を順に追っていくと、

最初にinit関数内の49行目付近の


$checkLogic = SOY2Logic::createInstance("{パスは省略}.LoginCheckLogic", array("siteId" => $this->siteId));
$this->isLoggedIn = $checkLogic->isLoggedIn();

LoginCheckLogicのisLoggedIn関数内でSOY ShopのMyPageLogicを呼び出しを行います。




LoginCheckLogic.class.phpを開くと、

コンストラクタでSOYShopLoginCheckCommonクラスを呼び出し、

DSNの切替周りの関数を使えるようにします。


実際の処理を見ると、19行目付近から


//SOY CMSのDSNからSOY ShopのDSNに切り替える(ルートやドメインも同時に切り替える)
$old = SOYShopLoginCheckCommon::switchShopDsn($this->siteId);

//プラグインの設定を入れてるエンティティクラスを読み込む
SOY2::import("domain.config.SOYShop_DataSets");

//SOY Shop内の便利な関数群を読み込む
include_once(SOY2::RootDir() . "base/func/common.php");

if(!defined("SOYSHOP_CURRENT_MYPAGE_ID")){
	define("SOYSHOP_CURRENT_MYPAGE_ID", soyshop_get_mypage_id());
}				

//MyPageLogicクラスを呼び出す
SOY2::import("logic.mypage.MyPageLogic");
$mypage = MyPageLogic::getMyPage();

//MyPageLogicでログインの有無を確認する
$isLoggedIn = $mypage->getIsLoggedin();

//SOY ShopのDSNからSOY CMSのDSNに切り替える
SOYShopLoginCheckCommon::resetShopDsn($old);

上記の処理を行い、SOY CMS内でSOY Shopの機能を利用します。