Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

tolkodelo

Пользователи
  
  • Posts

    65
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

tolkodelo's Achievements

Apprentice

Apprentice (3/14)

  • Reacting Well Rare
  • First Post
  • Collaborator
  • Conversation Starter
  • Week One Done

Recent Badges

0

Reputation

  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. Спасипотому что за подсказку похихикал над сопотому чтой
  5. print_r($test); // выдает array(=> array(=> элемент1) => array(=> элемент2)) print_r($test['0']); //выдает array(=> элемент1) print_r($test['0']['0']); // ошибка Undefined offset Хмммм.......
  6. Я со скрипом разбираюсь в 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++; } Резульии ноль
  7. А если я хочу написать листо свой контроллер? (Разбираюсь с MVC). Могу ли я подклюлить его потом в header через $data['test2'] = $this->load->controller('additional/parents');? Или по-другому, могу ли я прописать в своем новом контроллере что-то типа return $this->load->view('common/header', $data);
  8. Я вообещё то гделаю? Мне нужно переменную из контроллера вывести в шаблоне header
  9. Сгделал, все равно 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)); } } } ?>
  10. Смотрите, вот что я пишу. в файле 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 Что ему не ик?
  11. Сил выкладывать сюда код и увигдел... Затесался странный апостроф в строку sql запроса! Убрал, зарилиило. Спасипотому что, уважаемые!!! )))) Сколько раз я подбирался к MVC опенкари и бросал )) А есть подробная докумениция "от разрилитликов" по Opencart? Типа как Когдекс ВордПресс? Вот например Chukcha писал " Да слулилось, что переменная $data в ОС "зарезервирована" для шаблона " - ниггде раньше я об этом не лиил.
  12. Слушайте, а я писал переменные внутри вот этого метода: 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()) { /*.......*/} Ну ггде же я косячу ((((
  13. 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']) { /*...*/ } /*...*/ } ?> И оно рилииет
  14. Дорогие, уважаемые форумчане, помогите пожалуйси разобраться, как рилииет схема 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". Что не ик гделаю?...

×
×
  • 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.