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

lavka

Користувачі
  
  • Публікації

    240
  • З нами

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

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

  1. Не понимаю насчет грустящих котят. В опенкарте в принципе нет страницы "Все товары категории", кроме как ?limit=100500. Очевидно, что по релевантным запросам лучше вести посетителей на главную страницу категории, а товары дальше первой страницы в любом случае найдутся в sitemap. Мне кажется, это гораздо лучше ведра дублей категорий. По итогам темы сделал такой вкмод, он исключает из процесса первую страницу: <modification> <id>Canonical Category and Manufacturer Link</id> <version>1.0</version> <vqmver>1.2.3</vqmver> <author>lavka</author> <file name="catalog/controller/product/category.php"> <operation> <search position="replace"><![CDATA[$this->document->setKeywords($category_info['meta_keyword']);]]></search> <add><![CDATA[$this->document->setKeywords($category_info['meta_keyword']); if (isset($this->request->get['page'])) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_id), 'canonical'); }]]> </add> </operation> </file> <file name="catalog/controller/product/manufacturer.php"> <operation> <search position="replace"><![CDATA[$this->document->setKeywords($manufacturer_info['meta_keyword']);]]></search> <add><![CDATA[$this->document->setKeywords($manufacturer_info['meta_keyword']); if (isset($this->request->get['page'])) { $this->document->addLink($this->url->link('product/manufacturer/info', 'manufacturer_id=' . $manufacturer_id), 'canonical'); }]]></add> </operation> </file> </modification>
  2. А вы попробуйте сравнить исходные файлы 1.5.5.1 и 1.5.6 в http://text-compare.com/ Может, всплывет какая очевидная разница и решение можно будет адаптировать.
  3. Там, кстати, в контроллере blogs.php странные остатки в функции вывода RSS - словно, от vqmod остались, "<!CDATA[" Постирайте их, не забудьте. Ой, там весь фид - говно. Валидатор вешается от ужаса. Переделал так, валидацию проходит: public function rss(){ $this->preload(); if( isset($this->request->get['id]) ){ $id = (int)$this->request->get['id']; } else { $id = 0; } $category_info = $this->getModel()->getInfo( $id ); $output = ''; $output .= ''; $output .= ''; $output .= ''; $output .= ''; $output .= '' . $this->config->get('config_meta_description') . ''; $output .= '' . HTTP_SERVER . '/blog'; $page = 1; $limit = (int)$this->mparams->get('rss_limit_item')?(int)$this->mparams->get('rss_limit_item'):100; $data = array( 'filter_category_id' => '', 'sort' => 'b.created', 'order' => 'ASC', 'start' => ($page - 1) * $limit, 'limit' => $limit ); $blogs = $this->getModel('blog')->getListBlogs( $data ); foreach( $blogs as $blog ){ $link = str_replace("&","&",$this->url->link( 'pavblog/blog','id='.$blog['blog_id'] )); /*if( $blog['image'] ){ $image = $this->model_tool_image->resize($blog['image'], $this->mparams->get('general_swidth'), $this->mparams->get('general_sheight') ,'w' ); $description = ''. html_entity_decode($blog['description'], ENT_QUOTES, 'UTF-8'); }else {*/ /*$description = html_entity_decode($blog['description'], ENT_QUOTES, 'UTF-8');*/ $description = strip_tags(html_entity_decode($blog['description'], ENT_QUOTES, 'UTF-8')); /*} */ $output .= ''; $output .= ''; $output .= '' . $description . ''; $output .= '' .$link. ''; $output .= '' .$link. ''; $output .= '' . date('D, d M Y H:i:s O', strtotime($blog['created'])) . ''; $output .= ''; } $output .= ''; $output .= ''; $this->response->addHeader('Content-Type: application/rss+xml'); $this->response->setOutput($output); }
  4. Сам спросил - сам ответил. Проверка принадлежности статуса (функция getTotalOrderHistoriesByOrderStatusId) смотрит не статус заказа, а ищет нужный статус в истории изменений заказа. Оказалось, некоторым заказам по ходу работы присваивались статусы, которые теперь я хотел удалить. Проблема решается поиском истории изменения заказа в oc_order_history по нужному order_status_id и изменению его на "актуальный".
  5. Фильтрую по нужному статусу - нет ни единого заказа с ним. Хочу удалить этот статус в админке - получаю сообщение: Статус заказа не может быть исключен, поскольку он прикреплен к 2 заказу(ам)! Поискал по ID статуса в SQL - ну нет заказов с таким статусом. Могу конечно удалить через SQL, но интересно - почему админка не дает?
  6. Ну один из фильтров - длина, для которого выбран тип "слайдер". Хочу уменьшить шаг, с которым передвигается слайдер
  7. Что-то в скайп писал и без ответа уже 2 недели. Можно было бы в фильтре уменьшить шаг движков? Например, сейчас у меня при выборе длины товара шаг 1 см, а хотелось бы 0,5
  8. У меня тут дикий немного вопрос, но это было бы удобно :) Каким образом можно реализовать отображение в админке локального времени у клиента? Понятно, что можно каждый раз гуглить, сколько там сейчас часов, но вдруг есть простой способ.
  9. А как бы исправить auto_generate_seo_url_for_news_plus.xml чтобы конструкция типа " - " не преобразовывалась в "---", а становилась одним дефисом?
  10. Чтобы покороче стал выбранный пикпоинт. Я так понимаю, первый комментатор жалуется именно на размер записи.
  11. Мне кажется, достаточно убрать страну и индекс - вряд ли эти атрибуты имеют смысл для пикпоинта.
  12. Не согласен. Список - элемент управления для выбора одного из вариантов. В пике выбор происходит на всплывающей интерактивной карте и в магазине отображается уже выбранный пункт. Или вы хотите, чтобы в списке были все восемьсот постаматов?
  13. Я правильно понимаю, что кэширование влияет только на скорость открытия 2 и последующих страниц результатов поиска конкретным посетителем?
  14. Скажите, а срач в папке system/cache не повредит? Я раз в неделю выгребаю по полтыщи файлов оттуда. Много ведь вредно для файловой, кажется.
  15. А, не - справился. Потыкал несколько найденных id - все из перемещенных групп. Выгрузил снова их csv-модулем и тут же обратно залил, убрав галку игнора главной категории. Вуаля, всем проставилась нужная единичка. Интересно, почему она пропала и главное - почему модуль выгружал с заполненной главной категорией, хотя он её не знал по сути.
  16. Не, ну спасибо, конечно) Вот это реально круто, спасибо огромное. А можно сюда приклеить еще выбор модели или имени из oc_product_description, чтобы не сверять по айди?
  17. Ну а что смотреть? Я фактически не знаю, какие товары нужно проверить теперь. Не изучать же 50к строк product_to_category :)
  18. Я тут поработал с CSV impot/export'ом и у товаров, с которыми я совершал манипуляции в админке пропала главная (родительская) категория. Причем если я выгружу все в CSV то главная у всех прописана, а если захожу в товар в админке - не задана. Как бы мне найти все товары, которым не задана родительская?
  19. Сделал правку для Шустрой карты сайта Теперь последние блоги выводятся в sitemap.xml: В catalog/model/sitemap/fast_sitemap.php дописать в конец новую функцию public function getBlogs($option) { if ($option['cache_st'] == 1) { $blog_xml = $this->cache->get('fast_sitemap.blog.' . $option['lid'] . '.' . $option['sid']); if (!$blog_xml) { $blog_xml = array(); $query = $this->db->query(" SELECT b.blog_id, b.created FROM " . DB_PREFIX . "pavblog_blog b INNER JOIN " . DB_PREFIX . "pavblog_blog_description bd ON b.blog_id = bd.blog_id WHERE status = 1 AND bd.language_id = '" . $option['lid'] . "' "); $blog_xml = $query->rows; $this->cache->set('fast_sitemap.blog.' . $option['lid'] . '.' . $option['sid'], $blog_xml); } return $blog_xml; } else { $query = $this->db->query(" SELECT b.blog_id, b.created FROM " . DB_PREFIX . "pavblog_blog b INNER JOIN " . DB_PREFIX . "pavblog_blog_description bd ON b.blog_id = bd.blog_id WHERE status = 1 AND bd.language_id = '" . $option['lid'] . "' "); return $query->rows; } } В файл catalog/controller/feed/fast_sitemap.php дописать перед строкой: $output .= '</urlset>'; это $blogs = $this->model_sitemap_fast_sitemap->getBlogs($this->options); foreach ($blogs as $blog) { $output .= '<url>'; $output .= '<loc>' . $this->url->link('pavblog/blog', 'id=' . $blog['blog_id']) . '</loc>'; $output .= '<lastmod>' . $blog['created'] . '</lastmod>'; $output .= '<changefreq>weekly</changefreq>'; $output .= '<priority>0.6</priority>'; $output .= '</url>'; } В связи с тем, что у меня в Pavblog "категория" одна - Root, мне безразлична структура блога и все записи выводятся подряд. Имейте ввиду.
  20. Может, какой-то особенный скин? Мне пришлось править .tpl файлы этого модуля, чтобы подогнать под свой дизайн. Посмотрите, чем тплки вашего скина отличаются от дефолта и внесите те же правки в шаблоны новостей.
  21. Кому скучно, второй вариант: В таблице oc_zone выполнить ALTER TABLE `oc_zone` ADD `order_id` TINYINT( 2 ) NOT NULL DEFAULT '99' Затем нужным зонам выставить приоритет, типа 1, 2, 3 И также в catalog/model/localisation/zone.php в запросе написать ORDER BY order_id,name
  22. Ха, новая забавная проблема: Как только добавляю в сео-алиасы "pavblog/category=1", сразу перестают работать теги - при переходе по любому тегу открывается главная страница блогов... UP. Получается даже вот такая картина: Если алиас для "pavblog/blogs" и "pavblog/category=1" одинаковые (в моем случае = "blog"), то функционал тегов перестает работать: при переходе по ссылке типа http://site.ru/blog?tag=sometag попадаю на главную блога. Если удалить алиас для "pavblog/blogs", то все начинает работать, но исчезает сео-урл для тега: становится /index.php?route=pavblog/blogs&tag=sometag
  23. И еще один вопрос - а почему статьи выводятся от старой к новой? Как сделать, чтобы свежая статья была вверху? Сделал так: catalog/model/pavblog/blog.php на строке 155 вписать сортировку b.`created` DESC вместо b.`position` Строки 157-162 закомментить Не смог понять, где берется параметр $data['sort'], так что работает и ладно.
  24. А что это меняет? Мое решение работает у меня вместе с симплой.

×
×
  • Створити...

Important Information

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