Your IP : 216.73.217.142


Current Path : /var/www/consult-e-syn/public_html/libraries/regularlabs/fields/
Upload File :
Current File : /var/www/consult-e-syn/public_html/libraries/regularlabs/fields/content.php

<?php
/**
 * @package         Regular Labs Library
 * @version         23.9.3039
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            https://regularlabs.com
 * @copyright       Copyright © 2023 Regular Labs All Rights Reserved
 * @license         GNU General Public License version 2 or later
 */

defined('_JEXEC') or die;

use Joomla\CMS\HTML\HTMLHelper as JHtml;
use Joomla\CMS\Language\Text as JText;
use RegularLabs\Library\ArrayHelper as RL_ArrayHelper;
use RegularLabs\Library\FieldGroup;

if ( ! is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php'))
{
    return;
}

require_once JPATH_LIBRARIES . '/regularlabs/autoload.php';

class JFormFieldRL_Content extends FieldGroup
{
    public $type = 'Content';

    public function getCategories()
    {
        $query = $this->db->getQuery(true)
            ->select('COUNT(*)')
            ->from('#__categories')
            ->where('extension = ' . $this->db->quote('com_content'))
            ->where('parent_id > 0')
            ->where('published > -1');
        $this->db->setQuery($query);
        $total = $this->db->loadResult();

        if ($total > $this->max_list_count)
        {
            return -1;
        }

        $this->value = RL_ArrayHelper::toArray($this->value);

        // assemble items to the array
        $options = [];

        if ($this->get('show_ignore'))
        {
            if (in_array('-1', $this->value))
            {
                $this->value = ['-1'];
            }

            $options[] = JHtml::_('select.option', '-1', '- ' . JText::_('RL_IGNORE') . ' -');
            $options[] = JHtml::_('select.option', '-', '&nbsp;', 'value', 'text', true);
        }

        $query->clear('select')
            ->select('id, title as name, level, published, language')
            ->order('lft');

        $this->db->setQuery($query);
        $list = $this->db->loadObjectList();

        $options = array_merge($options, $this->getOptionsByList($list, ['language'], -1));

        return $options;
    }

    public function getItems()
    {
        $query = $this->db->getQuery(true)
            ->select('COUNT(*)')
            ->from('#__content AS i')
            ->where('i.access > -1');
        $this->db->setQuery($query);
        $total = $this->db->loadResult();

        if ($total > $this->max_list_count)
        {
            return -1;
        }

        $query->clear('select')
            ->select('i.id, i.title as name, i.language, c.title as cat, i.state as published')
            ->join('LEFT', '#__categories AS c ON c.id = i.catid')
            ->order('i.title, i.ordering, i.id');
        $this->db->setQuery($query);
        $list = $this->db->loadObjectList();

        $options = $this->getOptionsByList($list, ['language', 'cat', 'id']);

        if ($this->get('showselect'))
        {
            array_unshift($options, JHtml::_('select.option', '-', '&nbsp;', 'value', 'text', true));
            array_unshift($options, JHtml::_('select.option', '-', '- ' . JText::_('Select Item') . ' -'));
        }

        return $options;
    }
}