Помощь Как Увеличить время нахождения в Админке PS 1.7? Работа с оверрайдами PS 1.7

leha128

Постоялец
Регистрация
1 Июн 2013
Сообщения
166
Реакции
119
Все время выкидывает из админки после 15 минут. (900 сек.) Никакие изменения при этом не сохраняются.

На форумах нашел что надо поправить контроллер:
Цитата:
" Откройте файл /classes/controller/AdminController.php и удалите код:
Код:
if (isset(Context::getContext()->cookie->last_activity))
{
if ($this->context->cookie->last_activity + 900 < time())
$this->context->employee->logout();
else
$this->context->cookie->last_activity = time();
}
"
или заменить на 10000 (Большее значение в Секундах).

Изменил в оверрайде
override\classes\controller\ AdminController.php
значение с 900 на 10000.

Никаких изменений. Как выкидывало так и Выкидывает.

Подскажите как правильно сделать оверрайд, чтобы при обновлении не затерлись исправления и чтобы он работал ?
Т.е. чтобы с админки не выкидывало постоянно!
 
Последнее редактирование:
Подскажите как правильно сделать чтобы при обновлении не затерлись исправления?
И чтобы с админки не выкидывало постоянно!
Привет, мне кажется что это время указанно в секундах, и если увеличить 900 тоесть 15 мин на 3600 то будет 1 час
 
У меня и написано вроде бы что это время в секундах! Вопрос не в этом. Тесты показали, что данная модификация работает! Т.е. если добавить 10000 в код /classes/controller/AdminController.php то
Админка работает и не выбивает постоянно.

Но при обновлении этот код затрется новыми обновлениями. Как правильно его добавить в оверррайд что бы он при обновлении не затирался и работал ?

Если просто добавлять в override\classes\controller\AdminController.php
то Админка продолжает закываться. Через 15 минут.
 
а не проще в настройках указать?

Настройки/Администрация
Срок действия cookies в Панели управления магазином
 
У меня и написано вроде бы что это время в секундах! Вопрос не в этом. Тесты показали, что данная модификация работает! Т.е. если добавить 10000 в код /classes/controller/AdminController.php то
Админка работает и не выбивает постоянно.

Но при обновлении этот код затрется новыми обновлениями. Как правильно его добавить в оверррайд что бы он при обновлении не затирался и работал ?

Если просто добавлять в override\classes\controller\AdminController.php
то Админка продолжает закываться. Через 15 минут.
У меня и написано вроде бы что это время в секундах! Вопрос не в этом. Тесты показали, что данная модификация работает! Т.е. если добавить 10000 в код /classes/controller/AdminController.php то
Админка работает и не выбивает постоянно.

Но при обновлении этот код затрется новыми обновлениями. Как правильно его добавить в оверррайд что бы он при обновлении не затирался и работал ?

Если просто добавлять в override\classes\controller\AdminController.php
то Админка продолжает закываться. Через 15 минут.

Если вы внесли изменения в AdminController.php, а потом просто скопировали этот файл в override\classes\controller\, то ... он работать не будет.
Вам нужно "расширить" класс и указать Престе, что появился новый оверрайд.
Для этого в скопированном файле измените:
Код:
class AdminControllerCore extends Controller
на:
Код:
class AdminController extends AdminControllerCore

И всё будет работать! :ay:
И при обновлениях вам "не страшен серый волк" ....
 
а не проще в настройках указать?
Настройки/Администрация
Срок действия cookies в Панели управления магазином
Если Вы про Это
Для просмотра ссылки Войди или Зарегистрируйся
То Это не работает. Кроме того там и так время в часах указано, если перевод не врет. Sergiy - Вы сами пробовали применить такие настройки, у Вас работает? (кеш почищен после настройки! - чтобы не было вопросов)

Vitos - огромное спасибо. Попробую отпишусь.
Если правильно понял то нужно в файле override\classes\controller\AdminController.php - ктр. будет из оверрайда работать пререопределить классы только не совсем понял правила, что на что менять.

