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

SooR

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

    1 508
  • З нами

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

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

  1. Во-о-о...Красивая админка... Тоже планирую настройки в табы вынести. Аккуратно это выглядит... Soor, на скрине не видно, что в фильтре по производителям можно выбрать: чекбокс, радио, ещё что-то? И с помощью чего делается большая светло-зелёная стрелка с пояснениями к опциям админки?

    Офтоп. Что-то в последнее время народ стал фильтры клепать как грибы после дождя.

    Еще есть select :) а в опциях еще есть тип группированый, когда несколько значений становятся одним.

    Блоки с подсказками обычный div в третьей колонке с бэкграундом, на счет грибов - согласен на все сто. Или самое больное место двига, или в кайф его делать:)

  2. Добавилась лишь только таблица category_option_to_store и пару полей в таблицу category_option.

    Если в моем модуле отключить счетчик товаров, то даже количество товаров не станет помехой быстродействию.

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

    • +1 2
  3. Ого! Очень круто выглядит, но мне кажется не очевидным такой механизм - когда при выборе опции в этом же блоке подгружается кол-во товаров с этой опцией и отображается кнопка, на которую нужно нажать чтобы увидеть результат фильтрации. Не проще ли будет сделать кнопку Применить?

    Она же и является кнопкой "Применить" :) просто несёт в себе ещё и количество найденных товаров. А кнопку назвать можно по-разному.

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

    • +1 2
  4. Файл catalogcontrollercommonseo_url.php

    Заменить

    } elseif ($key == 'path') {
    	  $categories = explode('_', $value);
    	 
    	  foreach ($categories as $category) {
    	   $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = 'category_id=" . (int)$category . "'");
    	
    	   if ($query->num_rows) {
    	    $url .= '/' . $query->row['keyword'];
    	   }	  
    	  }
    	 
    	  unset($data[$key]);
    	 }
    
    На

    } elseif ($key == 'path') {
    	  $categories = explode('_', $value);
          $url .= '/catalogue';
    	  foreach ($categories as $category) {
    	   $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = 'category_id=" . (int)$category . "'");
    	
    	   if ($query->num_rows) {
    	    $url .= '/' . $query->row['keyword'];
    	   }	  
    	  }
    	 
    	  unset($data[$key]);
    	 }
    
    • +1 1
  5. Файл systemlibraryweight.php

    Заменить

    public function format($value, $weight_class_id, $decimal_point = '.', $thousand_point = ',') {
      if (isset($this->weights[$weight_class_id])) {
    	 return number_format($value, 2, $decimal_point, $thousand_point) . $this->weights[$weight_class_id]['unit'];
      } else {
       return number_format($value, 2, $decimal_point, $thousand_point);
      }
    }
    
    На

    public function format($value, $weight_class_id, $decimal_point = '.', $thousand_point = ',') {
      if (isset($this->weights[$weight_class_id])) {
    	 return number_format($value, 0, $decimal_point, $thousand_point) . $this->weights[$weight_class_id]['unit'];
      } else {
       return number_format($value, 0, $decimal_point, $thousand_point);
      }
    }
    
    • +1 1
  6. Ну что, выполнил?)

    С другой стороны, ув. Vetal тоже не самый обычный заказчик.

    Проявляется это в несоответствии задания (или его формулировке) к строго выполненному конечному результату.

    Т.е. начинаются известные всем фриланцерам "хотелки": - "А можешь еще это сделать!?", "А там поправишь заодно!?", "А вот только что пришла идея..." .. и так далее.

    И да, о сроках мы не договаривались.

    • +1 3
  7. Приветы всем.

    Спасибо, что не потерли тему.

    Фильтр довел до ума, наростил функционал и сделал всё более юзабильней, в т.ч. серьезно оптимизировал код.

    Демка фронт (8000+ товаров)

    Эта работа будет стоить неких денежных единиц. Дата релиза 5 августа.

    • +1 2
  8. xrgb, параметры товаров заполнял контент-менеджер вручную :)

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

  9. Меня интересует другой вопрос, почему в OpenCart'е получение кейворда всё ещё реализовано дополнительными запросами? При чем, на один элемент - 2 запроса (model -> controller). Почему не хранить алиасы в таблице товаров, категорий, страниц...?

  10. В некоторых местах так даже удобнее, но это в основном применимо в админке...

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

    Это для админки вообще-то и делалось. Смотрите по какому принципу проставляются категории..

  11. freelancer, *** стыд, ну а где вызывается вы видите? И почему и зачем она вызывается вы понимаете?

    А теперь сначала, вызывается для того, чтобы подтянуть товары из дочерних категорий, находясь мы в родительской.

    А если галки будут ставиться автоматом, то не придется _искать_ дочерние категории, они уже будут известны в таблице product_to_category.

  12. в модели категории, но не суть.

    почитай уже топик

    if (!empty($data['filter_category_id'])) {
    				if (!empty($data['filter_sub_category'])) {
    					$implode_data = array();
    					
    					$implode_data[] = "p2c.category_id = '" . (int)$data['filter_category_id'] . "'";
    					
    					$this->load->model('catalog/category');
    					
    					$categories = $this->model_catalog_category->getCategoriesByParentId($data['filter_category_id']);
    										
    					foreach ($categories as $category_id) {
    						$implode_data[] = "p2c.category_id = '" . (int)$category_id . "'";
    					}
    								
    					$sql .= " AND (" . implode(' OR ', $implode_data) . ")";			
    				} else {
    					$sql .= " AND p2c.category_id = '" . (int)$data['filter_category_id'] . "'";
    				}
    			}

    Это что тогда?

    В моделе категории тоже есть, но я сократил кол-во запросов до 36 в категории убрав этот блок

    if (!empty($data['filter_sub_category'])) {
    					$implode_data = array();
    					
    					$implode_data[] = "p2c.category_id = '" . (int)$data['filter_category_id'] . "'";
    					
    					$this->load->model('catalog/category');
    					
    					$categories = $this->model_catalog_category->getCategoriesByParentId($data['filter_category_id']);
    										
    					foreach ($categories as $category_id) {
    						$implode_data[] = "p2c.category_id = '" . (int)$category_id . "'";
    					}
    								
    					$sql .= " AND (" . implode(' OR ', $implode_data) . ")";			
    				} else {

    Да и вот тоже..

  13. суть проблемы мне ясна, впрочем может ты не так её понимаешь: падение производительности получения дерева категорий при большом(>100) кол-ве элементов.

    вот я и спрашиваю чем вышеуказанный http://open.od.ua/check.html может в этом помочь?

    Так, секундочку, дерево для чего? Для вытяжки товаров из дочерних категорий, так?

    А зачем это делать?

    Потому что когда мы в админке ставим галку напротив самого последнего уровня категорий, то родительский (который и вызывает эту рекурсию) мы не трогаем и он вынужден сам доставать дочерние category_id для поиска всех товаров.

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

    Или я неправильно понял?

  14. Yesvik, да, виновник торжества

    $categories = $this->model_catalog_category->getCategoriesByParentId($data['filter_category_id']);

    в catalog/product, а там уже в рекурсию. Это маразм. На одни только запросы уходит 5-6 сек. И да, пусть хоть 0 товаров в категории будет.

    Да и вывал самих товаров тоже запрос в цикле.

    В общем уменьшил до 48 запросов в категории, независимо от кол-ва товаров. Но это тоже много.

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

Important Information

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