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

SooR

Users
  • Posts

    1,511
  • Joined

  • Last visited

Everything posted by SooR

  1. Fatal error: Call to undefined function utf8_decode() in /home/valer/data/www/konserva.ru/admin/controller/catalog/product.php on line 987 Не найдена функция utf8_decode() в контроллере admin/controller/catalog/product.php при попытке обращения к ней на строке 987. utf8_decode() - это стандартная функция языка PHP с включенным модулем XML парсера. 100% хостинг. Решение: пишите хостеру чтобы включили XML парсер и работала функция utf8_decode(). ИЛИ удаляйте условие проверки длины вводимых данных в файле /home/valer/data/www/konserva.ru/admin/controller/catalog/product.php вот этот кусок foreach ($this->request->post['product_description'] as $language_id => $value) { if ((strlen(utf8_decode($value['name'])) < 1) || (strlen(utf8_decode($value['name'])) > 255)) { $this->error['name'][$language_id] = $this->language->get('error_name'); } } if ((strlen(utf8_decode($this->request->post['model'])) < 1) || (strlen(utf8_decode($this->request->post['model'])) > 64)) { $this->error['model'] = $this->language->get('error_model'); }
  2. Ну разумеется не передается, вы наверное не заметили внизу шаблона скрипт отправки get в контроллер? if ($('#on_id').attr('checked')) { url += '&on_id=1'; } Это добавить после if ($('#description').attr('checked')) { url += '&description=1'; }И не забудьте присвоить чекбоксу id="on_id". На счет "не все находит", есть два способа: Возможно нужно принудительно указать тип переменной для $sql .= " AND pd.product_id = '" . $this->db->escape($keyword) . "'"; т.е. выйдет $sql .= " AND pd.product_id = '" . (int)$keyword . "'"; Хоть я не уверен в правильности такого решения. Второй способ глупый, но быстрый. Сымитируйте синтаксическую ошибку запроса SQL (напр указанием product_i вместо product_id) и посмотрите в дебаге что хочет вставить модель в запрос, когда дело касается поиска по id. Возможно, что кроме числа передается пробел или что-то левое.
  3. Конечно. Здесь напишу пошагово, если администрация не против.
  4. Ну правильно. Делаешь чекбокс в шаблоне <legend><input type="checkbox" name="on_id" value="" />По id (артикулу)</legend>в модели catalogmodelcatalogproduct.php, в методе public function getProductsByKeyword добавь после аргумента $description = FALSE, вот это $on_id = FALSE,В этом же методе, замени конструкцию if (!$description) { $sql .= " AND (LCASE(pd.name) LIKE '%" . $this->db->escape(strtolower($keyword)) . "%'";} else { $sql .= " AND (LCASE(pd.name) LIKE '%" . $this->db->escape(strtolower($keyword)) . "%' OR LCASE(pd.description) LIKE '%" . $this->db->escape(strtolower($keyword)) . "%')";}на эту if ($description) { $sql .= " AND (LCASE(pd.name) LIKE '%" . $this->db->escape(strtolower($keyword)) . "%' OR LCASE(pd.description) LIKE '%" . $this->db->escape(strtolower($keyword)) . "%')";} elseif ($on_id) { $sql .= " AND pd.product_id = '" . $this->db->escape($keyword) . "'";} else { $sql .= " AND (LCASE(pd.name) LIKE '%" . $this->db->escape(strtolower($keyword)) . "%'";}после этого осталось изменить путем копипаста контроллер сatalog/controller/product/search.phpпо аналогии с description
  5. Эммм... а смысл тогда вводить название, если знать id?Не совсем понятно "если не нашел по названию, то нашел по product_id".По id то понятно что найдет)Я думал вы имеете ввиду, чтобы человек не парился с приблизительным поиском, то введя id он гарантированно попадет на нужный ему товар!?
  6. Ну если принципиально забивать в $keyword еще и product_id, то массивом. Почему бы не сделать по аналогии с category_id? Тогда запрос выглядит как product/search&keyword=''&category_id=0&product_id=1234
  7. Если хоть немного в ремесле разбираетесь, то чат установить не составит труда. К примеру, воспользуйтесь этим готовым решением http://www.ajaxdaddy.com/demo-jquery-shoutbox.html Еще есть такой вариант http://www.freeshoutbox.net/ такой http://borisding.com/projects/qshout/ это лучшее что видел http://tutorialzine.com/2010/10/ajax-web-chat-css-jquery/ Для "выставления" товаров нужно несколько дописать скрипт магазина. Просто модуля пока не видел.
  8. Если вам нужен не навороченный форум, то могу поделиться своей собственной работой - форум для opencart.Использует общие с opencart библиотеки, модели, не требует интеграции, просто копирование файлов и запрос бд. Осталось добавить формы в админку. Вскоре выложу как дополнение.
  9. Ну в общем с этим я тоже боролся. В итоге делаю пока примитивным дополнением таблицы product полями-критериями для конкретной задачи, а потом в модели и контроллере дописываю необходимые критерии. Вот что получилось в двух проектах http://svobodamusic.net/music (нажать на фильтр материала) и http://poliit.com.ua/index.php?route=product/category Оба c AJAX. В дальнейшем, хочу реализовать кастомное добавление опций и значений, при чем опции могут быть разных типов: чекбокс, радио, селект, слайдер и слайдер-диапазон. Можно еще текстовое поле с keyup, но есть поиск. Хотя если реализовать так фильтр, то нужда в поиске исчезнет. Теперь вот думаю, что же выбрать, добавление полей ALTER'ом, что уж совсем низко, или же value_to_product.
  10. http://bijouri.ru/busy-belye-konfetkiхотяб css пофикси.Модуль новостей мне удобней было писать в information.Т.е. структура такова information/news - всеinformation/news&news_id=32423424 если есть $_GET['news_id'] . . .
  11. Моя городость )) 1. http://svobodamusic.net/index.php 2. Давно было, 1.4 ровно вродь. 3. эх, к сожалению теперь нулевая, в нашей гр-ной стране не фунциклирует цифровая подпись. 4. hostpro.ua, план Лучший 5. Торговая площадка авторской музыкой / аранжировками / джинглами и пр. Делал на заказ. Подразумевался как клон http://audiojungle.net/. Но решили по-другому. Что было изменено и добавлено: Изменен вход в систему. Добавлены поля в регистрацию. AJAX фильтр и листалка в категории. Регистрация как автором так и пользователем. Авторы могут заливать свои треки, автоматические присвоение стоимости файлу, исходя из длительности и привязанных форматов. Автоматический расчет процентной ставки для автора, учитывая количество проданного. Биллинговая панель с личным счетом. И многое другое... в общем от опенкарта осталось ядро и библиотека) 1. http://poliit.com.ua 2. Честно, не помню, одна из последних (у меня несколько версий, с и без storage) 3. пока 30-50 чел 4. hostpro.ua, план Именинник (висят еще 4 сайта) 5. Одежда. Прикрутил лупу для увеличения, AJAX листалку, AJAX фильтр по фиксированным критериям, прайс-лист. Дизайнер с меня фиговый, но в коде попыхтел. 1. http://a-3.od.ua 2. Одна из последних 3. 40-50 чел 4. hostpro.ua, план Именинник (висят еще 4 сайта) 5. Архитектурная студия. Сайт портфолио. Куча графики и jQuery, это не магазин, но платформа идеальна и для галереи. 1. http://guitarsound.com.ua (реворк http://muztang.com.ua, который был на медленном виртуалмарте) 2. Одна из последних 3. 40-50 чел 4. hostpro.ua, план Оптима 5. Продажа аудиотехники. Прикрутил новости, статьи с категориями, SEO к новостям и статьям и их категориям, изменил положение корзины и сделал возможным добавлять товары из категории. Существенный редизайн интерфейса стандартного OpenCart, смотрите в общем. Есть еще пару проектов, но пока не в действии. По любым вопросам и поделкам можете обращаться ко мне в личку, помогу чем смогу, поделюсь кодом.
  12. Псевдонимы... псевдонимы... пора бы написать автотранслит. Минутное дело.Тем кто жалуется: есть две причины не работы SEO URL1. htaccess--1.1 Не удалено расширение ".txt" файла .htaccess--1.2 На хостинге не работает RewriteEngine On2. Не прописаны вручную каждому товару или категории псевдонимы в админке.
  13. Я не проверял, но теоретически это должно работать.Замени в catalogmodeltoolseo_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'];} else {return $link;}}unset($data[$key]);}на это} elseif ($key == 'path') {$categories = explode('_', $value);$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = 'category_id=" . (int)end($categories) . "'");if ($query->num_rows) {$url .= '/' . $query->row['keyword'];} else {return $link;}unset($data[$key]);}
  14. yandex-lexa Где ты там ансет увидел? Может в оочень старой версии? В новых нету. Да и он там не нужен, т.к. в } elseif ($key == 'path') {входит unset($data[$key]);
  15. Создавая очередной магазин на Opencart, наткнулся на раздражающую проблему с дочерними категориями и присваивания им ссылок ЧПУ. Если в категории с введенным полем "Псевдоним" (напр. computers) создать подкатегорию и не заполнять в ней поле "Псевдоним", то когда мы зайдем в категорию http://mysite.com/computers и захотим перейти в её дочернюю категорию - ничего не получится, мы останемся в этой же категории http://mysite.com/computers, а ссылка на дочернюю категорию будет вида http://mysite.com/computers, т.е. своего родителя, а не обычная ссылка без SEO_URL. Т.е. вы сможете перейти в дочернюю категорию с включенным SEO_URL только после присвоения дочерней категории псевдонима для ЧПУ. А если нам это не надо? Тогда, открываем файл ./catalog/model/tool/seo_url.php И заменяем в нем условие (line 28) if ($query->num_rows) { $url .= '/' . $query->row['keyword']; }на if ($query->num_rows) { $url .= '/' . $query->row['keyword']; } else {return $link;}
  16. В общем решил пока временным способом, разселив конфликтующие данные в разные таблицы.Теперь для входа используется customer, а остальная инфа в customer_info, поправив модели.Конечно, это крайне не удобно, но время поджимает.Пофиксю окончательно - напишу здесь что было.
  17. Да в принципе проблема ясна - не логинит, если в поле обновилась колонка. Всё. Если обновилась - тупо не отдает $customer_query->num_rows (ну и подельшее) в systemlibrarycustomer.php. А изменял я.... что я только не изменял. Почти всё ) кроме engine, и всё до этого момента работало нормально. Таблица customer выглядит сейчас так: CREATE TABLE IF NOT EXISTS `customer` ( `customer_id` int(11) NOT NULL auto_increment, `firstname` varchar(96) collate utf8_unicode_ci NOT NULL, `count_money` decimal(15,2) NOT NULL default '0.00', `sale_sum` decimal(15,2) NOT NULL default '0.00', `sales` int(11) NOT NULL default '0', `email` varchar(96) collate utf8_unicode_ci NOT NULL default '', `homepage` varchar(96) collate utf8_unicode_ci NOT NULL default '', `city` varchar(96) collate utf8_unicode_ci NOT NULL default '', `icq` varchar(32) collate utf8_unicode_ci NOT NULL default '', `welcome` varchar(256) collate utf8_unicode_ci NOT NULL default '', `wmz` varchar(96) collate utf8_unicode_ci NOT NULL, `avatar` varchar(256) collate utf8_unicode_ci NOT NULL default '', `password` varchar(40) collate utf8_unicode_ci NOT NULL default '', `newsletter` int(1) NOT NULL default '0', `exclusive` int(1) NOT NULL default '0', `status` int(1) NOT NULL, `group_id` int(1) NOT NULL, `ip` varchar(15) collate utf8_unicode_ci NOT NULL default '0', `date_added` datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`customer_id`), UNIQUE KEY `customer_id` (`customer_id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ; И такая беда появилась примерно после добавления колонки exclusive. Но параллельно этому, мог еще что начудить ( Уже менял systemlibrarycustomer.php на оригинал, меня контроллер login.php на оригинал и все-равно не пускает. Думал что в БД хостера проблема, но на денвере тоже. php отвечает всем требованиям движка.
  18. Люди, возникла проблемка идиотского характера. Я добавил несколько полей в таблицу customer с возможностью редактирования таковых из страницы профиля. Если зарегенный юзер выйдет из системы, не изменяв преждевременно свои данные, то сможет снова благополучно зайти в систему, но если изменил хотя бы одно поле, то при логине в сайт получит "Ошибка: не заполнены поля E-Mail и/или пароль". Мучаюсь уже второй день. При чём, дело не в model и не в controller'е, а именно в БД, т.к если даже с PhpMyAdmin изменить хоть одно поле, юзера снова не впустит. Что может быть? Я уже понятия не имею...
×
×
  • 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.