Помощь Переопределения (overrides) в Prestashop 1.7?

Byteman

Мой дом здесь!
Регистрация
18 Мар 2008
Сообщения
484
Реакции
242
Некоторые мои переопределения, которые я делал по аналогии с PS 1.6, в моём новом PS 1.7.2.4 не работают.
В PS 1.7.2.4 есть файл /overrides/readme_override.txt. Но когда его открываешь, понимаешь, что он действителен не для PS 1.7, а для старой PS 1.6.

Вот его содержание:

"Please read the documentation before trying to override something here.
Для просмотра ссылки Войди или Зарегистрируйся

Frequently Asked Questions

Q: I added an override file but it seems to be ignored by PrestaShop
A: You need to trigger the regeneration of the /cache/class_index.php file. This is done simply by deleting the file. It is the same when manually removing an override: in order to reinstate the default behavior, you must delete the /cache/class_index.php file."

Похоже, что в PS 1.7 указанный в тексте /cache/class_index.php переехал в /app/cache/prod/class_index.php

Причём, если я правильно понимаю, название папки /app/cache/prod имеет ввиду не продукты (товары), а продуктивную версию (в противоположность /app/cache/dev - папки для разработчиков).

К сожалению, мне пока не удаётся найти толковой документации либо туториала, либо другого описания методов создания переопределений в престе 1.7.

Из различных источников я так понял, что разработчики престы решили поначалу ограничить (и усложнить) применение переопределений, а далее и вовсе лишить престу возможности переопределений. То есть, например, любое обновление, особенно с помощью модуля 1 Сlick Update, будет уничтожать все Ваши самостоятельные модификации престы или модулей. Я так понимаю это делается для того, чтобы всё больше вынуждать пользователей, якобы бесплатной престы, раскошеливаться на платные модули, так как без них преста - сырая, мало на что на практике пригодная болванка. Очень жаль, что альтернатива Thirty Bees пока ещё не получила широкого распространения и массовой поддержки, чтобы можно было на ней делать новые магазины.

Ок, но пока в престе 1.7 переопределения хотя бы частично ещё работают, хотелось бы чётко понять как правильно их создавать и структуру их размещения.

Тут пока кое-что из того, что я найти успел по теме:

Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся

Но это всё лишь фрагменты, обрывки общей картины.

Может может кто доходчиво разъяснить данный вопрос либо поделиться ссылками на понятные и более-менее полные материалы по этой теме?
 
Последнее редактирование:
Вот тут еще оверрайды обсуждали.
Для просмотра ссылки Войди или Зарегистрируйся
Но так и не нашли решения. Vitos наверняка знает. Но молчит - наверное занят или не до суг ))
 
Вот тут еще оверрайды обсуждали.
Для просмотра ссылки Войди или Зарегистрируйся
Но так и не нашли решения. Vitos наверняка знает. Но молчит - наверное занят или не до суг ))
Приветствую! "Механика" переопределений не так сложна, как кажется поначалу. Понимание принципа описано в Для просмотра ссылки Войди или Зарегистрируйся. Более подробно можно почитатьДля просмотра ссылки Войди или Зарегистрируйся, а также Для просмотра ссылки Войди или Зарегистрируйся
 
Некоторые мои переопределения, которые я делал по аналогии с PS 1.6, в моём новом PS 1.7.2.4 не работают.
В PS 1.7.2.4 есть файл /overrides/readme_override.txt. Но когда его открываешь, понимаешь, что он действителен не для PS 1.7, а для старой PS 1.6.

Вот его содержание:

"Please read the documentation before trying to override something here.
Для просмотра ссылки Войди или Зарегистрируйся

Frequently Asked Questions

Q: I added an override file but it seems to be ignored by PrestaShop
A: You need to trigger the regeneration of the /cache/class_index.php file. This is done simply by deleting the file. It is the same when manually removing an override: in order to reinstate the default behavior, you must delete the /cache/class_index.php file."

Похоже, что в PS 1.7 указанный в тексте /cache/class_index.php переехал в /app/cache/prod/class_index.php

