-
Posts
11,658 -
Joined
-
Last visited
Content Type
Profiles
Forums
Marketplace
Articles
FAQ
Our New
Store
Blogs
module__dplus_manager
Everything posted by afwollis
-
там расписано как делать похожее ;) где и кому давать возможность вводить данные и в какое доп.поле - дело ваше. все можно адаптировать примерно так: доп.столбец в таблицу заказов (корзину) поле для ввода доп.информации в шаблоне продукта или еще где. далее проверка и добавление информации. в админке в заказах вывод информации из доп.столбца таблицы заказов. если лень разбираться или вобще не понимаете, что делать, то: 1) если вам это надо срочно - закажите кому-то; 2) если для вас это не срочный вопрос - ждите, пока кто-нибудь сделает что-то такое.
-
Помогите не могу попасть в Админку
afwollis replied to Casar's topic in Встановлення, оновлення, налаштування
1. оформляйте текст ошибок в CODE тэг. 2. проверяем существование файла /ххх/shop/system/database/mysql.php 3. если его нет - перезаливаем эту папку. если он есть - проверяем права (обычно - 644 на файлы достаточно) вроде все -
shoma, верите? - в глаза не видел тот модуль :( ну и соответственно ничего сказать не могу насчет вашего запроса ;)
-
;) Дополнительные поля продукта
-
1) поищите по слову "меню" на форуме. масса тем. 2) ознакомьтесь со структурой движка - MVC. почитайте что это такое (можно на wiki) загляните в конце концов в FAQ
-
спасибо 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.
-
в ЛС я вам в общем-то ответил. если что - стучитесь по указанным контактам.лишь отмечу здесь, что я там где-то выше писал (возможно - позже того, как опубликовал тот свой fix) - работаю над вручную установленным (архив "Openstore_module_product_filter_1.0_(manual_install).rar") оригинальным модулем
-
. Делаем возможность выбора из двух вариантов отображения товара: табличный или колоночный шаг #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"] = = = = = = = = пользуемся, пишем замечания, дополнения
-
. http://lmgtfy.com/?q=imagejpeg() т.е. это создание новой jpeg-картинки из того, что у тебя в "буферной переменной", а не из существующего файла.файл, в котором возникает ошибка указан, строки в нем - тоже есть. смотри что там получается. логично. если вкратце, то:при выводе чего-либо (в данном случае - сообщений об ошибках) перед браузер пытается автоматически определить кодировку страницы. так как ошибки на английском - о русских символах в теле документа можно забыть. вспомнилась одна цитатка, возможно есть/была на БАШе.цитировать я не стал... :(
-
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, который я предложил.
-
http://www.cn-software.com/en/docs/cnstats/current/HTML/descr_counters.htm
-
можно так: 0. делаешь backup базы + файлов магазина; 1. ставишь такую же версию; 2. заливаешь базу из backup`a; если делались изменения в файлах / ставились модули, плагины / еще что: 3. копируешь создавшиеся конфиги в какую-нибудь папку у себя. 4. заливаешь файлы из backup`a поверх с перезаписью; 5. проставляешь заново права на папки/файлы (благо не так много и не в очень разных местах) (смотри install, если не помнишь, что где должно быть); 6. заливаешь поверх сохраненные конфиги. ну или как-то так =) мож кому не понравится такой метод, и может он "малость не оптимален". я похожим способом клонирую сайты локально (когда есть необходимость).
-
смотрим в сторону PHP unlink(path/to/file);
-
Я решил эту проблему. Сразу после того, как её опубликовали: :) https://opencartforum.com/viewtopic.php?f=21&t=876&start=50#p7701
-
смотрим в сторону Нужен ли модуль "фильтр в категории" ?SooR проделал колоссальный труд и отдал почти шедевр в свободный доступ :roll:
-
DEATH, можно пример проблемы посмотреть? вобще (тему полностью не читал) думаю, что можно сделать "второй файловый менеджер" для работы с файлами отличными от изображений. а тот, который по-умолчанию, оставить для загрузки исключительно фото :roll:
-
самому пришлось ставить последнюю доступную версию 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> <!-- -->пока полет нормальный.
-
пересмотрел свою позицию насчет правки данного кода (: просто "разъединил" обработку действий $('#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
-
уж не знаю, как там обстоят дела со скидками, но меня, мягко говоря, смущает блок с названием MyOpencart.Ru на демо-странице, содержащий ссылки на "edition (dot) cnn (dot) com" :roll:
-
может кто и возьмется, но учитывая я бы хорошо подумал, прежде чем ставить нечто подобное на "продакшн"P.S. а вот такие "умные мысли" в 90% случаев отбивают напрочь желание хотя бы ознакомиться с предложением, не говоря уже о каком-либо сотрудничестве.
-
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
-
эммм... вариант конечно правильный, если думать только о выводе информации. однако при таком подходе движок совершает лишние действия (все равно вытягивает из базы всю информацию, которая нам уже не нужна и которую мы уже не будем выводить). так что советую переработать вот этот участок кода: и либо изменить функцию $this->model_catalog_category->getCategory($category_id);, либо написать другую, которая бы просто проверяла существование категории с заданным ID.и подставить ее вместо вышеуказанной $category_info = $this->model_catalog_category->getCategory($category_id); :roll:
-
никто не запрещает вам исправить эту ситуацию =) однако позволю себе вкратце пройтись по вашим пунктам: 1) 2) 4) 5) каждый делает так, как ему надо. "jQuery forms + validate" (или как там оно) или "jQuery + JS regExp"и вперед https://opencartforum.com/public/style_emoticons/default/icon_arrow.gif 3) + последнее, без номера) Вы меня конечно извините, но ёлки-моталки, вы ведь должны знать, что, разработкой движка, как такового, занимаются англоязычные разработчики. А из этого уже и вытекает расположение полей "ФИО" - оно просто-напросто не рассчитано на русскоязычных пользователей =) и добавлю от себя: мне, например, важнее Имя и Отчество человека.а фамилия в общем-то чуть ли не побоку. хотя, если вы обращаетесь к своим клиентам "Уважаемый, ФАМИЛИЯ" вместо "Уважаемый, Имя Отчество", то тут я вам не советчик :o
-
да, согласен надо бы переделать логику, чтобы выборка шла не сплошь по значениям опций, а как-то с группировкой опций: выбрать все продукты, у которых ( 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 над этим можно задуматься позже - сначала надо попробовать реализовать такой функционал.
-
вот тут к сожалению помочь не могу :o ибо пиляю его под жесткие условия. значит не столкнулись еще с какими-либо сложностями.с чем я вас и могу поздравить :? все, нижеизложенное, является толстым "имхо`м" и не претендует на трактование оного, как единственно верного ответа лепить "наобум" новую альфу|бету|что-то_еще из имеющихся фиксов, мыслей, пожеланий - в данный момент - неразумно. если бы было больше информации от всех, кто использует этот модуль, тогда глядишь и подтянется новая|пофиксеная|улучшенная версия модуля|мануала... до тех пор, имхо, имеют место быть лишь ответы/апдейты на конкретные ошибки, у конкретных пользователей :? https://opencartforum.com/public/style_emoticons/default/icon_arrow.gif