После первой авторизации перенаправит на Х страницу сайта

InstantCMS 1.X
#1 15 апреля 2020 в 15:30
Привет. В стандартном компоненте авторизации, есть в наcтройках пункты. куда перенаправлять юзера после 1 авторизации. Как правильно мне новый пункт туда добавить? Мне нужен пункт который будет перенаправлять в раздел сайта.

Пример пункта который перенаправляет в настройки профиля

  1.  
  2. <option value="editprofile" <?php if ($cfg['first_auth_redirect']=='editprofile') {echo 'selected';} ?>><?php echo $_LANG['AD_OPEN_PROFILE_SETTIGS']; ?></option>
  3.  
Или одной заменой данного пункта не обойтись?
#2 15 апреля 2020 в 15:53
Не тестировал но поидее должно работать.

\system\controllers\auth\backend\forms\form_options.php ~9
  1.  
  2. $auth_redirect_items = array(
  3. 'none' => LANG_REG_CFG_AUTH_REDIRECT_NONE,
  4. 'index' => LANG_REG_CFG_AUTH_REDIRECT_INDEX,
  5. 'profile' => LANG_REG_CFG_AUTH_REDIRECT_PROFILE,
  6. 'profileedit' => LANG_REG_CFG_AUTH_REDIRECT_PROFILEEDIT
  7. );
  8.  
в этот код добавляем новый вариант

не забываем добавить новую константу в языковой файл
\system\languages\ru\controllers\auth\auth.php

далее в
\system\controllers\auth\frontend.php ~91
  1.  
  2. public function getAuthRedirectUrl($value){
  3.  
  4. $url = href_to_home();
  5.  
  6. $user_id = cmsUser::sessionGet('user:id');
  7. if (!$user_id){ return $url; }
  8.  
  9. $back_url = $this->getBackURL();
  10. if(strpos($back_url, href_to('auth', 'login')) !== false) {
  11. $back_url = $url;
  12. }
  13. switch($value){
  14. case 'none': $url = $back_url; break;
  15. case 'index': $url = href_to_home(); break;
  16. case 'profile': $url = href_to('users', $user_id); break;
  17. case 'profileedit': $url = href_to('users', $user_id, 'edit'); break;
  18. }
  19.  
Добавлем новый case с вашим урлом
#3 15 апреля 2020 в 22:19
Вот спасибо, завтра проверю. Плюс в карму от меня!
#4 23 мая 2020 в 16:32


Не тестировал но поидее должно работать.

\system\controllers\auth\backend\forms\form_options.php ~9

  1.  
  2. $auth_redirect_items = array(
  3. 'none' => LANG_REG_CFG_AUTH_REDIRECT_NONE,
  4. 'index' => LANG_REG_CFG_AUTH_REDIRECT_INDEX,
  5. 'profile' => LANG_REG_CFG_AUTH_REDIRECT_PROFILE,
  6. 'profileedit' => LANG_REG_CFG_AUTH_REDIRECT_PROFILEEDIT
  7. );
  8.  
в этот код добавляем новый вариант

не забываем добавить новую константу в языковой файл
\system\languages\ru\controllers\auth\auth.php

далее в
\system\controllers\auth\frontend.php ~91
  1.  
  2. public function getAuthRedirectUrl($value){
  3.  
  4. $url = href_to_home();
  5.  
  6. $user_id = cmsUser::sessionGet('user:id');
  7. if (!$user_id){ return $url; }
  8.  
  9. $back_url = $this->getBackURL();
  10. if(strpos($back_url, href_to('auth', 'login')) !== false) {
  11. $back_url = $url;
  12. }
  13. switch($value){
  14. case 'none': $url = $back_url; break;
  15. case 'index': $url = href_to_home(); break;
  16. case 'profile': $url = href_to('users', $user_id); break;
  17. case 'profileedit': $url = href_to('users', $user_id, 'edit'); break;
  18. }
  19.  
Добавлем новый case с вашим урлом

AtlantisWeb

Вот выделил время и начал делать. И понял что Вы дали пример под вторую ветку, мне надо было под первую))
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.