Причём, если я правильно понимаю, название папки /app/cache/prod имеет ввиду не продукты (товары), а продуктивную версию (в противоположность /app/cache/dev - папки для разработчиков).

К сожалению, мне пока не удаётся найти толковой документации либо туториала, либо другого описания методов создания переопределений в престе 1.7.

Из различных источников я так понял, что разработчики престы решили поначалу ограничить (и усложнить) применение переопределений, а далее и вовсе лишить престу возможности переопределений. То есть, например, любое обновление, особенно с помощью модуля 1 Сlick Update, будет уничтожать все Ваши самостоятельные модификации престы или модулей. Я так понимаю это делается для того, чтобы всё больше вынуждать пользователей, якобы бесплатной престы, раскошеливаться на платные модули, так как без них преста - сырая, мало на что на практике пригодная болванка. Очень жаль, что альтернатива Thirty Bees пока ещё не получила широкого распространения и массовой поддержки, чтобы можно было на ней делать новые магазины.

Ок, но пока в престе 1.7 переопределения хотя бы частично ещё работают, хотелось бы чётко понять как правильно их создавать и структуру их размещения.

Тут пока кое-что из того, что я найти успел по теме:

Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся

Но это всё лишь фрагменты, обрывки общей картины.

Может может кто доходчиво разъяснить данный вопрос либо поделиться ссылками на понятные и более-менее полные материалы по этой теме?

Похоже, что в PS 1.7 указанный в тексте /cache/class_index.php переехал в /app/cache/prod/class_index.php
Не совсем так: в Prestashop 1.7 он находится по адресу .. /var/cache/prod/class_index.php

Для себя я взял за правило после внесения серьезных правок удалять папки .. /var/cache/prod/ и .. /var/cache/dev/ ЦЕЛИКОМ со всеми вложенными подпапками и файлами. Если немного страшно удалять (в первый раз), то попробуйте сделать такой "детский" трюк: Переименуйте папку ../prod/ в ../prod-1/ и попробуйте загрузить и обновить любую страницу сайта - вы увидите, что Преста пересоздала папку ../prod/ со всеми рекурсивно вложенными подпапками и файлами вместо удаленной. То же самое относится и к папке .. /dev/
Если вы не пользуетесь режимом отладки, то папки .. /dev/ у вас не будет.

...а далее и вовсе лишить престу возможности переопределений.
Именно так ))

делается для того, чтобы всё больше вынуждать пользователей, якобы бесплатной престы, раскошеливаться на платные модули
100% в точку. Но ведь, в конце концов, мы с вами должны были понимать, что вся эта затея много лет назад с разработкой "бесплатного" движка интернет-магазина Prestashop не была благотворительной... Все идет к своему закономерному финалу. "Ничего личного - просто бизнес" ©
 
У меня тоже возник вопрос, чтобы добавить хлебные крошки во вторую категорию, пришлось переопределить controllers\front\listing\CategoryController.php. но пока я в основном файле не убираю строку
Код:
public function getBreadcrumbLinks()
    {
        $breadcrumb = parent::getBreadcrumbLinks();

        foreach ($this->category->getAllParents() as $category) {
            if ($category->id_parent != 0 && !$category->is_root_category) {
                $breadcrumb['links'][] = $this->getCategoryPath($category);
            }
        }

//        $breadcrumb['links'][] = $this->getCategoryPath($this->category);

        return $breadcrumb;
    }
Код:
class CategoryController extends CategoryControllerCore
{
   
    public function getBreadcrumbLinks()
    {
        $breadcrumb = parent::getBreadcrumbLinks();
         $breadcrumb['links'][] =array('title' =>$this->category->name);
        return $breadcrumb;
    }   
}
В хлебных крошках добавляется лишний пункт. Как правильно переопределить, чтобы не надо было править основной файл.
 
Не совсем так: в Prestashop 1.7 он находится по адресу .. /var/cache/prod/class_index.php

