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;
	}

}
Site is undergoing maintenance

PACJA Events

Maintenance mode is on

Site will be available soon. Thank you for your patience!