Server IP : 180.180.241.3 / Your IP : 216.73.216.252 Web Server : Microsoft-IIS/7.5 System : Windows NT NETWORK-NHRC 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586 User : IUSR ( 0) PHP Version : 5.3.28 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /AppServ/www/news/tmp/install_5333cea8259e5/admin/models/ |
Upload File : |
<?php /** * @version $Id$ * @copyright Copyright (C) 2005 - 2010 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ // No direct access defined('_JEXEC') or die; jimport('joomla.application.component.modeladmin'); /** * Sitemap model. * * @package Xmap * @subpackage com_xmap */ class XmapModelSitemap extends JModelAdmin { protected $_context = 'com_xmap'; /** * Constructor. * * @param array An optional associative array of configuration settings. * @see JController */ public function __construct($config = array()) { parent::__construct($config); $this->_item = 'sitemap'; $this->_option = 'com_xmap'; } /** * Method to auto-populate the model state. */ protected function _populateState() { $app = JFactory::getApplication('administrator'); // Load the User state. if (!($pk = (int) $app->getUserState('com_xmap.edit.sitemap.id'))) { $pk = (int) JRequest::getInt('id'); } $this->setState('sitemap.id', $pk); // Load the parameters. $params = JComponentHelper::getParams('com_xmap'); $this->setState('params', $params); } /** * Returns a Table object, always creating it. * * @param type The table type to instantiate * @param string A prefix for the table class name. Optional. * @param array Configuration array for model. Optional. * @return XmapTableSitemap A database object */ public function getTable($type = 'Sitemap', $prefix = 'XmapTable', $config = array()) { return JTable::getInstance($type, $prefix, $config); } /** * Method to get a single record. * * @param integer The id of the primary key. * * @return mixed Object on success, false on failure. */ public function getItem($pk = null) { // Initialise variables. $pk = (!empty($pk)) ? $pk : (int)$this->getState('sitemap.id'); $false = false; // Get a row instance. $table = $this->getTable(); // Attempt to load the row. $return = $table->load($pk); // Check for a table object error. if ($return === false && $table->getError()) { $this->setError($table->getError()); return $false; } // Prime required properties. if (empty($table->id)) { // Prepare data for a new record. } // Convert to the JObject before adding other data. $value = $table->getProperties(1); $value = JArrayHelper::toObject($value, 'JObject'); // Convert the params field to an array. $registry = new JRegistry; $registry->loadString($table->attribs); $value->attribs = $registry->toArray(); return $value; } /** * Method to get the record form. * * @param array $data Data for the form. * @param boolean $loadData True if the form is to load its own data (default case), false if not. * @return mixed A JForm object on success, false on failure * @since 2.0 */ public function getForm($data = array(), $loadData = true) { // Get the form. $form = $this->loadForm('com_xmap.sitemap', 'sitemap', 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_xmap.edit.sitemap.data', array()); if (empty($data)) { $data = $this->getItem(); } return $data; } /** * Method to save the form data. * * @param array The form data. * @return boolean True on success. * @since 1.6 */ public function save($data) { // Initialise variables; $dispatcher = JDispatcher::getInstance(); $table = $this->getTable(); $pk = (!empty($data['id'])) ? $data['id'] : (int)$this->getState('sitemap.id'); $isNew = true; // Load the row if saving an existing record. if ($pk > 0) { $table->load($pk); $isNew = false; } // Bind the data. if (!$table->bind($data)) { $this->setError(JText::sprintf('JERROR_TABLE_BIND_FAILED', $table->getError())); return false; } // Prepare the row for saving $this->_prepareTable($table); // Check the data. if (!$table->check()) { $this->setError($table->getError()); return false; } if (!$table->is_default) { // Check if there is no default sitemap. Then, set it as default if not $result = $this->getDefaultSitemapId(); if (!$result) { $table->is_default=1; } } // Store the data. if (!$table->store()) { $this->setError($table->getError()); return false; } if ($table->is_default) { $query = $this->_db->getQuery(true) ->update($this->_db->quoteName('#__xmap_sitemap')) ->set($this->_db->quoteName('is_default').' = 0') ->where($this->_db->quoteName('id').' <> '.$table->id); $this->_db->setQuery($query); if (!$this->_db->query()) { $this->setError($table->_db->getErrorMsg()); return false; } } // Clean the cache. $cache = JFactory::getCache('com_xmap'); $cache->clean(); $this->setState('sitemap.id', $table->id); return true; } /** * Prepare and sanitise the table prior to saving. */ protected function _prepareTable(&$table) { // TODO. } function _orderConditions($table = null) { $condition = array(); return $condition; } function setDefault($id) { $table = $this->getTable(); if ($table->load($id)) { $db = JFactory::getDbo(); $query = $db->getQuery(true) ->update($db->quoteName('#__xmap_sitemap')) ->set($db->quoteName('is_default').' = 0') ->where($db->quoteName('id').' <> '.$table->id); $this->_db->setQuery($query); if (!$this->_db->query()) { $this->setError($table->_db->getErrorMsg()); return false; } $table->is_default = 1; $table->store(); // Clean the cache. $cache = JFactory::getCache('com_xmap'); $cache->clean(); return true; } } /** * Override to avoid warnings * */ public function checkout($pk = null) { return true; } private function getDefaultSitemapId() { $db = JFactory::getDBO(); $query = $db->getQuery(true); $query->select('id'); $query->from($db->quoteName('#__xmap_sitemap')); $query->where('is_default=1'); $db->setQuery($query); return $db->loadResult(); } }