%PDF- %PDF-
Direktori : /home/lightco1/luminero.com.au/libraries/compojoom/model/ |
Current File : /home/lightco1/luminero.com.au/libraries/compojoom/model/customfield.php |
<?php /** * @package Lib_Compojoom * @author DanielDimitrov <daniel@compojoom.com> * @date 23.01.14 * * @copyright Copyright (C) 2008 - 2013 compojoom.com . All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ defined('_JEXEC') or die('Restricted access'); jimport('joomla.application.component.modeladmin'); /** * Class CompojoomModelCustomfield * * @since 3.0 */ abstract class CompojoomModelCustomfield extends JModelAdmin { /** * Loads a row from the db & adds the catid array * * @param int $pk - the row id * * @return mixed */ public function getItem($pk = null) { $item = parent::getItem($pk); if ($item) { // Let us load the categories $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select('catid')->from('#__compojoom_customfields_cats') ->where('compojoom_customfields_id' . '=' . $db->q($item->id)); $db->setQuery($query); $item->catid = $db->loadColumn(); } return $item; } /** * Method to get a table object, load it if necessary. * * @param string $type The table name. Optional. * @param string $prefix The class prefix. Optional. * @param array $config Configuration array for model. Optional. * * @return JTable A JTable object */ public function getTable($type = 'Customfield', $prefix = 'CompojoomTable', $config = array()) { return JTable::getInstance($type, $prefix, $config); } /** * Saves the manually set order of records. * * @param array $pks An array of primary key ids. * @param integer $order +1 or -1 * * @return mixed */ public function saveorder($pks = null, $order = null) { $table = $this->getTable(); if (empty($pks)) { return JError::raiseWarning(500, JText::_($this->text_prefix . '_ERROR_NO_ITEMS_SELECTED')); } // Update ordering values foreach ($pks as $i => $pk) { $table->load((int) $pk); // Access checks. if (!$this->canEditState($table)) { // Prune items that you can't change. unset($pks[$i]); JLog::add(JText::_('JLIB_APPLICATION_ERROR_EDITSTATE_NOT_PERMITTED'), JLog::WARNING, 'jerror'); } elseif ($table->ordering != $order[$i]) { $table->ordering = $order[$i]; if (!$table->store()) { $this->setError($table->getError()); return false; } } } // Clear the component's cache $this->cleanCache(); return true; } /** * Executes after the row is saved and saves the category relationship info * * @param JModelLegacy $model - the model * @param array $data - the valid data * * @return bool */ public function onAfterSave($model, $data) { $db = JFactory::getDbo(); $cats = $data['catid']; $item = $model->getItem(); /** * Let's wipe out the customfield-category table * I always have to do that, otherwise I could have some problems when * a field changes from 'all' to 'category' */ $query = $db->getQuery(true) ->delete('#__compojoom_customfields_cats') ->where('compojoom_customfields_id = ' . $item->id); if (!$db->setQuery($query)->execute()) { $this->setError(JText::_('COM_HOTSPOTS_CUSTOMFIELDS_ERR_DELETE_CATS')); return false; } if ($cats && $data['show'] == 'category') { $query = $db->getQuery(true) ->insert('#__compojoom_customfields_cats') ->columns('compojoom_customfields_id, catid'); foreach ($cats as $cat) { if (!$cat) { continue; } $query->values($item->id . ', ' . $cat); } if (!$db->setQuery($query)->execute()) { $this->setError(JText::_('COM_HOTSPOTS_CUSTOMFIELDS_ERR_INSERT_CATS')); return false; } } return true; } /** * Prepare and sanitise the table data prior to saving. * * @param JTable $table A JTable object. * * @return void * * @since 1.6 */ protected function prepareTable($table) { // Reorder the articles within the category so the new article is first if (empty($table->id)) { $table->reorder('enabled >= 1'); } } }