0 Пользователей и 1 Гость просматривают эту тему.
  • 6 Ответов
  • 787 Просмотров
*

Dron2010

  • Новичок
  • 6
  • 0 / 0
Выборка из базы
« : 19.08.2018, 08:46:41 »
Здравствуйте мне кто не будь сможет помочь разобраться с выборкой категорий из компонентов Joomla 3.8.11?


 
*

NewUsers

  • Живу я здесь
  • 2307
  • 215 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Выборка из базы
« Ответ #1 : 19.08.2018, 08:52:54 »
Здравствуйте мне кто не будь сможет помочь разобраться с выборкой категорий из компонентов Joomla 3.8.11?
А в чем проблема то?
Занимаюсь создание расширений для Joomla 3.10.x и 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Работа с DOM деревом на PHP
*

Dron2010

  • Новичок
  • 6
  • 0 / 0
Re: Выборка из базы
« Ответ #2 : 19.08.2018, 09:02:26 »
 Вот есть код

  //Категория материалов Joomla//
        static function getCategories($id = false)
    {
        static $category = false;
        if (!$category) {
            $db = JFactory::getDbo();
            $db->setQuery("SELECT id, title FROM #__categories WHERE published = '1' AND `extension` = 'com_content'");
            $rows = $db->loadAssocList();
            if (count($rows)) {
                foreach ($rows as $row) {
                    $category[$row['id']] = $row['title'];               
                }
            }
        }
        if (!$id) return $category; else return $category[$id];
    }
   
      static function getCategoriesSelect()
    {
        $db = JFactory::getDbo();
        $db->setQuery("SELECT id, title, parent_id FROM #__categories WHERE published = '1' AND `extension` IN ('com_content', 'system')");
        $rows = $db->loadAssocList();
        if (count($rows)) {
            foreach ($rows as $row) {
                $categories[$row['parent_id']][] = $row;
            }
        }
        $categories = JoomlaParserHelper::getTreeArray($categories, 0, 'id');
        $categories = JoomlaParserHelper::treeSelect($categories);
        return $categories;
    }
   
     
    ////////////////////////////////////////////////////////
   
     //Категория материалов Easyblog//
       static function getCategories_easyblog_category($id = false)
     {
        static $category = false;
        if (!$category) {
            $db = JFactory::getDbo();
            $db->setQuery("SELECT id, title FROM #__easyblog_category WHERE published = '1' AND `parent_id` = 'title'");
            $rows = $db->loadAssocList();
            if (count($rows)) {
                foreach ($rows as $row) {
                    $category[$row['id']] = $row['title'];               
                }
            }
        }
        if (!$id) return $category; else return $category[$id];
    }
     
     
     
      static function getCategoriesSelect_easyblog_category()
    {
        $db = JFactory::getDbo();
        $db->setQuery("SELECT id, title, parent_id FROM #__easyblog_category WHERE published = '1' AND `parent_id` IN ('id', 'title', 'parent_id')");
       
        $rows = $db->loadAssocList();
        if (count($rows)) {
            foreach ($rows as $row) {
                $categories[$row['parent_id']][] = $row;
            }
        }
        $categories = JoomlaParserHelper::getTreeArray($categories, 0, 'id');
        $categories = JoomlaParserHelper::treeSelect($categories);
        return $categories;
    }
     
  /////////////////////////////////////////////////////////////////////
 
  //Категория материалов DJ-Classifieds//
 
 
     static function getCategories_djcf_categories($id = false)
     {
        static $category = false;
        if (!$category) {
            $db = JFactory::getDbo();
            $db->setQuery("SELECT id, name FROM #__djcf_categories WHERE published = '1' AND `parent_id` = 'name'");
            $rows = $db->loadAssocList();
            if (count($rows)) {
                foreach ($rows as $row) {
                    $category[$row['id']] = $row['parent_id'];               
                }
            }
        }
        if (!$id) return $category; else return $category[$id];
       
       
    }
     
     
 
   
     
    static function getCategoriesSelect_djcf_categories()
    {
        $db = JFactory::getDbo();
        $db->setQuery("SELECT  id, name, parent_id FROM #__djcf_categories WHERE published = '1' AND `parent_id`  IN ('id', 'name','parent_id')");
       
       
            $rows = $db->loadAssocList();
        if (count($rows)){
        foreach ($rows as $row){
            $categories [$row['parent_id']][] = $row;
          }
        }
        $categories = JoomlaParserHelper::getTreeArray($categories, 0, 'id');
        $categories = JoomlaParserHelper::treeSelect($categories);
        return $categories;
    }
  ////////////////////////////////////////////////////////
 
 
   
   
 
 
 
 
 
       //Категория материалов EasyDiscuss//
 
   static function getCategories_discuss_category($id = false)
     {
        static $category = false;
        if (!$category) {
            $db = JFactory::getDbo();
            $db->setQuery("SELECT id, title FROM   #__discuss_category WHERE published = '1' AND `parent_id` = 'name'");
            $rows = $db->loadAssocList();
            if (count($rows)) {
                foreach ($rows as $row) {
                    $category[$row['id']] = $row['name'];               
                }
            }
        }
        if (!$id) return $category; else return $category[$id];
    }
   
     
     
   
   
   
    static function getCategoriesSelect_discuss_category()
    {
        $db = JFactory::getDbo();
        $db->setQuery("SELECT  id, title, parent_id FROM #__discuss_category WHERE published = '1' AND `parent_id` IN ('id', 'title', 'parent_id')");
       
        $rows = $db->loadAssocList();
        if (count($rows)){
        foreach ($rows as $row){
            $categories [$row['parent_id']][] = $row;
           
          }
        }
        $categories = JoomlaParserHelper::getTreeArray($categories, 0, 'id');
        $categories = JoomlaParserHelper::treeSelect($categories);
        return $categories;
    }
 
  ////////////////////////////////////////////////////////
   
     
}




  <!--Категория материалов-->
            <tr>
           
           <td>Категория материалов <b>JOOMLA</b></td>
           <td>
           <?php  echo JoomlaParserHelper::selectList('row[catid]',JoomlaParserHelper::getCategoriesSelect(), $row['catid'], true);  ?> </td>
            </tr>


