ECCUBE2.17 管理画面に再ログイン時、最終使用ページを表示させる

今回、メールに貼り付けたURLから、
直接、管理ページ内のページを開きたいのだけど、

管理ページにログインされていないと、当然ながら、
「ログインページに戻る」が表示され、
パスワードを入れると、HOMEが表示される。

「ログインページに戻る」が表示され、
パスワードを入力しないといけないのは、必須条件だとしても、
ログイン後は、HOMEではなく、
メールに貼り付けたURLを、表示させたい。

***

>> admin/login_error.tpl

<a class="btn-action" href="<!--{$smarty.const.ADMIN_LOGIN_URLPATH}-->?lasturl=<!--{$smarty.server.HTTP_Host}--><!--{$smarty.server.REQUEST_URI}-->"><span class="btn-prev">ログインページに戻る</span></a>

現在のURLを、getでログインページに送る。

 

>> admin/login.tpl

<input type="hidden" name="lasturl" value="<!--{$smarty.request.lasturl}-->" />

を、</form>上に設置し、URLを引き継ぐ。

 

>> /data/class_ex/page_ex/admin/LC_Page_Index_Ex.php

	function action() {
		// パラメーター管理クラス
		$objFormParam = new SC_FormParam_Ex();
	
		switch ($this->getMode()) {
		case 'login':
			//ログイン処理
			$this->lfInitParam($objFormParam);
			$objFormParam->setParam($_POST);
// ▼パスワード不明時は、コメントアウト > http://ec-cube.nakweb.com/blog/1073.html
			$this->arrErr = $this->lfCheckError($objFormParam);
var_dump3($this->arrErr);
#unset($this->arrErr);
			if (SC_Utils_Ex::isBlank($this->arrErr)) {
				$this->lfDoLogin($objFormParam->getValue('login_id'));

				// 2022-01-05 > 最後に使用していたページを表示
var_dump3($_REQUEST['lasturl'], __FILE__);
				if (empty($_REQUEST['lasturl'])) {
					SC_Response_Ex::sendRedirect(ADMIN_HOME_URLPATH);
				} else
					SC_Response_Ex::sendRedirect($_REQUEST['lasturl']);

			}else{
				SC_Utils_Ex::sfDispError(LOGIN_ERROR);
			}
			break;
		default:
			break;
		}
	
		// 管理者ログインテンプレートフレームの設定
		$this->setTemplate(LOGIN_FRAME);
	}
}

lasturlが空なら、HOMEを表示。

 

 

ECCUBE2.17 管理画面に再ログイン時、最終使用ページを表示させる