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

tolkodelo

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

    65
  • З нами

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

Усі публікації користувача tolkodelo

  1. Все, понял. Я в первом месте получал нужные ID (с сортировкой по sort_order), потом искал в category_description их имена, там видимо сортировка и терялась. Сделал вот так: //Есть массив категорий верхнего уровня - $ancestor $children = $third_children = array(); //Получаем категории второго уровния: ID и NAME $sql = 'SELECT oc_category.category_id, name FROM oc_category, oc_category_description WHERE oc_category.parent_id=' . $ancestor . ' AND oc_category_description.category_id= oc_category.category_id AND status=1 ORDER BY sort_order ASC '; //Обрабатываем категории второго уровня foreach ($this->db->query($sql)->rows as $second_level_item) { $second_level_data = $second_level_item; //Имя и ID категории для меню второго уровня //Данные для третьего уровня $sql = 'SELECT oc_category.category_id, name FROM oc_category, oc_category_description WHERE oc_category.parent_id=' . $second_level_item['category_id'] . ' AND oc_category_description.category_id= oc_category.category_id AND status=1 ORDER BY sort_order ASC '; //Обрабатываем категории третьего уровня: ID, NAME и массив дочерних foreach ($this->db->query($sql)->rows as $value) { $sql = 'SELECT oc_category.category_id, name FROM oc_category, oc_category_description WHERE oc_category.parent_id=' . $value['category_id'] . ' AND oc_category_description.category_id= oc_category.category_id AND status=1 ORDER BY sort_order ASC '; $third_children[] = array( 'name' => $value['name'], 'id' => $value['category_id'], 'children' => $this->db->query($sql)->rows); }; //пишем массив $children[] = array( 'id' => $second_level_item['category_id'], 'name' => $second_level_item['name'], 'children' => $third_children ); }; return $children; Заработало
  2. Написал свой файл модели, который берет из базы 4 уровня категорий для вставки в меню. В model у меня такая строка запроса: 'SELECT category_id FROM oc_category WHERE parent_id="' . (переменная) . '" AND status="1" ORDER BY sort_order ASC'; Если поставить в модели print_r([переменная, которую возвращает функция]), выдает найденный массив в порядке, установленном sort_order: Array ( [0] => Array ( [category_id] => 222, [sort_order] => 10 ), [1] => Array ( [category_id] => 111, [sort_order] => 20 ) ) В контроллере код такого вида: foreach ((массив id родительских категорий) as $parent_category) { $menu_children = $this->model_additional_categories->get_category_children($parent_category['id']); $data['menu_children'][] = (!empty($menu_children))? array('parent_category' => $parent_category['id'], 'children' => $menu_children) : 'void'; } После того, как данные проходят через контроллер хедера, сортировка меняется на сортировку по id категории... Array ( [0] => Array ( [category_id] => 111, [sort_order] => 20 ), [1] => Array ( [category_id] => 222, [sort_order] => 10 ) ) Не понимаю, как с этим побороться. Как OC меняет сортировку, и что бы с этим сделать? Нужна сортировка по sort_order в этом месте
  3. В общем, я пытался сделать так: $sql = 'SELECT name FROM category_description WHERE category_id="121")'; $db = $this->db->query($sql); $categories[] = array('id' => implode($value), 'name' => $db); а надо было так, не учел что $db это объект: $db = $this->db->query($sql); $row = $db->rows; $categories[] = array('id' => implode($value), 'name' =>$db->row['name']); Что конечно не объясняет массива без ключей вообще (не с пустыми именами ключей, а вообще). Но хоть проблему решил.
  4. print_r($test); // выдает array(=> array(=> элемент1) => array(=> элемент2)) print_r($test['0']); //выдает array(=> элемент1) print_r($test['0']['0']); // ошибка Undefined offset Хмммм.......
  5. Я со скрипом разбираюсь в MVC Opencart, вот главная затея... Задача, которую я взял: получить из базы и вывести категории, у которых нет родителей. Ага, thentru, понял насчет боковой колонки, это случай когда мы берем шаблон и с ним работаем в контроллере. Вроде бы с вашей ангельской помощью разобрался с выводом переменной, теперь вот ломаю голову над чем. В модели: //получаем несколько имен категорий из базы $sql = 'SELECT name FROM shop_category_description WHERE category_id IN (1,2,3,4,5)'; $names = $this->db->query($sql); foreach($names->rows as $value){ $categories[] = $value; } return $categories; В контроллере хедера: $this->load->model("additional/categories"); $data['test'] = $this->model_additional_categories->get_parentless_categories(); В шаблоне print_r($test); И он мне выдает массив с неназванными ключами, т.е. Array( => Array( => Категория 1 ) => Array( => Категория 2 ) ) Я пытался сделать : $i = 0; foreach($parentless_categories_names as $name){ $data['test'][$i] = implode($name); $i++; } Результата ноль
  6. А если я хочу написать чисто свой контроллер? (Разбираюсь с MVC). Могу ли я подключить его потом в header через $data['test2'] = $this->load->controller('additional/parents');? Или по-другому, могу ли я прописать в своем новом контроллере что-то типа return $this->load->view('common/header', $data);
  7. Я вообще то делаю? Мне нужно переменную из контроллера вывести в шаблоне header
  8. Сделал, все равно undefined variable: <?php class ControllerAdditionalParents extends Controller{ public function index() { $data['test'] = "Тестовая переменная"; $this->template = $this->config->get('config_template') . '/template/common/header.tpl'; if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/header.tpl')) { $this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/common/header.tpl', $data)); } else { $this->response->setOutput($this->load->view('default/template/common/header.tpl', $data)); } } } ?>
  9. Смотрите, вот что я пишу. в файле controller/additional/parents.php <?php class ControllerAdditionalParents extends Controller{ public function index() { $data['test'] = "Тестовая переменная"; $this->template = $this->config->get('config_template') . '/template/common/header.tpl'; $this->response->setOutput($this->render()); } } ?> В common/header.tpl: <?php echo $test;?> Выдает Notice: Undefined variable: test Что ему не так?
  10. Стал выкладывать сюда код и увидел... Затесался странный апостроф в строку sql запроса! Убрал, заработало. Спасибо, уважаемые!!! )))) Сколько раз я подбирался к MVC опенкарта и бросал )) А есть подробная документация "от разработчиков" по Opencart? Типа как Кодекс ВордПресс? Вот например Chukcha писал " Так случилось, что переменная $data в ОС "зарезервирована" для шаблона " - нигде раньше я об этом не читал.
  11. Слушайте, а я писал переменные внутри вот этого метода: class ControllerSimpleBlogArticle extends Controller { public function index() { /*.........*/ }} Внутри метода index поместил код "$foo = 'bar'; var_dump($foo);" - не выводит. Внутри метода view выводит. Методы внутри контроллеров вообще идут стандартные? Вообще, есть для Опенкарта что-то типа Кодекса, как для Вордпресса? Теперь дальше: //Внутри метода view прописал переменную $data['articleCategories'] = 'bar'; в шаблоне она успешно ВЫВОДИТСЯ: echo $articleCategories; //НО! Вот так не выводится - получаю БЕЛЫЙ ЭКРАН $data['articleCategories'] = $this->model_simple_blog_article->getCategoryForBreadcrumbs($simple_blog_article_id); //при этом на строку выше стоит, и ведь работает: $article_info = $this->model_simple_blog_article->getArticle($simple_blog_article_id); А в модели рядом стоят: public function getCategoryForBreadcrumbs($article_id = 0) { /*.......*/} public function getArticles($data = array()) { /*.......*/} Ну где же я косячу ((((
  12. n3bo, chukcha, спасибо за ответ! Да, я видел, что рядом в коде так передается, ставил. Может быть, тогда делал ошибку в другом месте. Пробую... Ну вот - в контроллере поставил $data['articleCategories'] = $this->model_simple_blog_article->getCategoryForBreadcrumbs($this->request->get['simple_blog_article_id']); В шаблоне я должен поставить $data['articleCategories'] или $articleCategories? В любом случае мне выдает undefined variable И еще.... А почему я вижу в коде рядом? - //контроллер $article_info = $this->model_simple_blog_article->getArticle($simple_blog_article_id); if($article_info) { $this->document->setTitle($article_info['article_title']); $this->document->setDescription($article_info['meta_description']); $this->document->setKeywords($article_info['meta_keyword']); if ($article_info['description']) { if (method_exists($this->document, 'add_AddThisMeta')) { $this->document->add_AddThisMeta('description', str_replace('"', '\'', strip_tags(html_entity_decode($article_info['description'], ENT_QUOTES, 'UTF-8')))); } } $data['article_info_found'] = $article_info; } //шаблон <?php if (isset($article_info_found)) { ?> <article class="article-info"> <div class="article-title"> <h1><?php echo $article_info['article_title'] ?></h1> </div> <div class="article-sub-title"> <span class="article-date material-design-clock100"><?php echo $article_date_modified; ?></span> <?php if ($article_info['allow_comment']) { /*...*/ } /*...*/ } ?> И оно работает
  13. Дорогие, уважаемые форумчане, помогите пожалуйста разобраться, как работает схема MVC в opencart! С какого боку к ней не подбирался, ничего не получается ( идея вроде понятна, но ничего из того, что пишу, не работает. Например. В теме есть блог. Мне надо добавить в навигационную цепочку (breadcrumbs) пункт, обозначающий категорию статьи в блоге/ Собрал по анаогии с существующими функциями. В файле model пишу: class ModelSimpleBlogArticle extends Model { public function getCategoryForBreadcrumbs($article_id = 0) { $sql = $this->db->query("SELECT * FROM `" . DB_PREFIX . "simple_blog_article_to_category WHERE simple_blog_article_id=" . $article_id); return $sql->rows; } } в файле controller пишу: $articleCategories = $this->model_simple_blog_article->getCategoryForBreadcrumbs($this->request->get['simple_blog_article_id']); в шаблоне пишу (чтобы проверить себя): <?php print_r($articleCategories); ?> Выдает мне "undefined variable". Что не так делаю?...
  14. 3.0.8. строка 492 <file path="catalog/view/theme/moneymaker2/template/product/product.tpl" error="skip"> в пути указано название темы и еще у меня нет варианта "=" в админке при установлении цены опции
  15. 1. Планируется иметь несколько поставщиков. Нужен модуль, который позволит делать экспорт товаров от нескольких поставщиков одних и тех же товаров, чтобы из них выбирался и ставился на продажу самый дешевый на данный момент, а несовпадающие ставились все вместе (сравнение,например, по модели). +Товар какого поставщика покупается, тому и отсылается уведомление по email. 2. Надо при проведении заказа одновременно рассылать два уведомления - одно поставщику, другое курьерской компании. Разных - курьерской компании можно не знать данные о стоимости заказа, а вот адрес, к какому поставщику ехать - важно. Может ли кто такое написать и за сколько какой модуль? Скромные пишите в личку ;) Спасибо
  16. первый точно специфичный :) Кстати, Fix305, спасибо за ответ :) Интересно, почему никто еще такой темы не поднял по первому пункту? Вроде естественно: чем иметь одного поставщика, у которого на складе может закончиться товар, лучше иметь 10 и прописать систему "маршрутизации" :) заказов Пятый пункт: ну, мое решение как чайника - прикрутить на сайте в отдельную папку wordpress, создать там страницу контактов, и делать ссылки с магазина... Третий пункт нашел! Пятый - попробую, когда наконец найду, что установить :) В общем, один очень конкретный вывод: таких модулей готовых нет. А на специально написанные еще предстоит заработать... :)
  17. ну, платое-то решение завсегда найдется :) Хотя чего здесь сильно специфичного? Например, про бланк заказа даже я мог бы сам решить - было бы достаточно коряво, но действовало бы. Скажите тогда уж про цены, раз намекнули :) Можно в личку, если хотите...
  18. Добрый день, Знаком с OpenCart два дня Теперь ищу несколько модулей, которые требуются для моего будущего магазина. Поиском пользовался, но не знаю, что именно искать, поэтому результаты меня не удовлетворили. Хотелось бы узнать про наличие модулей со следующими функциями: 1. Планируется иметь несколько поставщиков. Есть ли модуль, который позволит делать экспорт товаров от нескольких поставщиков одних и тех же товаров, чтобы из них выбирался и ставился на продажу самый дешевый на данный момент? 2. Надо включить цену доставки в стоимость товара (Чтобы не указывалась отдельной строкой). Пока что удалось этого достичь только включением для товара опций "Требуется ли доставка? нет; да+100 руб". Может ли это делаться автоматически? (ведь надо еще учитывать габариты и массу, проставлять вручную опции не удобно ни мне, ни клиенту) 3. Есть ли возможность при проведении заказа одновременно рассылать два уведомления - одно поставщику, другое курьерской компании? 4.на сайте планируются не только товары, но и услуги. Можно ли поставить модуль бланка заказа (типа как форма для контактов), чтобы человек также мог заказать, например, выезд специалиста для оценки стоимости работ, или заполнить заявку, по результатам которой с ним связывается менеджер? 5.И последнее: можно ли в админке сделать поиск и установку модулей, как например, в wordpress? Или хотя бы загрузку с компьютера? Что-то я пока не разобрался, как их устанавливать... Заранее большое спасибо. Если есть существующие темы, буду очень благодарен за ссылки. Артем, Красноярск
×
×
  • Створити...

Important Information

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