/** * @version $Id: content.php 11214 2008-10-26 01:29:04Z ian $ * @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; } // clean up keywords -- eliminate extra spaces between phrases // and cr (\r) and lf (\n) characters from string if(!empty($this->metakey)) { // only process if not empty $bad_characters = array("\n", "\r", "\"", ""); // array of characters to remove $after_clean = JString::str_ireplace($bad_characters, "", $this->metakey); // remove bad characters $keys = explode(',', $after_clean); // create array using commas as delimiter $clean_keys = array(); foreach($keys as $key) { if(trim($key)) { // ignore blank keywords $clean_keys[] = trim($key); } } $this->metakey = implode(",", $clean_keys); // put array back together delimited by commas } // clean up description -- eliminate quotes and brackets if(!empty($this->metadesc)) { // only process if not empty $bad_characters = array("\"", ""); $this->metadesc = JString::str_ireplace($bad_characters, "", $this->metadesc); } 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 ); } }