Как изменить функцию imgUrl в shopViewHelper.class.php - чтобы изменение не слетало после обновления? Есть решение

Собственно возникла задача.

Нужно изменить формирование названия изображения.

1 ответ

  • 2
    Николай Иванов 2 июля 2020 10:05 # Решение

    Сделать переопределение системного класса. Создать папку wa-apps/shop/lib/custom
    в неё копируете нужный класс и меняете. Не забыть скинуть кэш.

    • +1
      Nail Nail 3 августа 2020 08:59 #

      А для /wa-apps/shop/lib/config/data/thumb.php похоже не срабатывает.

      Или этот custom только для файлов в папке /wa-apps/shop/lib/classes/ ?

      Может для /wa-apps/shop/lib/config/data/thumb.php есть другой авриант?

      • +2
        Николай Иванов Николай Иванов 3 августа 2020 16:42 #

        Кусок из wa-system/config/waAppConfig.class.php

                    foreach ($paths as $path) {
                        $files = $this->getPHPFiles($path);
                        foreach ($files as $file) {
                            if (strpos($file, '/lib/config/data/')) {
                                continue;
                            }
                            $class = $this->getClassByFilename(basename($file));
                            if ($class) {
                                // Classes in dir named /custom/ have priority.
                                // This allows to override code without modifications to the original.
                                if (isset($result[$class]) && false !== stripos(str_replace('\\', '/', $result[$class]), '/custom/')) {
                                    continue;
                                }
                                $result[$class] = substr($file, $length + 1);
                            }
                        }
                    }
        

        Думаю, по коду всё понятно.
        Так что с thumbs возможна только замена оригинала + можно веб-серверу убрать права на запись этому файлу.
        Еще знаю людей, которые прикручивали к webasyst-у monkey-patch от YUI -) Хотя он и так на коленке делается за 10 минут. 
        Еще как варинаты, если у вас nginx, то просто замените  пусть к вашему кастомному файлу

            location @shop_thumb {
                include /etc/nginx/fastcgi_params;
                fastcgi_pass  127.0.0.1:9001;
                fastcgi_param  SCRIPT_NAME  /wa-data/public/shop/products/thumb.php;
                fastcgi_param  SCRIPT_FILENAME  $document_root/wa-data/public/shop/products/thumb.php;
            }
        

        Если апач, то в .htaccess подправить можно. Но .htaccess в wa-data/public/shop/products тоже перезаписаться может.

        Короче кто ищет, тот всегда найдет!

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите