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

r2d2

Новачок
  
  • Публікації

    22
  • З нами

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

Повідомлення, опубліковані користувачем r2d2

  1. У меня вопрос, нашел в шаблоне template/product/category.tpl условие

    if ($product['rating']) {
    

    так вот можно ли где-то в настройках убрать вывод рейтинга в списке товаров? И вообще, для чего это условие, от чего оно зависит? В настройках ничего не нашёл...

  2. подождите, сейчас r2d2 продвинутый кеш для ocstore напишет с блекджеком и.. ну вы поняли.

     

     

    А вот собственно и блекджек со... ну вы поняли.

     

    Сократил кол-во обращений к диску для записи до 1 на 1 файл за 1 загрузку страницы. Нужно затестить.

     

    UPD Перезалил. Вначале наворотил с сохранением в память всех затрагиваемых в процессе работы скрипта массивов кеша. Вернул как было раньше: те массивы которые не изменялись в процессе работы скрипта, по прежнему читаются с диска. Соответственно те что изменились — пишутся в память и по завершению работы записываются на диск.

     

    UPD Перезалил финальную версию с правкой freelancer.

    cache.php

  3. Я как понял для того чтобы реализовать разбор "не уникальных" алиасов, в принципе нужно только знать родителя, для того чтобы сравнить его псевдоним с родительским из URI, и если он сходится, значит роут правильный.

    В принципе думаю что для этого достаточно будет только допилить подобным способом кеширование родительских связей, и можно будет юзать не уникальные алиасы.

    А многочисленную перезапись в цикле решил пока что с помощью tmpfs раздела в памяти в который пишутся файлы кеша. Но вполне реально сделать лишь однократное чтение из кеша в тот же объект $cache и до завершения работы скрипта работать исключительно с этим объектом.

    А при завершении скрипта при помощи __destruct() метода в классе Cache можно будет записать изменения на диск за 1 раз.

    Вроде как выглядит более чем реально... Поправьте меня если что не так говорю

  4. А как дышал :)

    да не, всё норм, просто оценю количество времени, если не слишком долго займёт, может сделаю.

     

    Ща другая проблема. Я так понял этот "кеш" это хреновая тема. Она конечно быстрее работает чем запросы к базе, но мля, за 1 цикл сохранения в кеш делается количество перезаписей 1 файла равное количеству товаров! Это жесть конечно) Ну и представить если: товаров более 1000, сответственно раз в час минимум перезаписывается 1000 раз 1 файл. Сутки - 24000 перезаписей минимум. Сколько времени проживёт винт?

     

    Надо какой то другой вариант придумывать. Возможно сразу html писать

  5. Что будет например если родитель у категории сменится?

    Это я хотел У вас спросить - давно....

     

    А ничего страшного не будет... Ведь у вас уникальный keyword. Ваша задача получить один и только один объект.

     

    Будет путаница, будет нужен инструмент редиректов и канокинал на такой случай,

    Возможно мы друг друга не понимаем... Я предлагаю сделать разбор URI с обратной стороны. С конца то есть. Таким образом можно будет ТОЧНО определить id каждой категории (каждого кусочка URI между слешами) просто определив что родитель данной категории с не уникальным именем уникален. И в итоге собрать точный "path" ("20_34_67" как пример)

  6. Ок... поясню

     

    Вы схватились за "чужую" идею решения  ЧПУ.

    Создайте свою модель ЧПУ и прикрутите свой контроллер.

    Вот только не пойму зачем воротить всё с нуля если можно доделать то что уже имеется?

    Вам нужен "правильный путь"?

    /категрия1/категория2/продукт -> product_id=56

    /категрия1/категория2/ -> category_id=10

    /категрия1/ ->category_id=2

    Да, только так работать не будет. Что будет например если родитель у категории сменится?

  7. Дело не в array_keys или подобных методах

     

    На первой странице здесь показано зачем нужен сеокеш.

     

    Особенно при формировании ЧПУ ссылок в категориях, да и не только в категориях.

     

    А масcив должен быть уникальным по keyword, по query он уникален.

     

    Прбуйте прописать и двигайте вариант с прописыванием полного пути к продукту

    /категрия1/категория2/продукт

    да я понимаю для чего тут кеш. Не в этом дело. Array_keys тут может понадобиться для поиска по значению элемента массива дублированных записей. Возвращать будет уникальные ключи (в зависимости от того сколько совпадений найдет). Соответственно можно будет отказаться от массива с ключами по keywords.

     

    Далее если array_keys возвращает более 1 ключа, циклом по ключам ищется и сравнивается РЕАЛЬНЫЙ родитель и его id. Ну и далее по тому же принципу — если родитель тоже дублируется, так же смотрим его родителя пока не находим элемент без совпадений. Получается разбор URI с конца а не с начала как сейчас реализовано. Таким образом можно будет вообще избавиться от массива с ключами по keywords. Поправьте меня если я что-то не так думаю.

     

    Совсем не понял что имелось в виду про

    "Пробуйте прописать и двигайте вариант с прописыванием полного пути к продукту

    /категрия1/категория2/продукт"

  8. Ха, жестянка, перезаписываются элементы массива с одинаковыми индексами при составлении массива... Во попадос (: По этому редиректит именно на последнюю "одинаковую" категорию, потому как она в базе ниже по выдаче. Ну ясно.

     

    Единственное не понял, для чего перекрёстно 2 массива строится сначала keywords а потом queries, ведь значение впоследствии всё равно только из keywords берётся?

     

    UPD Тоже понял, для обратного преобразования и последующего сравнения в том месте где я показывал редирект. Печаль. Надо думать как запилить массив по другому. Я так понял в общем, основная проблема в реализации поиска по массиву. Но я думаю что array_keys всё равно работает быстрее чем запрос к базе (;

  9. как workaround могу посоветовать dzhinsy-1, rubashki-1

    все модули автогенерации делают так

    Я тут поелозил трассировщиком по seo_pro.php, нашёл где происходит коллапс. Нужна ваша помощь в пояснении.

     

    В общем вот в этом месте собственно генерится редирект на левую категорию.

    J8j8Q0A.png

     

    Происходит это из-за того что при начальном разборе URL (запросе в БД) походу не смотрится на то что при селекте категорий с одинаковыми алиасами их больше одной. Ну и подставляется почему то ID последней категории которую я добавил с таким же названием.  Кеш соответственно заполняется тем же бредом.

     

    Единственное что, я не очень вдавался вглубь этого всего дела, не особо думал над каждой строкой попросту по нехватке времени, ткните меня в место где из контроллера происходит запрос в модель (в БД). Или даже лучше в то место где происходит проверка на наличие/отсутствие кеша. Ну и поговорить очень бы хотелось на эту тему, поскольку мне НУ ОЧЕНЬ НАДО. Думаю и другим тоже. Если будет возможность, киньте контакты как с вами связаться.

  10. И структуру, и контроллер

     

    Вы же разработчик - что я не так сказал?

     

    Я вам подсказал куда смотреть. Вы увидели?

    теперь уже И структуру И контроллер. ИЛИ уже не прокатывает. Ок, всё понял))

     

    По структуре, поясните за правильную структуру по феншую. Я так понял вы шарите в ней.

  11. r2d2,

    Увы, хотим (хочу) вас расстроить

     

    Чтобы иметь такой урл как вы говорите, нужно иметь другую структуру базы, в крайнем случае писать свой контроллер для seoЧПУ.

     

    например priduct_id=5 =>/категория1/категория2/товар

     

    А теперь представьте, что вы переместили товар... Т.е. - не все так просто...

     

     

    но путь должен быть всегда уникальным.

    Но вам остается только пользоваться, тем чем есть.

     

    Если вы сталкивались с другими системами, как это вопрос решается там?

    DLE

    RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),([0-9]+),(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&cstart=$5&news_name=$6&seourl=$6 [L]
    RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5&seourl=$5 [L]
    RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/print:page,([0-9]+),(.*).html(/?)+$ engine/print.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5&seourl=$5 [L]
    RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_name=$4&seourl=$4 [L]
    
    

    Мало кому известная система

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?page=$1 [QSA,L]
    

    hostcms

    	RewriteCond %{REQUEST_FILENAME} !-f
    	RewriteCond %{REQUEST_FILENAME} !-d
    	RewriteRule ^(.*)$ /index.php
    

    Решение принимается на уровне роутеров, покажу, что внутри

    Core_Router::add('robots.txt', '/robots.txt')
    	->controller('Core_Command_Controller_Robots');
    .....
    
    
    $oDefault_Router_Route = Core_Router::add('default', '()');
    

    Еще примеры? А надо ли?

     

    чё то много текста, и никакой конкретики. Вы уж определитесь (если знаете конечно на практике как оно работает) структуру базы нужно менять или контролер дописывать/переписывать )) Лол

  12. как workaround могу посоветовать dzhinsy-1, rubashki-1

    все модули автогенерации делают так

    Плохо. Буду искать решение, либо если у вас есть время я бы был не против пообщаться на тему проблем допилить SeoPro. Я разработчик.

  13. seo_url'ы должны быть в системе уникальными.

    Так, стоп, я заранее ожидал что как на всех "нормальных" форумах будут лезть люди просто ради того чтобы сказать хоть что-то даже не разбираясь в проблеме...

     

    Товарищ shoputils загуглите пожалуйста что такое URL. URL в моём случае полностью уникальные. Проблема тут в другом. Во-первых разработчик SeoPro допустил опрометчивость назвав поле в админке в которое нужно ввести часть адреса страницы "URL". Если меня сейчас читает разработчик, думаю что стоит поправить это в будущих версиях хотя бы на Alias (если конечно планируется выпустить исправленную версию) дабы не вводить начинающих в заблуждение.

     

    В нашем же случае этот самый Alias вполне себе может быть не уникальным, поскольку URL целиком, от этого не потеряет своей уникальности. Это недоработка плагина целиком и полностью.

     

    Ну наконец сами подумайте, в разных категориях могут быть товары с одним названием, это ЛОГИЧНО. Так же как и производители у разных товаров тоже могут быть одинаковыми. Например в категориях мужской и женской одежды могут быть брюки например.

     

    По этому обращаюсь к тем кто имеет достаточный опыт работы с opencart и  сталкивался с этой проблемой, помогите с решением, может есть какой другой способ или плагин который полностью избавляет от этой глупой проблемы.

  14. Ребят, нашёл гнусный косяк, очень надо побороть.

    Использую ocStore Версия 1.5.5.1.2 со встроенным SeoPro.

     

    В общем суть (структура приведена для примера, показаны только категории):

    Структура сайта такая —

     

    Главная

      -> Мужская одежда ( muzhskaja-odezhda/ )

          -> Джинсы ( muzhskaja-odezhda/dzhinsy/ )

          -> Рубашки ( muzhskaja-odezhda/rubashki/ )

      -> Женская одежда ( zhenskaja-odezhda/ )

          -> Джинсы ( zhenskaja-odezhda/dzhinsy/ )

          -> Рубашки ( zhenskaja-odezhda/rubashki/ )

     

    Проблема: подкатегории имеют одинаковые url (dzhinsy, rubashki), но в целом урл уникальный ( muzhskaja-odezhda/dzhinsy/ , zhenskaja-odezhda/dzhinsy/ ). Соответственно после того как я перехожу по ссылке muzhskaja-odezhda/dzhinsy/ меня редиректит на zhenskaja-odezhda/dzhinsy/ . Очень гнусная проблема. Обязательно нужно избавиться. Может кто то уже допилил скрипт до нормальной кондиции?

  15. блин, рано))

    не пашут роуты

    Undefined index: route in /var/www/example.ru/oc/catalog/view/theme/new/template/common/header.tpl on line 25
    

    ща проверю var_dump что там в $this->request->get['route'] такого имеется

     

    блин, туплю, он же Undefined... Не понял тогда...

     

    блин))) Очень сильно туплю)) Это я на главной увидел, в товаре все норм. Нужно просто @ перед строкой добавить было) Еще раз спасибо

     

    @ кстати в итоге тоже не сработало (перед условием), поэтому решилось все более мудрёным условием:

    <?php if (isset($this->request->get['route']) && $this->request->get['route']=='product/product') { ?>
    
  16. в файле catalog/controller/product/product.php после строки 

    $this->language->load('product/product');
    

    Печаль... А если это нужно только для моего шаблона? В смысле это нельзя сделать без изменения кода движка а только в самом шаблоне? Например в WP есть спец функция is_home() которая возвращает true если в данный момент грузится домашняя страница. И с помощью нее можно сделать например так:

    <?php if (is_home()) { ?>
    <div> Нужный контент </div>
    <?php } ?>
    
  17. Здравствуйте. Подскажите пожалуйста, существует ли способ позволяющий в файле common/header.tpl подключить отдельный CSS только для страницы с товаром (или категорией)?

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

Important Information

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