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

SooR

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

    1 511
  • З нами

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

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

  1. Ну не знаю, у нас в Одессе есть ШАГ и Сервер по таким учениям, так вот ШАГ очень хвалят, может и относительно, может и нет, но в последнее время его качество обучения возросло. Может имеет смысл не поступать туда в качестве студента (корочку на полке держать?), а лучше записаться на интересующие курсы при них же?
  2. Кидайте помадорами, но я таки за отечественный хост. Мой выбор уже долгое время ukraine . com . ua.
  3. А главным был выбран именно wood!?)
  4. Деревянный фон надоел.
  5. RGB, нет), к сожалению, тогда я сниппетами ещё не пользовался. А Фильтр уже давненько как готов, просто не анонсировал, а кто хотел - уже купил.
  6. Приветствую вас. Часто занимаясь разработкой под OpenCart (и не только) каждый разработчик пользуется большим количеством частоиспользуемого (повторного) кода, который многие просто копируют из открытых файлов проекта, или (если не поздняя ночь) пишут заново. Этот шаблонный код обычно короткий и является лишь "фразами общения" с ядром движка, его API. Поэтому, дабы сократить времязатраты на разработку, я ввёл новые фрагменты в сниппеты (snippets) своего IDE для работы с OpenCart. Я пользуюсь бесплатным текстовым редактором PSPad уже более 3х лет, сниппеты у него поддерживаются с достаточной гибкостью для того, чтобы писать именуемые динамические сниппеты с заданием переменных через контекстное меню. Надо сказать, что в бОльшей мере именно это меня и удерживает от замены редактора. Потому что, например, у CodeLobster сниппеты реализованы на XML, это очень удобно и изящно, но содавать большие фрагменты с пользовательскими переменными в любом месте кода - я не смог, так как пользовательская переменная не ограничена символами начала и конца переменной, что лишает её возможности писать слитно с другим текстом (например public function get@s()); Итак, вернёмся к сниппетам для OpenCart. Приведу пример нескольких фрагментов упрощающих жизнь: [post | Insert POST variable] $this->request->post['|'] ; Как видно из фрагмента, комбинация слова post и (в моем случае) сочетания клавиш Shift+Space выведут код $this->request->post['место_для_курсора'] на том месте, где её применили. Ещё пример: [select | Create MySQL select query] $this->db->query("SELECT * FROM " . DB_PREFIX . "|"); ; Комбинация bread Shift+Space вставит запрос выборки к базе данных; [bread | Create breadcrumbs item] $this->data['breadcrumbs'][] = array( 'text' => 'Page|', 'href' => $this->url->link(''), 'separator' => $this->language->get('text_separator') ); ; Элемент хлебных крошек; [text | Insert text = translate] $this->data['text_|'] = $this->language->get('text_'); ; Этот кусок наверняка многих раздражает, но с ним валидней ;) [model | Create model] <?php class Model|%model% extends Model { public function add%model%($data) { $this->db->query("INSERT INTO " . DB_PREFIX . "%database_table% SET "); $%database_table%_id = $this->db->getLastId(); return $%database_table%_id; } public function edit%model%($%database_table%_id, $data) { $this->db->query("UPDATE " . DB_PREFIX . "%database_table% SET WHERE %database_table%_id = '" . (int)$%database_table%_id . "'"); } public function delete%model%($%database_table%_id) { $this->db->query("DELETE FROM " . DB_PREFIX . "%database_table% WHERE %database_table%_id = '" . (int)$%database_table%_id . "'"); } public function get%model%($%database_table%_id) { $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "%database_table% WHERE %database_table%_id = '" . (int)$%database_table%_id . "'"); return $query->row; } public function get%model%s() { $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "%database_table%"); return $query->rows; } public function getTotal%model%s() { $query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "%database_table%"); return $query->row['total']; } } ?> ; Ну и с использовнием переменных. Тяжело назвать сниппетом, но почему бы и нет? Этакий мини-конструктор. По применению сниппета можно вписать название модели (%model%), которое автоматом присвоится к названиям методов, а так же имя таблицы (%database_table%), которая послужит данными для создания шаблонной модели. Кстати, переменные объявляются в начале файла сниппетов: ; ----------------------------------------------------------------------------- ; OpenCart ; ----------------------------------------------------------------------------- %model%=@E Название модели, %database_table%=@E Таблица БД, %controller%=@E Название (напр. CommonHome), %route%=@E Route (напр. common/home), .. и так далее. В принципе, список можно продолжать долго, но суть я указал, направление тоже, вам остается двигаться :) Буду рад выслушать новые идеи по ускорению разработки, фрагментах кода и т.д. Прикрепил файл PHP.DEF (для PSPad) где собрал пока все придуманные сниппеты. PHP_DEF.zip
  7. На счёт фильтра в 1.5.5: Работает он как обычные теги, без какой-либо логики. Есть значение - вывести всё по нему, если нет - пустая страница. Автокомлиты не понравились, если уж он привязывает фильтры к категориям - почему не сделать селектом. Конечно, легче сделать всё в одном по автокомплиту, не парясь со связми категорий и т.д. В общем быстрое наполнение не получится. Но а вообще, прогресс уже радует, думаю фильтр будет дописываться с каждой / каждой 2-й версией.
  8. Добавление к public function getProducts($data = array()) { Не оптимизировал, т.к. используется в магазине с малым кол-вом товаров. Но при желании можно улучшить. (SELECT sort_order FROM " . DB_PREFIX . "category WHERE category_id = (SELECT c.parent_id FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "product_to_category p2cc ON (c.category_id = p2cc.category_id) WHERE p2cc.product_id = p.product_id AND c.parent_id != '0' ORDER BY c.sort_order DESC) ) AS category и сортировка $sql .= " ORDER BY category, p.sort_order";
  9. hotgomer, к запросу товаров необходимо присоеденить таблицы category[, category_description] и сортировать товар по её c.sort_order[, cd.name], кроме этого, категории для сортировки нужно выбирать по parent_id от текущей.
  10. https://opencartforum.com/topic/2654-%d0%bc%d0%be%d0%b4%d1%83%d0%bb%d1%8c-%d1%84%d0%b8%d0%bb%d1%8c%d1%82%d1%80-%d1%82%d0%be%d0%b2%d0%b0%d1%80%d0%be%d0%b2-%d0%b2-%d0%ba%d0%b0%d1%82%d0%b5%d0%b3%d0%be%d1%80%d0%b8%d0%b8-20/page__view__findpost__p__71495
  11. Без понятия о чем вы. Я под эту версию не выкладывал. Откуда качали? Может там и ответят...
  12. "Живая" админка будет 5 августа, о всех нюансах адаптации надо говорить, но в модуле будет предусмотрена функция импорта/экспорта, а так же перенос стандартных атрибутов.
  13. Да. Смотрите на страницу редактирования опции ниже. Значения просто переносим мышкой.
  14. Фильтров много не бывает :-D vqmod не переношу. Будет удобная интерактивная инструкция по установке на не чистый OpenCart. Вывод характеристик входит в модуль фильтра, ничего более заказывать не потребуется.
  15. Да, за границами "бегунков" надо попасть, чтобы они начали двигаться, учту.
  16. RGB, спасибо за отзыв. На счёт первого абзаца, так и сделаю, но в момент релиза. Второй - люди разные, цели и возможности тоже отличаются. Очень сильно. Некоторые, на начальных условиях готовы выложить приличную сумму только за натяжку шаблона и установку парочки модулей, другие пытаются уложиться в скромную сумму и получить максимум от разработчика. Это вполне нормально, скидываются - ну и пусть. Эти люди новички и средствами рисковать не хотят, в т.ч. техническим обеспечением.
  17. Не дорогой :) Пока допиливаю, можете оставлять свои пожелания и предложения здесь. P.S. модуль будет продаваться пока в другом месте, или через личные переговоры.
  18. Over9000, честно, я ниодного не видел. В модуле будет ф-ция импорта и экспорта, sql и csv. Соответственно, правильно отредактированный csv способен решить ваши проблемы :)
  19. Еще есть select :) а в опциях еще есть тип группированый, когда несколько значений становятся одним. Блоки с подсказками обычный div в третьей колонке с бэкграундом, на счет грибов - согласен на все сто. Или самое больное место двига, или в кайф его делать:)
  20. Добавилась лишь только таблица category_option_to_store и пару полей в таблицу category_option. Если в моем модуле отключить счетчик товаров, то даже количество товаров не станет помехой быстродействию. В модуле или будет возможность импортировать стандартные параметры - в таблицы фильтра, или просто переключатель "использовать опции OpenCart или модуля фильтра".
  21. Тогда на public function format($value, $weight_class_id, $decimal_point = '.', $thousand_point = ',') { if (isset($this->weights[$weight_class_id])) { return $value . $this->weights[$weight_class_id]['unit']; } else { return $value; } } Если нули вообще нигде не нужны.
  22. Скрины настроек модуля дадут понять примерные возможности и гибкость:
  23. Она же и является кнопкой "Применить" :) просто несёт в себе ещё и количество найденных товаров. А кнопку назвать можно по-разному. В настройках фильтра есть возможность переключиться в режим "нажал - получил", т.е. без кнопки.
  24. Файл 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]); }

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

Important Information

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