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

afwollis

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

    11,658
  • Joined

  • Last visited

Everything posted by afwollis

  1. там расписано как делать похожее ;) где и кому давать возможность вводить данные и в какое доп.поле - дело ваше. все можно адаптировать примерно так: доп.столбец в таблицу заказов (корзину) поле для ввода доп.информации в шаблоне продукта или еще где. далее проверка и добавление информации. в админке в заказах вывод информации из доп.столбца таблицы заказов. если лень разбираться или вобще не понимаете, что делать, то: 1) если вам это надо срочно - закажите кому-то; 2) если для вас это не срочный вопрос - ждите, пока кто-нибудь сделает что-то такое.
  2. 1. оформляйте текст ошибок в CODE тэг. 2. проверяем существование файла /ххх/shop/system/database/mysql.php 3. если его нет - перезаливаем эту папку. если он есть - проверяем права (обычно - 644 на файлы достаточно) вроде все
  3. shoma, верите? - в глаза не видел тот модуль :( ну и соответственно ничего сказать не могу насчет вашего запроса ;)
  4. ;) Дополнительные поля продукта
  5. 1) поищите по слову "меню" на форуме. масса тем. 2) ознакомьтесь со структурой движка - MVC. почитайте что это такое (можно на wiki) загляните в конце концов в FAQ
  6. спасибо Alexander Dorogikh и его теме "сложная(?) выборка" :( для себя я этот вопрос решил ;) если вкратце, то: catalog / model / catalog / product.php было if (isset($values) && $values != '') { $data = array(); foreach (explode('_', $values) as $value_id) { $data[] = "value_id = '" . (int)$value_id . "'"; } $sql .= " AND p.product_id IN (SELECT product_id FROM " . DB_PREFIX . "product_to_value WHERE " . implode(" OR ", $data) . ")"; } стало /* if (isset($values) && $values != '') { $data = array(); foreach (explode('_', $values) as $value_id) { $data[] = "value_id = '" . (int)$value_id . "'"; } $sql .= " AND p.product_id IN (SELECT product_id FROM " . DB_PREFIX . "product_to_value WHERE " . implode(" OR ", $data) . ")"; } */ if (isset($values) && $values != '') { $data = array(); $values_without_underline = ""; $values_for_IN = ""; foreach (explode('_', $values) as $value_id) { if (empty($values_for_IN)) { $values_for_IN = "'".$value_id."'"; } else { $values_for_IN .= ", '".$value_id."'"; } $values_without_underline .= $value_id; } // http://forums.mysql.com/read.php?78,354483,354598#msg-354598 //(SELECT GROUP_CONCAT(DISTINCT Tag_id ORDER BY Tag_id ASC SEPARATOR '') FROM Tag_has_Post WHERE Post_id=t.Post_id AND Tag_id IN (2,5))='25'; $sql .= " AND (SELECT GROUP_CONCAT(DISTINCT value_id SEPARATOR '') FROM product_to_value WHERE product_id=p.product_id AND value_id IN (".$values_for_IN."))='".$values_without_underline."'"; } = = = доработок в движке и, собственно, в фильтре - масса. что / где / как отличается от того, что есть у вас - не знаю. поэтому за дополнительной информацией по конкретно вашему случаю прошу в ЛС. можно с альтернативными контактами - jabber / skype / icq а лучший вариант - дождитесь релиза от liftex я помогу ему впарить этот FIX в сборку, которую он уже выкладывал. а может и вовсе пересобрать её в истинно отдельный модуль. в этом случае будут кардинальные изменения на стороне catalog`a.
  7. в ЛС я вам в общем-то ответил. если что - стучитесь по указанным контактам.лишь отмечу здесь, что я там где-то выше писал (возможно - позже того, как опубликовал тот свой fix) - работаю над вручную установленным (архив "Openstore_module_product_filter_1.0_(manual_install).rar") оригинальным модулем
  8. . Делаем возможность выбора из двух вариантов отображения товара: табличный или колоночный шаг #1: Делаем шаблоны копируем в чтобы убедиться во время теста/проверки, что все будет нормально работать, меняем в category2.tpl вывод категорий <?php for ($i = 0; $i < sizeof($categories); $i = $i + 4) { ?> <tr> <?php for ($j = $i; $j < ($i + 4); $j++) { ?>на <?php for ($i = 0; $i < sizeof($categories); $i = $i + 2) { ?> <tr> <?php for ($j = $i; $j < ($i + 2); $j++) { ?> вывод товаров <?php for ($i = 0; $i < sizeof($products); $i = $i + 4) { ?> <tr> <?php for ($j = $i; $j < ($i + 4); $j++) { ?>на <?php for ($i = 0; $i < sizeof($products); $i = $i + 2) { ?> <tr> <?php for ($j = $i; $j < ($i + 2); $j++) { ?>т.е. вместо вывода по 4 элемента в строке делаем вывод по 2 элемента.шаг #2: Добавляем в шаблоны возможность выбора варианта отображения товара в любое понравившееся вам место в обоих шаблонах вставляем что-то вроде: <!-- viewType addon - start --> <div> <a href="<?php echo $viewType_default_href; ?>&viewType=tbl" target="_self" title="tbl_View">viewType[tbl]</a> <a href="<?php echo $viewType_default_href; ?>&viewType=col" target="_self" title="col_View">viewType[col]</a> </div> <!-- viewType addon - end -->главное - воткнуть две ссылки: // ссылка для применения табличного шаблона <a href="<?php echo $viewType_default_href; ?>&viewType=tbl" target="_self" title="">text / image</a> // ссылка для применения колоночного шаблона <a href="<?php echo $viewType_default_href; ?>&viewType=col" target="_self" title="">text / image[col]</a>как вы их оформите, и куда вставите - дело ваше.я добавил предыдущий код после <div class="middle"> <table style="padding-bottom:10px;"> <tr> <?php if ($thumb) { ?> <td><img src="<?php echo $thumb; ?>" alt="<?php echo $heading_title; ?>" /></td> <?php } ?> <?php if ($description) { ?> <td><?php echo $description; ?></td> <?php } ?> </tr> </table> шаг #3: Правим файл catalog/controller/product/category.php а) перед $this->load->model('catalog/category'); $this->load->model('tool/seo_url');вставляем //======= $viewType_tmpl["tbl"] = "category.tpl"; //это название табличного шаблона $viewType_tmpl["col"] = "category2.tpl"; //это название колоночного шаблона $viewType = ""; if (isset($this->session->data['viewType'])) { $viewType = $this->session->data['viewType']; } if (isset($this->request->get['viewType'])) { $viewType = $this->request->get['viewType']; } if ($viewType == "col") { $viewType_tmpl["current"] = $viewType_tmpl["col"]; // пишем в сессию пользователя информацию о выбранном варианте отображения // спасибо __alexjk__ за напоминание о том, что эту инфу можно и нужно где-то хранить ;) $this->session->data['viewType'] = "col"; } else { $viewType_tmpl["current"] = $viewType_tmpl["tbl"]; // пишем в сессию пользователя информацию о выбранном варианте отображения // спасибо __alexjk__ за напоминание о том, что эту инфу можно и нужно где-то хранить :( $this->session->data['viewType'] = "tbl"; } //======= б) после $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.model&order=DESC') );но до $url = '';вставляем // ====== $this->data['viewType_default_href'] = $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . $url); // ====== в) меняем все вхождения '/template/product/category.tpl'на '/template/product/'.$viewType_tmpl["current"] = = = = = = = = пользуемся, пишем замечания, дополнения
  9. . http://lmgtfy.com/?q=imagejpeg() т.е. это создание новой jpeg-картинки из того, что у тебя в "буферной переменной", а не из существующего файла.файл, в котором возникает ошибка указан, строки в нем - тоже есть. смотри что там получается. логично. если вкратце, то:при выводе чего-либо (в данном случае - сообщений об ошибках) перед браузер пытается автоматически определить кодировку страницы. так как ошибки на английском - о русских символах в теле документа можно забыть. вспомнилась одна цитатка, возможно есть/была на БАШе.цитировать я не стал... :(
  10. wowkas, вот с этого и надо было начинать. Я вроде ничего больше не делал - теперь уже и не знаю =) Могу предложить два варианта: 1) проверьте на всякий случай файл admin/view/template/catalog/get_ajax_options.tpl тут про checkbox`ы ... <?php } else if ($category_option['type'] == 1) { ?> <?php if ($category_option['category_option_values']) { ?> <?php foreach ($category_option['category_option_values'] as $category_option_value) { ?> <?php if (in_array($category_option_value['value_id'], $product_to_value_id)) { ?> <label><input type="radio" name="product_to_value_id[<?php echo $category_option['option_id']; ?>]" value="<?php echo $category_option_value['value_id']; ?>" checked="checked" /> <?php echo $category_option_value['language'][$language_id]['name']; ?></label> <?php } else { ?> <label><input type="radio" name="product_to_value_id[<?php echo $category_option['option_id']; ?>]" value="<?php echo $category_option_value['value_id']; ?>" /> <?php echo $category_option_value['language'][$language_id]['name']; ?></label> <?php } ?> <?php } ?> <?php } ?> <?php } else if ($category_option['type'] == 2) { ?> ... тут про select имя radio-input`a обязательно должно быть вида name="product_to_value_id[<?php echo $category_option['option_id']; ?>]"именно благодаря <?php echo $category_option['option_id']; ?>имя становится уникальным - ведь у разных групп разные option_id. а "навигация" между radio-input`ами происходит как раз по имени.2) перекачать архив, поставить вручную и сделать FIX, который я предложил.
  11. http://www.cn-software.com/en/docs/cnstats/current/HTML/descr_counters.htm
  12. можно так: 0. делаешь backup базы + файлов магазина; 1. ставишь такую же версию; 2. заливаешь базу из backup`a; если делались изменения в файлах / ставились модули, плагины / еще что: 3. копируешь создавшиеся конфиги в какую-нибудь папку у себя. 4. заливаешь файлы из backup`a поверх с перезаписью; 5. проставляешь заново права на папки/файлы (благо не так много и не в очень разных местах) (смотри install, если не помнишь, что где должно быть); 6. заливаешь поверх сохраненные конфиги. ну или как-то так =) мож кому не понравится такой метод, и может он "малость не оптимален". я похожим способом клонирую сайты локально (когда есть необходимость).
  13. смотрим в сторону PHP unlink(path/to/file);
  14. Я решил эту проблему. Сразу после того, как её опубликовали: :) https://opencartforum.com/viewtopic.php?f=21&t=876&start=50#p7701
  15. смотрим в сторону Нужен ли модуль "фильтр в категории" ?SooR проделал колоссальный труд и отдал почти шедевр в свободный доступ :roll:
  16. DEATH, можно пример проблемы посмотреть? вобще (тему полностью не читал) думаю, что можно сделать "второй файловый менеджер" для работы с файлами отличными от изображений. а тот, который по-умолчанию, оставить для загрузки исключительно фото :roll:
  17. самому пришлось ставить последнюю доступную версию jQuery из-за необходимости использования jQuery-UI.изменения проводил только для каталога catalog/view/theme/default/template/common/header.tpl <!-- --> <!--link type="text/css" href="catalog/view/javascript/jquery/jquery-ui/css/ui-lightness/jquery-ui-1.8.6.custom.css" rel="stylesheet" /--> <link type="text/css" href="catalog/view/javascript/jquery/jquery-ui/css/custom-theme/jquery-ui-1.8.6.custom.css" rel="stylesheet" /> <!-- --> <?php //<script type="text/javascript" src="catalog/view/javascript/jquery/jquery-1.3.2.min.js"></script> ?> <script type="text/javascript" src="catalog/view/javascript/jquery/jquery-ui/js/jquery-1.4.3.min.js"></script> <script type="text/javascript" src="catalog/view/javascript/jquery/thickbox/thickbox-compressed.js"></script> <link rel="stylesheet" type="text/css" href="catalog/view/javascript/jquery/thickbox/thickbox.css" /> <script type="text/javascript" src="catalog/view/javascript/jquery/tab.js"></script> <!-- --> <script type="text/javascript" src="catalog/view/javascript/jquery/jquery-ui/js/jquery-ui-1.8.6.custom.min.js"></script> <!-- -->пока полет нормальный.
  18. пересмотрел свою позицию насчет правки данного кода (: просто "разъединил" обработку действий $('#filters select').live('change', function() { effects('', 'jump', 'icon', 200); //effects('in', 'fade', 'load', 300); loadContent(); }); $('#filters input').live('click', function() { effects('', 'jump', 'icon', 200); //effects('in', 'fade', 'load', 300); loadContent(); });обратите внимание на $('#filters input').live('click', function() { UPD вот уж не знаю, что,где и когда провтыкал, но сейчас у меня IE (чтоб его ###) не работает с этим кодом /* $('#filters select').live('change', function() { effects('', 'jump', 'icon', 200); //effects('in', 'fade', 'load', 300); loadContent(); }); */поэтому я его закомментировал (у меня используются только checkbox`ы) :? = = = кто-нибудь думал над реализацией функционала, упомянутого в сообщении ;) https://opencartforum.com/viewtopic.php?f=21&t=876&start=60#p7846
  19. уж не знаю, как там обстоят дела со скидками, но меня, мягко говоря, смущает блок с названием MyOpencart.Ru на демо-странице, содержащий ссылки на "edition (dot) cnn (dot) com" :roll:
  20. может кто и возьмется, но учитывая я бы хорошо подумал, прежде чем ставить нечто подобное на "продакшн"P.S. а вот такие "умные мысли" в 90% случаев отбивают напрочь желание хотя бы ознакомиться с предложением, не говоря уже о каком-либо сотрудничестве.
  21. Options Update BUG не знаю, почему не видел этот баг раньше, но вот столкнулся: исходные данные: - чистая установка OpenCart 1.4.9.1; - установленный вручную модуль. для дальнейшего усовершенствования модуля забиты такие опции: Действия: решил, что для "Phones & PDAs" маловато вариантов разрешения экрана и хотел было добавить дополнительный вариант "480 x 800". в итоге получил: Error: Duplicate entry '10' for key 1 Error No: 1062 INSERT INTO category_option_value SET option_id = '3', value_id = '10'на скрине ниже (над текстом ошибки) виден кусок вывода отладочной информации.уже поковырялся и добавил в admin / model / catalog / filter.php / public function updateOption($option_id, $data) {} print " <strong>public function updateOption($option_id, $data) {}</strong> <pre>"; print_r($data); print "</pre>"; в этой функции есть такой участок: $this->db->query("DELETE FROM " . DB_PREFIX . "category_option_value WHERE option_id = '" . (int)$option_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "category_option_value_description WHERE option_id = '" . (int)$option_id . "'"); if (isset($data['option_value'])) { foreach ($data['option_value'] as $value_id => $option_value) { $this->db->query("INSERT INTO " . DB_PREFIX . "category_option_value SET option_id = '" . (int)$option_id . "', value_id = '" . (int)$value_id . "'"); foreach ($option_value['language'] as $language_id => $language) { $this->db->query("INSERT INTO " . DB_PREFIX . "category_option_value_description SET value_id = '" . (int)$value_id . "', option_id = '" . (int)$option_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($language['name']) . "'"); } } }все, что находится здесь внутри условия if (isset($data['option_value'])) {и отдает нам указанную выше ошибку.однако корни проблемы растут малость из другого места... :? из строк <?php $option_value_row = 0; ?> ... <?php $option_value_row++; ?> ... <script type="text/javascript"><!-- ... var option_value_row = <?php echo $option_value_row; ?>; function addValue() { html = '<tr id="option_value' + option_value_row + '" class="option">'; html += '<td style="width: 170px;background-color: #F5EFD1;padding:4px;">'; <?php foreach ($languages as $language) { ?> html += '<input type="text" name="option_value[' + option_value_row + '][language][<?php echo $language['language_id']; ?>][name]" value="Значение ' + option_value_row + '" /> <img src="view/image/flags/<?php echo $language['image']; ?>" title="<?php echo $language['name']; ?>" /> '; <?php } ?> html += '</td>'; html += '<td align="center"><a onclick="removeValue(' + option_value_row + ');" class="button"><span>X</span></a></td>'; html += '</tr>'; $('#block_option').append(html); option_value_row++; } ... //--></script> в файле admin / view / template / module / filter_form.tpl .= = = Options Update FIX для себя решил проблему следующим образом: теперь у меня при сохранении значений опций проводится проверка значения "value_id" на предмет содержания текста "new".и если вхождение есть - то выполняем кусок кода, взятый из функции public function addOption($data) {} для вставки именно нового значения опции и получения value_id этого значения. иначе - используется существующий value_id, который, собсно, и был передан в функцию. = = = у кого есть такая проблема - попробуйте пофиксить моим способом :roll: у кого была такая проблема - поделитесь, пожалуйста, своим решением ;) у кого нет и небыло - вам можно только позавидовать :D
  22. эммм... вариант конечно правильный, если думать только о выводе информации. однако при таком подходе движок совершает лишние действия (все равно вытягивает из базы всю информацию, которая нам уже не нужна и которую мы уже не будем выводить). так что советую переработать вот этот участок кода: и либо изменить функцию $this->model_catalog_category->getCategory($category_id);, либо написать другую, которая бы просто проверяла существование категории с заданным ID.и подставить ее вместо вышеуказанной $category_info = $this->model_catalog_category->getCategory($category_id); :roll:
  23. никто не запрещает вам исправить эту ситуацию =) однако позволю себе вкратце пройтись по вашим пунктам: 1) 2) 4) 5) каждый делает так, как ему надо. "jQuery forms + validate" (или как там оно) или "jQuery + JS regExp"и вперед https://opencartforum.com/public/style_emoticons/default/icon_arrow.gif 3) + последнее, без номера) Вы меня конечно извините, но ёлки-моталки, вы ведь должны знать, что, разработкой движка, как такового, занимаются англоязычные разработчики. А из этого уже и вытекает расположение полей "ФИО" - оно просто-напросто не рассчитано на русскоязычных пользователей =) и добавлю от себя: мне, например, важнее Имя и Отчество человека.а фамилия в общем-то чуть ли не побоку. хотя, если вы обращаетесь к своим клиентам "Уважаемый, ФАМИЛИЯ" вместо "Уважаемый, Имя Отчество", то тут я вам не советчик :o
  24. да, согласен надо бы переделать логику, чтобы выборка шла не сплошь по значениям опций, а как-то с группировкой опций: выбрать все продукты, у которых ( option_id_1 [value_id = 2 OR value_id = 3 OR value_id = 7] ) AND ( option_id_4 [value_id = 2 OR value_id = 4 OR value_id = 5] ) AND ( option_id_N [value_id = n OR value_id = n OR value_id = n] ) UPDдумаю стоит посмотреть в сторону UNION, но тут прийдется править вывод опций, сбор/отправку их значений и обработку далее в скриптах... :o над этим можно задуматься позже - сначала надо попробовать реализовать такой функционал.
  25. вот тут к сожалению помочь не могу :o ибо пиляю его под жесткие условия. значит не столкнулись еще с какими-либо сложностями.с чем я вас и могу поздравить :? все, нижеизложенное, является толстым "имхо`м" и не претендует на трактование оного, как единственно верного ответа лепить "наобум" новую альфу|бету|что-то_еще из имеющихся фиксов, мыслей, пожеланий - в данный момент - неразумно. если бы было больше информации от всех, кто использует этот модуль, тогда глядишь и подтянется новая|пофиксеная|улучшенная версия модуля|мануала... до тех пор, имхо, имеют место быть лишь ответы/апдейты на конкретные ошибки, у конкретных пользователей :? https://opencartforum.com/public/style_emoticons/default/icon_arrow.gif
×
×
  • 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.