今回、メールに貼り付けた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 管理画面に再ログイン時、最終使用ページを表示させる