Перейти к содержанию

Лидеры

  1. freelancer

    freelancer

    Разработчик


    • Баллы

      2

    • Постов

      21


  2. Tom

    Tom

    Разработчик


    • Баллы

      1

    • Постов

      250


Популярный контент

Показан контент с высокой репутацией 15.01.2025 во всех областях

  1. Если открыть практически любой контроллер opencart, можно увидеть как после загрузки языка $this->load->language('catalog/product'); подгружаются языковые константы $data['text_list'] = $this->language->get('text_list'); $data['text_no_results'] = $this->language->get('text_no_results'); $data['text_confirm'] = $this->language->get('text_confirm'); $data['column_name'] = $this->language->get('column_name'); $data['column_attribute_group'] = $this->language->get('column_attribute_group'); $data['column_sort_order'] = $this->language->get('column_sort_order'); $data['column_action'] = $this->language->get('column_action'); и так для каждой константы. что бы не прописывать каждый перевод можно было сделать такой трюк $data = array(); // тут мы инициируем переменную $data если она не задана ранее $data += $this->load->language('catalog/attribute'); // а тут копируем в неё все языковые константы но это имело смысл только до версии 3.0 потому как с версии 3.0 добавили такую интересную штуку controller\event\language.php public function index(&$route, &$args) { foreach ($this->language->all() as $key => $value) { if (!isset($args[$key])) { $args[$key] = $value; } } } сами event'ы были и раньше, но language event добавили только в 3.0 а как же это работает? довольно просто: всё начинается с того что в файле framework.php создается и регистрируется event, который в свою очередь регистрирует все ивенты из конфига // Event $event = new Event($registry); $registry->set('event', $event); // Event Register if ($config->has('action_event')) { foreach ($config->get('action_event') as $key => $value) { foreach ($value as $priority => $action) { $event->register($key, new Action($action), $priority); } } } в конфиге среди прочих есть такие строчки $_['action_event'] = array( ... 'view/*/before' => array( 999 => 'event/language', ... таким образом перед каждым вызовом $this->load->view загружаются соответствующие языковые константы
    1 балл
  2. В схожей ситуации , данное решение предложил сам хостер. Сразу после RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css) добавить RewriteRule ^([^?]*) index.php?_route_=$1 [B,L,QSA,UnsafeAllow3F] Ну и как вариант от меня (так же нужно проверять). # Преобразование UTM-меток от Яндекс.Товаров RewriteCond %{QUERY_STRING} utm_referrer=https%3A%2F%2Fyandex\.ru%2Fproducts(.*) RewriteRule ^(.*)$ $1?utm_source=yandex&utm_medium=products [R=301,L] Применяет UnsafeAllow3F только для трафика с Яндекс. Сохраняет UTM-метки в исходном виде Не создает дополнительных редиректов Минимально влияет на существующую логику работы сайта
    1 балл
×
×
  • Создать...