Путь, который Вы указываете, касается более поздних версий PS 1.7.X.X, в частности, актуальной версии 1.7.5.0.
Я же в тексте упомянул, что у меня речь о версии 1.7.2.4 и там путь именно /app/cache/prod/class_index.php верный.
 
У меня тоже возник вопрос, чтобы добавить хлебные крошки во вторую категорию, пришлось переопределить controllers\front\listing\CategoryController.php. но пока я в основном файле не убираю строку
Код:
public function getBreadcrumbLinks()
    {
        $breadcrumb = parent::getBreadcrumbLinks();

        foreach ($this->category->getAllParents() as $category) {
            if ($category->id_parent != 0 && !$category->is_root_category) {
                $breadcrumb['links'][] = $this->getCategoryPath($category);
            }
        }

//        $breadcrumb['links'][] = $this->getCategoryPath($this->category);

        return $breadcrumb;
    }
Код:
class CategoryController extends CategoryControllerCore
{

    public function getBreadcrumbLinks()
    {
        $breadcrumb = parent::getBreadcrumbLinks();
         $breadcrumb['links'][] =array('title' =>$this->category->name);
        return $breadcrumb;
    }
}
В хлебных крошках добавляется лишний пункт. Как правильно переопределить, чтобы не надо было править основной файл.
Здесь переопределила
Код:
class CategoryController extends CategoryControllerCore {

    public function getBreadcrumbLinks() {
        $breadcrumb['links'][] = array(
       'title' => $this->getTranslator()->trans('Home'),
        'url' => $this->context->link->getPageLink('index', true),
        );
        foreach ($this->category->getAllParents() as $category) {
            if ($category->id_parent != 0 && !$category->is_root_category) {
                $breadcrumb['links'][] = $this->getCategoryPath($category);
            }
        }
        $breadcrumb['links'][] = array('title' => $this->category->name);
        return $breadcrumb;
    }

}
 
Последнее редактирование:
Не совсем так: в Prestashop 1.7 он находится по адресу .. /var/cache/prod/class_index.php

Для себя я взял за правило после внесения серьезных правок удалять папки .. /var/cache/prod/ и .. /var/cache/dev/ ЦЕЛИКОМ со всеми вложенными подпапками и файлами. Если немного страшно удалять (в первый раз), то попробуйте сделать такой "детский" трюк: Переименуйте папку ../prod/ в ../prod-1/ и попробуйте загрузить и обновить любую страницу сайта - вы увидите, что Преста пересоздала папку ../prod/ со всеми рекурсивно вложенными подпапками и файлами вместо удаленной. То же самое относится и к папке .. /dev/
Если вы не пользуетесь режимом отладки, то папки .. /dev/ у вас не будет.


Именно так ))


100% в точку. Но ведь, в конце концов, мы с вами должны были понимать, что вся эта затея много лет назад с разработкой "бесплатного" движка интернет-магазина Prestashop не была благотворительной... Все идет к своему закономерному финалу. "Ничего личного - просто бизнес" ©

Добрый день. я смотрю вы давно с престой работаете, сколько уже работаете? от вас на этом форуме больше интересного узнал, чем на тематических форумах престошопа. Какая стоимость часа работы на престе у вас?
 
Добрый день. я смотрю вы давно с престой работаете, сколько уже работаете? от вас на этом форуме больше интересного узнал, чем на тематических форумах престошопа. Какая стоимость часа работы на престе у вас?

а я смотрю, что кто-то лукавит и набивает посты :)

говорите правду
помогайте коллегам

добро обязательно вернётся


upload_2019-3-4_9-43-34.png
 
а я смотрю, что кто-то лукавит и набивает посты :)

говорите правду
помогайте коллегам

добро обязательно вернётся


Посмотреть вложение 102427
Вы как заметили, моя регистрация была давно, а активность проявил ночью, т.к. скучно было и да я престой занимаюсь. можешь гуглануть Paimon Project. Начал вести блог по престе, может для себя что то найдете интересного.
 
Назад
Сверху