Current File : /home/pacjaorg/public_html/km/administrator/components/com_djclassifieds/controllers/categories.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 DJClassifiedsControllerCategories extends JControllerAdmin
{
	public function getModel($name = 'Category', $prefix = 'DJClassifiedsModel', $config = array('ignore_request' => true))
	{
		$model = parent::getModel($name, $prefix, $config);

		return $model;
	}
	
	function delete()
	{
	    $app = JFactory::getApplication();
	    $db = JFactory::getDBO();
	    $user = JFactory::getUser();
		$cid = $app->input->getVar('cid', array());
	    
	    if(!$user->authorise('core.delete', 'com_djclassifieds')){
	    	$this->setMessage(JText::_('JLIB_APPLICATION_ERROR_DELETE_NOT_PERMITTED'), 'error');
	    	$this->setRedirect( 'index.php?option=com_djclassifieds&view=categories' );
	    	return false;
	    }

	    if($cid){
	        $cids = implode(',', $cid);
			
			$query = "SELECT count(id) FROM #__djcf_items WHERE cat_id IN ( ".$cids." )";
			$db->setQuery($query);
			$items_count = $db->loadResult();
			if($items_count>0){
				$app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_DELETE_ADS_BEFORE_DELETE_BEFORE_CATEGORY'), 'error');
				$app->redirect('index.php?option=com_djclassifieds&view=categories');
			}		

			$query = "SELECT count(id) FROM #__djcf_categories WHERE id NOT IN ( ".$cids." ) AND parent_id IN ( ".$cids." )";
			$db->setQuery($query);
			$cats_count = $db->loadResult();
			if($cats_count>0){
				$app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_DELETE_CHILD_CATEGORIES_BEFORE_DELETE_PARENT_CATEGORY'),'error');
				$app->redirect('index.php?option=com_djclassifieds&view=categories');
			}
			
			$query = "SELECT * FROM #__djcf_images WHERE item_id IN ( ".$cids." ) AND type='category' ";
			$db->setQuery($query);
			$items_images = $db->loadObjectList('id');
				
			if($items_images){
				foreach($items_images as $item_img){
					$path_to_delete = JPATH_ROOT.$item_img->path.$item_img->name;
					if (JFile::exists($path_to_delete.'.'.$item_img->ext)){
						JFile::delete($path_to_delete.'.'.$item_img->ext);
					}
					if (JFile::exists($path_to_delete.'_ths.'.$item_img->ext)){
						JFile::delete($path_to_delete.'_ths.'.$item_img->ext);
					}
				}
			}
			
	        $query = "DELETE FROM #__djcf_categories WHERE ID IN ( ".$cids." )";
	        $db->setQuery($query);
	        $db->execute();
			
			$query = "DELETE FROM #__djcf_fields_xref WHERE cat_id IN ( ".$cids." )";
	        $db->setQuery($query);
	        $db->execute();
	        
	        $query = "DELETE FROM #__djcf_images WHERE item_id IN ( ".$cids." ) AND type='category' ";
	        $db->setQuery($query);
	        $db->execute();
	    }

		$app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_CATEGORIES_DELETED'), 'success');
	    $app->redirect('index.php?option=com_djclassifieds&view=categories');
	}

	function recreateThumbnails()
	{
		$app = JFactory::getApplication();
		$cid = $app->input->get('cid', array());

		if (!$cid) {
			$this->recreateThumbnailsAll();
			return true;
		}

		$cat_id = $cid[0];
		unset($cid[0]);		

		$this->_recreateCategoryThumbnails($cat_id);
	    
		if (!$cid) {
			$this->setRedirect( 'index.php?option=com_djclassifieds&view=categories', JText::_('COM_DJCLASSIFIEDS_THUMBNAILS_RECREATED') );	
		} else {	        
			$cids = '';
			foreach ($cid as $value) {
				$cids .= '&cid[]='.$value; 
			}
			header("refresh: 0; url=".JURI::base().'index.php?option=com_djclassifieds&task=categories.recreateThumbnails'.$cids);				        
	    }
	}

	function recreateThumbnailsAll()
	{
		$app = JFactory::getApplication();
		$db = JFactory::getDBO();
		$prev_cat_id = $app->input->get('cat_id', '0');

		$query = "SELECT item_id FROM #__djcf_images WHERE type='category' AND item_id > ".$prev_cat_id." ORDER BY item_id ASC LIMIT 1";
		$db->setQuery($query);
		$cat_id = $db->loadResult();

		if(!$cat_id){
			$this->setRedirect('index.php?option=com_djclassifieds&view=categories', JText::_('COM_DJCLASSIFIEDS_THUMBNAILS_RECREATED'));
		}else{
			$this->_recreateCategoryThumbnails($cat_id);
			header("refresh: 0; url=".JURI::base().'index.php?option=com_djclassifieds&task=categories.recreateThumbnailsAll&cat_id='.$cat_id);	
		}
	}

	function _recreateCategoryThumbnails($cat_id)
	{
		JToolBarHelper::title(JText::_('COM_DJCLASSIFIEDS_RECREATING_THUMBNAILS'), 'generic.png');
		echo '<h3>'.JTEXT::_('COM_DJCLASSIFIEDS_RESIZING_ITEM').' '.$cat_id.'... '.JTEXT::_('COM_DJCLASSIFIEDS_PLEASE_WAIT').'</h3>';

		$par = JComponentHelper::getParams('com_djclassifieds');
		$db = JFactory::getDBO();

		$query = "SELECT * FROM #__djcf_images WHERE item_id = ".$cat_id." AND type='category'";
		$db->setQuery($query);
		$images = $db->loadObjectList();

		if($images){
			$nw = $par->get('catth_width','68');
			$nh = $par->get('catth_height','50');

			foreach($images as $image){
				$path = JPATH_SITE.$image->path.$image->name;	
				if (JFile::exists($path.'.'.$image->ext)){ 
					if (JFile::exists($path.'_ths.'.$image->ext)){
						JFile::delete($path.'_ths.'.$image->ext);
					}
					
					DJClassifiedsImage::makeThumb($path.'.'.$image->ext,$path.'_ths.'.$image->ext, $nw, $nh);
					echo '<img src="'.JUri::root(true).$image->path.$image->name.'_ths.'.$image->ext.'" style="margin-right:3px">';
				}
			}
		}
	}

	function regenerateAliases()
	{
		$app = JFactory::getApplication();
		$par = JComponentHelper::getParams( 'com_djclassifieds' );	    		
	    $db = JFactory::getDBO();
			    	    
	        $query = "SELECT * FROM #__djcf_categories";
			$db->setQuery($query);
			$cats = $db->loadObjectList();							
		
			foreach($cats as $c){									
        		$alias = DJClassifiedsSEO::getAliasName($c->name);
				$query = "UPDATE #__djcf_categories SET alias='".$alias."' WHERE id=".$c->id;
				$db->setQuery($query);
				$db->execute();
			}				        
	    
	    $redirect = 'index.php?option=com_djclassifieds&view=categories';
		$app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_ALIASES_RECREATED'), 'success');
	    $app->redirect($redirect);
	}

	public function batch()
	{
		$app = JFactory::getApplication();
	    $db = JFactory::getDBO();
		$user = JFactory::getUser();
		$redirect = 'index.php?option=com_djclassifieds&view=categories';

		if (!$user->authorise('core.admin', 'com_djclassifieds')) {
	    	$this->setMessage(JText::_('JGLOBAL_BATCH_CANNOT_EDIT'), 'error');
	    	$this->setRedirect($redirect);
	    	return false;
	    }
		
		$cid_arr = $app->input->get('cid', array());
		$cat_id = $app->input->get('batch_cid', '');
		$cats_updated = '0';

	    if ($cid_arr && $cat_id != ''){
	        $ids = implode(',', $cid_arr);

			$query = "UPDATE #__djcf_categories SET parent_id=".$cat_id." WHERE id IN (".$ids.")";
			$db->setQuery($query);
			$db->execute();
			
			$cats_updated = count($cid_arr);
		}

		$message = JText::sprintf('COM_DJCLASSIFIEDS_BATCH_CATEGORIES_UPDATED', $cats_updated);
		$app->enqueueMessage($message, 'success');
	    $app->redirect($redirect);
	}

	public function publish()
	{
		$app = JFactory::getApplication();
		$task = $this->getTask();
		$cid_arr = $app->input->get('cid');

		if($task == 'unpublish'){
			DJClassifiedsCategory::unpublishChildren($cid_arr);
		}elseif($task == 'publish'){
			DJClassifiedsCategory::publishParents($cid_arr);
		}

		$publish = parent::publish(); 		
	
		return $publish;
	}

}
Site is undergoing maintenance

PACJA Events

Maintenance mode is on

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