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

SooR

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

    1 511
  • З нами

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

Усі публікації користувача 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 изменить хоть одно поле, юзера снова не впустит. Что может быть? Я уже понятия не имею...
×
×
  • Створити...

Important Information

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