git-svn-id: https://192.168.0.254/svn/Proyectos.FundacionLQDVI_WebCongresos/trunk@2 94ccb1af-fd9d-d947-8d90-7f70ea60afc8
294 lines
6.0 KiB
PHP
294 lines
6.0 KiB
PHP
<?php
|
|
/**
|
|
* @version $Id: weblink.php 14401 2010-01-26 14:10:00Z louis $
|
|
* @package Joomla
|
|
* @subpackage Content
|
|
* @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 included in Joomla!
|
|
defined('_JEXEC') or die( 'Restricted access' );
|
|
|
|
jimport('joomla.application.component.model');
|
|
|
|
/**
|
|
* Weblinks Component Weblink Model
|
|
*
|
|
* @package Joomla
|
|
* @subpackage Weblinks
|
|
* @since 1.5
|
|
*/
|
|
class WeblinksModelWeblink extends JModel
|
|
{
|
|
/**
|
|
* Weblink id
|
|
*
|
|
* @var int
|
|
*/
|
|
var $_id = null;
|
|
|
|
/**
|
|
* Weblink data
|
|
*
|
|
* @var array
|
|
*/
|
|
var $_data = null;
|
|
|
|
/**
|
|
* Constructor
|
|
*
|
|
* @since 1.5
|
|
*/
|
|
function __construct()
|
|
{
|
|
parent::__construct();
|
|
|
|
$id = JRequest::getVar('id', 0, '', 'int');
|
|
$this->setId((int)$id);
|
|
}
|
|
|
|
/**
|
|
* Method to set the weblink identifier
|
|
*
|
|
* @access public
|
|
* @param int Weblink identifier
|
|
*/
|
|
function setId($id)
|
|
{
|
|
// Set weblink id and wipe data
|
|
$this->_id = $id;
|
|
$this->_data = null;
|
|
}
|
|
|
|
/**
|
|
* Method to get a weblink
|
|
*
|
|
* @since 1.5
|
|
*/
|
|
function &getData()
|
|
{
|
|
// Load the weblink data
|
|
if ($this->_loadData())
|
|
{
|
|
// Initialize some variables
|
|
$user = &JFactory::getUser();
|
|
|
|
// Make sure the weblink is published
|
|
if (!$this->_data->published) {
|
|
JError::raiseError(404, JText::_("Resource Not Found"));
|
|
return false;
|
|
}
|
|
|
|
// Check to see if the category is published
|
|
if (!$this->_data->cat_pub) {
|
|
JError::raiseError( 404, JText::_("Resource Not Found") );
|
|
return;
|
|
}
|
|
|
|
// Check whether category access level allows access
|
|
if ($this->_data->cat_access > $user->get('aid', 0)) {
|
|
JError::raiseError( 403, JText::_('ALERTNOTAUTH') );
|
|
return;
|
|
}
|
|
}
|
|
else $this->_initData();
|
|
|
|
return $this->_data;
|
|
}
|
|
|
|
/**
|
|
* Method to increment the hit counter for the weblink
|
|
*
|
|
* @access public
|
|
* @return boolean True on success
|
|
* @since 1.5
|
|
*/
|
|
function hit()
|
|
{
|
|
global $mainframe;
|
|
|
|
if ($this->_id)
|
|
{
|
|
$weblink = & $this->getTable();
|
|
$weblink->hit($this->_id);
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* Tests if weblink is checked out
|
|
*
|
|
* @access public
|
|
* @param int A user id
|
|
* @return boolean True if checked out
|
|
* @since 1.5
|
|
*/
|
|
function isCheckedOut( $uid=0 )
|
|
{
|
|
if ($this->_loadData())
|
|
{
|
|
if ($uid) {
|
|
return ($this->_data->checked_out && $this->_data->checked_out != $uid);
|
|
} else {
|
|
return $this->_data->checked_out;
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Method to checkin/unlock the weblink
|
|
*
|
|
* @access public
|
|
* @return boolean True on success
|
|
* @since 1.5
|
|
*/
|
|
function checkin()
|
|
{
|
|
if ($this->_id)
|
|
{
|
|
$weblink = & $this->getTable();
|
|
if(! $weblink->checkin($this->_id)) {
|
|
$this->setError($this->_db->getErrorMsg());
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* Method to checkout/lock the weblink
|
|
*
|
|
* @access public
|
|
* @param int $uid User ID of the user checking the article out
|
|
* @return boolean True on success
|
|
* @since 1.5
|
|
*/
|
|
function checkout($uid = null)
|
|
{
|
|
if ($this->_id)
|
|
{
|
|
// Make sure we have a user id to checkout the article with
|
|
if (is_null($uid)) {
|
|
$user =& JFactory::getUser();
|
|
$uid = $user->get('id');
|
|
}
|
|
// Lets get to it and checkout the thing...
|
|
$weblink = & $this->getTable();
|
|
if(!$weblink->checkout($uid, $this->_id)) {
|
|
$this->setError($this->_db->getErrorMsg());
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* Method to store the weblink
|
|
*
|
|
* @access public
|
|
* @return boolean True on success
|
|
* @since 1.5
|
|
*/
|
|
function store($data)
|
|
{
|
|
$row =& $this->getTable();
|
|
|
|
// Bind the form fields to the web link table
|
|
if (!$row->bind($data)) {
|
|
$this->setError($this->_db->getErrorMsg());
|
|
return false;
|
|
}
|
|
|
|
// Create the timestamp for the date
|
|
$row->date = gmdate('Y-m-d H:i:s');
|
|
|
|
// if new item, order last in appropriate group
|
|
if (!$row->id) {
|
|
$where = 'catid = ' . (int) $row->catid ;
|
|
$row->ordering = $row->getNextOrder( $where );
|
|
}
|
|
// Make sure the web link table is valid
|
|
if (!$row->check()) {
|
|
$this->setError($this->_db->getErrorMsg());
|
|
return false;
|
|
}
|
|
|
|
// Store the web link table to the database
|
|
if (!$row->store()) {
|
|
$this->setError($this->_db->getErrorMsg());
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Method to load content weblink data
|
|
*
|
|
* @access private
|
|
* @return boolean True on success
|
|
* @since 1.5
|
|
*/
|
|
function _loadData()
|
|
{
|
|
// Lets load the content if it doesn't already exist
|
|
if (empty($this->_data))
|
|
{
|
|
$query = 'SELECT w.*, cc.title AS category,' .
|
|
' cc.published AS cat_pub, cc.access AS cat_access'.
|
|
' FROM #__weblinks AS w' .
|
|
' LEFT JOIN #__categories AS cc ON cc.id = w.catid' .
|
|
' WHERE w.id = '. (int) $this->_id;
|
|
$this->_db->setQuery($query);
|
|
$this->_data = $this->_db->loadObject();
|
|
return (boolean) $this->_data;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Method to initialise the weblink data
|
|
*
|
|
* @access private
|
|
* @return boolean True on success
|
|
* @since 1.5
|
|
*/
|
|
function _initData()
|
|
{
|
|
// Lets load the content if it doesn't already exist
|
|
if (empty($this->_data))
|
|
{
|
|
$weblink = new stdClass();
|
|
$weblink->id = 0;
|
|
$weblink->catid = 0;
|
|
$weblink->sid = 0;
|
|
$weblink->title = null;
|
|
$weblink->url = null;
|
|
$weblink->description = null;
|
|
$weblink->date = null;
|
|
$weblink->hits = 0;
|
|
$weblink->published = 0;
|
|
$weblink->checked_out = 0;
|
|
$weblink->checked_out_time = 0;
|
|
$weblink->ordering = 0;
|
|
$weblink->archived = 0;
|
|
$weblink->approved = 0;
|
|
$weblink->params = null;
|
|
$weblink->category = null;
|
|
$this->_data = $weblink;
|
|
return (boolean) $this->_data;
|
|
}
|
|
return true;
|
|
}
|
|
}
|