Your IP : 216.73.216.240
<?php
/**
*----------------------------------------------------------------------------
* iCagenda Events Management Extension for Joomla!
*----------------------------------------------------------------------------
* @version 3.9.0 2023-10-25
*
* @package iCagenda.Admin
* @subpackage src.Table
* @link https://www.joomlic.com
*
* @author Cyril Reze
* @copyright (c) 2012-2026 Cyril Reze / JoomliC. All rights reserved.
* @license GNU General Public License version 3 or later; see LICENSE.txt
*
* @since 3.3.3
*----------------------------------------------------------------------------
*/
namespace WebiC\Component\iCagenda\Administrator\Table;
\defined('_JEXEC') or die;
use Joomla\CMS\Factory;
use Joomla\CMS\Table\Table;
use Joomla\Database\DatabaseDriver;
/**
* iCagenda Component Registration Table
*/
class RegistrationTable extends Table
{
/**
* Indicates that columns fully support the NULL value in the database
*
* @var boolean
*/
protected $_supportNullValue = true;
/**
* Constructor
*
* @param DatabaseDriver $db Database connector object
*/
public function __construct(DatabaseDriver $db)
{
parent::__construct('#__icagenda_registration', 'id', $db);
// Set the alias for 'published' since the column is called 'state'
$this->setColumnAlias('published', 'state');
}
/**
* Overloaded bind function.
*
* @param array Named array
*
* @return null|string null is operation was satisfactory, otherwise returns an error
*
* @see JTable:bind
*/
public function bind($array, $ignore = '')
{
if ($array['date'] == 'period')
{
$array['date'] = '';
}
return parent::bind($array, $ignore);
}
/**
* Overloaded check function
*/
public function check()
{
// If there is an ordering column and this is a new row then get the next ordering value
if (property_exists($this, 'ordering') && $this->id == 0)
{
$this->ordering = self::getNextOrder();
}
// Set modified to created if not set
if (!$this->modified)
{
$this->modified = $this->created;
}
return parent::check();
}
/**
* Overrides Table::store to set modified data.
*
* @param boolean $updateNulls True to update fields even if they are null.
*
* @return boolean True on success.
*
* @since 3.8.5
*/
public function store($updateNulls = true)
{
$date = Factory::getDate()->toSql();
$user = Factory::getUser();
$userId = $user->get('id');
// Set created date if not set.
if (!(int) $this->created)
{
$this->created = $date;
}
if ($this->id)
{
// Existing item
$this->modified_by = $userId;
$this->modified = $date;
}
else
{
// Field created_by can be set by the user, so we don't touch it if it's set.
if (empty($this->created_by))
{
$this->created_by = $userId;
}
// Set modified to created date if not set
if (!(int) $this->modified)
{
$this->modified = $this->created;
}
// Set modified_by to created_by user if not set
if (empty($this->modified_by))
{
$this->modified_by = $this->created_by;
}
}
return parent::store($updateNulls);
}
}