Joomla 2.5 Вывод товаров подкатегории в категории

Тема в разделе "Управление товарами, атрибутами, свойствами и цена", создана пользователем Dark19, 11.01.2015.

  1. woojin
    Offline

    woojin Местный Команда форума => Cпециалист <=

    Регистрация:
    31.05.2009
    Сообщения:
    3 204
    Симпатии:
    334
    Пол:
    Мужской
    аааа, блин, извини!
    я тут децл ошибся :oops:, надо не так писать
    Код (PHP):
    1. $cids=explode(',',$catIds);

    а вот так
    Код (PHP):
    1. $cids=implode(',',$catIds);
     
  2. Dark19
    Offline

    Dark19 Пользователь

    Регистрация:
    18.08.2014
    Сообщения:
    55
    Симпатии:
    0
    еще вопрос: а как этот список
    Код (PHP):
    1. $db->loadObjectList();
    вывести по 1 айди?

    Пишу так:
    Код (PHP):
    1. $results = $db->loadObjectList();
    2. $prodIds[] = $results->virtuemart_product_id;print_r($prodIds);

    в $results есть айдишники, а в $prodIds уже пусто
     
  3. woojin
    Offline

    woojin Местный Команда форума => Cпециалист <=

    Регистрация:
    31.05.2009
    Сообщения:
    3 204
    Симпатии:
    334
    Пол:
    Мужской
    опять на те же грабли наступаешь:
    я же писал:
    эта функция выдаёт массив объектов, а не объект с одним полем в котом список ID

    и почитай описание функции loadObjectList(); в libraries\joomla\database\database.php строки 1079-1122

    P.S. читай всё что пишут внимательнее
     
  4. Dark19
    Offline

    Dark19 Пользователь

    Регистрация:
    18.08.2014
    Сообщения:
    55
    Симпатии:
    0
    там получается, что в переменной $results есть айдишники, а в $prodIds уже пусто
     
    Последнее редактирование: 26.01.2015
  5. woojin
    Offline

    woojin Местный Команда форума => Cпециалист <=

    Регистрация:
    31.05.2009
    Сообщения:
    3 204
    Симпатии:
    334
    Пол:
    Мужской
    выложи сюда var_dump переменной results
    после этого будем говорить, если по другому не желаешь понимать что ты не так делаешь
     
  6. Dark19
    Offline

    Dark19 Пользователь

    Регистрация:
    18.08.2014
    Сообщения:
    55
    Симпатии:
    0
    var_dump($results) выдает такое:
    а var_dump($results->virtuemart_product_id) уже NULL
     
  7. woojin
    Offline

    woojin Местный Команда форума => Cпециалист <=

    Регистрация:
    31.05.2009
    Сообщения:
    3 204
    Симпатии:
    334
    Пол:
    Мужской
    да ёптиль!
    ты не видишь свою ошибку что ли?
    к массиву обращаются по индексу (это то что ставится в квадратных скобках)
    а к объекту по имени поля после ->
    и у массива нет свойства "->"
    Код (CODE):
    1. array(3) {
    2.     [0]=> object(stdClass)#503 (1) {
    3.       ["virtuemart_product_id"]=> string(1) "2"
    4.    }
    5.    [1]=> object(stdClass)#504 (1) {
    6.       ["virtuemart_product_id"]=> string(1) "4"
    7.    }
    8.    [2]=> object(stdClass)#505 (1) {
    9.       ["virtuemart_product_id"]=> string(2) "11"
    10.    }
    11. }

    видишь индексы 0,1,2
    откуда ты берёшь имя поля virtuemart_product_id?
    это поле находится в объекте, который в свою очередь находится в массиве!
    --- добавлено: 26.01.2015, первое сообщение размещено: 26.01.2015 ---

    давай так: прочитай чем отличается массив от объекта и что такое массив объектов (естественно всё это для php) и после будем думать где твоя ошибка;)
    я тебе уже надавал уйму подсказок!
     
  8. Dark19
    Offline

    Dark19 Пользователь

    Регистрация:
    18.08.2014
    Сообщения:
    55
    Симпатии:
    0
    сделал вот так
    Код (PHP):
    1. for($i = 0; $i<count($results); $i++){
    2. $prodIds[] = $results[$i]->virtuemart_product_id;
    3. }


    а теперь чтобы вытянуть описание продукта по айди нужно опять повторять эту конструкцию:
    Код (PHP):
    1. $db = JFactory::getDbo();
    2. $query = $db->getQuery(true);
    3. $query->select('virtuemart_product_id');
    4. $query->from('c9qo6_virtuemart_product_categories');
    5. $query->where('virtuemart_category_id '.$ids);
    6. $sql = $query->__toString();
    7. $db->setQuery($query);$results = $db->loadObjectList();
    только уже с другими именами таблиц?
     
  9. woojin
    Offline

    woojin Местный Команда форума => Cпециалист <=

    Регистрация:
    31.05.2009
    Сообщения:
    3 204
    Симпатии:
    334
    Пол:
    Мужской
    строка 6 это просто строка для текстового отображения запроса и она не обязательно к написания (это для тестов)
    почитай что такое JOIN и как его использовать
    можно сделать вообще всё в одном запросе и ID и имена товаров/продуктов
     
  10. Dark19
    Offline

    Dark19 Пользователь

    Регистрация:
    18.08.2014
    Сообщения:
    55
    Симпатии:
    0
    вытащил я описание и название товаров подкатегорий, но теперь проблема в том, что в таблице с товарами нет ссылок и изображений на эти товары.
    Разве в virtuemart 2 нету доступа с категории к товарам подкатегории?
     
  11. woojin
    Offline

    woojin Местный Команда форума => Cпециалист <=

    Регистрация:
    31.05.2009
    Сообщения:
    3 204
    Симпатии:
    334
    Пол:
    Мужской
    в VM есть функции которые тебе могут выдать вообще полный список товаров по ID категории
    просто их надой искать!

    P.S. данный список будет в виде объекта со всеми необходимыми данными (цена, картинка, описание и т.д.)
     
  12. Dark19
    Offline

    Dark19 Пользователь

    Регистрация:
    18.08.2014
    Сообщения:
    55
    Симпатии:
    0
    было бы здорово такую найти, может посоветуете справочник какой по функциям VM2 желательно на русском?
     
  13. woojin
    Offline

    woojin Местный Команда форума => Cпециалист <=

    Регистрация:
    31.05.2009
    Сообщения:
    3 204
    Симпатии:
    334
    Пол:
    Мужской
    я на русском не видел документации
    можно найти по содержимому файлов
    начать нужно с файлов products и categories
    смотришь во внутрь и по содержимому функций определяешь чего они делают
     
  14. AKopytenko
    Offline

    AKopytenko Russian Joomla! Team Команда форума

    Регистрация:
    01.09.2011
    Сообщения:
    1 963
    Симпатии:
    168
    Пол:
    Мужской
    Помню только для получения объекта категории по ID:
    Код (PHP):
    1. $categoryModel = VmModel::getModel('category');
    2. $category = $categoryModel->getCategory(ID-категории);
    3. $categoryModel->addImages($category);


    Ну и на выходе объект $category.
    Пример вывода картинки категории:
    Код (html):
    1. <img src="<?php echo $category->images[0]->file_url; ?>" alt="..." />

    По аналогии с категориями, после получения объекта товара картинки вытаскиваются через один из методов класса :)


    Вообще времени нету щас смотреть :(
    Дима, я в тебя верю!))
     
  15. Dark19
    Offline

    Dark19 Пользователь

    Регистрация:
    18.08.2014
    Сообщения:
    55
    Симпатии:
    0
    Наверное вот она эта функция:
    Только как ее правильно вызвать?
     
  16. woojin
    Offline

    woojin Местный Команда форума => Cпециалист <=

    Регистрация:
    31.05.2009
    Сообщения:
    3 204
    Симпатии:
    334
    Пол:
    Мужской
    дык всё же и так понятно!
     
  17. Dark19
    Offline

    Dark19 Пользователь

    Регистрация:
    18.08.2014
    Сообщения:
    55
    Симпатии:
    0
    С этим решил, как доделаю выложу код. Но вот проблема теперь в том, что мне нужно сделать проверку на уровень категории, то есть нужно узнать где категория самого верхнего уровня и в ней выводить все стандартным шаблоном, а в остальных уже созданным мною. Как можно проверить является ли категория верхнего уровня (у меня 3 уровня категорий)?
     
  18. Dark19
    Offline

    Dark19 Пользователь

    Регистрация:
    18.08.2014
    Сообщения:
    55
    Симпатии:
    0
    может подскажите по предыдущему сообщению?
     
  19. woojin
    Offline

    woojin Местный Команда форума => Cпециалист <=

    Регистрация:
    31.05.2009
    Сообщения:
    3 204
    Симпатии:
    334
    Пол:
    Мужской
    у категорий самого верхнего/первого уровня в переменной parent(тут может быть или _cid или _category, т.е. parent_cid/parent_category (сейчас не помню точно название переменной)) будет стоять 0
    вот и ищи ноль
     
  20. Dark19
    Offline

    Dark19 Пользователь

    Регистрация:
    18.08.2014
    Сообщения:
    55
    Симпатии:
    0
    в категориях в файле default прописываю print_r($this) и у верхнего уровня категории нет отличий от 2-го уровня, там нет таких полей (parent_cid/parent_category), а есть только
    [parents] =>и то пустое везде.
     

Поделиться этой страницей

Загрузка...