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

Тема в разделе "PrestaShop", создана пользователем Byteman, 11 ноя 2017.

Информация :
Приветствую гость, обрати внимание! Темы которые закреплены в разделах, в скором времени будут откреплены. Правила раздела PrestaShop

(Не актуальные темы) Каталоги:Модули PrestaShop 1.7Модули PrestaShop 1.5 - 1.6Шаблоны PrestaShop 1.7Шаблоны PrestaShop 1.5 - 1.6
(Не актуальные темы) Поиск / Запросы:Модули PrestaShop 1.7Модули PrestaShop 1.5 - 1.6Шаблоны PrestaShop 1.7Шаблоны PrestaShop 1.5 - 1.6
Полезная информация:Поддержка и помощь c PrestaShopУбираем ПрестаТраст, стучалки и прочую рекламуСовместные покупки модулей и шаблоновПеревод Prestashop и модулей
Модераторы: trace
  1. Byteman

    Byteman

    Регистр.:
    18 мар 2008
    Сообщения:
    443
    Симпатии:
    214
    Некоторые мои переопределения, которые я делал по аналогии с 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.
    http://doc.prestashop.com/display/PS16/Overriding+default+behaviors

    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 переопределения хотя бы частично ещё работают, хотелось бы чётко понять как правильно их создавать и структуру их размещения.

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

    http://build.prestashop.com/news/prestashop-1-7-faq/#can-developers-still-use-overrides-in-17
    http://developers.prestashop.com/themes/modules/overriding.html
    https://stackoverflow.com/questions/46035990/how-to-override-tpl-module-in-prestashop-1-7-1-1
    https://prestashop-forum.ru/index.php?topic=8077.0

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

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

    leha128 Постоялец

    Регистр.:
    2 июн 2013
    Сообщения:
    118
    Симпатии:
    58
    Вот тут еще оверрайды обсуждали.
    https://www.nulled.in/threads/301216/#post-2873491
    Но так и не нашли решения. Vitos наверняка знает. Но молчит - наверное занят или не до суг ))
     
    vitos1401 нравится это.
  3. vitos1401

    vitos1401

    Регистр.:
    3 ноя 2012
    Сообщения:
    183
    Симпатии:
    274
    Приветствую! "Механика" переопределений не так сложна, как кажется поначалу. Понимание принципа описано в оф. документации Prestashop . Более подробно можно почитать здесь , а также здесь
     
    Belena27089 и _sashok нравится это.
  4. vitos1401

    vitos1401

    Регистр.:
    3 ноя 2012
    Сообщения:
    183
    Симпатии:
    274
    Не совсем так: в Prestashop 1.7 он находится по адресу .. /var/cache/prod/class_index.php

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

    Именно так ))

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

    Belena27089 Нарушитель

    Регистр.:
    16 авг 2016
    Сообщения:
    388
    Симпатии:
    289
    У меня тоже возник вопрос, чтобы добавить хлебные крошки во вторую категорию, пришлось переопределить 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;
        }   
    }
    В хлебных крошках добавляется лишний пункт. Как правильно переопределить, чтобы не надо было править основной файл.
     
  6. Byteman

    Byteman

    Регистр.:
    18 мар 2008
    Сообщения:
    443
    Симпатии:
    214
    Путь, который Вы указываете, касается более поздних версий PS 1.7.X.X, в частности, актуальной версии 1.7.5.0.
    Я же в тексте упомянул, что у меня речь о версии 1.7.2.4 и там путь именно /app/cache/prod/class_index.php верный.
     
    Kosstas, vitos1401 и _sashok нравится это.
  7. Belena27089

    Belena27089 Нарушитель

    Регистр.:
    16 авг 2016
    Сообщения:
    388
    Симпатии:
    289
    Здесь переопределила
    Код:
    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;
        }
    
    }
     
    Последнее редактирование: 25 фев 2019
    DaoKakao нравится это.
  8. LukaSplncev

    LukaSplncev Создатель

    Регистр.:
    12 окт 2018
    Сообщения:
    30
    Симпатии:
    12
    Добрый день. я смотрю вы давно с престой работаете, сколько уже работаете? от вас на этом форуме больше интересного узнал, чем на тематических форумах престошопа. Какая стоимость часа работы на престе у вас?
     
  9. _sashok

    _sashok PrestaShop Expert

    Регистр.:
    15 июл 2011
    Сообщения:
    1.981
    Симпатии:
    3.280
    а я смотрю, что кто-то лукавит и набивает посты :)

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

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


    upload_2019-3-4_9-43-34.png
     
    Kosstas и DaoKakao нравится это.
  10. LukaSplncev

    LukaSplncev Создатель

    Регистр.:
    12 окт 2018
    Сообщения:
    30
    Симпатии:
    12
    Вы как заметили, моя регистрация была давно, а активность проявил ночью, т.к. скучно было и да я престой занимаюсь. можешь гуглануть Paimon Project. Начал вести блог по престе, может для себя что то найдете интересного.
     
    _sashok нравится это.