芝麻web文件管理V1.00
编辑当前文件:/home/asmplong/www/ancien-site-2019/site/administrator/components/com_banners/tables/banner.php
created = JFactory::getDate()->toMySQL(); } function clicks() { $query = 'UPDATE #__banners' . ' SET clicks = (clicks + 1)' . ' WHERE id = ' . (int) $this->id ; $this->_db->setQuery($query); $this->_db->query(); } /** * Overloaded check function * * @return boolean * @see JTable::check * @since 1.5 */ function check() { jimport('joomla.filter.output'); // Set name $this->name = htmlspecialchars_decode($this->name, ENT_QUOTES); // Set alias $this->alias = JApplication::stringURLSafe($this->alias); if (empty($this->alias)) { $this->alias = JApplication::stringURLSafe($this->name); } // Check the publish down date is not earlier than publish up. if (intval($this->publish_down) > 0 && $this->publish_down < $this->publish_up) { // Swap the dates. $temp = $this->publish_up; $this->publish_up = $this->publish_down; $this->publish_down = $temp; } // Set ordering if ($this->state < 0) { // Set ordering to 0 if state is archived or trashed $this->ordering = 0; } else if (empty($this->ordering)) { // Set ordering to last if ordering was 0 $this->ordering = self::getNextOrder('`catid`=' . $this->_db->Quote($this->catid).' AND state>=0'); } return true; } /** * Overloaded bind function * * @param array $hash named array * @return null|string null is operation was satisfactory, otherwise returns an error * @see JTable:bind * @since 1.5 */ public function bind($array, $ignore = array()) { if (isset($array['params']) && is_array($array['params'])) { $registry = new JRegistry(); $registry->loadArray($array['params']); if((int) $registry->get('width', 0) < 0){ $this->setError(JText::sprintf('JLIB_DATABASE_ERROR_NEGATIVE_NOT_PERMITTED', JText::_('COM_BANNERS_FIELD_WIDTH_LABEL'))); return false; } if((int) $registry->get('height', 0) < 0){ $this->setError(JText::sprintf('JLIB_DATABASE_ERROR_NEGATIVE_NOT_PERMITTED', JText::_('COM_BANNERS_FIELD_HEIGHT_LABEL'))); return false; } // Converts the width and height to an absolute numeric value: $width = abs((int) $registry->get('width', 0)); $height = abs((int) $registry->get('height', 0)); // Sets the width and height to an empty string if = 0 $registry->set('width', ($width ? $width : '')); $registry->set('height', ($height ? $height : '')); $array['params'] = (string)$registry; } if (isset($array['imptotal'])) { $array['imptotal'] = abs((int) $array['imptotal']); } return parent::bind($array, $ignore); } /** * method to store a row * * @param boolean $updateNulls True to update fields even if they are null. */ function store($updateNulls = false) { if (empty($this->id)) { $purchase_type = $this->purchase_type; if ($purchase_type < 0 && $this->cid) { $client = JTable::getInstance('Client','BannersTable'); $client->load($this->cid); $purchase_type = $client->purchase_type; } if ($purchase_type < 0) { $params = JComponentHelper::getParams('com_banners'); $purchase_type = $params->get('purchase_type'); } switch($purchase_type) { case 1: $this->reset='0000-00-00 00:00:00'; break; case 2: $this->reset = JFactory::getDate('+1 year '.date('Y-m-d',strtotime('now')))->toMySQL(); break; case 3: $this->reset = JFactory::getDate('+1 month '.date('Y-m-d',strtotime('now')))->toMySQL(); break; case 4: $this->reset = JFactory::getDate('+7 day '.date('Y-m-d',strtotime('now')))->toMySQL(); break; case 5: $this->reset = JFactory::getDate('+1 day '.date('Y-m-d',strtotime('now')))->toMySQL(); break; } // Store the row parent::store($updateNulls); } else { // Get the old row $oldrow = JTable::getInstance('Banner', 'BannersTable'); if (!$oldrow->load($this->id) && $oldrow->getError()) { $this->setError($oldrow->getError()); } // Verify that the alias is unique $table = JTable::getInstance('Banner', 'BannersTable'); if ($table->load(array('alias'=>$this->alias,'catid'=>$this->catid)) && ($table->id != $this->id || $this->id==0)) { $this->setError(JText::_('COM_BANNERS_ERROR_UNIQUE_ALIAS')); return false; } // Store the new row parent::store($updateNulls); // Need to reorder ? if ($oldrow->state>=0 && ($this->state < 0 || $oldrow->catid != $this->catid)) { // Reorder the oldrow $this->reorder('`catid`=' . $this->_db->Quote($oldrow->catid).' AND state>=0'); } } return count($this->getErrors())==0; } /** * Method to set the publishing state for a row or list of rows in the database * table. The method respects checked out rows by other users and will attempt * to checkin rows that it can after adjustments are made. * * @param mixed An optional array of primary key values to update. If not * set the instance property value is used. * @param integer The publishing state. eg. [0 = unpublished, 1 = published, 2=archived, -2=trashed] * @param integer The user id of the user performing the operation. * @return boolean True on success. * @since 1.6 */ public function publish($pks = null, $state = 1, $userId = 0) { // Initialise variables. $k = $this->_tbl_key; // Sanitize input. JArrayHelper::toInteger($pks); $userId = (int) $userId; $state = (int) $state; // If there are no primary keys set check to see if the instance key is set. if (empty($pks)) { if ($this->$k) { $pks = array($this->$k); } // Nothing to set publishing state on, return false. else { $this->setError(JText::_('JLIB_DATABASE_ERROR_NO_ROWS_SELECTED')); return false; } } // Get an instance of the table $table = JTable::getInstance('Banner','BannersTable'); // For all keys foreach ($pks as $pk) { // Load the banner if(!$table->load($pk)) { $this->setError($table->getError()); } // Verify checkout if($table->checked_out==0 || $table->checked_out==$userId) { // Change the state $table->state = $state; $table->checked_out=0; $table->checked_out_time=0; // Check the row $table->check(); // Store the row if (!$table->store()) { $this->setError($table->getError()); } } } return count($this->getErrors())==0; } /** * Method to set the sticky state for a row or list of rows in the database * table. The method respects checked out rows by other users and will attempt * to checkin rows that it can after adjustments are made. * * @param mixed An optional array of primary key values to update. If not * set the instance property value is used. * @param integer The sticky state. eg. [0 = unsticked, 1 = sticked] * @param integer The user id of the user performing the operation. * @return boolean True on success. * @since 1.6 */ public function stick($pks = null, $state = 1, $userId = 0) { // Initialise variables. $k = $this->_tbl_key; // Sanitize input. JArrayHelper::toInteger($pks); $userId = (int) $userId; $state = (int) $state; // If there are no primary keys set check to see if the instance key is set. if (empty($pks)) { if ($this->$k) { $pks = array($this->$k); } // Nothing to set publishing state on, return false. else { $this->setError(JText::_('JLIB_DATABASE_ERROR_NO_ROWS_SELECTED')); return false; } } // Get an instance of the table $table = JTable::getInstance('Banner','BannersTable'); // For all keys foreach ($pks as $pk) { // Load the banner if(!$table->load($pk)) { $this->setError($table->getError()); } // Verify checkout if($table->checked_out==0 || $table->checked_out==$userId) { // Change the state $table->sticky = $state; $table->checked_out=0; $table->checked_out_time=0; // Check the row $table->check(); // Store the row if (!$table->store()) { $this->setError($table->getError()); } } } return count($this->getErrors())==0; } }