/** * @version $Id: content.php 10381 2008-06-01 03:35:53Z pasamio $ * @package Joomla.Framework * @subpackage Table * @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */ // Check to ensure this file is within the rest of the framework defined('JPATH_BASE') or die(); /** * Content table * * @package Joomla.Framework * @subpackage Table * @since 1.0 */ class JTableContent extends JTable { /** @var int Primary key */ var $id = null; /** @var string */ var $title = null; /** @var string */ var $alias = null; /** @var string */ var $title_alias = null; /** @var string */ var $introtext = null; /** @var string */ var $fulltext = null; /** @var int */ var $state = null; /** @var int The id of the category section*/ var $sectionid = null; /** @var int DEPRECATED */ var $mask = null; /** @var int */ var $catid = null; /** @var datetime */ var $created = null; /** @var int User id*/ var $created_by = null; /** @var string An alias for the author*/ var $created_by_alias = null; /** @var datetime */ var $modified = null; /** @var int User id*/ var $modified_by = null; /** @var boolean */ var $checked_out = 0; /** @var time */ var $checked_out_time = 0; /** @var datetime */ var $frontpage_up = null; /** @var datetime */ var $frontpage_down = null; /** @var datetime */ var $publish_up = null; /** @var datetime */ var $publish_down = null; /** @var string */ var $images = null; /** @var string */ var $urls = null; /** @var string */ var $attribs = null; /** @var int */ var $version = null; /** @var int */ var $parentid = null; /** @var int */ var $ordering = null; /** @var string */ var $metakey = null; /** @var string */ var $metadesc = null; /** @var string */ var $metadata = null; /** @var int */ var $access = null; /** @var int */ var $hits = null; /** * @param database A database connector object */ function __construct( &$db ) { parent::__construct( '#__content', 'id', $db ); } /** * Overloaded check function * * @access public * @return boolean * @see JTable::check * @since 1.5 */ function check() { /* TODO: This filter is too rigorous,need to implement more configurable solution // specific filters $filter = & JFilterInput::getInstance( null, null, 1, 1 ); $this->introtext = trim( $filter->clean( $this->introtext ) ); $this->fulltext = trim( $filter->clean( $this->fulltext ) ); */ if(empty($this->title)) { $this->setError(JText::_('Article must have a title')); return false; } if(empty($this->alias)) { $this->alias = $this->title; } $this->alias = JFilterOutput::stringURLSafe($this->alias); if(trim(str_replace('-','',$this->alias)) == '') { $datenow =& JFactory::getDate(); $this->alias = $datenow->toFormat("%Y-%m-%d-%H-%M-%S"); } if (trim( str_replace( ' ', '', $this->fulltext ) ) == '') { $this->fulltext = ''; } if(empty($this->introtext) && empty($this->fulltext)) { $this->setError(JText::_('Article must have some text')); return false; } return true; } /** * Converts record to XML * @param boolean Map foreign keys to text values */ function toXML( $mapKeysToText=false ) { $db =& JFactory::getDBO(); if ($mapKeysToText) { $query = 'SELECT name' . ' FROM #__sections' . ' WHERE id = '. (int) $this->sectionid ; $db->setQuery( $query ); $this->sectionid = $db->loadResult(); $query = 'SELECT name' . ' FROM #__categories' . ' WHERE id = '. (int) $this->catid ; $db->setQuery( $query ); $this->catid = $db->loadResult(); $query = 'SELECT name' . ' FROM #__users' . ' WHERE id = ' . (int) $this->created_by ; $db->setQuery( $query ); $this->created_by = $db->loadResult(); } return parent::toXML( $mapKeysToText ); } }