Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Yesvik

Ветеран сообщества
  
  • Posts

    1,939
  • Joined

  • Last visited

Everything posted by Yesvik

  1. Кавычки потерялись... <?php function rm_tree($dirname) { $dirs = glob("$dirname/*", GLOB_ONLYDIR|GLOB_NOSORT); foreach ($dirs as $d) { foreach (glob("$dirname/$d/*.jpg", GLOB_NOSORT) as $filename) { echo "$dirname/$d/$filename size " . filesize("$dirname/$d/$filename") . "\n"; unlink("$dirname/$d/$filename"); } rm_tree("$dirname/$d"); } } rm_tree("."); ?>
  2. Описывать что запрещено - неблагодарное занятие. Правильнее перечислять что разрешено. Попробуй так $number = preg_replace('/[^0-9]+/u', '', $keyword);
  3. Тогда осваивай SVN, и клиент на русском языке http://tortoisesvn.net/ и информации на русском - море.Держи на локалке рабочую копию со своими правками, обновляйся, сохраняй свои патчи, тестируй и если всё в порядке - делай экспорт и переноси файлы на хостинг...
  4. Главное не заложить будущее в ломбарде :)
  5. Да нафига Вам маньяк... Вы и сами маньячите не по детски :) Править упакованный слайдер - это по взрослому! Я бы до такого не додумался и как минимум привел бы в читаемый вид код слайдера Но слайдер то известный... я бы пошел на сайт слайдера и почитал документацию! Там же всё расписано... <script type="text/javascript"> $(window).load(function() { $('#slider').nivoSlider({ effect:'random', // Specify sets like: 'fold,fade,sliceDown' slices:15, // For slice animations boxCols: 8, // For box animations boxRows: 4, // For box animations animSpeed:500, // Slide transition speed pauseTime:3000, // How long each slide will show startSlide:0, // Set starting Slide (0 index) directionNav:true, // Next & Prev navigation directionNavHide:true, // Only show on hover controlNav:true, // 1,2,3... navigation controlNavThumbs:false, // Use thumbnails for Control Nav controlNavThumbsFromRel:false, // Use image rel for thumbs controlNavThumbsSearch: '.jpg', // Replace this with... controlNavThumbsReplace: '_thumb.jpg', // ...this in thumb Image src keyboardNav:true, // Use left & right arrows pauseOnHover:true, // Stop animation while hovering manualAdvance:false, // Force manual transitions captionOpacity:0.8, // Universal caption opacity prevText: 'Prev', // Prev directionNav text nextText: 'Next', // Next directionNav text beforeChange: function(){}, // Triggers before a slide transition afterChange: function(){}, // Triggers after a slide transition slideshowEnd: function(){}, // Triggers after all slides have been shown lastSlide: function(){}, // Triggers when last slide is shown afterLoad: function(){} // Triggers when slider has loaded }); }); </script> Обратите внимание на строки effect:'random', // Specify sets like: 'fold,fade,sliceDown' startSlide:0, // Set starting Slide (0 index)
  6. Ты не те показатели смотриш... количество продаж увеличилось?
  7. Пользоваться поиском пробовал?https://opencartforum.com/topic/2575-%d0%b2%d1%8b%d1%88%d0%b5%d0%bb-ocstore-v020/page__view__findpost__p__17038 https://opencartforum.com/topic/3104-%d0%b2%d1%8b%d1%88%d0%b5%d0%bb-ocstore-v022/page__view__findpost__p__20990
  8. https://opencartforum.com/topic/2906-%D1%8D%D0%BA%D1%81%D0%BF%D0%BE%D1%80%D1%82-%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0-%D0%B4%D0%BB%D1%8F-%D1%8F%D0%BD%D0%B4%D0%B5%D0%BA%D1%81%D0%BC%D0%B0%D1%80%D0%BA%D0%B5%D1%82/page__p__19622 Для версии 1.5 - можно выбирать из каких категорий экспортировать товары
  9. Нет. Устанавливается один магазин, а потом в админке, Система -> Настройки жмёш кнопку "Создать магазин" и заполняеш настройки нового магазина. Только там для поля "URL магазина", в качестве примера, предлагают указать папку, но с папками замахаешся... проще другой домен или поддомен использовать.Забыл написать что все домены/поддомены дополнительных магазинов должны смотреть в папку с установленным магазином.
  10. Это легко делается если магазины городов разнести по поддоменам или вообще по разным доменам, например moscow.myshop.ru london.myshop.ru supershop.de Всё будет крутится на одной базе, а в админке сможеш выбирать в каких магазинах доступны определённые категории/товары/статьи...
  11. Мне у себя лень проверять, но очень странно... Вот эта функция preg_replace('/\D/', '', $keyword)должна удалять всё кроме цифр.Попробуй строку $number = preg_replace('/\D/', '', $keyword);изменить так $number = preg_replace('/\D|\s/', '', $keyword);или так $number = trim(preg_replace('/\D/', '', $keyword));
  12. Попробуй для начала убрать подключение catalog/view/theme/default/stylesheet/calendar.css и catalog/view/javascript/clock/clock.js А потом разберись куда делся catalog/view/javascript/jquery/jquery.cycle.all.min.js
  13. Откуда информация что с www это домен уровнем ниже? И www.domain.tld и domain.tld - это домены второго уровня. В данном случае www это не поддомен, а указание на веб-сервис, так же как и в случае ftp.domain.tld ftp означает фтп-сервис.
  14. Строка $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%')";встречается дважды, я забыл об этом написать, и менять надо в обеих местах...Но менять надо только эту строку, иначе поиск по модели будет всегда независимо от чекбокса. Все позиции не должны выводиться... вот эта строка $number = preg_replace('/\D/', '', $keyword);удаляет всё кроме цифр.
  15. Точно... обратный слеш потерял...Должно быть /\D/
  16. Поиск только по цифрам в модели делается так: В файле catalog/model/catalog/product.php найди $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%')";и замени на $sql .= " OR p.model LIKE '%" . $this->db->escape(preg_replace('/\D/', '', $keyword)) . "%')";Но в этом решении есть подводные камни... Например, если попытаться найти модель35 то реально будет поиск по вхождению числа 35 и результатов может быть неприлично много. Кроме этого кто-то из пользователей захочет поискать по фразе вообще не содержащей цифр и получит вообще все товары. Тут, по хорошему, напрашивается создание отдельной формы для поиска по артикулу.Что можно попытаться сделать на базе того что есть и при этом получить более менее вменяемые результаты... Проверять что-бы для поиска по модели было не менее 3 цифр и искать не вхождение, а товары у которых модель начинается с этих цифр. Если цифр меньше 3 - искать по введённой фразе. $number = preg_replace('/\D/', '', $keyword); if (strlen($number) > 2) { $sql .= " OR p.model LIKE '" . $number . "%')"; } else { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%')"; } Исправил ошибку в регулярке /D/ на /\D/
  17. Попробуй перечитать постановку задачи.Сначала пишеш много букв, перечисляеш что надо пропускать, а судя по приведённому примеру - поиск должен быть только по цифрам (коротко и ясно!). Решается такая задача с использованием простейшего регулярного выражения preg_replace('/D/', '', $keyword)Но мой модуль телепатии упорно не хочет работать, а модуль крипто-анализа не справился с фразой "В том числе и наоборот".
  18. Самый простой вариант... Всегда ищет по Наименованию и по SKU, а по Описанию и по Модели - в соответствии с чекбоксами. Для уменьшения промахов ищется только точное совпадение SKU, в варианте "по умняку" - ищет SKU которые начинаются с введённой поисковой фразы Открываем файл catalog/model/catalog/product.php Ищем в двух местах if (!$model) { $sql .= ")"; } else { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%')"; } и изменяем в двух местах так if (!$model) { $sql .= " OR p.sku = '" . $this->db->escape($keyword) . "')"; } else { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%' OR p.sku = '" . $this->db->escape($keyword) . "')"; } Всё.
  19. Это по умняку... Сначала правим вьювер. Открываем файл catalog/view/theme/default/template/product/search.tpl Ищем <tr> <td colspan="2"><?php if ($model) { ?> <input type="checkbox" name="model" id="model" checked="checked" /> <?php } else { ?> <input type="checkbox" name="model" id="model" /> <?php } ?> <?php echo $entry_model; ?></td> </tr> и после найденного добавляем <tr> <td colspan="2"><?php if ($sku) { ?> <input type="checkbox" name="sku" id="sku" checked="checked" /> <?php } else { ?> <input type="checkbox" name="sku" id="sku" /> <?php } ?> <?php echo $entry_sku; ?></td> </tr> почти в самом низу файла ищем if ($('#model').attr('checked')) { url += '&model=1'; } и после найденного добавляем if ($('#sku').attr('checked')) { url += '&sku=1'; } Так как мы добавили языковую переменную $entry_sku - добавим её в файл локализации... Открываем файл catalog/language/russian/product/search.php В конце файла, перед строкой ?> добавляем $_['entry_sku'] = 'Поиск по артикулу'; Вьювер готов, правим контроллер Открываем файл catalog/controller/product/search.php Ищем if (isset($this->request->get['model'])) { $url .= '&model=' . $this->request->get['model']; } и после найденного добавляем if (isset($this->request->get['sku'])) { $url .= '&sku=' . $this->request->get['sku']; } Ищем $this->data['entry_model'] = $this->language->get('entry_model'); и после найденного добавляем $this->data['entry_sku'] = $this->language->get('entry_sku'); Ищем if (isset($this->request->get['model'])) { $this->data['model'] = $this->request->get['model']; } else { $this->data['model'] = ''; } и после найденного добавляем if (isset($this->request->get['sku'])) { $this->data['sku'] = $this->request->get['sku']; } else { $this->data['sku'] = ''; } Ищем $product_total = $this->model_catalog_product->getTotalProductsByKeyword( $this->request->get['keyword'], isset($this->request->get['category_id']) ? $this->request->get['category_id'] : '', isset($this->request->get['description']) ? $this->request->get['description'] : '', isset($this->request->get['model']) ? $this->request->get['model'] : '');и изменяем так $product_total = $this->model_catalog_product->getTotalProductsByKeyword( $this->request->get['keyword'], isset($this->request->get['category_id']) ? $this->request->get['category_id'] : '', isset($this->request->get['description']) ? $this->request->get['description'] : '', isset($this->request->get['model']) ? $this->request->get['model'] : '', isset($this->request->get['sku']) ? $this->request->get['sku'] : ''); Ищем if (isset($this->request->get['model'])) { $url .= '&model=' . $this->request->get['model']; } и после найденного добавляем if (isset($this->request->get['sku'])) { $url .= '&sku=' . $this->request->get['sku']; } Ищем $results = $this->model_catalog_product->getProductsByKeyword( $this->request->get['keyword'], isset($this->request->get['category_id']) ? $this->request->get['category_id'] : '', isset($this->request->get['description']) ? $this->request->get['description'] : '', isset($this->request->get['model']) ? $this->request->get['model'] : '', $sort, $order, ($page - 1) * $this->config->get('config_catalog_limit'), $this->config->get('config_catalog_limit'));и изменяем так $results = $this->model_catalog_product->getProductsByKeyword( $this->request->get['keyword'], isset($this->request->get['category_id']) ? $this->request->get['category_id'] : '', isset($this->request->get['description']) ? $this->request->get['description'] : '', isset($this->request->get['model']) ? $this->request->get['model'] : '', isset($this->request->get['sku']) ? $this->request->get['sku'] : '', $sort, $order, ($page - 1) * $this->config->get('config_catalog_limit'), $this->config->get('config_catalog_limit')); Ищем if (isset($this->request->get['model'])) { $url .= '&model=' . $this->request->get['model']; } и после найденного добавляем if (isset($this->request->get['sku'])) { $url .= '&sku=' . $this->request->get['sku']; } Ищем if (isset($this->request->get['model'])) { $url .= '&model=' . $this->request->get['model']; } и после найденного добавляем if (isset($this->request->get['sku'])) { $url .= '&sku=' . $this->request->get['sku']; } Если обратил внимание - несколько раз ищем и правим одно и то-же... Это я все правки указал в порядке следования.С контроллером закончили - переходим к модели. Открываем файл catalog/model/catalog/product.php Ищем public function getProductsByKeyword($keyword, $category_id = 0, $description = FALSE, $model = FALSE, $sort = 'p.sort_order', $order = 'ASC', $start = 0, $limit = 20) {и изменяем так public function getProductsByKeyword($keyword, $category_id = 0, $description = FALSE, $model = FALSE, $sku = FALSE, $sort = 'p.sort_order', $order = 'ASC', $start = 0, $limit = 20) { Ищем if (!$description) { $sql .= " AND (pd.name LIKE '%" . $this->db->escape($keyword) . "%'"; } else { $sql .= " AND (pd.name LIKE '%" . $this->db->escape($keyword) . "%' OR pd.description LIKE '%" . $this->db->escape($keyword) . "%'"; } if (!$model) { $sql .= ")"; } else { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%')"; } и изменяем так $sql .= " AND (pd.name LIKE '%" . $this->db->escape($keyword) . "%'"; if ($description) { $sql .= " OR pd.description LIKE '%" . $this->db->escape($keyword) . "%'"; } if ($model) { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%'"; } if ($sku) { $sql .= " OR p.sku LIKE '" . $this->db->escape($keyword) . "%'"; } $sql .= ")"; Ищем public function getTotalProductsByKeyword($keyword, $category_id = 0, $description = FALSE, $model = FALSE) {и изменяем так public function getTotalProductsByKeyword($keyword, $category_id = 0, $description = FALSE, $model = FALSE, $sku = FALSE) { Ищем if (!$description) { $sql .= " AND (pd.name LIKE '%" . $this->db->escape($keyword) . "%'"; } else { $sql .= " AND (pd.name LIKE '%" . $this->db->escape($keyword) . "%' OR pd.description LIKE '%" . $this->db->escape($keyword) . "%'"; } if (!$model) { $sql .= ")"; } else { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%')"; } и изменяем так $sql .= " AND (pd.name LIKE '%" . $this->db->escape($keyword) . "%'"; if ($description) { $sql .= " OR pd.description LIKE '%" . $this->db->escape($keyword) . "%'"; } if ($model) { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%'"; } if ($sku) { $sql .= " OR p.sku LIKE '" . $this->db->escape($keyword) . "%'"; } $sql .= ")"; Всё.
  20. Тебе как сделать? что бы всё по умняку, с красивым кодом... или что-бы править было проще?
  21. Я не нахожу. Браузер для которого ставились комменты давно мертв...
  22. Админы и клиенты это разные учетные записи... а Слава Кпсс - вообше не человек :)Так и должно быть, нефиг админу делать в публичной части...
  23. Российское интернет гетто без регистрации ничего почитать не даёт, а на facebook'е бегло просмотрел мануалы... сложилось впечатление что всё довольно просто. Беспокоит только момент авторизации... из фрейма с куками начнётся свистопляска и прийдётся изголяться...
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.