Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Yesvik

Ветеран спільноти
  
  • Публікації

    1 939
  • З нами

  • Відвідування

Усі публікації користувача Yesvik

  1. Options +FollowSymlinks # Prevent Directoy listing Options -Indexes # Prevent Direct Access to files <FilesMatch "\.tpl"> Order deny,allow Deny from all </FilesMatch> # SEO URL Settings RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)\?*$ index.php?_route_=$1 [L,QSA] RewriteCond %{REQUEST_METHOD} ^GET$ RewriteCond %{QUERY_STRING} ^$ [OR] RewriteCond %{QUERY_STRING} ^route=common/home$ [NC] RewriteRule ^index\.php$ /? [R=301,L] AddDefaultCharset UTF-8
  2. Очень часто мелькают темы в которых упоминается про категории которые создают большую нагрузку, например в поиске или для drop-down меню. При этом всё что предлагают - отключать такие блоки при большом количестве категорий. Но на самом деле отключать не обязательно... Рекурсивный метод выборки данных самый распространённый, но не единственный. В случаях когда надо извлекать всё дерево категорий можно обойтись одним запросом не зависимо от количества уровней и количества элементов. Себе я делал так: В модель категорий добавил метод public function getAllCategories() { $category_data = $this->cache->get('category.all.' . $this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id')); if (!$category_data || !is_array($category_data)) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' AND c.sort_order <> '-1' ORDER BY c.sort_order, LCASE(cd.name)"); $category_data = array(); foreach ($query->rows as $row) { $category_data[$row['parent_id'] ][$row['category_id'] ] = $row; } $this->cache->set('category.all.' . $this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id'), $category_data); } return $category_data; } Метод возвращает массив всех узлов. Кадый узел это массив с ключом равным parent_id элементов массива. Все узлы и элементы в узлах отсортированы в соответствии с тем как задано в админке.Для построения многоуровневого списка надо обойти весь массив начиная от корня (узел 0) и при выводе каждой категории проверять наличие узла с ключом равным идентификатору категории. Если узел есть то выводим потомков, нету - выводим следующую категорию. Для drop-down меню я в контроллере модуля категорий добавил свойство protected $categories = array();и метод protected function getAllCategories($parent_id = 0, $current_path = '') { $output = ''; if (array_key_exists($parent_id, $this->categories)) { $results = $this->categories[$parent_id]; $output .= '<ul>'; foreach ($results as $result) { if (!$current_path) { $new_path = $result['category_id']; } else { $new_path = $current_path . '_' . $result['category_id']; } $output .= '<li>'; $children = ''; if (array_key_exists($result['category_id'], $this->categories)) { $children = $this->getAllCategories($result['category_id'], $new_path); } $href = $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $new_path); // if ($this->category_id == $result['category_id']) { // будет помечена только активная категория if (in_array($result['category_id'], $this->path)) { // будут помечены активная категория и все категории до корня $output .= '<a class="active" href="' . $href . '">' . $result['name'] . '</a>'; } else { $output .= '<a href="' . $href . '">' . $result['name'] . '</a>'; } $output .= $children; $output .= '</li>'; } $output .= '</ul>'; } return $output; } В методе index такие изменения // $this->data['category'] = $this->getCategories(0); $this->categories = $this->model_catalog_category->getAllCategories(); $this->data['category'] = $this->getAllCategories(); Всё... теперь при холодном старте только 1 запрос к БД, а не сотня как мне доводилось видеть.А если не надо отмечать активные категории, например для superfish, можно смело кешировать результат работы метода getAllCategories и вообще забыть о нагрузке от категорий.
  3. Нет, только торговым площадкам поддерживающим YML
  4. Энергичность и ритм - попахивает собранием сектантов...Если человек имеет минимальные навыки то освоить OpenCart не составит труда. Если человеку надо разьяснять азы - какое отношение это имеет к OpenCart?
  5. Всё подробно описано тут http://partner.market.yandex.ru/legal/tt/ http://help.yandex.ru/webmaster/?id=1111247
  6. Директория в которой хранятся изображения известна, так что достаточно имён.
  7. Независимо от радиуса изгиба рук с этого сервера надо бежать.
  8. Символы понятные... русская С вместо английской C
  9. Проблема та-же, но не с шаблонами, а с файлами локализации которые ты правил.
  10. catalog/view/theme/default/stylesheet/stylesheet.css #category ul ul {margin-left:0}
  11. У тебя заявлен тип предложений "vendor.model". Для этого типа элемент vendor обязательный, а в указанных в ошибке предложениях элемент vendor пустой. Твоим товарам больше подходит упрощённый тип, там vendor не обязательный элемент. Ещё тебе обязательно надо прописать элемент <adult>true</adult>
  12. Эта фраза никаких действий не требует.
  13. Скорее всего рефы. Но держать такой модуль в OpenCart это изврат...
  14. В шаблоне хидера находиш строку url = 'index.php?route=product/search';и меняеш вот так url = 'index.php?route=product/search?model=1';Если надо искать и по модели и по описанию - то вот так url = 'index.php?route=product/search?model=1&description=1';
  15. Каждый раз, когда вижу сообщения о подобных ошибках, вспоминаю незаслуженно проигнорированную сообществом тему https://opencartforum.com/topic/2707-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D0%B0%D0%BC-%D0%BD%D0%B0-%D0%B7%D0%B0%D0%BC%D0%B5%D1%82%D0%BA%D1%83-%D1%83%D0%BB%D1%83%D1%87%D1%88%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0-%D1%81-%D1%82/
  16. Когда создаёш поддомен надо указать в какую директорию должен смотреть этот поддомен. Так вот тут надо указать ту-же директорию в которой установлен основной магазин.Правда бывают хостинги которые не спрашивают директорию для поддомена, а самостоятельно создают директорию и направляют поддомен в неё... тут без ТП не обойтись.
  17. Файлы темы тут не при чем.В ошибке всё конкретно написано... в 42-й строке файла system/library/currency.php попытка изменить заголовок не удалась так как заголовок уже отправлен первой строкой файла catalog/language/russian/module/adsense.php С большой долей вероятности можно утверждать что catalog/language/russian/module/adsense.php редактировался и был сохранён в UTF-8 с BOM. В php файлах всё что находится за пределами тегов <?php ?> отправляется в браузер. Так как BOM это трёх-байтовый (0xEF, 0xBB, 0xBF) подарок от Майкрософта который добавляется в начало файла то эти 3 байта оказываются перед <?php и отправляются в браузер инициируя отправку заголовков. В 42-й строке файла system/library/currency.php при установке куки валюты выясняется что поздно пить Боржоми... заголовки уже отправлены.
  18. Идентификатор категории обязательный элемент товарного предложения передаваемого в Яндекс.Маркет Карта пополнения баланса iTunes Gift Card номиналом 150$ не принадлежит ни одной категории.
  19. Проблема в файле catalog/language/russian/common/ footer.php Вероятнее всего файл редактировали и сохранили в UTF-8 с BOM
  20. Я раскидывал языки по директориям, но потом остановился на варианте с поддоменами.
  21. Ага... получается я тебя не так понял... Я решил что ты дал ссылку на свой сайт и тебя не устраивает как строятся ссылки.
  22. catalog/language/russian/module/ тут лежат файлы русского языка для всех модулей. Конкретно "Ссылки" смотри в файле blinks.php
  23. Это не в файле, это в настройках надо указать какой модуль с какой стороны и в каком порядке выводится.
  24. Построил у себя поддомен apple и подобного не наблюдаю. На http://www.opencart.su/ все ссылки внутренние, и на поддномене http://apple.opencart.su/ так же все ссылки внутренние. Я теряюсь в догадках что и как ты сделал.
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.