SOY CMS / SOY Shop

ブログトップ

初期管理者のみエクストラモードの切替リンクを表示する

2014年03月14日

前回の管理画面にログインしているアカウント情報の取得を使って、

初期管理者のみエクストラモードへの切替リンクを表示の設置をしていきます。

管理画面にログインしているアカウントの情報を取得する






以前の記事で上のキャプチャのように画面切替のリンクを表示しました。

エクストラモードへの切替のリンクを設置する


この時、

/soycms/webapp/config.ext.phpで

$_COOKIE["soycms_ext"]の値を見て、標準かエクストラモードのどちらを見るかを指定しました。


$_COOKIE["soycms_ext"]の値を変更するために、

URLの末尾に?ext_modeをつけて、GETの値で判定という仕様にしていることを記載しました。

(切替リンクは<a href="?ext_mode">画面切替</a>になります)


今回はさらにこのリンクを特定のアカウントだけに表示させることを見ていきます。




初期管理者だけに切替リンクを表示させるには、

どこかでアカウントが初期管理者であるかを調べなければなりません。


そこで


//ログインしているかどうか?
$isLoggined = UserInfoUtil::isLoggined();

//切替リンクのフラグ
$isExtLink = true;	

//ログインしている場合
if($isLoggined === true){
	
	//ディフォルトユーザの場合
	if(UserInfoUtil::isDefaultUser()){
		//$isExtModeとisExtLinkの値はそのまま
		
	//ディフォルトユーザ以外の場合
	}else{
		//デフォルトユーザ以外は常にextmode
		$isExtMode = 1;
		$isExtLink = false;
	}

//念のため、ログインしていない時も指定しておく
}else{
	$isExtMode = 0;
	$isExtLink = false;
}

UserInfoUtil::isDefaultUser()で初期管理者であるかを調べ、

初期管理者であれば切替リンクのフラグをtrueのままにし、

ディフォルトユーザ以外の場合は常にfalseにします。


エクストラモード切替の処理はおいといて、


//extmodeのリンクを表示させるか?
if($isExtLink === true){
	//表示させる。表示の場合は下記のコードを必ず書く必要はない
	DisplayPlugin::visible("ext_mode_link");
}else{
	DisplayPlugin::hide("ext_mode_link");
}

DisplayPluginで表示についての処理を行います。

DisplayPluginというのは、

soy:displayで囲った箇所を表示するかどうかのクラスで


<!-- soy:display="ext_mode_link" -->
<a href="?ext_mode">画面切替</a>
<!-- /soy:display="ext_mode_link" -->

hideの場合は、soy:display="ext_mode_link"を非表示

visibleの場合は表示するということになります。