HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/confeduphaar/backip-old-files/administrator/components/com_k2/elements/k2modalselector.php
<?php
/**
 * @version    2.9.x
 * @package    K2
 * @author     JoomlaWorks https://www.joomlaworks.net
 * @copyright  Copyright (c) 2006 - 2018 JoomlaWorks Ltd. All rights reserved.
 * @license    GNU/GPL license: http://www.gnu.org/copyleft/gpl.html
 */

// no direct access
defined('_JEXEC') or die;

require_once(JPATH_ADMINISTRATOR.'/components/com_k2/elements/base.php');

class K2ElementK2modalselector extends K2Element
{
    function fetchElement($name, $value, &$node, $control_name)
    {
        JTable::addIncludePath(JPATH_ADMINISTRATOR.'/components/com_k2/tables');

        // Attributes
        $fieldID = 'fieldID_'.md5($name);
        if (version_compare(JVERSION, '1.5.0', 'gt'))
        {
            if($node->attributes()->scope)
            {
                $scope = $node->attributes()->scope;
            }
            else
            {
                $scope = 'items';
            }
            if($scope == 'items' || $scope == 'categories' || $scope == 'users' || $scope == 'tags')
            {
                $fieldName = $name.'[]';
            }
            else
            {
                $fieldName = $name;
            }
        }
        else
        {
            if($node->attributes('scope')){
                $scope = $node->attributes('scope');
            }
            else
            {
                $scope = 'items';
            }
            if($scope == 'items' || $scope == 'categories' || $scope == 'users' || $scope == 'tags')
            {
                $fieldName = $control_name.'['.$name.'][]';
            }
            else
            {
                $fieldName = $control_name.'['.$name.']';
            }
        }
        if(!$value)
        {
          $value = '';
        }
        $saved = array();
        if (is_string($value) && !empty($value))
        {
            $saved[] = $value;
        }
        if (is_array($value))
        {
            $saved = $value;
        }

        // Output
        $output = '';

        // Output for lists
        if($scope == 'items' || $scope == 'categories' || $scope == 'users' || $scope == 'tags')
        {
            $output = '
            <div class="k2SelectorButton">
                <a data-k2-modal="iframe" class="btn" title="'.JText::_('K2_SELECT').'" href="index.php?option=com_k2&view='.$scope.'&tmpl=component&context=modalselector&output=list&fid='.$fieldID.'&fname='.$fieldName.'">
                    <i class="fa fa-file-text-o"></i> '.JText::_('K2_SELECT').'
                </a>
            </div>
            <ul id="'.$fieldID.'" class="k2SortableListContainer">
            ';

            foreach ($saved as $value)
            {
                if($scope == 'items')
                {
                    $row = JTable::getInstance('K2Item', 'Table');
                    $row->load($value);
                    $entryName = $row->title;
                    $entryValue = $row->id;
                }
                if($scope == 'categories')
                {
                    $row = JTable::getInstance('K2Category', 'Table');
                    $row->load($value);
                    $entryName = $row->name;
                    $entryValue = $row->id;
                }
                if($scope == 'users')
                {
                    $row = JFactory::getUser($value);
                    $entryName = $row->name;
                    $entryValue = $row->id;
                }
                if($scope == 'tags')
                {
                    $db = JFactory::getDbo();
                    $query = 'SELECT * FROM #__k2_tags WHERE name='.$db->Quote($value);
                    $db->setQuery($query);
                    $row = $db->loadObject();
                    $entryName = $row->name;
                    $entryValue = htmlspecialchars($row->name, ENT_QUOTES, 'utf-8');
                }

                $output .= '<li class="handle"><a class="k2EntryRemove" href="#" title="'.JText::_('K2_REMOVE_THIS_ENTRY').'"><i class="fa fa-trash-o"></i></a><span class="k2EntryText">'.$entryName.'</span><input type="hidden" name="'.$fieldName.'" value="'.$entryValue.'" /></li>';
            }
            $output .= '
            </ul>
            ';
        }

        // Output for single entities
        if($scope == 'item' || $scope == 'category' || $scope == 'user' || $scope == 'tag')
        {
            if(count($saved)) $value = $saved[0]; else $value = '';

            if($scope == 'item')
            {
                if($value)
                {
                    $row = JTable::getInstance('K2Item', 'Table');
                    $row->load($value);
                    $entryName = $row->title;
                    $entryValue = $row->id;
                }
                $view = "items";
            }
            if($scope == 'category')
            {
                if($value)
                {
                    $row = JTable::getInstance('K2Category', 'Table');
                    $row->load($value);
                    $entryName = $row->name;
                    $entryValue = $row->id;
                }
                $view = "categories";
            }
            if($scope == 'user')
            {
                if($value)
                {
                    $row = JFactory::getUser($value);
                    $entryName = $row->name;
                    $entryValue = $row->id;
                }
                $view = "users";
            }
            if($scope == 'tag')
            {
                if($value)
                {
                    $db = JFactory::getDbo();
                    $query = 'SELECT * FROM #__k2_tags WHERE name='.$db->Quote($value);
                    $db->setQuery($query);
                    $row = $db->loadObject();
                    $entryName = $row->name;
                    $entryValue = htmlspecialchars($row->name, ENT_QUOTES, 'utf-8');
                }
                $view = "tags";
            }

            $output = '
            <div class="k2SelectorButton k2SingleSelect">
                <a data-k2-modal="iframe" class="btn" title="'.JText::_('K2_SELECT').'" href="index.php?option=com_k2&view='.$view.'&tmpl=component&context=modalselector&fid='.$fieldID.'&fname='.$fieldName.'">
                    <i class="fa fa-file-text-o"></i> '.JText::_('K2_SELECT').'
                </a>
            </div>
            <div id="'.$fieldID.'" class="k2SingleSelect">
            ';

            if($value)
            {
                $output .= '<div class="handle"><a class="k2EntryRemove" href="#" title="'.JText::_('K2_REMOVE_THIS_ENTRY').'"><i class="fa fa-trash-o"></i></a><span class="k2EntryText">'.$entryName.'</span><input type="hidden" name="'.$fieldName.'" value="'.$entryValue.'" /></div>';
            }
            $output .= '
            </div>
            ';

        }

        return $output;
    }
}

class JFormFieldK2modalselector extends K2ElementK2modalselector
{
    var $type = 'k2modalselector';
}

class JElementK2modalselector extends K2ElementK2modalselector
{
    var $_name = 'k2modalselector';
}