Для этого частного случая понятно, надо применить
class AdminController extends AdminControllerCore
потестю - проверю, а для остальных ?
Не совсем понял логику замены, поделитесь если не трудно.

Чтобы не открывать новую тему могли бы Вы дать ссылочку на правила преопределения контроллеров, если они есть? В офиц. документации так написано, что вобще не понятно или гугл так переводит, что черт его разберет )
 
Последнее редактирование:
Если Вы про Это
Для просмотра ссылки Войди или Зарегистрируйся
То Это не работает. Кроме того там и так время в часах указано, если перевод не врет. Sergiy - Вы сами пробовали применить такие настройки, у Вас работает? (кеш почищен после настройки! - чтобы не было вопросов)

Vitos - огромное спасибо. Попробую отпишусь.
Если правильно понял то нужно в файле override\classes\controller\AdminController.php - ктр. будет из оверрайда работать пререопределить классы только не совсем понял правила, что на что менять.

Для этого частного случая понятно, надо применить
class AdminController extends AdminControllerCore
потестю - проверю, а для остальных ?
Не совсем понял логику замены, поделитесь если не трудно.

Чтобы не открывать новую тему могли бы Вы дать ссылочку на правила преопределения контроллеров, если они есть? В офиц. документации так написано, что вобще не понятно или гугл так переводит, что черт его разберет )


Самый простой способ осуществить переопределение:
1) Определить контроллер/файл_класса/файл_модуля/, в котором будем носить изменения (переопределять классы)
2) Копируем этот контроллер в соответствующую папку.
Например, если этот контроллер находился по адресу:
../classes/controller/AdminController.php,
то копируем в папку по адресу:
../override/classes/controller/AdminController.php.

Если, к примеру, будем вносить изменения в файл:
../controllers/front/listing/ManufacturerController.php,
то копируем в папку (или создаем путь) по адресу:
../override/controllers/front/listing/ManufacturerController.php

Если в оверрайдах такой конечной папки нет, то необходимо ЕЕ СОЗДАТЬ, и именно в эту папку, по этому адресу, со всеми вложенными папками (создать все вложенные папки, повторяющие путь) поместить наш "новый файл"
3) В скопированном файле произвести требуемые правки.
4) И далее, в самом начале скопированного файла требуется "расширить" (указать) класс "нового" контроллера/файла_класса/файла_модуля/.
Например, изменить:

class ManufacturerControllerCore extends ProductListingFrontController (было)
на:
class ManufacturerController extends ManufacturerControllerCore (стало)

Т .е. нужно получить в новом файле так:
class класс_нового_контроллера_оверрайда extends класс_старого_контроллера_(ядро)
Вот такая логика .. И так, везде, по аналогии.
В итоге при обновлении, всё, что находится в папке /override/ не будет затронуто и затёрто - и все ваши правки останутся на месте.
 
Если вы внесли изменения в AdminController.php, а потом просто скопировали этот файл в override\classes\controller\, то ... он работать не будет.
Вам нужно "расширить" класс и указать Престе, что появился новый оверрайд.
Для этого в скопированном файле измените:
Код:
class AdminControllerCore extends Controller
на:
Код:
class AdminController extends AdminControllerCore

Уважаемый Vitos после Вышеуказанных замен

Код:
class AdminControllerCore extends Controller
на:
Код:
class AdminController extends AdminControllerCore

Админка перестает загружаться и выдается ошибка:

Страница недоступна
Сайт ****** пока не может обработать этот запрос.
HTTP ERROR 500

У Меня PHP 5.6. Преста 1.7.4.4 но думаю это не влияет на ошибку.

После возврата исходного файла, админка опять начинает работать!!!

Вопрос остается открытым? Делаю по инструкции выше, но Возможно я что-то я делаю не так ?
 
Последнее редактирование:
Назад
Сверху