git-svn-id: https://192.168.0.254/svn/Proyectos.FundacionLQDVI_WebCongresos/trunk@2 94ccb1af-fd9d-d947-8d90-7f70ea60afc8
197 lines
5.0 KiB
PHP
197 lines
5.0 KiB
PHP
<?php
|
|
/**
|
|
* @version $Id: content.php 14401 2010-01-26 14:10:00Z louis $
|
|
* @package Joomla.Framework
|
|
* @subpackage Table
|
|
* @copyright Copyright (C) 2005 - 2010 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 $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 ", "
|
|
}
|
|
|
|
// 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 );
|
|
}
|
|
}
|