Current File : /home/pacjaorg/public_html/km/administrator/components/com_djclassifieds/controllers/field.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('Restricted access');

class DJClassifiedsControllerField extends JControllerForm
{
	public function save($key = null, $urlVar = null) {
		return parent::save($key, $urlVar);
	}
	
	protected function postSaveHook(JModelLegacy $model, $validData = array())
	{
		$app = JFactory::getApplication();
		$db = JFactory::getDBO();
		
		$field_id = $model->getItem()->id;
		$jform = $app->input->getArray()['jform'];

		// custom plugins support (saving additional columns with no jform wrapper)
		$row = JTable::getInstance('Fields', 'DJClassifiedsTable');
		$row->load($field_id);
		$row->bind($app->input->post->getArray());

		if($app->input->get('task') == 'save2copy' && $app->input->getInt('id')){
			$old_row = JTable::getInstance('Fields', 'DJClassifiedsTable');
			$old_row->load($app->input->getInt('id'));
			$row->source = $old_row->source;
		}

		$row->store();

		$query = "SELECT cat_id, ordering FROM #__djcf_fields_xref WHERE field_id=".$field_id;				
		$db->setQuery($query);
		$xref_ord = $db->loadAssocList('cat_id', 'ordering');

		$query = "DELETE FROM #__djcf_fields_xref WHERE field_id=".$field_id;				
		$db->setQuery($query);
		$db->execute();

		if($model->getItem()->source){ // save cat xref only for category custom fields (source=0)
			return;
		}

		if(!empty($jform['all_cats'])){
			$query = "SELECT * FROM #__djcf_categories";
			$db->setQuery($query);
			$all_cats = $db->LoadObjectList();

			$ins_arr = array();
			foreach($all_cats as $c){
				$ins_arr[] = "(".$c->id.", ".$field_id.", ".(!empty($xref_ord[$c->id]) ? $xref_ord[$c->id] : $c->ordering).")";
			}
			if($ins_arr){
				$query = "INSERT INTO #__djcf_fields_xref(`cat_id`,`field_id`,`ordering`) VALUES "
						.implode(', ', $ins_arr);
				$db->setQuery($query);
				$db->execute();
			}
		}elseif(!empty($jform['remove_from_all_cats'])){
			return;
		}else{
			$jform_cat_ids = array();
			if(!empty($jform['cat_id'])){
				$jform_cat_ids = $jform['cat_id'];
			}elseif($app->input->getStr('cat_ids_helper')){ // max_input_vars limit reach workaround
				$jform_cat_ids = explode(',', $app->input->getStr('cat_ids_helper'));
			}

			if($jform_cat_ids){
				if(!empty($jform['add_to_subcats'])){
					$cat_ids = array();
					foreach($jform_cat_ids as $cat_id){
						$subcats = DJClassifiedsCategory::getSubCat($cat_id);
						foreach($subcats as $subcat){
							$cat_ids[] = $subcat->id;
						}
					}
				}else{
					$cat_ids = $jform_cat_ids;
				}
	
				$query = "SELECT * FROM #__djcf_categories WHERE id IN (".implode(',', $cat_ids).")";
				$db->setQuery($query);
				$cats = $db->LoadObjectList();
	
				$ins_arr = array();
				foreach($cats as $c){
					$ins_arr[] = "(".$c->id.", ".$field_id.", ".(!empty($xref_ord[$c->id]) ? $xref_ord[$c->id] : $c->ordering).")";
				}
				if($ins_arr){
					$query = "INSERT INTO #__djcf_fields_xref(`cat_id`,`field_id`,`ordering`) VALUES "
							.implode(', ', $ins_arr);
					$db->setQuery($query);
					$db->execute();
				}
			}
		}
	}
}
Site is undergoing maintenance

PACJA Events

Maintenance mode is on

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