Current File : /home/pacjaorg/public_html/km/administrator/components/com_djclassifieds/models/usersplan.php |
<?php
/**
* @package DJ-Classifieds
* @copyright Copyright (C) DJ-Extensions.com, All rights reserved.
* @license http://www.gnu.org/licenses GNU/GPL
* @author url: http://dj-extensions.com
* @author email: contact@dj-extensions.com
*/
defined('_JEXEC') or die;
class DJClassifiedsModelUsersPlan extends DJClassifiedsAdminModel
{
public function __construct($config = array())
{
$config['event_after_save'] = 'onProducerAfterSave';
$config['event_after_delete'] = 'onProducerAfterDelete';
parent::__construct($config);
}
public function getTable($plan = 'UsersPlans', $prefix = 'DJClassifiedsTable', $config = array())
{
return JTable::getInstance($plan, $prefix, $config);
}
public function getForm($data = array(), $loadData = true)
{
// Initialise variables.
$app = JFactory::getApplication();
// Get the form.
$form = $this->loadForm('com_djclassifieds.usersplan', 'usersplan', array('control' => 'jform', 'load_data' => $loadData));
if (empty($form)) {
return false;
}
return $form;
}
protected function loadFormData()
{
$data = JFactory::getApplication()->getUserState('com_djclassifieds.edit.usersplan.data', array());
if (empty($data)) {
$data = $this->getItem();
if($data->id){
$adverts = $this->getAdverts($data->id);
$adverts_subform_arr = array();
foreach($adverts as $key => $ad){
$adverts_subform_arr['proms'.$key] = array(
'id' => $ad->item_id,
'name' => $ad->item_name,
'date' => $ad->date.($ad->is_renew ? ' ('.JText::_('COM_DJCLASSIFIEDS_ITEM_RENEWED').')' : '')
);
}
$data->set('adverts', $adverts_subform_arr);
}
}
return $data;
}
function getPlanForm($userplan_params)
{
$app = JFactory::getApplication();
if($userplan_params){
$plan_data = new stdClass();
$plan_data->params = json_decode($userplan_params);
$app->setUserState('com_djclassifieds.edit.plan.data', $plan_data);
}
require_once(JPATH_ROOT.'/administrator/components/com_djclassifieds/models/plan.php');
$plan_model = new DJClassifiedsModelPlan();
$plan_form = $plan_model->getForm();
$plan_form->removeField('ad_limit', 'params');
$plan_form->removeField('days_limit', 'params');
$plan_form->removeField('params_spacer', 'params');
if($userplan_params){
$app->setUserState('com_djclassifieds.edit.plan.data', null);
}
return $plan_form;
}
protected function prepareTable($table)
{
$app = JFactory::getApplication();
$db = JFactory::getDBO();
if (empty($table->id)) {
$query = "SELECT * FROM #__djcf_plans WHERE id=".$table->plan_id;
$db->setQuery($query);
$plan = $db->loadObject();
if($plan){
$registry = new JRegistry();
$registry->loadString($plan->params);
$plan_params = $registry->toObject();
$table->adverts_limit = $plan_params->ad_limit;
$table->adverts_available = $plan_params->ad_limit == '-1' ? '9999999' : $plan_params->ad_limit;
$table->date_start = JFactory::getDate()->toSQL();
$table->date_exp = $plan_params->days_limit ? JFactory::getDate('now + '.$plan_params->days_limit.' day')->toSQL() : '0000-00-00 00:00:00';
$table->plan_params = $plan->params;
}
}else{
$jform = $app->input->getRaw('jform');
$table->plan_params = json_encode($jform['params']);
}
$table->date_exp = $table->date_exp ? $table->date_exp : '0000-00-00 00:00:00';
}
protected function getReorderConditions($table = null)
{
$condition = array();
return $condition;
}
function getAdverts($subscr_id)
{
$db = JFactory::getDBO();
$query = "SELECT si.*, i.name item_name "
."FROM (SELECT subscr_id, item_id, `date`, 0 is_renew FROM #__djcf_plans_subscr_items UNION SELECT subscr_id, item_id, `date`, 1 is_renew FROM #__djcf_plans_subscr_items_renew) si "
."LEFT JOIN #__djcf_items i ON si.item_id=i.id "
."WHERE subscr_id=".$subscr_id." "
."ORDER BY date DESC";
$db->setQuery($query);
$proms = $db->loadObjectList();
return $proms;
}
}