%PDF- %PDF-
Direktori : /home/lightco1/www/administrator/components/com_projectmanager/models/ |
Current File : /home/lightco1/www/administrator/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.modeladmin'); /** * Projectmanager model. * * @since 1.6 */ class ProjectmanagerModelProject extends JModelAdmin { /** * @var string The prefix to use with controller messages. * @since 1.6 */ protected $text_prefix = 'COM_PROJECTMANAGER'; /** * @var null Item data * @since 1.6 */ protected $item = null; /** * Returns a reference to the a Table object, always creating it. * * @param string $type The table type to instantiate * @param string $prefix A prefix for the table class name. Optional. * @param array $config Configuration array for model. Optional. * * @return JTable A database object * * @since 1.6 */ public function getTable($type = 'Project', $prefix = 'ProjectmanagerTable', $config = array()) { return JTable::getInstance($type, $prefix, $config); } /** * Method to get the record form. * * @param array $data An optional array of data for the form to interogate. * @param boolean $loadData True if the form is to load its own data (default case), false if not. * * @return JForm A JForm object on success, false on failure * * @since 1.6 */ public function getForm($data = array(), $loadData = true) { // Initialise variables. $app = JFactory::getApplication(); // Get the form. $form = $this->loadForm( 'com_projectmanager.project', 'project', array('control' => 'jform', 'load_data' => $loadData ) ); if (empty($form)) { return false; } return $form; } /** * Method to get the data that should be injected in the form. * * @return mixed The data for the form. * * @since 1.6 */ protected function loadFormData() { // Check the session for previously entered form data. $data = JFactory::getApplication()->getUserState('com_projectmanager.edit.project.data', array()); if (empty($data)) { if ($this->item === null) { $this->item = $this->getItem(); } $data = $this->item; } return $data; } /** * Method to get a single record. * * @param integer $pk The id of the primary key. * * @return mixed Object on success, false on failure. * * @since 1.6 */ public function getItem($pk = null) { if ($item = parent::getItem($pk)) { // Do any procesing on fields here if needed } return $item; } /** * Method to duplicate an Project * * @param array &$pks An array of primary key IDs. * * @return boolean True if successful. * * @throws Exception */ public function duplicate(&$pks) { $user = JFactory::getUser(); // Access checks. if (!$user->authorise('core.create', 'com_projectmanager')) { throw new Exception(JText::_('JERROR_CORE_CREATE_NOT_PERMITTED')); } $dispatcher = JEventDispatcher::getInstance(); $context = $this->option . '.' . $this->name; // Include the plugins for the save events. JPluginHelper::importPlugin($this->events_map['save']); $table = $this->getTable(); foreach ($pks as $pk) { if ($table->load($pk, true)) { // Reset the id to create a new record. $table->id = 0; if (!$table->check()) { throw new Exception($table->getError()); } // Trigger the before save event. $result = $dispatcher->trigger($this->event_before_save, array($context, &$table, true)); if (in_array(false, $result, true) || !$table->store()) { throw new Exception($table->getError()); } // Trigger the after save event. $dispatcher->trigger($this->event_after_save, array($context, &$table, true)); } else { throw new Exception($table->getError()); } } // Clean cache $this->cleanCache(); return true; } /** * Prepare and sanitise the table prior to saving. * * @param JTable $table Table Object * * @return void * * @since 1.6 */ protected function prepareTable($table) { jimport('joomla.filter.output'); if (empty($table->id)) { // Set ordering to the last item if not set if (@$table->ordering === '') { $db = JFactory::getDbo(); $db->setQuery('SELECT MAX(ordering) FROM #__projectmanager_projects'); $max = $db->loadResult(); $table->ordering = $max + 1; } } } function checkProject($project_name) { // Get a db connection. $db = JFactory::getDbo(); // Create a new query object. $query = $db->getQuery(true); // Select all records from the user profile table where name = $project_name . $query->select($db->quoteName(array('id'))); $query->from($db->quoteName('#__projectmanager_projects')); $query->where($db->quoteName('name') . ' = '. $db->quote($project_name)); // Reset the query using our newly populated query object. $db->setQuery($query); // Load the results as a list of stdClass objects (see later for more options on retrieving data). $results = $db->loadObject(); return $results; } function getProjectName($project_id) { // Get a db connection. $db = JFactory::getDbo(); // Create a new query object. $query = $db->getQuery(true); // Select all records from the user profile table where name = $project_name . $query->select($db->quoteName(array('name'))); $query->from($db->quoteName('#__projectmanager_projects')); $query->where($db->quoteName('id') . ' = '. $db->quote($project_id)); // Reset the query using our newly populated query object. $db->setQuery($query); // Load the results as a list of stdClass objects (see later for more options on retrieving data). $result = $db->loadObject(); return $result; } }