%PDF- %PDF-
| Direktori : /home1/lightco1/www/components/com_projectmanager/models/ |
| Current File : //home1/lightco1/www/components/com_projectmanager/models/project.php |
<?php
/**
* @version CVS: 1.0.0
* @package Com_Projectmanager
* @author Sandeep <>
* @copyright Copyright (C) 2016. All rights reserved.
* @license
*/
// No direct access.
defined('_JEXEC') or die;
jimport('joomla.application.component.modelitem');
jimport('joomla.event.dispatcher');
use Joomla\Utilities\ArrayHelper;
/**
* Projectmanager model.
*
* @since 1.6
*/
class ProjectmanagerModelProject extends JModelItem
{
/**
* Method to auto-populate the model state.
*
* Note. Calling getState in this method will result in recursion.
*
* @return void
*
* @since 1.6
*
*/
protected function populateState()
{
$app = JFactory::getApplication('com_projectmanager');
// Load state from the request userState on edit or from the passed variable on default
if (JFactory::getApplication()->input->get('layout') == 'edit')
{
$id = JFactory::getApplication()->getUserState('com_projectmanager.edit.project.id');
}
else
{
$id = JFactory::getApplication()->input->get('id');
JFactory::getApplication()->setUserState('com_projectmanager.edit.project.id', $id);
}
$this->setState('project.id', $id);
// Load the parameters.
$params = $app->getParams();
$params_array = $params->toArray();
if (isset($params_array['item_id']))
{
$this->setState('project.id', $params_array['item_id']);
}
$this->setState('params', $params);
}
/**
* Method to get an object.
*
* @param integer $id The id of the object to get.
*
* @return mixed Object on success, false on failure.
*/
public function &getData($id = null)
{
if ($this->_item === null)
{
$this->_item = false;
if (empty($id))
{
$id = $this->getState('project.id');
}
// Get a level row instance.
$table = $this->getTable();
// Attempt to load the row.
if ($table->load($id))
{
// Check published state.
if ($published = $this->getState('filter.published'))
{
if ($table->state != $published)
{
return $this->_item;
}
}
// Convert the JTable to a clean JObject.
$properties = $table->getProperties(1);
$this->_item = ArrayHelper::toObject($properties, 'JObject');
}
}
if (isset($this->_item->created_by) )
{
$this->_item->created_by_name = JFactory::getUser($this->_item->created_by)->name;
}
return $this->_item;
}
/**
* Get an instance of JTable class
*
* @param string $type Name of the JTable class to get an instance of.
* @param string $prefix Prefix for the table class name. Optional.
* @param array $config Array of configuration values for the JTable object. Optional.
*
* @return JTable|bool JTable if success, false on failure.
*/
public function getTable($type = 'Project', $prefix = 'ProjectmanagerTable', $config = array())
{
$this->addTablePath(JPATH_ADMINISTRATOR . '/components/com_projectmanager/tables');
return JTable::getInstance($type, $prefix, $config);
}
/**
* Get the id of an item by alias
*
* @param string $alias Item alias
*
* @return mixed
*/
public function getItemIdByAlias($alias)
{
$table = $this->getTable();
$table->load(array('alias' => $alias));
return $table->id;
}
/**
* Method to check in an item.
*
* @param integer $id The id of the row to check out.
*
* @return boolean True on success, false on failure.
*
* @since 1.6
*/
public function checkin($id = null)
{
// Get the id.
$id = (!empty($id)) ? $id : (int) $this->getState('project.id');
if ($id)
{
// Initialise the table
$table = $this->getTable();
// Attempt to check the row in.
if (method_exists($table, 'checkin'))
{
if (!$table->checkin($id))
{
return false;
}
}
}
return true;
}
/**
* Method to check out an item for editing.
*
* @param integer $id The id of the row to check out.
*
* @return boolean True on success, false on failure.
*
* @since 1.6
*/
public function checkout($id = null)
{
// Get the user id.
$id = (!empty($id)) ? $id : (int) $this->getState('project.id');
if ($id)
{
// Initialise the table
$table = $this->getTable();
// Get the current user object.
$user = JFactory::getUser();
// Attempt to check the row out.
if (method_exists($table, 'checkout'))
{
if (!$table->checkout($user->get('id'), $id))
{
return false;
}
}
}
return true;
}
/**
* Get the name of a category by id
*
* @param int $id Category id
*
* @return Object|null Object if success, null in case of failure
*/
public function getCategoryName($id)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query
->select('title')
->from('#__categories')
->where('id = ' . $id);
$db->setQuery($query);
return $db->loadObject();
}
/**
* Publish the element
*
* @param int $id Item id
* @param int $state Publish state
*
* @return boolean
*/
public function publish($id, $state)
{
$table = $this->getTable();
$table->load($id);
$table->state = $state;
return $table->store();
}
/**
* Method to delete an item
*
* @param int $id Element id
*
* @return bool
*/
public function delete($id)
{
$table = $this->getTable();
return $table->delete($id);
}
}