<!--Категория материалов Easyblog-->
    <tr>
             <td>Категория материалов <b>Easyblog</b> </td>
        <td>
             <?php   echo JoomlaParserHelper::selectList('row[catid]',JoomlaParserHelper::getCategoriesSelect_easyblog_category(), $row['catid'], true);   ?>
        </td>
    </tr>
 <!----------------------------------------------------------->           
 


<!--Категория материалов DJ-Classifieds-->

    <tr>
             <td>Категория материалов <b>DJ-Classifieds</b> </td>
        <td>
             <?php  /*  echo JoomlaParserHelper::selectList('row[catid]',JoomlaParserHelper::getCategoriesSelect_djcf_categories(), $row['catid'], true);  */  ?>
        </td>
    </tr>
 <!-----------------------------------------------------------> 
               

         <!--Категория материалов EasyDiscuss-->
         
         <tr>
             <td>Категория материалов <b>EasyDiscuss</b> </td>
        <td>
             <?php    echo JoomlaParserHelper::selectList('row[discuss_category]',JoomlaParserHelper::getCategoriesSelect_discuss_category(), $row['discuss_category'], true);   ?>
        </td>
    </tr>
         
    <!-----------------------------------------------------------> 
       
   




Хочу сделать чтоб был вывод в компоненте из выпадающего списка для каждого компонента свой выпадающий список но проблема в том что когда они по отдельности всё работает, а когда я все выпадающие списки подключаю подключаю они дублируют категории из предыдущей таблицы
*

NewUsers

  • Живу я здесь
  • 2307
  • 215 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Выборка из базы
« Ответ #3 : 19.08.2018, 09:10:21 »
Это что за странный класс JoomlaParserHelper?
На той странице где будешь выводить выпадающие списки выводится форма?
Занимаюсь создание расширений для Joomla 3.10.x и 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Работа с DOM деревом на PHP
*

Dron2010

  • Новичок
  • 6
  • 0 / 0
Re: Выборка из базы
« Ответ #4 : 19.08.2018, 09:11:33 »
Да формы выводятся
*

NewUsers

  • Живу я здесь
  • 2307
  • 215 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Выборка из базы
« Ответ #5 : 19.08.2018, 09:25:01 »
Да формы выводятся
тогда выводи с помощью field
Вот пример файла
Код
<?php

defined('JPATH_PLATFORM') or die();
JFormHelper::loadFieldClass('list');

class JFormFieldEasyBlogCategory extends JFormFieldList
{
protected $type = 'EasyBlogCategory';

protected function getOptions()
{
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select('id, title, parent_id')
->from('#__easyblog_category')
->where('published = 1');

$db->setQuery($query);
$rows = $db->loadObjectList();

$categories = parent::getOptions();

if(!empty($rows) && is_array($rows))
{
foreach($rows as $row)
{
if(!array_key_exists($row->parent_id, $categories))
{
$categories[$row->parent_id] = array();
}

$categories[$row->parent_id][] = $row;
}
}

        return $categories;
}
} ?>

Имя файла должно быть easyblogcategory.php
Таким же образо все остальные категории других компонентов, и тогда на одной странице они не будут конфликтовать...
Занимаюсь создание расширений для Joomla 3.10.x и 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Работа с DOM деревом на PHP
*

Dron2010

  • Новичок
  • 6
  • 0 / 0
Re: Выборка из базы
« Ответ #6 : 19.08.2018, 09:26:41 »
Ага спасибо сейчас попробую :D
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Подборка компонента для обновления и ведения базы данных

Автор SYUT

Ответов: 0
Просмотров: 801
Последний ответ 25.05.2023, 14:16:23
от SYUT
Поиск и вывод из базы данных

Автор mailrev

Ответов: 2
Просмотров: 859
Последний ответ 27.03.2019, 17:52:13
от effrit
Существует ли компонент аудио mp3 базы для j3?

Автор reasons

Ответов: 1
Просмотров: 731
Последний ответ 27.11.2015, 06:15:19
от voland
Существует ли компонент mp3 базы?

Автор reasons

Ответов: 3
Просмотров: 833
Последний ответ 22.06.2015, 15:11:13
от Shustry
Создание базы данных о клиентах, для обработки сотрудниками

Автор WhitePunk

Ответов: 2
Просмотров: 1146
Последний ответ 06.03.2015, 13:16:07
от l1f3h0us3