×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Language: PHP
Posted by: mahmoud abdel latif
Added: Jun 7, 2014 1:03 PM
Views: 9
Tags: no tags
Module
  1. <?php
  2. // No direct access to this file
  3. defined('_JEXEC') or die('Restricted access');
  4.  
  5. // import Joomla modelitem library
  6. jimport('joomla.application.component.modelitem');
  7.  
  8. /**
  9.  *  Model
  10.  */
  11. class Model extends JModelItem
  12. {
  13.         /**
  14.          * @var object item
  15.          */
  16.         protected $item;
  17.  
  18.         /**
  19.          * Method to auto-populate the model state.
  20.          *
  21.          * This method should only be called once per instantiation and is designed
  22.          * to be called on the first call to the getState() method unless the model
  23.          * configuration flag to ignore the request is set.
  24.          *
  25.          * Note. Calling getState in this method will result in recursion.
  26.          *
  27.          * @return      void
  28.          * @since       2.5
  29.          */
  30.         protected function populateState()
  31.         {
  32.                 $app = JFactory::getApplication();
  33.                 // Get the message id
  34.                 $input = JFactory::getApplication()->input;
  35.                 $id = $input->getInt('id');
  36.                 $this->setState('message.id', $id);
  37.  
  38.                 // Load the parameters.
  39.                 $params = $app->getParams();
  40.                 $this->setState('params', $params);
  41.                 parent::populateState();
  42.         }
  43.  
  44.         /**
  45.          * Returns a reference to the a Table object, always creating it.
  46.          *
  47.          * @param       type    The table type to instantiate
  48.          * @param       string  A prefix for the table class name. Optional.
  49.          * @param       array   Configuration array for model. Optional.
  50.          * @return      JTable  A database object
  51.          * @since       2.5
  52.          */
  53.         public function getTable($type = '', $prefix = 'Table', $config = array())
  54.         {
  55.                 return JTable::getInstance($type, $prefix, $config);
  56.         }
  57.  
  58.         /**
  59.          * Get the message
  60.          * @return object The message to be displayed to the user
  61.          */
  62.         public function getItem()
  63.         {
  64.                 if (!isset($this->item))
  65.                 {
  66.                         $id = $this->getState('message.id');
  67.                         $this->_db->setQuery($this->_db->getQuery(true)
  68.                                 ->from('#__ as h')
  69.                                 ->leftJoin('#__categories as c ON h.cat_id=c.id')
  70.                                 ->select('h.greeting, h.params, c.title as category')
  71.                                 ->where('h.id=' . (int)$id));
  72.                         if (!$this->item = $this->_db->loadObject())
  73.                         {
  74.                                 $this->setError($this->_db->getError());
  75.                         }
  76.                         else
  77.                         {
  78.                                 // Load the JSON string
  79.                                 $params = new JRegistry;
  80.                                 // loadJSON is @deprecated    12.1  Use loadString passing JSON as the format instead.
  81.                                 //$params->loadString($this->item->params, 'JSON');
  82.                                 $params->loadJSON($this->item->params);
  83.                                 $this->item->params = $params;
  84.  
  85.                                 // Merge global params with item params
  86.                                 $params = clone $this->getState('params');
  87.                                 $params->merge($this->item->params);
  88.                                 $this->item->params = $params;
  89.                         }
  90.                 }
  91.                 return $this->item;
  92.         }
  93. }