| Current Path : /home/megadansyp/www/administrator/components/com_jevents/libraries/ |
| Current File : /home/megadansyp/www/administrator/components/com_jevents/libraries/categoryClass.php |
<?php
/**
* JEvents Component for Joomla! 3.x
*
* @version $Id: categoryClass.php 3157 2012-01-05 13:12:19Z geraintedwards $
* @package JEvents
* @copyright Copyright (C) 2008-2025 GWESystems Ltd, 2006-2008 JEvents Project Group
* @license GNU/GPLv2, see http://www.gnu.org/licenses/gpl-2.0.html
* @link http://www.jevents.net
*/
defined('_JEXEC') or die('Restricted access');
use Joomla\CMS\Table\Table;
use Joomla\CMS\User\User;
use Joomla\CMS\Factory;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\CMS\Component\ComponentHelper;
class JEventsCategory extends Joomla\CMS\Table\Category
{
var $_catextra = null;
// catid is a temporary field to ensure no duplicate mappings are created.
// this can be removed from database and application after full migration
var $catid = null;
// security check
public static function categoriesTree()
{
$db = Factory::getDbo();
$query = "SELECT *, parent_id as parent FROM #__categories WHERE extension = '" . JEV_COM_COMPONENT . "' and published >= 0";
$query .= " ORDER BY parent, lft";
$db->setQuery($query);
$mitems = 0;
try
{
$mitems = $db->loadObjectList();
} catch (Exception $e) {
echo $e;
}
$children = array();
if ($mitems)
{
foreach ($mitems as $v)
{
if ($v->parent == 1)
{
$v->parent = $v->parent_id = 0;
}
$v->level -= 1;
$pt = $v->parent;
$list = array_key_exists($pt, $children) ? $children[$pt] : array();
array_push($list, $v);
$children[$pt] = $list;
}
}
$list = HTMLHelper::_('menu.treerecurse', 0, '', array(), $children, 9999, 0, 0);
$mitems = array();
foreach ($list as $item)
{
$item->treename = str_replace(" ", " ", $item->treename);
$mitems[] = HTMLHelper::_('select.option', $item->id, $item->treename);
}
return $mitems;
}
function bind($array, $ignore = array())
{
$cfg = JEVConfig::getInstance();
$array['id'] = isset($array['id']) ? intval($array['id']) : 0;
if(empty($array['alias'])) {
$array['alias'] = JFilterOutput::stringURLSafe($array['title']);
}
parent::bind($array);
$params = new JevRegistry($this->params);
if (!$params->get("catcolour", false))
{
$color = array_key_exists("color", $array) ? $array['color'] : "#000000";
if (!preg_match("/^#[0-9a-f]+$/i", $color)) $color = "#000000";
$params->set("catcolour", $color);
}
if (!$params->get("admin", false))
{
$admin = array_key_exists("admin", $array) ? $array['admin'] : 0;
$params->set("admin", $admin);
}
if (!$params->get("overlaps", false))
{
$overlaps = array_key_exists("overlaps", $array) ? intval($array['overlaps']) : 0;
$params->set("overlaps", $overlaps);
}
if (!$params->get("image", false))
{
$image = array_key_exists("image", $array) ? intval($array['image']) : "";
$params->set("image", $image);
}
$this->params = (string) $params;
// Fill in the gaps
$this->parent_id = array_key_exists("parent_id", $array) ? intval($array['parent_id']) : 1;
$this->level = array_key_exists("level", $array) ? intval($array['level']) : 1;
$this->extension = "com_jevents";
$this->language = "*";
$this->setLocation(1, 'last-child');
return true;
}
function load($oid = null, $reset = true)
{
parent::load($oid);
$params = new JevRegistry($this->params);
$this->color = $params->get("catcolour", "#000000");
$this->overlaps = $params->get("overlaps", 0);
$this->admin = $params->get("admin", 0);
$this->image = $params->get("image", "");
}
function store($updateNulls = false)
{
$success = parent::store();
if ($success)
{
PluginHelper::importPlugin("jevents");
$set = Factory::getApplication()->triggerEvent('afterSaveCategory', array($this));
/*
$table = Table::getInstance('Category', 'Table', array('dbo' => Factory::getDbo()));
if (!$table->rebuild())
{
throw new Exception( $table->getError(), 500);
}
*/
}
return $success;
}
function getAdminUser()
{
if (isset($this->_catextra))
{
if ($this->_catextra->admin > 0)
{
$catuser = new User();
$catuser->load($this->_catextra->admin);
}
}
else if (isset($this->admin) && $this->admin > 0)
{
$catuser = new User();
$catuser->load($this->admin);
}
// Lets only return once.
if (isset($catuser) && $catuser->id !== '')
{
return $catuser;
}
else
{
$params = ComponentHelper::getParams(JEV_COM_COMPONENT);
$adminuser = new User($params->get("jevadmin", 62));
return $adminuser;
}
}
}