Current File : /home/pacjaorg/public_html/km/administrator/components/com_djclassifieds/controllers/fields.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 DJClassifiedsControllerFields extends JControllerAdmin
{
public function getModel($name = 'Field', $prefix = 'DJClassifiedsModel', $config = array())
{
$model = parent::getModel($name, $prefix, array('ignore_request' => true));
return $model;
}
function copyDefaultOrdering()
{
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$cid = $app->input->get('cid', array (), '', 'array');
$query = "UPDATE #__djcf_fields_xref fx "
."JOIN #__djcf_fields f ON fx.field_id = f.id "
."SET fx.ordering = f.ordering"
.($cid ? " WHERE fx.field_id IN ( ".implode(',', $cid)." )" : "");
$db->setQuery($query);
$db->execute();
$app->enqueueMessage(JText::_($cid ? 'COM_DJCLASSIFIEDS_FIELDS_CATEGORIES_ORDERING_CHANGED' : 'COM_DJCLASSIFIEDS_FIELDS_CATEGORIES_ORDERING_ALL_CHANGED'), 'success');
$app->redirect('index.php?option=com_djclassifieds&view=fields');
}
function recreateThumbnails()
{
$app = JFactory::getApplication();
$cid = $app->input->get('cid', array());
if (!$cid) {
$this->recreateThumbnailsAll();
return true;
}
$field_id = $cid[0];
unset($cid[0]);
$this->_recreateFieldThumbnails($field_id);
if (!$cid) {
$this->setRedirect( 'index.php?option=com_djclassifieds&view=fields', 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=fields.recreateThumbnails'.$cids);
}
}
function recreateThumbnailsAll()
{
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$prev_img_id = $app->input->get('img_id', '0');
$query = "SELECT * FROM #__djcf_images WHERE type LIKE '%_field_%' AND id > ".$prev_img_id." ORDER BY id ASC LIMIT 1";
$db->setQuery($query);
$img = $db->loadObject();
if(!$img){
$this->setRedirect('index.php?option=com_djclassifieds&view=fields', JText::_('COM_DJCLASSIFIEDS_THUMBNAILS_RECREATED'));
}else{
$field_type_arr = explode('_field_', $img->type);
$field_id = end($field_type_arr);
$this->_recreateFieldThumbnails($field_id);
header("refresh: 0; url=".JURI::base().'index.php?option=com_djclassifieds&task=fields.recreateThumbnailsAll&img_id='.$img->id);
}
}
function _recreateFieldThumbnails($field_id)
{
JToolBarHelper::title(JText::_('COM_DJCLASSIFIEDS_RECREATING_THUMBNAILS'), 'generic.png');
echo '<h3>'.JTEXT::_('COM_DJCLASSIFIEDS_RESIZING_ITEM').' '.$field_id.'... '.JTEXT::_('COM_DJCLASSIFIEDS_PLEASE_WAIT').'</h3>';
$db = JFactory::getDBO();
$query = "SELECT * FROM #__djcf_images WHERE type LIKE '%_field_".$field_id."'";
$db->setQuery($query);
$images = $db->loadObjectList();
if($images){
$query = "SELECT * FROM #__djcf_fields WHERE id = ".$field_id;
$db->setQuery($query);
$field = $db->loadObject();
$f_par = new JRegistry();
$f_par->loadString($field->params);
$nw = (int)$f_par->get('image_th_width', 150);
$nh = (int)$f_par->get('image_th_height', 0);
foreach($images as $image){
$path = JPATH_SITE.$image->path.$image->name;
if (JFile::exists($path.'.'.$image->ext)){
if (JFile::exists($path.'_th.'.$image->ext)){
JFile::delete($path.'_th.'.$image->ext);
}
DJClassifiedsImage::makeThumb($path.'.'.$image->ext,$path.'_th.'.$image->ext, $nw, $nh);
echo '<img src="'.JUri::root(true).$image->path.$image->name.'_th.'.$image->ext.'" style="margin-right:3px">';
}
}
}
}
public function batch()
{
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$user = JFactory::getUser();
$redirect = 'index.php?option=com_djclassifieds&view=fields';
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());
$display_cols = array(
'in_table',
'in_blog',
'in_item',
'in_module',
'in_registration'
);
$updated = false;
if($cid_arr){
$ids = implode(',', $cid_arr);
if($app->input->get('batch_gid') != ''){
$query = "UPDATE #__djcf_fields SET group_id=".$app->input->getInt('batch_gid')." WHERE id IN (".$ids.")";
$db->setQuery($query);
$db->execute();
$updated = true;
}
foreach($display_cols as $display_col){
if($app->input->get('batch_'.$display_col) != ''){
$query = "UPDATE #__djcf_fields SET ".$display_col."=".$app->input->getInt('batch_'.$display_col)." WHERE id IN (".$ids.")";
$db->setQuery($query);
$db->execute();
$updated = true;
}
}
}
if($updated){
$app->enqueueMessage(JText::sprintf('COM_DJCLASSIFIEDS_BATCH_FIELDS_UPDATED', count($cid_arr)), 'success');
}
$app->redirect($redirect);
}
}