function getObjectInfo($id, $language = null)
 {
     $info = new JCommentsObjectInfo();
     $routerHelper = JPATH_ROOT . '/administrator/components/com_djclassifieds/lib/djseo.php';
     if (is_file($routerHelper)) {
         require_once $routerHelper;
         $db = JFactory::getDBO();
         $query = $db->getQuery(true);
         $query->select('a.id, a.alias, a.name, a.user_id');
         $query->from('#__djcf_items AS a');
         $query->select('c.id AS category_id, c.alias AS category_alias');
         $query->join('LEFT', '#__djcf_categories AS c ON c.id = a.cat_id');
         $query->where('a.id = ' . (int) $id);
         $db->setQuery($query);
         $row = $db->loadObject();
         if (!empty($row)) {
             $slug = $row->alias ? $row->id . ':' . $row->alias : $row->id;
             $catslug = $row->category_alias ? $row->category_id . ':' . $row->category_alias : $row->category_id;
             $info->title = $row->name;
             $info->category_id = $row->category_id;
             $info->userid = $row->user_id;
             $info->link = JRoute::_(DJClassifiedsSEO::getItemRoute($slug, $catslug));
         }
     }
     return $info;
 }
 function display($tpl = null)
 {
     $app = JFactory::getApplication();
     $document = JFactory::getDocument();
     $Itemid = JRequest::getVar('Itemid', 0, 'int');
     //$document->link = JRoute::_(WeblinksHelperRoute::getCategoryRoute(JRequest::getVar('id', null, '', 'int')));
     JRequest::setVar('limit', $app->getCfg('feed_limit'));
     $siteEmail = $app->getCfg('mailfrom');
     $fromName = $app->getCfg('fromname');
     $document->editor = $fromName;
     $document->editorEmail = $siteEmail;
     // Get some data from the model
     $model = $this->getModel();
     $cat_id = JRequest::getVar('cid', 0, '', 'int');
     $catlist = '';
     $maincat = '';
     if ($cat_id > 0) {
         $main_cat = $model->getMainCat($cat_id);
         $document->title = $main_cat->name;
         $cats = DJClassifiedsCategory::getSubCatIemsCount($cat_id, 1);
         $catlist = $cat_id;
         foreach ($cats as $c) {
             $catlist .= ',' . $c->id;
         }
     }
     $items = $model->getItems($catlist);
     foreach ($items as $item) {
         // strip html from feed item title
         $title = $this->escape($item->name);
         $title = html_entity_decode($title, ENT_COMPAT, 'UTF-8');
         // url link to article
         //$link = JRoute::_('index.php?option=com_djclassifieds&view=item&cid='.$item->cat_id.'&id='.$item->id.'&Itemid='.$Itemid);
         if (!$item->alias) {
             $item->alias = DJClassifiedsSEO::getAliasName($item->name);
         }
         if (!$item->c_alias) {
             $item->c_alias = DJClassifiedsSEO::getAliasName($item->c_name);
         }
         $link = JRoute::_(DJClassifiedsSEO::getItemRoute($item->id . ':' . $item->alias, $item->cat_id . ':' . $item->c_alias));
         //echo $link;die();
         // strip html from feed item description text
         $description = $item->intro_desc;
         $date = $item->date_start ? date('r', strtotime($item->date_start)) : '';
         if ($item->image_url != '') {
             $images = explode(';', $item->image_url);
             $description .= '<img align="right" src="' . JURI::base() . '/components/com_djclassifieds/images/' . $images[0] . '.ths.jpg" />';
         }
         // load individual item creator class
         $feeditem = new JFeedItem();
         $feeditem->title = $title;
         $feeditem->link = $link;
         $feeditem->description = $description;
         $feeditem->date = $date;
         $feeditem->category = $item->c_name;
         // loads item info into rss array
         $document->addItem($feeditem);
     }
 }
Beispiel #3
0
 function paymentReturn()
 {
     $app = JFactory::getApplication();
     $id = JRequest::getInt("id", "");
     $cid = JRequest::getInt("cid", "");
     $itemid = JRequest::getInt("Itemid", "");
     $r = JRequest::getVar("r", "");
     if ($r == 'ok') {
         //$redirect= 'index.php?option=com_djclassifieds&view=item&id='.$id.'&cid='.$cid.'&Itemid='.$itemid;
         $message = JTExt::_('COM_DJCLASSIFIEDS_THANKS_FOR_PAYMENT_WAIT_FOR_CONFIRMATION');
     } else {
         $message = JTExt::_('COM_DJCLASSIFIEDS_PAYMENT_CANCELED');
     }
     //$redirect= 'index.php?option=com_djclassifieds&view=items&cid=0&Itemid='.$itemid;
     $redirect = DJClassifiedsSEO::getCategoryRoute('0:all');
     $redirect = JRoute::_($redirect);
     $app->redirect($redirect, $message);
 }
Beispiel #4
0
 function getItem($id)
 {
     $db = JFactory::getDBO();
     $app = JFactory::getApplication();
     $date_now = date("Y-m-d H:i:s");
     $quantity = JRequest::getInt('quantity', 0);
     $query = "SELECT i.*, c.name as c_name, c.alias as c_alias FROM #__djcf_items i " . "LEFT JOIN #__djcf_categories c ON c.id=i.cat_id " . "WHERE i.id=" . $id . " AND i.published=1 AND c.published=1 AND i.date_start <= '" . $date_now . "' AND i.date_exp >= '" . $date_now . "' LIMIT 1";
     $db->setQuery($query);
     $item = $db->loadObject();
     if (!$item) {
         $redirect = DJClassifiedsSEO::getCategoryRoute('0:all');
         $message = JText::_("COM_DJCLASSIFIEDS_ITEM_NOT_AVAILABLE");
         $redirect = JRoute::_($redirect);
         $app->redirect($redirect, $message);
     } else {
         if ($quantity > $item->quantity) {
             $redirect = DJClassifiedsSEO::getItemRoute($item->id . ':' . $item->alias, $item->cat_id . ':' . $item->c_alias);
             $message = JText::_("COM_DJCLASSIFIEDS_NUMBER_OF_PRODUCTS_IS_LESS_THEN_SELECTED");
             $redirect = JRoute::_($redirect);
             $app->redirect($redirect, $message);
         }
     }
     return $item;
 }
Beispiel #5
0
 public static function parseMessageBody($message, $message_id, $item, $reciver = '', $bidder = '', $bid = '', $bcontact_message = '', $bowner = '', $contact_message = '', $contact_author = '', $abuse_message = '', $abuse_author = '', $buyer = '', $quantity = '', $contact_fields_message = '', $payment_info = array())
 {
     $dispatcher = JDispatcher::getInstance();
     $dispatcher->trigger('onAdminBeforeParseEmailBody', array(&$message, $message_id, &$item, &$reciver, &$bidder, &$bid, &$bcontact_message, &$bowner, $contact_message, &$contact_author, &$abuse_message, &$abuse_author, &$buyer, &$quantity, &$contact_fields_message));
     $u = JURI::getInstance(JURI::root());
     if ($item) {
         if ($u->getScheme()) {
             $link = $u->getScheme() . '://';
         } else {
             $link = 'http://';
         }
         $link .= $u->getHost() . JRoute::_(DJClassifiedsSEO::getItemRoute($item->id . ':' . $item->alias, $item->cat_id . ':' . $item->c_alias));
         $link = str_ireplace('administrator/', '', $link);
         $message = str_ireplace('[[advert_id]]', $item->id, $message);
         $message = str_ireplace('[[advert_link]]', '<a href="' . $link . '">' . $link . '</a>', $message);
         $message = str_ireplace('[[advert_title]]', $item->name, $message);
         $message = str_ireplace('[[advert_title_link]]', '<a href="' . $link . '">' . $item->name . '</a>', $message);
         $message = str_ireplace('[[advert_category]]', $item->c_name, $message);
         $message = str_ireplace('[[advert_intro_desc]]', $item->intro_desc, $message);
         $message = str_ireplace('[[advert_desc]]', $item->description, $message);
         if ($item->user_id) {
             $message = str_ireplace('[[advert_author_name]]', $item->u_name, $message);
             $message = str_ireplace('[[advert_author_email]]', $item->u_email, $message);
         } else {
             $message = str_ireplace('[[advert_author_name]]', JText::_('COM_DJCLASSIFIEDS_GUEST'), $message);
             $message = str_ireplace('[[advert_author_email]]', $item->email, $message);
         }
         if ($item->published) {
             $message = str_ireplace('[[advert_status]]', JText::_('COM_DJCLASSIFIEDS_PUBLISHED'), $message);
         } else {
             $message = str_ireplace('[[advert_status]]', JText::_('COM_DJCLASSIFIEDS_WAITING_FOR_PUBLISH'), $message);
         }
     }
     if ($reciver) {
         $message = str_ireplace('[[user_id]]', $reciver->id, $message);
         $message = str_ireplace('[[user_name]]', $reciver->name, $message);
         $message = str_ireplace('[[user_username]]', $reciver->username, $message);
         $message = str_ireplace('[[user_email]]', $reciver->email, $message);
     }
     if ($bid) {
         $message = str_ireplace('[[bid_value]]', $bid, $message);
     }
     if ($bidder) {
         $message = str_ireplace('[[bidder_id]]', $bidder->id, $message);
         $message = str_ireplace('[[bidder_name]]', $bidder->name, $message);
         $message = str_ireplace('[[bidder_username]]', $bidder->username, $message);
         $message = str_ireplace('[[bidder_email]]', $bidder->email, $message);
     }
     if ($bcontact_message) {
         $message = str_ireplace('[[bcontact_message]]', $bcontact_message, $message);
     }
     if ($bowner) {
         $message = str_ireplace('[[bcontact_author_name]]', $bowner->name, $message);
     }
     if ($contact_fields_message) {
         $message = str_ireplace('[[contact_custom_fields_message]]', $contact_fields_message, $message);
     }
     if ($contact_message) {
         $message = str_ireplace('[[contact_message]]', $contact_message, $message);
     }
     if ($contact_author) {
         $message = str_ireplace('[[contact_author_name]]', $contact_author['name'], $message);
         $message = str_ireplace('[[contact_author_email]]', $contact_author['email'], $message);
     }
     if ($abuse_message) {
         $message = str_ireplace('[[abuse_message]]', $abuse_message, $message);
     }
     if ($abuse_author) {
         $message = str_ireplace('[[abuse_author_name]]', $abuse_author->name, $message);
     }
     if ($buyer) {
         $message = str_ireplace('[[buyer_name]]', $buyer->name, $message);
         $message = str_ireplace('[[buyer_email]]', $buyer->email, $message);
     }
     if ($quantity) {
         $message = str_ireplace('[[buynow_quantity]]', $quantity, $message);
         $message = str_ireplace('[[buynow_price]]', $item->price, $message);
         $dispatcher->trigger('onAdminPriceParseEmailBody', array(&$message, $message_id, $item, $buyer, &$price_total));
         $price_total = $quantity * $item->price;
         $message = str_ireplace('[[buynow_price_total]]', $price_total, $message);
     }
     if (count($payment_info)) {
         $message = str_ireplace('[[payment_item_name]]', $payment_info['itemname'], $message);
         $message = str_ireplace('[[payment_price]]', $payment_info['amount'], $message);
         $message = str_ireplace('[[payment_info]]', $payment_info['info'], $message);
         $message = str_ireplace('[[payment_id]]', $payment_info['id'], $message);
     }
     $dispatcher->trigger('onAdminParseEmailBody', array(&$message, $message_id, $item, $buyer));
     return $message;
 }
Beispiel #6
0
 function save()
 {
     $app = JFactory::getApplication();
     JTable::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR . DS . 'tables');
     jimport('joomla.database.table');
     JPluginHelper::importPlugin('djclassifieds');
     $row = JTable::getInstance('Items', 'DJClassifiedsTable');
     $par = JComponentHelper::getParams('com_djclassifieds');
     $user = JFactory::getUser();
     $lang = JFactory::getLanguage();
     $dispatcher = JDispatcher::getInstance();
     $db = JFactory::getDBO();
     $id = JRequest::getVar('id', 0, '', 'int');
     $token = JRequest::getCMD('token', '');
     $redirect = '';
     $menus = $app->getMenu('site');
     $menu_item = $menus->getItems('link', 'index.php?option=com_djclassifieds&view=items&cid=0', 1);
     $menu_item_blog = $menus->getItems('link', 'index.php?option=com_djclassifieds&view=items&layout=blog&cid=0', 1);
     $itemid = '';
     if ($menu_item) {
         $itemid = '&Itemid=' . $menu_item->id;
     } else {
         if ($menu_item_blog) {
             $itemid = '&Itemid=' . $menu_item_blog->id;
         }
     }
     $menu_newad_itemid = $menus->getItems('link', 'index.php?option=com_djclassifieds&view=additem', 1);
     $new_ad_link = 'index.php?option=com_djclassifieds&view=additem';
     if ($menu_newad_itemid) {
         $new_ad_link .= '&Itemid=' . $menu_newad_itemid->id;
     }
     $new_ad_link = JRoute::_($new_ad_link);
     if ($user->id == 0 && $id > 0) {
         $message = JText::_('COM_DJCLASSIFIEDS_WRONG_AD');
         //$redirect="index.php?option=com_djclassifieds&view=items&cid=0".$itemid;
         $redirect = DJClassifiedsSEO::getCategoryRoute('0:all');
         $redirect = JRoute::_($redirect);
         $app->redirect($redirect, $message, 'error');
     }
     $db = JFactory::getDBO();
     if ($id > 0) {
         $query = "SELECT user_id FROM #__djcf_items WHERE id='" . $id . "' LIMIT 1";
         $db->setQuery($query);
         $item_user_id = $db->loadResult();
         if ($item_user_id != $user->id) {
             $message = JText::_('COM_DJCLASSIFIEDS_WRONG_AD');
             $redirect = DJClassifiedsSEO::getCategoryRoute('0:all');
             $redirect = JRoute::_($redirect);
             $app->redirect($redirect, $message, 'error');
         }
     }
     if ($par->get('user_type') == 1 && $user->id == '0') {
         //$uri = "index.php?option=com_djclassifieds&view=items&cid=0".$itemid;
         $uri = DJClassifiedsSEO::getCategoryRoute('0:all');
         $app->redirect('index.php?option=com_users&view=login&return=' . base64_encode($uri), JText::_('COM_DJCLASSIFIEDS_PLEASE_LOGIN'));
     }
     $row->bind(JRequest::get('post'));
     if ($token && !$user->id && !$id) {
         $query = "SELECT i.id FROM #__djcf_items i " . "WHERE i.user_id=0 AND i.token=" . $db->Quote($db->escape($token));
         $db->setQuery($query);
         $ad_id = $db->loadResult();
         if ($ad_id) {
             $row->id = $ad_id;
         } else {
             $uri = DJClassifiedsSEO::getCategoryRoute('0:all');
             $app->redirect('index.php?option=com_users&view=login&return=' . base64_encode($uri), JText::_('COM_DJCLASSIFIEDS_WRONG_TOKEN'));
         }
     }
     $dispatcher->trigger('onAfterInitialiseDJClassifiedsSaveAdvert', array(&$row, &$par));
     if ($par->get('title_char_limit', '0') > 0) {
         $row->name = mb_substr($row->name, 0, $par->get('title_char_limit', '100'), "UTF-8");
     }
     if ((int) $par->get('allow_htmltags', '0')) {
         $row->description = JRequest::getVar('description', '', 'post', 'string', JREQUEST_ALLOWRAW);
         $allowed_tags = explode(';', $par->get('allowed_htmltags', ''));
         $a_tags = '';
         for ($a = 0; $a < count($allowed_tags); $a++) {
             $a_tags .= '<' . $allowed_tags[$a] . '>';
         }
         $row->description = strip_tags($row->description, $a_tags);
     } else {
         $row->description = nl2br(JRequest::getVar('description', '', 'post', 'string'));
     }
     $row->intro_desc = mb_substr(strip_tags(nl2br($row->intro_desc)), 0, $par->get('introdesc_char_limit', '120'), "UTF-8");
     if (!$row->intro_desc) {
         $row->intro_desc = mb_substr(strip_tags($row->description), 0, $par->get('introdesc_char_limit', '120'), "UTF-8");
     }
     $row->contact = nl2br(JRequest::getVar('contact', '', 'post', 'string'));
     $row->price_negotiable = JRequest::getInt('price_negotiable', '0');
     $row->bid_min = str_ireplace(',', '.', JRequest::getVar('bid_min', '', 'post', 'string'));
     $row->bid_max = str_ireplace(',', '.', JRequest::getVar('bid_max', '', 'post', 'string'));
     $row->price_reserve = str_ireplace(',', '.', JRequest::getVar('price_reserve', '', 'post', 'string'));
     if (!$id && !$token && !$user->id && $par->get('guest_can_edit', 0)) {
         $characters = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
         $row->token = '';
         for ($p = 0; $p < 20; $p++) {
             $row->token .= $characters[mt_rand(0, strlen($characters))];
         }
     }
     /*
     	//removing images from folder and from database
     	$path = JPATH_BASE."/components/com_djclassifieds/images/";
     $images = $row->image_url;
     		if(isset($_POST['del_img'])){			
     			$del_image = $_POST['del_img'];	
     		}else{
     			$del_image = array();
     		}    
     
     
     for ($i = 0; $i < count($del_image); $i++){
     
         $images = str_replace($del_image[$i].';', '', $images);
         //deleting the main image
         if (JFile::exists($path.$del_image[$i])){
             JFile::delete($path.$del_image[$i]);
         }
         //deleting thumbnail of image
     		if (JFile::exists($path.$del_image[$i].'.thb.jpg')){
             JFile::delete($path.$del_image[$i].'.thb.jpg');
         }
         if (JFile::exists($path.$del_image[$i].'.th.jpg')){
             JFile::delete($path.$del_image[$i].'.th.jpg');
         }
     		if (JFile::exists($path.$del_image[$i].'.thm.jpg')){
             JFile::delete($path.$del_image[$i].'.thm.jpg');
         }
         if (JFile::exists($path.$del_image[$i].'.ths.jpg')){
             JFile::delete($path.$del_image[$i].'.ths.jpg');
         }
     }
     
      
     //add images
     $new_files = $_FILES['image'];
     if(count($new_files['name'])>0 && $row->id==0){			
     		$query = "SELECT id FROM #__djcf_items ORDER BY id DESC LIMIT 1";
     		$db->setQuery($query);
     		$last_id =$db->loadResult();
     		$last_id++;
     	}else{
     		$last_id= $row->id;
     	}
     	
     	$nw = (int)$par->get('th_width',-1);
     $nh = (int)$par->get('th_height',-1);
     	$nws = $par->get('smallth_width',-1);
     $nhs = $par->get('smallth_height',-1);
     	$nwm = $par->get('middleth_width',-1);
     $nhm = $par->get('middleth_height',-1);			
     	$nwb = $par->get('bigth_width',-1);
     $nhb = $par->get('bigth_height',-1);		
     	$img_maxsize = $par->get('img_maxsize',0);		
     		if($img_maxsize>0){
     			$img_maxsize = $img_maxsize*1024*1024;
     		}
     	
     	$lang = JFactory::getLanguage();
     for ($i = 0; $i < count($new_files['name']); $i++)
     {
         if (substr($new_files['type'][$i], 0, 5) == "image")
         {
        			if($img_maxsize>0 && $new_files['size'][$i]>$img_maxsize){
        				$app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_TO_BIG_IMAGE').' : \''.$new_files['name'][$i].'\'','error');
     				continue;
     			}
     			if(!getimagesize($new_files['tmp_name'][$i])){
     				$app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_WRONG_IMAGE_TYPE').' : \''.$new_files['name'][$i].'\'','error');
     				continue;
     			}				
     			$n_name = $last_id.'_'.$new_files['name'][$i];    				
     			$n_name = $lang->transliterate($n_name);
     			$n_name = strtolower($n_name);
     			$n_name = JFile::makeSafe($n_name);
     			        	
         	$new_path = JPATH_BASE."/components/com_djclassifieds/images/".$n_name;
     			$nimg= 0;			
     			while(JFile::exists($new_path)){
     				$nimg++;
     			$n_name = $last_id.'_'.$nimg.'_'.$new_files['name'][$i];
     					$n_name = $lang->transliterate($n_name);
     					$n_name = strtolower($n_name);
     					$n_name = JFile::makeSafe($n_name);            	
         		$new_path = JPATH_BASE."/components/com_djclassifieds/images/".$n_name;
     			}
     			$images .= $n_name.';';
         	move_uploaded_file($new_files['tmp_name'][$i], $new_path);
     			//DJClassifiedsImage::makeThumb($new_path, $nw, $nh, 'th');
     			 	DJClassifiedsImage::makeThumb($new_path, $nws, $nhs, 'ths');
     				DJClassifiedsImage::makeThumb($new_path, $nwm, $nhm, 'thm');
     				DJClassifiedsImage::makeThumb($new_path, $nwb, $nhb, 'thb');
         }else if($new_files['name'][$i]){
     			$app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_WRONG_IMAGE_TYPE').' : \''.$new_files['name'][$i].'\'','error');	        	
         }
     }
     	
     $row->image_url = $images;
     */
     $row->image_url = '';
     $duration_price = 0;
     if ($row->id == 0) {
         if ($par->get('durations_list', '')) {
             $exp_days = JRequest::getVar('exp_days', $par->get('exp_days'), '', 'int');
             $query = "SELECT * FROM #__djcf_days WHERE days = " . $exp_days;
             $db->setQuery($query);
             $duration = $db->loadObject();
             if ($duration) {
                 $duration_price = $duration->price;
             } else {
                 //$exp_days = $par->get('exp_days','7');
                 $message = JText::_('COM_DJCLASSIFIEDS_WRONG_DURATION_LIMIT');
                 $app->redirect($new_ad_link, $message, 'error');
             }
         } else {
             $exp_days = $par->get('exp_days', '7');
         }
         if ($exp_days == 0) {
             $row->date_exp = "2038-01-01 00:00:00";
         } else {
             $row->date_exp = date("Y-m-d G:i:s", mktime(date("G"), date("i"), date("s"), date("m"), date("d") + $exp_days, date("Y")));
         }
         if ($row->date_exp == '1970-01-01 1:00:00') {
             $row->date_exp = '2038-01-19 00:00:00';
         }
         $row->exp_days = $exp_days;
         $row->date_start = date("Y-m-d H:i:s");
     }
     $row->cat_id = end($_POST['cats']);
     if (!$row->cat_id) {
         $row->cat_id = $_POST['cats'][count($_POST['cats']) - 2];
     }
     $row->cat_id = str_ireplace('p', '', $row->cat_id);
     /*if($par->get('region_add_type','1')){
     			$g_area = JRequest::getVar('g_area','');
     			$g_locality = JRequest::getVar('g_locality','');
     			$g_country = JRequest::getVar('g_country','');			
     			$latlong = str_ireplace(array('(',')'), array('',''), JRequest::getVar('latlong',''));
     			
     				$query = "SELECT id FROM #__djcf_regions WHERE name = '".$g_area."'";	
     				$db->setQuery($query);
     				$parent_r_id = $db->loadResult();
     				
     				if($parent_r_id){					
     					$query = "SELECT id FROM #__djcf_regions WHERE name = '".$g_locality."' AND parent_id=".$parent_r_id;	
     					$db->setQuery($query);
     					$region_id = $db->loadResult();
     					
     					if($region_id){
     						$row->region_id=$region_id;
     					}else{					
     						$region_row = &JTable::getInstance('Regions', 'DJClassifiedsTable');
     							$region_row->country=0;
     							$region_row->city=1;
     							$region_row->name=$g_locality;
     							$region_row->parent_id=$parent_r_id;
     													
     							//$ll = explode(',', $latlong);
     							//$region_row->latitude=$ll[0];
     							//$region_row->longitude=$ll[0];	
     							$region_row->published=1;
     							//echo '<pre>';print_r($region_row);die();							
     							if (!$region_row->store()){
     				        		exit ();	
     				    		}
     						$row->region_id=$region_row->id;	
     					}
     				}else{
     					$query = "SELECT id FROM #__djcf_regions WHERE name = '".$g_country."' ";	
     					$db->setQuery($query);
     					$country_id = $db->loadResult();
     					
     					if(!$country_id){$country_id=0;}
     					
     					$area_row = &JTable::getInstance('Regions', 'DJClassifiedsTable');
     						$area_row->country=0;
     						$area_row->city=0;
     						$area_row->name=$g_area;
     						$area_row->parent_id=$country_id;
     						$area_row->published=1;
     						//echo '<pre>';print_r($region_row);die();							
     						if (!$area_row->store()){
     			        		exit ();	
     			    		}
     					
     					$region_row = &JTable::getInstance('Regions', 'DJClassifiedsTable');
     						$region_row->country=0;
     						$region_row->city=1;
     						$region_row->name=$g_locality;
     						$region_row->parent_id=$area_row->id;
     												
     						//$ll = explode(',', $latlong);
     						//$region_row->latitude=$ll[0];
     						//$region_row->longitude=$ll[0];
     						$region_row->published=1;		
     						//echo '<pre>';print_r($region_row);die();							
     						if (!$region_row->store()){
     			        		exit ();	
     			    		}
     					$row->region_id=$region_row->id;	
     					
     				} 						
     		}else{*/
     $row->region_id = end($_POST['regions']);
     if (!$row->region_id) {
         $row->region_id = $_POST['regions'][count($_POST['regions']) - 2];
     }
     //}
     if (($row->region_id || $row->address) && ($row->latitude == '0.000000000000000' && $row->longitude == '0.000000000000000' || !$row->latitude && !$row->longitude)) {
         $address = '';
         if ($row->region_id) {
             $reg_path = DJClassifiedsRegion::getParentPath($row->region_id);
             for ($r = count($reg_path) - 1; $r >= 0; $r--) {
                 if ($reg_path[$r]->country) {
                     $address = $reg_path[$r]->name;
                 }
                 if ($reg_path[$r]->city) {
                     if ($address) {
                         $address .= ', ';
                     }
                     $address .= $reg_path[$r]->name;
                 }
             }
         }
         if ($address) {
             $address .= ', ';
         }
         $address .= $row->address;
         if ($row->post_code) {
             $address .= ', ' . $row->post_code;
         }
         $loc_coord = DJClassifiedsGeocode::getLocation($address);
         if (is_array($loc_coord)) {
             $row->latitude = $loc_coord['lat'];
             $row->longitude = $loc_coord['lng'];
         }
     }
     //echo '<pre>';print_r($row);die();
     $row->user_id = $user->id;
     $row->ip_address = $_SERVER['REMOTE_ADDR'];
     $row->promotions = '';
     if ($par->get('promotion', '1') == '1') {
         $query = "SELECT p.* FROM #__djcf_promotions p WHERE p.published=1 ORDER BY p.id ";
         $db->setQuery($query);
         $promotions = $db->loadObjectList();
         foreach ($promotions as $prom) {
             if (JRequest::getVar($prom->name, '0')) {
                 $row->promotions .= $prom->name . ',';
             }
         }
         if ($row->promotions) {
             $row->promotions = substr($row->promotions, 0, -1);
         }
     } else {
         if ($row->id > 0) {
             $row->promotions = $old_row->promotions;
         }
     }
     if (strstr($row->promotions, 'p_first')) {
         $row->special = 1;
     } else {
         $row->special = 0;
     }
     $cat = '';
     if ($row->cat_id) {
         $query = "SELECT name,alias,price,autopublish FROM #__djcf_categories WHERE id = " . $row->cat_id;
         $db->setQuery($query);
         $cat = $db->loadObject();
         if (!$cat->alias) {
             $cat->alias = DJClassifiedsSEO::getAliasName($cat->name);
         }
     }
     $is_new = 1;
     if ($row->id > 0) {
         $query = "SELECT * FROM #__djcf_items WHERE id = " . $row->id;
         $db->setQuery($query);
         $old_row = $db->loadObject();
         $query = "DELETE FROM #__djcf_fields_values WHERE item_id= " . $row->id . " ";
         $db->setQuery($query);
         $db->query();
         $query = "DELETE FROM #__djcf_fields_values_sale WHERE item_id= " . $row->id . " ";
         $db->setQuery($query);
         $db->query();
         $row->payed = $old_row->payed;
         $row->pay_type = $old_row->pay_type;
         $row->exp_days = $old_row->exp_days;
         $row->alias = $old_row->alias;
         $row->published = $old_row->published;
         $is_new = 0;
     }
     if (!$row->alias) {
         $row->alias = DJClassifiedsSEO::getAliasName($row->name);
     }
     $dispatcher->trigger('onBeforePaymentsDJClassifiedsSaveAdvert', array(&$row, $is_new, &$cat, &$promotions));
     if ($cat->autopublish == '0') {
         if ($par->get('autopublish') == '1') {
             $row->published = 1;
             if ($row->id) {
                 $message = JText::_('COM_DJCLASSIFIEDS_AD_SAVED_SUCCESSFULLY');
             } else {
                 $message = JText::_('COM_DJCLASSIFIEDS_AD_ADDED_SUCCESSFULLY');
             }
         } else {
             $row->published = 0;
             if ($row->id) {
                 $message = JText::_('COM_DJCLASSIFIEDS_AD_SAVED_SUCCESSFULLY_WAITING_FOR_PUBLISH');
             } else {
                 $message = JText::_('COM_DJCLASSIFIEDS_AD_ADDED_SUCCESSFULLY_WAITING_FOR_PUBLISH');
             }
             //$redirect="index.php?option=com_djclassifieds&view=items&cid=0".$itemid;
             $redirect = DJClassifiedsSEO::getItemRoute($row->id . ':' . $row->alias, $row->cat_id . ':' . $i->c_alias);
         }
     } elseif ($cat->autopublish == '1') {
         $row->published = 1;
         if ($row->id) {
             $message = JText::_('COM_DJCLASSIFIEDS_AD_SAVED_SUCCESSFULLY');
         } else {
             $message = JText::_('COM_DJCLASSIFIEDS_AD_ADDED_SUCCESSFULLY');
         }
     } elseif ($cat->autopublish == '2') {
         $row->published = 0;
         if ($row->id) {
             $message = JText::_('COM_DJCLASSIFIEDS_AD_SAVED_SUCCESSFULLY_WAITING_FOR_PUBLISH');
         } else {
             $message = JText::_('COM_DJCLASSIFIEDS_AD_ADDED_SUCCESSFULLY_WAITING_FOR_PUBLISH');
         }
         $redirect = DJClassifiedsSEO::getCategoryRoute('0:all');
     }
     $pay_redirect = 0;
     $row->pay_type = '';
     $row->payed = 1;
     //echo '<pre>';print_r($old_row);print_r($row);die();
     if (isset($old_row)) {
         if ($cat->price == 0 && $row->promotions == '' && !strstr($old_row->pay_type, 'duration')) {
             $row->payed = 1;
             $row->pay_type = '';
         } else {
             if ($old_row->cat_id != $row->cat_id && $cat->price > 0 || $old_row->promotions != $row->promotions || strstr($old_row->pay_type, 'duration') || $old_row->pay_type) {
                 $row->pay_type = '';
                 if ($old_row->cat_id != $row->cat_id && $cat->price > 0) {
                     $row->pay_type = 'cat,';
                 } else {
                     if ($old_row->cat_id == $row->cat_id && $cat->price > 0 && strstr($old_row->pay_type, 'cat')) {
                         $row->pay_type = 'cat,';
                     }
                 }
                 //if($old_row->promotions!=$row->promotions){
                 $prom_new = explode(',', $row->promotions);
                 for ($pn = 0; $pn < count($prom_new); $pn++) {
                     if (!strstr($old_row->promotions, $prom_new[$pn]) || strstr($old_row->pay_type, $prom_new[$pn])) {
                         $row->pay_type .= $prom_new[$pn] . ',';
                     }
                 }
                 //}
                 if (strstr($old_row->pay_type, 'duration')) {
                     $row->pay_type .= 'duration,';
                 }
                 if ($row->pay_type) {
                     $row->published = 0;
                     $row->payed = 0;
                     $pay_redirect = 1;
                 }
                 //echo $row->pay_type;print_r($old_row);
                 //print_r($row);echo $pay_redirect;die();
             } else {
                 if ($row->payed == 0 && ($cat->price > 0 || $row->promotions != '')) {
                     $row->payed = 0;
                     $row->published = 0;
                     $pay_redirect = 1;
                 }
             }
         }
     } else {
         if ($cat->price > 0 || $row->promotions != '' || $duration_price > 0) {
             if ($cat->price > 0) {
                 $row->pay_type .= 'cat,';
             }
             if ($duration_price > 0) {
                 $row->pay_type .= 'duration,';
             }
             if ($row->promotions != '') {
                 $row->pay_type .= $row->promotions;
             }
             $row->published = 0;
             $row->payed = 0;
             $pay_redirect = 1;
         } else {
             $row->payed = 1;
             $row->pay_type = '';
         }
     }
     //check for free promotions
     if (!strstr($row->pay_type, 'cat') && !strstr($row->pay_type, 'duration') && strstr($row->pay_type, 'p_')) {
         $prom_to_pay = explode(',', $row->pay_type);
         $prom_price = 0;
         for ($pp = 0; $pp < count($prom_to_pay); $pp++) {
             foreach ($promotions as $prom) {
                 if ($prom->name == $prom_to_pay[$pp]) {
                     $prom_price += $prom->price;
                 }
             }
         }
         if ($prom_price == 0) {
             $row->pay_type = '';
             $redirect = '';
             $pay_redirect = 0;
             if ($cat->autopublish == '0' && $par->get('autopublish') == '1' || $cat->autopublish == '1') {
                 $row->published = 1;
             }
         }
     }
     //echo '<pre>';print_r($row);die();echo '</pre>';
     $dispatcher->trigger('onBeforeDJClassifiedsSaveAdvert', array(&$row, $is_new));
     if (!$row->store()) {
         //echo $row->getError();exit ();
     }
     if ($is_new) {
         $query = "UPDATE #__djcf_items SET date_sort=date_start WHERE id=" . $row->id . " ";
         $db->setQuery($query);
         $db->query();
     }
     $item_images = '';
     $images_c = 0;
     if (!$is_new) {
         $query = "SELECT * FROM #__djcf_images WHERE item_id=" . $row->id . " AND type='item' ";
         $db->setQuery($query);
         $item_images = $db->loadObjectList('id');
         $images_c = count($item_images);
     }
     $img_ids = JRequest::getVar('img_id', array(), 'post', 'array');
     $img_captions = JRequest::getVar('img_caption', array(), 'post', 'array');
     $img_images = JRequest::getVar('img_image', array(), 'post', 'array');
     $img_id_to_del = '';
     if ($item_images) {
         foreach ($item_images as $item_img) {
             $img_to_del = 1;
             foreach ($img_ids as $img_id) {
                 if ($item_img->id == $img_id) {
                     $img_to_del = 0;
                     break;
                 }
             }
             if ($img_to_del) {
                 $images_c--;
                 $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);
                 }
                 if (JFile::exists($path_to_delete . '_thm.' . $item_img->ext)) {
                     JFile::delete($path_to_delete . '_thm.' . $item_img->ext);
                 }
                 if (JFile::exists($path_to_delete . '_thb.' . $item_img->ext)) {
                     JFile::delete($path_to_delete . '_thb.' . $item_img->ext);
                 }
                 $img_id_to_del .= $item_img->id . ',';
             }
         }
         if ($img_id_to_del) {
             $query = "DELETE FROM #__djcf_images WHERE item_id=" . $row->id . " AND type='item' AND ID IN (" . substr($img_id_to_del, 0, -1) . ") ";
             $db->setQuery($query);
             $db->query();
         }
     }
     $last_id = $row->id;
     $imglimit = $par->get('img_limit', '3');
     $nw = (int) $par->get('th_width', -1);
     $nh = (int) $par->get('th_height', -1);
     $nws = (int) $par->get('smallth_width', -1);
     $nhs = (int) $par->get('smallth_height', -1);
     $nwm = (int) $par->get('middleth_width', -1);
     $nhm = (int) $par->get('middleth_height', -1);
     $nwb = (int) $par->get('bigth_width', -1);
     $nhb = (int) $par->get('bigth_height', -1);
     $img_ord = 1;
     $img_to_insert = 0;
     $query_img = "INSERT INTO #__djcf_images(`item_id`,`type`,`name`,`ext`,`path`,`caption`,`ordering`) VALUES ";
     $new_img_path = JPATH_SITE . "/components/com_djclassifieds/images/item/";
     for ($im = 0; $im < count($img_ids); $im++) {
         if ($img_ids[$im]) {
             if ($item_images[$img_ids[$im]]->ordering != $img_ord || $item_images[$img_ids[$im]]->caption != $img_captions[$im]) {
                 $query = "UPDATE #__djcf_images SET ordering='" . $img_ord . "', caption='" . $db->escape($img_captions[$im]) . "' WHERE item_id=" . $row->id . " AND type='item' AND id=" . $img_ids[$im] . " ";
                 $db->setQuery($query);
                 $db->query();
             }
         } else {
             if ($images_c >= $imglimit) {
                 break;
             }
             $new_img_name = explode(';', $img_images[$im]);
             if (is_array($new_img_name)) {
                 $new_img_name_u = JPATH_ROOT . '/tmp/djupload/' . $new_img_name[0];
                 if (JFile::exists($new_img_name_u)) {
                     if (getimagesize($new_img_name_u)) {
                         $new_img_n = $last_id . '_' . str_ireplace(' ', '_', $new_img_name[1]);
                         $new_img_n = $lang->transliterate($new_img_n);
                         $new_img_n = strtolower($new_img_n);
                         $new_img_n = JFile::makeSafe($new_img_n);
                         $nimg = 0;
                         $name_parts = pathinfo($new_img_n);
                         $img_name = $name_parts['filename'];
                         $img_ext = $name_parts['extension'];
                         $new_path_check = $new_img_path . $new_img_n;
                         $new_path_check = str_ireplace('.' . $img_ext, '_thm.' . $img_ext, $new_path_check);
                         while (JFile::exists($new_path_check)) {
                             $nimg++;
                             $new_img_n = $last_id . '_' . $nimg . '_' . str_ireplace(' ', '_', $new_img_name[1]);
                             $new_img_n = $lang->transliterate($new_img_n);
                             $new_img_n = strtolower($new_img_n);
                             $new_img_n = JFile::makeSafe($new_img_n);
                             $new_path_check = $new_img_path . $new_img_n;
                             $new_path_check = str_ireplace('.' . $img_ext, '_thm.' . $img_ext, $new_path_check);
                         }
                         rename($new_img_name_u, $new_img_path . $new_img_n);
                         $name_parts = pathinfo($new_img_n);
                         $img_name = $name_parts['filename'];
                         $img_ext = $name_parts['extension'];
                         DJClassifiedsImage::makeThumb($new_img_path . $new_img_n, $new_img_path . $img_name . '_ths.' . $img_ext, $nws, $nhs);
                         DJClassifiedsImage::makeThumb($new_img_path . $new_img_n, $new_img_path . $img_name . '_thm.' . $img_ext, $nwm, $nhm);
                         DJClassifiedsImage::makeThumb($new_img_path . $new_img_n, $new_img_path . $img_name . '_thb.' . $img_ext, $nwb, $nhb);
                         $query_img .= "('" . $row->id . "','item','" . $img_name . "','" . $img_ext . "','/components/com_djclassifieds/images/item/','" . $db->escape($img_captions[$im]) . "','" . $img_ord . "'), ";
                         $img_to_insert++;
                         if ($par->get('store_org_img', '1') == 0) {
                             JFile::delete($new_img_path . $new_img_n);
                         }
                     }
                 }
             }
             $images_c++;
         }
         $img_ord++;
     }
     if ($img_to_insert) {
         $query_img = substr($query_img, 0, -2) . ';';
         $db->setQuery($query_img);
         $db->query();
     }
     $imgfreelimit = $par->get('img_free_limit', '-1');
     if ($imgfreelimit > -1 && $images_c > $imgfreelimit) {
         $extra_images = $images_c - $imgfreelimit;
         $images_to_pay = $extra_images;
         if (!$is_new) {
             if ($old_row->extra_images >= $images_to_pay) {
                 $images_to_pay = 0;
             } else {
                 $images_to_pay = $images_to_pay - $old_row->extra_images;
             }
         }
         $images_to_pay = $images_to_pay + $old_row->extra_images_to_pay;
         if ($images_to_pay > 0) {
             $row->extra_images = $extra_images;
             $row->extra_images_to_pay = $images_to_pay;
             $row->pay_type .= 'extra_img,';
             $row->published = 0;
             $row->payed = 0;
             $pay_redirect = 1;
             $row->store();
         }
     }
     $desc_chars_limit = $par->get('pay_desc_chars_free_limit', 0);
     $desc_c = strlen($row->description);
     if ($par->get('pay_desc_chars', 0) && $desc_c > $desc_chars_limit) {
         $extra_chars = $desc_c - $desc_chars_limit;
         $chars_to_pay = $extra_chars;
         if (!$is_new) {
             if ($old_row->extra_chars >= $chars_to_pay) {
                 $chars_to_pay = 0;
             } else {
                 $chars_to_pay = $chars_to_pay - $old_row->extra_chars;
             }
         }
         $chars_to_pay = $chars_to_pay + $old_row->extra_chars_to_pay;
         if ($chars_to_pay > 0) {
             $row->extra_chars = $extra_chars;
             $row->extra_chars_to_pay = $chars_to_pay;
             $row->pay_type .= 'extra_chars,';
             $row->published = 0;
             $row->payed = 0;
             $pay_redirect = 1;
             $row->store();
         }
     }
     $query = "SELECT f.* FROM #__djcf_fields f " . "LEFT JOIN #__djcf_fields_xref fx ON f.id=fx.field_id " . " WHERE fx.cat_id  = " . $row->cat_id . " OR f.source=1 ";
     $db->setQuery($query);
     $fields_list = $db->loadObjectList();
     //echo '<pre>'; print_r($db);print_r($fields_list);die();
     $a_tags_cf = '';
     if ((int) $par->get('allow_htmltags_cf', '0')) {
         $allowed_tags_cf = explode(';', $par->get('allowed_htmltags_cf', ''));
         for ($a = 0; $a < count($allowed_tags_cf); $a++) {
             $a_tags_cf .= '<' . $allowed_tags_cf[$a] . '>';
         }
     }
     $ins = 0;
     if (count($fields_list) > 0) {
         $query = "INSERT INTO #__djcf_fields_values(`field_id`,`item_id`,`value`,`value_date`) VALUES ";
         foreach ($fields_list as $fl) {
             if ($fl->type == 'checkbox') {
                 if (isset($_POST[$fl->name])) {
                     $field_v = $_POST[$fl->name];
                     $f_value = ';';
                     for ($fv = 0; $fv < count($field_v); $fv++) {
                         $f_value .= $field_v[$fv] . ';';
                     }
                     $query .= "('" . $fl->id . "','" . $row->id . "','" . $db->escape($f_value) . "',''), ";
                     $ins++;
                 }
             } else {
                 if ($fl->type == 'date') {
                     if (isset($_POST[$fl->name])) {
                         $f_var = JRequest::getVar($fl->name, '', '', 'string');
                         $query .= "('" . $fl->id . "','" . $row->id . "','','" . $db->escape($f_var) . "'), ";
                         $ins++;
                     }
                 } else {
                     if (isset($_POST[$fl->name])) {
                         if ($a_tags_cf) {
                             $f_var = JRequest::getVar($fl->name, '', '', 'string', JREQUEST_ALLOWRAW);
                             $f_var = strip_tags($f_var, $a_tags_cf);
                         } else {
                             $f_var = JRequest::getVar($fl->name, '', '', 'string');
                         }
                         $query .= "('" . $fl->id . "','" . $row->id . "','" . $db->escape($f_var) . "',''), ";
                         $ins++;
                     }
                 }
             }
         }
     }
     //print_r($query);die();
     if ($ins > 0) {
         $query = substr($query, 0, -2) . ';';
         $db->setQuery($query);
         $db->query();
     }
     $query = "SELECT f.* FROM #__djcf_fields f " . "LEFT JOIN #__djcf_fields_xref fx ON f.id=fx.field_id " . "WHERE fx.cat_id  = " . $row->cat_id . " AND f.in_buynow=1 ";
     $db->setQuery($query);
     $fields_list = $db->loadObjectList();
     //echo '<pre>'; print_r($_POST);print_r($fields_list);die();
     $ins = 0;
     if (count($fields_list) > 0) {
         $query = "INSERT INTO #__djcf_fields_values_sale(`item_id`,`quantity`,`options`) VALUES ";
         $bn_quantity = JRequest::getVar('bn-quantity', array());
         $quantity_total = 0;
         foreach ($fields_list as &$fl) {
             $fl->bn_values = JRequest::getVar('bn-' . $fl->name, array());
         }
         $bn_options = array();
         for ($q = 0; $q < count($bn_quantity); $q++) {
             if ($bn_quantity[$q] == '' || $bn_quantity[$q] == 0) {
                 continue;
             }
             $bn_option = array();
             $bn_option['quantity'] = $bn_quantity[$q];
             $bn_option['options'] = array();
             $quantity_total = $quantity_total + $bn_quantity[$q];
             foreach ($fields_list as &$fl) {
                 if ($fl->bn_values[$q]) {
                     $bn_opt = array();
                     $bn_opt['id'] = $fl->id;
                     $bn_opt['name'] = $fl->name;
                     $bn_opt['label'] = $fl->label;
                     $bn_opt['value'] = $fl->bn_values[$q];
                     $bn_option['options'][] = $bn_opt;
                 }
             }
             if (count($bn_option['options'])) {
                 $bn_options[] = $bn_option;
             }
         }
         if (count($bn_options)) {
             foreach ($bn_options as $opt) {
                 $query .= "('" . $row->id . "','" . $opt['quantity'] . "','" . $db->escape(json_encode($opt['options'])) . "'), ";
                 $ins++;
             }
             if ($ins) {
                 $query = substr($query, 0, -2) . ';';
                 $db->setQuery($query);
                 $db->query();
                 $query = "UPDATE #__djcf_items SET quantity=" . $quantity_total . " WHERE id=" . $row->id . " ";
                 $db->setQuery($query);
                 $db->query();
             }
         }
     }
     if ($par->get('notify_admin', '0')) {
         if ($id > 0) {
             $new_ad = 0;
         } else {
             $new_ad = 1;
         }
         if ($par->get('notify_admin', '0') == 1) {
             DJClassifiedsNotify::notifyAdmin($row, $cat, $new_ad);
         } else {
             if ($par->get('notify_admin', '0') == 2 && $id == 0) {
                 DJClassifiedsNotify::notifyAdmin($row, $cat, $new_ad);
             }
         }
     }
     if ($id == 0 && $par->get('user_new_ad_email', '0') && ($user->id > 0 || $par->get('email_for_guest', '0') && $row->email)) {
         DJClassifiedsNotify::notifyNewAdvertUser($row, $cat);
     }
     $dispatcher->trigger('onAfterDJClassifiedsSaveAdvert', array(&$row, $is_new));
     if ($pay_redirect == 1) {
         $menu_uads_itemid = $menus->getItems('link', 'index.php?option=com_djclassifieds&view=useritems', 1);
         $redirect = 'index.php?option=com_djclassifieds&view=payment&id=' . $row->id;
         if ($menu_uads_itemid) {
             $redirect .= '&Itemid=' . $menu_uads_itemid->id;
         }
         //$redirect= 'index.php?option=com_djclassifieds&view=payment&id='.$row->id.$itemid;
         if ($row->id) {
             $message = JTExt::_('COM_DJCLASSIFIEDS_AD_SAVED_SUCCESSFULLY_CHOOSE_PAYMENT');
         } else {
             $message = JTExt::_('COM_DJCLASSIFIEDS_AD_ADDED_SUCCESSFULLY_CHOOSE_PAYMENT');
         }
     }
     if (!$redirect) {
         //$redirect= 'index.php?option=com_djclassifieds&view=item&cid='.$row->cat_id.'&id='.$row->id.$itemid;
         $redirect = DJClassifiedsSEO::getItemRoute($row->id . ':' . $row->alias, $row->cat_id . ':' . $cat->alias);
     }
     $redirect = JRoute::_($redirect, false);
     $app->redirect($redirect, $message);
 }
Beispiel #7
0
 public static function notifyNewAdvertUser($item, $cat)
 {
     $app = JFactory::getApplication();
     $config = JFactory::getConfig();
     $par = JComponentHelper::getParams('com_djclassifieds');
     $user = JFactory::getUser();
     if ($user->id) {
         $mailto = $user->email;
     } else {
         $mailto = $item->email;
     }
     $mailfrom = $app->getCfg('mailfrom');
     $fromname = $config->get('sitename') . ' - ' . str_ireplace('administrator/', '', JURI::base());
     $subject = JText::_('COM_DJCLASSIFIEDS_NAU_EMAIL_TITLE') . ' ' . $config->get('sitename');
     $m_message = JText::_('COM_DJCLASSIFIEDS_NAU_EMAIL_TITLE') . ' ' . $config->get('sitename') . "<br /><br />";
     $m_message .= JText::_('COM_DJCLASSIFIEDS_TITLE') . ': ' . $item->name . "<br /><br />";
     $m_message .= JText::_('COM_DJCLASSIFIEDS_STATUS') . ': ';
     if ($item->published) {
         $m_message .= JText::_('COM_DJCLASSIFIEDS_PUBLISHED') . "<br /><br />";
     } else {
         $m_message .= JText::_('COM_DJCLASSIFIEDS_WAITING_FOR_PUBLISH') . "<br /><br />";
     }
     $m_message .= JText::_('COM_DJCLASSIFIEDS_INTRO_DESCRIPTION') . ': ' . $item->intro_desc . "<br /><br />";
     $u = JURI::getInstance(JURI::base());
     if ($u->getScheme()) {
         $link = $u->getScheme() . '://';
     } else {
         $link = 'http://';
     }
     $edit_link = $link;
     $link .= $u->getHost() . JRoute::_(DJClassifiedsSEO::getItemRoute($item->id . ':' . $item->alias, $item->cat_id . ':' . $cat->alias));
     $m_message .= JText::_('COM_DJCLASSIFIEDS_ADVERT_LINK') . ': <a href="' . $link . '">' . $link . '</a><br /><br />';
     if (!$user->id && $item->email && $par->get('guest_can_edit', 0)) {
         $edit_link .= $u->getHost() . JRoute::_(DJClassifiedsSEO::getNewAdLink() . '&token=' . $item->token);
         $m_message .= JText::_('COM_DJCLASSIFIEDS_EDITION_LINK') . ': <a href="' . $edit_link . '">' . $edit_link . '</a><br /><br />';
     }
     $mailer = JFactory::getMailer();
     $mailer->sendMail($mailfrom, $fromname, $mailto, $subject, $m_message, $mode = 1);
     return null;
 }
Beispiel #8
0
 function display($tpl = null)
 {
     $model = $this->getModel();
     $par = JComponentHelper::getParams('com_djclassifieds');
     $document = JFactory::getDocument();
     $app = JFactory::getApplication();
     $dispatcher = JDispatcher::getInstance();
     $theme = $par->get('theme', 'default');
     $item = $model->getItem();
     $item_images = DJClassifiedsImage::getAdsImages($item->id);
     $category = $model->getCategory($item->cat_id);
     $fields = $model->getFields($item->cat_id);
     $fields_contact = $model->geContactFields();
     $item_payments = $model->getItemPayment($item->id);
     if ($item->user_id != 0) {
         $user_items_c = $model->getUserItemsCount($item->user_id);
         $this->assignRef('user_items_c', $user_items_c);
     }
     $menus = $app->getMenu('site');
     $m_active = $menus->getActive();
     $cat_menu_path = array();
     $cid_menu = 0;
     if ($m_active) {
         if (strstr($m_active->link, 'com_djclassifieds') && strstr($m_active->link, 'items')) {
             $cid_menu = $m_active->query['cid'];
             if ($cid_menu > 0) {
                 $cat_menu_path = DJClassifiedsCategory::getParentPath(1, $cid_menu);
             }
         }
     }
     $main_cat_id = $item->cat_id;
     $pathway = $app->getPathway();
     $cat_path = array();
     $cat_theme = '';
     if ($category->id != 0) {
         $cat_path = DJClassifiedsCategory::getParentPath(1, $category->id);
         $main_cat_id = $cat_path[count($cat_path) - 1]->id;
         for ($c = count($cat_path); $c > 0; $c--) {
             $to_b = 1;
             if (count($cat_menu_path)) {
                 foreach ($cat_menu_path as $cm) {
                     if ($cm->id == $cat_path[$c - 1]->id) {
                         $to_b = 0;
                         break;
                     }
                 }
             }
             if ($to_b) {
                 $pathway->addItem($cat_path[$c - 1]->name, DJClassifiedsSEO::getCategoryRoute($cat_path[$c - 1]->id . ':' . $cat_path[$c - 1]->alias));
             }
         }
         foreach ($cat_path as $cp) {
             if ($cp->theme) {
                 $cat_theme = $cp->theme;
             }
         }
     }
     DJClassifiedsTheme::includeCSSfiles($cat_theme);
     if ($cat_theme) {
         $this->_addPath('template', JPATH_COMPONENT . '/themes/' . $cat_theme . '/views/item');
         $theme = $cat_theme;
     }
     $regions = $model->getRegions();
     $country = '';
     $city = '';
     $region_name = '';
     if ($item->region_id != 0 && $par->get('show_regions', '1')) {
         $address = '';
         $rid = $item->region_id;
         if ($rid != 0) {
             while ($rid != 0) {
                 foreach ($regions as $li) {
                     if ($li->id == $rid) {
                         $rid = $li->parent_id;
                         $address .= $li->name . ', ';
                         if ($li->country) {
                             $country = $li->name;
                         }
                         if ($li->city) {
                             $city = $li->name;
                         }
                         if (!$region_name) {
                             $region_name = $li->name;
                         }
                         break;
                     }
                 }
                 if ($rid == $item->region_id) {
                     break;
                 }
             }
         }
         $address = substr($address, 0, -2);
     }
     $profile = '';
     if ($item->user_id) {
         $profile = $model->getProfile($item->user_id);
     }
     if ($item->metakey != '') {
         $document->setMetaData('keywords', $item->metakey);
     } else {
         if ($category->metakey != '') {
             $document->setMetaData('keywords', $category->metakey);
         } else {
             if ($m_active) {
                 if ($m_active->params->get('menu-meta_description')) {
                     $document->setMetaData('keywords', $m_active->params->get('menu-meta_description'));
                 }
             }
         }
     }
     if ($item->metadesc != '') {
         $document->setDescription($item->metadesc);
     } else {
         if ($par->get('seo_item_metadesc', '0') == 0) {
             $document->setDescription($item->intro_desc);
         } else {
             if ($category->metadesc != '') {
                 $document->setDescription($category->metadesc);
             } else {
                 if ($m_active) {
                     if ($m_active->params->get('menu-meta_keywords')) {
                         $document->setDescription($m_active->params->get('menu-meta_keywords'));
                     }
                 }
             }
         }
     }
     $c_title = $document->getTitle();
     $cat_name = $category->name;
     $item_name = $item->name;
     $seo_cat_path = '';
     $seo_title_separator = $par->get('seo_title_separator', ' - ');
     foreach ($cat_path as $cp) {
         if ($seo_cat_path) {
             $seo_cat_path .= $seo_title_separator;
         }
         $seo_cat_path .= $cp->name;
     }
     $seo_title_from = array('|', '<default_title>', '<category_name>', '<category_path>', '<item_name>', '<region_name>');
     $seo_title_to = array($seo_title_separator, $c_title, $cat_name, $seo_cat_path, $item_name, $region_name);
     $seo_title = str_ireplace($seo_title_from, $seo_title_to, $par->get('seo_title_item', '<item_name>|<category_name>|<default_title>'));
     $document->setTitle($seo_title);
     $document->setMetaData('og:title', $item->name);
     $document->setMetaData('og:description', $item->intro_desc);
     if ($item->image_url != '') {
         $images = explode(";", $item->image_url);
         $document->setMetaData('og:image', JURI::base() . 'components/com_djclassifieds/images/' . $images[0]);
     }
     /* plugins */
     JPluginHelper::importPlugin('djclassifieds');
     $results = $dispatcher->trigger('onPrepareItemDescription', array(&$item, &$par));
     $item->event = new stdClass();
     $resultsAfterTitle = $dispatcher->trigger('onAfterDJClassifiedsDisplayTitle', array(&$item, &$par));
     $item->event->afterDJClassifiedsDisplayTitle = trim(implode("\n", $resultsAfterTitle));
     $resultsBeforeContent = $dispatcher->trigger('onBeforeDJClassifiedsDisplayContent', array(&$item, &$par));
     $item->event->beforeDJClassifiedsDisplayContent = trim(implode("\n", $resultsBeforeContent));
     $resultsAfterContent = $dispatcher->trigger('onAfterDJClassifiedsDisplayContent', array(&$item, &$par));
     $item->event->afterDJClassifiedsDisplayContent = trim(implode("\n", $resultsAfterContent));
     $pathway->addItem($item->name);
     $this->assignRef('item', $item);
     $this->assignRef('item_images', $item_images);
     $this->assignRef('fields', $fields);
     $this->assignRef('fields_contact', $fields_contact);
     $this->assignRef('country', $country);
     $this->assignRef('city', $city);
     $this->assignRef('address', $address);
     $this->assignRef('main_cat_id', $main_cat_id);
     $this->assignRef('item_payments', $item_payments);
     $this->assignRef('category', $category);
     $this->assignRef('profile', $profile);
     $this->assignRef('theme', $theme);
     parent::display($tpl);
 }
Beispiel #9
0
			<?php 
$modules_djcf =& JModuleHelper::getModules('djcf-delete-top');
if (count($modules_djcf) > 0) {
    echo '<div class="djcf-war-top clearfix">';
    foreach (array_keys($modules_djcf) as $m) {
        echo JModuleHelper::renderModule($modules_djcf[$m], $mod_attribs);
    }
    echo '</div>';
}
?>
			<div class="djcf_war_content">
				<?php 
echo JText::_('COM_DJCLASSIFIEDS_DELETE_CONFIRM');
?>
				<?php 
echo ' "<a class="" href="' . DJClassifiedsSEO::getItemRoute($this->item->id . ':' . $this->item->alias, $this->item->cat_id . ':' . $this->item->c_alias) . '">';
echo $this->item->name;
echo '</a>"';
?>
			</div>                	
			<?php 
$modules_djcf =& JModuleHelper::getModules('djcf-delete-center');
if (count($modules_djcf) > 0) {
    echo '<div class="djcf-war-center clearfix">';
    foreach (array_keys($modules_djcf) as $m) {
        echo JModuleHelper::renderModule($modules_djcf[$m], $mod_attribs);
    }
    echo '</div>';
}
?>
						
Beispiel #10
0
 function display($tpl = null)
 {
     JHTML::_('behavior.modal');
     $document = JFactory::getDocument();
     $par = JComponentHelper::getParams('com_djclassifieds');
     $app = JFactory::getApplication();
     $user = JFactory::getUser();
     $model = $this->getModel();
     $cat_id = JRequest::getVar('cid', 0, '', 'int');
     $uid = JRequest::getVar('uid', 0, '', 'int');
     $se = JRequest::getVar('se', 0, '', 'int');
     $reset = JRequest::getVar('reset', 0, '', 'int');
     $layout = JRequest::getVar('layout', '');
     $order = JRequest::getCmd('order', $par->get('items_ordering', 'date_e'));
     $ord_t = JRequest::getCmd('ord_t', $par->get('items_ordering_dir', 'desc'));
     $theme = $par->get('theme', 'default');
     if ($layout == 'favourites') {
         if ($user->id == '0') {
             $uri = JFactory::getURI();
             $app->redirect('index.php?option=com_users&view=login&return=' . base64_encode($uri), JText::_('COM_DJCLASSIFIEDS_PLEASE_LOGIN'));
         }
         JRequest::setVar('fav', '1');
     }
     if ($reset) {
         $items = $model->resetSearchFilters();
     }
     $catlist = '';
     if ($cat_id > 0) {
         $cats = DJClassifiedsCategory::getSubCatIemsCount($cat_id, 1, $par->get('subcats_ordering', 'ord'), $par->get('subcats_hide_empty', 0));
         $catlist = $cat_id;
         foreach ($cats as $c) {
             $catlist .= ',' . $c->id;
         }
     } else {
         $cats = DJClassifiedsCategory::getCatAllItemsCount(1, $par->get('subcats_ordering', 'ord'), $par->get('subcats_hide_empty', 0));
     }
     $subcats = '';
     $cat_images = '';
     foreach ($cats as $c) {
         if ($c->parent_id == $cat_id) {
             $subcats .= $c->id . ',';
         }
     }
     if ($subcats) {
         $subcats = substr($subcats, 0, -1);
         $cat_images = $model->getCatImages($subcats);
     }
     $items = $model->getItems($catlist);
     $countitems = $model->getCountItems($catlist);
     $menus = $app->getMenu('site');
     $m_active = $menus->getActive();
     $cat_menu_path = array();
     $cid_menu = 0;
     if ($m_active) {
         if (strstr($m_active->link, 'com_djclassifieds') && strstr($m_active->link, 'items')) {
             if (isset($m_active->query['cid'])) {
                 $cid_menu = $m_active->query['cid'];
                 if ($cid_menu > 0) {
                     $cat_menu_path = DJClassifiedsCategory::getParentPath(1, $cid_menu);
                 }
             }
         }
     }
     if ($uid > 0 || $se || $order != $par->get('items_ordering', 'date_e') || $ord_t != $par->get('items_ordering_dir', 'desc')) {
         $document->setMetaData('robots', 'NOINDEX, FOLLOW');
     }
     $cat_id = JRequest::getVar('cid', 0, '', 'int');
     $main_cat = '';
     if ($cat_id > 0) {
         $main_cat = $model->getMainCat($cat_id);
         if ($main_cat->metakey != '') {
             $document->setMetaData('keywords', $main_cat->metakey);
         } else {
             if ($m_active) {
                 if ($m_active->params->get('menu-meta_description')) {
                     $document->setMetaData('keywords', $m_active->params->get('menu-meta_description'));
                 }
             }
         }
         if ($main_cat->metadesc != '') {
             $document->setDescription($main_cat->metadesc);
         } else {
             if ($m_active) {
                 if ($m_active->params->get('menu-meta_keywords')) {
                     $document->setDescription($m_active->params->get('menu-meta_keywords'));
                 }
             }
         }
         $cat_path = array();
         $pathway = $app->getPathway();
         if ($main_cat->parent_id == 0) {
             if ($cid_menu != $cat_id) {
                 $pathway->addItem($main_cat->name);
             }
             $cat_path[] = $main_cat;
         } else {
             $cat_path = DJClassifiedsCategory::getParentPath(1, $main_cat->id);
             for ($c = count($cat_path); $c > 0; $c--) {
                 $to_b = 1;
                 if (count($cat_menu_path)) {
                     foreach ($cat_menu_path as $cm) {
                         if ($cm->id == $cat_path[$c - 1]->id) {
                             $to_b = 0;
                             break;
                         }
                     }
                 }
                 if ($to_b) {
                     $pathway->addItem($cat_path[$c - 1]->name, DJClassifiedsSEO::getCategoryRoute($cat_path[$c - 1]->id . ':' . $cat_path[$c - 1]->alias));
                 }
             }
         }
         $cat_theme = '';
         foreach ($cat_path as $cp) {
             if ($cp->theme) {
                 $cat_theme = $cp->theme;
             }
         }
         DJClassifiedsTheme::includeCSSfiles($cat_theme);
         if ($cat_theme) {
             $this->_addPath('template', JPATH_COMPONENT . '/themes/' . $cat_theme . '/views/items');
             $theme = $cat_theme;
         }
         $c_title = $document->getTitle();
         $cat_name = $main_cat->name;
         $seo_cat_path = '';
         $seo_title_separator = $par->get('seo_title_separator', ' - ');
         foreach ($cat_path as $cp) {
             if ($seo_cat_path) {
                 $seo_cat_path .= $seo_title_separator;
             }
             $seo_cat_path .= $cp->name;
         }
         $seo_title_from = array('|', '<default_title>', '<category_name>', '<category_path>');
         $seo_title_to = array($seo_title_separator, $c_title, $cat_name, $seo_cat_path);
         $seo_title = str_ireplace($seo_title_from, $seo_title_to, $par->get('seo_title_items', '<category_path>|<default_title>'));
         $document->setTitle($seo_title);
     } else {
         if ($se && isset($_GET['se_cats'])) {
             $se_cat_id = end($_GET['se_cats']);
             if ($se_cat_id == '' && count($_GET['se_cats']) > 2) {
                 $se_cat_id = $_GET['se_cats'][count($_GET['se_cats']) - 2];
             }
             $se_cat_id = str_ireplace('p', '', $se_cat_id);
             if ($se_cat_id > 0) {
                 $main_cat = $model->getMainCat($se_cat_id);
             }
         }
     }
     $re = JRequest::getVar('re', 0, '', 'int');
     $reg_id = 0;
     if (isset($_GET['se_regs'])) {
         if (count($_GET['se_regs']) > 1) {
             $main_reg = '';
         } else {
             $reg_id = end($_GET['se_regs']);
             if ($reg_id == '' && count($_GET['se_regs']) > 2) {
                 $reg_id = $_GET['se_regs'][count($_GET['se_regs']) - 2];
             }
             $reg_id = (int) $reg_id;
             if ($reg_id) {
                 $main_reg = $model->getMainRegions($reg_id);
             } else {
                 $main_reg = '';
             }
         }
     }
     if ($uid > 0) {
         $u_name = $model->getUserName($uid);
         $this->assignRef('u_name', $u_name);
     }
     if ($par->get('show_types', '0')) {
         $types = $model->getTypes();
         $this->assignRef('types', $types);
     }
     $limit = JRequest::getVar('limit', $par->get('limit_djitem_show'), '', 'int');
     $limitstart = JRequest::getVar('limitstart', 0, '', 'int');
     $pagination = new JPagination($countitems, $limitstart, $limit);
     //	$main_name = $model->makePathway($cat_list);
     if ($par->get('rss_feed', 1) == 1) {
         $link = '&format=feed&limitstart=';
         $attribs = array('type' => 'application/rss+xml', 'title' => 'RSS 2.0');
         $document->addHeadLink(JRoute::_($link . '&type=rss'), 'alternate', 'rel', $attribs);
         $attribs = array('type' => 'application/atom+xml', 'title' => 'Atom 1.0');
         $document->addHeadLink(JRoute::_($link . '&type=atom'), 'alternate', 'rel', $attribs);
     }
     $custom_fields = $model->getCustomFields();
     $this->assignRef('cats', $cats);
     $this->assignRef('cat_path', $cat_path);
     $this->assignRef('cat_images', $cat_images);
     $this->assignRef('items', $items);
     $this->assignRef('custom_fields', $custom_fields);
     $this->assignRef('countitems', $countitems);
     $this->assignRef('main_cat', $main_cat);
     $this->assignRef('main_reg', $main_reg);
     $this->assignRef('pagination', $pagination);
     $this->assignRef('theme', $theme);
     parent::display('cat');
     parent::display($tpl);
 }
Beispiel #11
0
 if ($icon_new) {
     echo ' <span class="new_icon">' . JText::_('COM_DJCLASSIFIEDS_NEW') . '</span>';
 }
 if (strstr($i->promotions, 'p_special')) {
     //echo ' <img src="'.JURI::base().'/components/com_djclassifieds/themes/'.$this->theme.'/images/promo_star.png" class="prom_ico" alt="special" />';
     echo '<span class="prom_ico" ></span>';
 }
 if ($i->auction) {
     echo '<span class="auction_icon" ></span>';
 }
 echo '</div>';
 if ($par->get('column_category', '1')) {
     echo '<div class="item_col cat_name"><a href="' . DJClassifiedsSEO::getCategoryRoute($i->cat_id . ':' . $i->c_alias) . '" >' . $i->c_name . '</a></div>';
 }
 if ($par->get('column_desc', '1')) {
     echo '<div class="item_col description"><a class="title" href="' . DJClassifiedsSEO::getItemRoute($i->id . ':' . $i->alias, $i->cat_id . ':' . $i->c_alias) . $anch . '">';
     echo mb_substr(strip_tags($i->intro_desc), 0, $par->get('introdesc_char_limit', '120'), 'UTF-8');
     echo '</a></div>';
 }
 if ($par->get('column_loc', '1') && $par->get('show_regions', '1')) {
     echo '<div class="item_col region"><a href="index.php?option=com_djclassifieds&view=items&se=1&se_regs[]=' . $i->region_id . '&Itemid=' . $Itemid . '">' . $i->r_name . '</a></div>';
 }
 if ($par->get('column_price', '1') && $par->get('show_price', '1')) {
     echo '<div class="item_col price">';
     if ($i->price) {
         echo DJClassifiedsTheme::priceFormat($i->price, $i->currency);
     } else {
         echo '---';
     }
     echo '</div>';
 }
Beispiel #12
0
 function payPoints()
 {
     $app = JFactory::getApplication();
     $par = JComponentHelper::getParams('com_djclassifieds');
     $user = JFactory::getUser();
     $db = JFactory::getDBO();
     $id = JRequest::getInt('id', 0);
     $type = JRequest::getVar('type', '');
     $query = "SELECT i.*, c.points as c_points, c.autopublish as c_autopublish, c.alias as c_alias FROM #__djcf_items i " . "LEFT JOIN #__djcf_categories c ON c.id=i.cat_id " . "WHERE i.id=" . $id . " LIMIT 1";
     $db->setQuery($query);
     $item = $db->loadObject();
     $redirect_a = 0;
     if (!$item) {
         $redirect_a = 1;
         $message = JText::_('COM_DJCLASSIFIEDS_WRONG_AD');
     }
     if ($item->user_id != $user->id) {
         $redirect_a = 1;
         $message = JText::_('COM_DJCLASSIFIEDS_WRONG_AD');
     }
     if ($user->id == 0) {
         $redirect_a = 1;
         $message = JText::_('COM_DJCLASSIFIEDS_PLEASE_LOGIN');
     }
     if ($redirect_a) {
         $redirect = "index.php?option=com_djclassifieds&view=items&cid=0";
         $redirect = JRoute::_($redirect, false);
         $app->redirect($redirect, $message);
     }
     $query = "SELECT SUM(p.points)FROM #__djcf_users_points p " . "WHERE p.user_id='" . $user->id . "' ";
     $db->setQuery($query);
     $points_count = $db->loadResult();
     $p_amount = 0;
     if ($type == 'prom_top') {
         $p_amount = $par->get('promotion_move_top_points', 0);
         if ($points_count >= $p_amount) {
             $up_description = JText::_('COM_DJCLASSIFIEDS_PAYMENT_FOR_PROMOTION_MOVE_TO_TOP') . '<br />' . JText::_('COM_DJCLASSIFIEDS_ADVERT_ID') . ": " . $item->id . '<br />' . JText::_('COM_DJCLASSIFIEDS_TITLE') . ": " . $item->name;
             $query = "INSERT INTO #__djcf_users_points (`user_id`,`points`,`description`) " . "VALUES ('" . $user->id . "','-" . $p_amount . "','" . addslashes($up_description) . "')";
             $db->setQuery($query);
             $db->query();
             $message = JText::_('COM_DJCLASSIFIEDS_POINTS_PAYMENT_CONFIRMED_PROMOTION_MOVE_TO_TOP_ACTIVATED');
             $redirect = DJClassifiedsSEO::getItemRoute($item->id . ':' . $item->alias, $item->cat_id . ':' . $item->c_alias);
             $date_sort = date("Y-m-d H:i:s");
             $query = "UPDATE #__djcf_items SET date_sort='" . $date_sort . "' " . "WHERE id=" . $item->id . " ";
             $db->setQuery($query);
             $db->query();
             $redirect = JRoute::_($redirect, false);
             $app->redirect($redirect, $message);
         } else {
             $message = JText::_('COM_DJCLASSIFIEDS_NOT_ENOUGHT_POINTS');
             $redirect = "index.php?option=com_djclassifieds&view=items&cid=0";
             $redirect = JRoute::_($redirect, false);
             $app->redirect($redirect, $message);
         }
     } else {
         if (strstr($item->pay_type, 'cat')) {
             $p_amount += $item->c_points;
         }
         if (strstr($item->pay_type, 'duration_renew')) {
             $query = "SELECT d.points_renew FROM #__djcf_days d " . "WHERE d.days=" . $item->exp_days;
             $db->setQuery($query);
             $p_amount += $db->loadResult();
         } else {
             if (strstr($item->pay_type, 'duration')) {
                 $query = "SELECT d.points FROM #__djcf_days d " . "WHERE d.days=" . $item->exp_days;
                 $db->setQuery($query);
                 $p_amount += $db->loadResult();
             }
         }
         $query = "SELECT p.* FROM #__djcf_promotions p " . "WHERE p.published=1 ORDER BY p.id ";
         $db->setQuery($query);
         $promotions = $db->loadObjectList();
         foreach ($promotions as $prom) {
             if (strstr($item->pay_type, $prom->name)) {
                 $p_amount += $prom->points;
             }
         }
         if ($points_count >= $p_amount) {
             $up_description = JText::_('COM_DJCLASSIFIEDS_PAYMENT_FOR_ADVERT') . '<br />' . JText::_('COM_DJCLASSIFIEDS_ADVERT_ID') . ": " . $item->id . '<br />' . JText::_('COM_DJCLASSIFIEDS_TITLE') . ": " . $item->name;
             $query = "INSERT INTO #__djcf_users_points (`user_id`,`points`,`description`) " . "VALUES ('" . $user->id . "','-" . $p_amount . "','" . addslashes($up_description) . "')";
             $db->setQuery($query);
             $db->query();
             $pub = 0;
             if ($item->c_autopublish == '1' || $item->c_autopublish == '0' && $par->get('autopublish') == '1') {
                 $pub = 1;
                 $message = JText::_('COM_DJCLASSIFIEDS_POINTS_PAYMENT_CONFIRMED_ADVERT_PUBLISHED');
             } else {
                 $message = JText::_('COM_DJCLASSIFIEDS_POINTS_PAYMENT_CONFIRMED_ADVERT_WAITING_FOR_PUBLISH');
             }
             $redirect = DJClassifiedsSEO::getItemRoute($item->id . ':' . $item->alias, $item->cat_id . ':' . $item->c_alias);
             $query = "UPDATE #__djcf_items SET payed=1, pay_type='', published='" . $pub . "' " . "WHERE id=" . $item->id . " ";
             $db->setQuery($query);
             $db->query();
             $redirect = JRoute::_($redirect, false);
             $app->redirect($redirect, $message);
         } else {
             $message = JText::_('COM_DJCLASSIFIEDS_NOT_ENOUGHT_POINTS');
             $redirect = "index.php?option=com_djclassifieds&view=items&cid=0";
             $redirect = JRoute::_($redirect, false);
             $app->redirect($redirect, $message);
         }
     }
 }
Beispiel #13
0
 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->query();
     }
     $redirect = 'index.php?option=com_djclassifieds&view=categories';
     $app->redirect($redirect, JText::_('COM_DJCLASSIFIEDS_ALIASES_RECREATED'));
 }
Beispiel #14
0
                        } else {
                            if (strstr($field, 'http://') || strstr($field, 'https://')) {
                                echo '<a ' . $this->custom_fields[$f_id]->params . ' href="' . $field . '">' . str_ireplace(array("http://", "https://"), array('', ''), $field) . '</a>';
                            } else {
                                echo '<a ' . $this->custom_fields[$f_id]->params . ' href="http://' . $field . '">' . $field . '</a>';
                            }
                        }
                    } else {
                        echo $field;
                    }
                }
                echo '</div>';
            }
        }
        if ($par->get('blog_readmore', '1')) {
            echo '<div class="see_details_box"><a class="see_details" href="' . DJClassifiedsSEO::getItemRoute($i->id . ':' . $i->alias, $i->cat_id . ':' . $i->c_alias) . $anch . '" >' . JText::_('COM_DJCLASSIFIEDS_SEE_DETAILS') . '</a></div>';
        }
        echo '</div>';
        if (strstr($i->promotions, 'p_special')) {
            echo '<span class="p_special_img">&nbsp;</span>';
        }
        echo '</div></div></div></div></div>';
    }
    ?>
	
		<?php 
    echo '<div style="clear:both" ></div>';
    if (count($this->items) == 0) {
        echo '<div class="no_results" style="padding-left:30px;">';
        if ($se > 0) {
            echo JText::_('COM_DJCLASSIFIEDS_NO_RESULTS');
Beispiel #15
0
 protected static function _findItem($needles = null)
 {
     $app = JFactory::getApplication();
     $menus = $app->getMenu('site');
     // Prepare the reverse lookup array.
     if (self::$lookup === null) {
         self::$lookup = array();
         $component = JComponentHelper::getComponent('com_djclassifieds');
         $items = $menus->getItems('component_id', $component->id);
         if (count($items)) {
             foreach ($items as $item) {
                 if (isset($item->query) && isset($item->query['view'])) {
                     $parameter = 'id';
                     if ($item->query['view'] == 'items') {
                         $parameter = 'cid';
                     }
                     $view = $item->query['view'];
                     if (isset($item->query['layout'])) {
                         if ($item->query['layout'] == 'blog') {
                             $view = $view . "_blog";
                         } elseif ($item->query['layout'] == 'favourites') {
                             $view = $view . "_favourites";
                         }
                     }
                     if (isset($item->query[$parameter])) {
                         self::$lookup[$view][$item->query[$parameter]] = $item->id;
                     } else {
                         if (!isset(self::$lookup[$view])) {
                             self::$lookup[$view] = array($item->id);
                         }
                     }
                 }
             }
         }
     }
     //echo '<pre>';print_r($needles);print_R(self::$lookup);die();
     if ($needles) {
         foreach ($needles as $view => $ids) {
             //if (isset(self::$lookup[$view])){
             foreach ($ids as $id) {
                 if (isset(self::$lookup[$view][(int) $id])) {
                     return self::$lookup[$view][(int) $id];
                 } else {
                     if (isset(self::$lookup[$view . '_blog'][(int) $id])) {
                         return self::$lookup[$view . '_blog'][(int) $id];
                     }
                 }
             }
             //}
         }
         if (isset($needles['items']) || isset($needles['items'])) {
             if (isset(self::$lookup['categories'][0])) {
                 return self::$lookup['categories'][0];
             }
         }
     }
     //else {
     $active = $menus->getActive();
     if ($active && $active->component == 'com_djclassifieds') {
         return $active->id;
     } else {
         $default = $menus->getDefault();
         return $default->id;
     }
     //}
     return null;
 }
Beispiel #16
0
 public static function getCategoriesSortParent($p = '0', $ord = 'ord')
 {
     if (!self::$_categories_sparent) {
         self::$_categories_sparent = array();
     }
     if (isset(self::$_categories_sparent[$p . '_' . $ord])) {
         return self::$_categories_sparent[$p . '_' . $ord];
     }
     if ($p) {
         $pub = 'WHERE c.published=1 ';
     } else {
         $pub = '';
     }
     if ($ord == 'name') {
         $order = 'c.name';
     } else {
         $order = 'c.ordering';
     }
     $db = JFactory::getDBO();
     $query = "SELECT c.*, cc.name as parent_name,IFNULL(i.items_count,0) items_count FROM #__djcf_categories c " . "LEFT JOIN #__djcf_categories cc ON c.parent_id=cc.id " . "LEFT JOIN (SELECT i.cat_id, count(i.id) as items_count " . "FROM #__djcf_items i WHERE i.published=1 AND i.date_exp > NOW() GROUP BY i.cat_id) i ON i.cat_id=c.id " . $pub . "ORDER BY c.parent_id, " . $order;
     $db->setQuery($query);
     $allcategories = $db->loadObjectList();
     $categories = array();
     foreach ($allcategories as $cat) {
         if (!$cat->alias) {
             $cat->alias = DJClassifiedsSEO::getAliasName($cat->name);
         }
         if (!isset($categories[$cat->parent_id])) {
             $categories[$cat->parent_id] = array();
         }
         $categories[$cat->parent_id][] = $cat;
     }
     //echo '<pre>';print_r($db);print_r($allcategories);die();
     self::$_categories_sparent[$p . '_' . $ord] = $categories;
     return self::$_categories_sparent[$p . '_' . $ord];
 }
Beispiel #17
0
 function save()
 {
     $app = JFactory::getApplication();
     JTable::addIncludePath(JPATH_COMPONENT_ADMINISTRATOR . DS . 'tables');
     jimport('joomla.database.table');
     $row = JTable::getInstance('Items', 'DJClassifiedsTable');
     $par = JComponentHelper::getParams('com_djclassifieds');
     $user = JFactory::getUser();
     $db = JFactory::getDBO();
     $id = JRequest::getVar('id', 0, '', 'int');
     $redirect = '';
     $menus = $app->getMenu('site');
     $menu_item = $menus->getItems('link', 'index.php?option=com_djclassifieds&view=items&cid=0', 1);
     $menu_item_blog = $menus->getItems('link', 'index.php?option=com_djclassifieds&view=items&layout=blog&cid=0', 1);
     $itemid = '';
     if ($menu_item) {
         $itemid = '&Itemid=' . $menu_item->id;
     } else {
         if ($menu_item_blog) {
             $itemid = '&Itemid=' . $menu_item_blog->id;
         }
     }
     $menu_newad_itemid = $menus->getItems('link', 'index.php?option=com_djclassifieds&view=additem', 1);
     $new_ad_link = 'index.php?option=com_djclassifieds&view=additem';
     if ($menu_newad_itemid) {
         $new_ad_link .= '&Itemid=' . $menu_newad_itemid->id;
     }
     $new_ad_link = JRoute::_($new_ad_link);
     if ($user->id == '0') {
         //$uri = "index.php?option=com_djclassifieds&view=items&cid=0".$itemid;
         $uri = DJClassifiedsSEO::getCategoryRoute('0:all');
         $app->redirect('index.php?option=com_users&view=login&return=' . base64_encode($uri), JText::_('COM_DJCLASSIFIEDS_PLEASE_LOGIN'));
     }
     if ($id == 0) {
         $message = JText::_('COM_DJCLASSIFIEDS_WRONG_AD');
         //$redirect="index.php?option=com_djclassifieds&view=items&cid=0".$itemid;
         $redirect = DJClassifiedsSEO::getCategoryRoute('0:all');
         $redirect = JRoute::_($redirect);
         $app->redirect($redirect, $message, 'error');
     }
     $db = JFactory::getDBO();
     $query = "SELECT user_id FROM #__djcf_items WHERE id='" . $id . "' LIMIT 1";
     $db->setQuery($query);
     $item_user_id = $db->loadResult();
     if ($item_user_id != $user->id) {
         $message = JText::_('COM_DJCLASSIFIEDS_WRONG_AD');
         $redirect = DJClassifiedsSEO::getCategoryRoute('0:all');
         $redirect = JRoute::_($redirect);
         $app->redirect($redirect, $message, 'error');
     }
     $row->load($id);
     $row->exp_days = JRequest::getVar('exp_days', $par->get('exp_days'), '', 'int');
     $row->promotions = '';
     if ($par->get('promotion', '1') == '1') {
         $query = "SELECT p.* FROM #__djcf_promotions p WHERE p.published=1 ORDER BY p.id ";
         $db->setQuery($query);
         $promotions = $db->loadObjectList();
         foreach ($promotions as $prom) {
             if (JRequest::getVar($prom->name, '0')) {
                 $row->promotions .= $prom->name . ',';
             }
         }
         if ($row->promotions) {
             $row->promotions = substr($row->promotions, 0, -1);
         }
     }
     if (strstr($row->promotions, 'p_first')) {
         $row->special = 1;
     } else {
         $row->special = 0;
     }
     $row->payed = 1;
     $row->pay_type = '';
     //echo '<pre>';print_r($row);die();echo '</pre>';
     if (!$row->store()) {
         //echo $row->getError();exit ();
     }
     $redirect = "index.php?option=com_djclassifieds&view=item&task=renew&id=" . $row->id . "&Itemid=" . JRequest::getVar('Itemid', '0');
     $redirect = JRoute::_($redirect, false);
     $app->redirect($redirect, $message);
 }
Beispiel #18
0
 function display($tpl = NULL)
 {
     global $mainframe;
     $par = JComponentHelper::getParams('com_djclassifieds');
     $session = JFactory::getSession();
     $val = $session->get('captcha_sta', '0');
     $user = JFactory::getUser();
     $app = JFactory::getApplication();
     $token = JRequest::getCMD('token', '');
     //echo $val;
     if ($par->get('user_type') == 1 && $user->id == '0') {
         $uri = JFactory::getURI();
         $app->redirect('index.php?option=com_users&view=login&return=' . base64_encode($uri), JText::_('COM_DJCLASSIFIEDS_PLEASE_LOGIN'));
     } else {
         if ($val == 0 && $par->get('captcha') == 1 && JRequest::getVar('id', 0, '', 'int') == 0) {
             parent::display('captcha');
         } else {
             $model = $this->getModel();
             if ($user->id > 0 && $par->get('adverts_limit', '0') > 0 && JRequest::getInt('id', 0) == 0 && !$token) {
                 $user_items_c = $model->getUserItemsCount();
                 if ($user_items_c >= $par->get('adverts_limit', '0')) {
                     $app->redirect(JRoute::_(DJClassifiedsSEO::getUserAdsLink()), JText::_('COM_DJCLASSIFIEDS_REACHED_LIMIT_OF_ADVERTS'), 'error');
                 }
             }
             $item = $model->getItem();
             $images = $model->getItemImages($item->id);
             $cats = $model->getCategories();
             $cat_path = '';
             if ($item->cat_id != 0) {
                 $id = array();
                 $name = array();
                 $cid = $item->cat_id;
                 if ($cid != 0) {
                     while ($cid != 0) {
                         foreach ($cats as $li) {
                             if ($li->id == $cid) {
                                 $cid = $li->parent_id;
                                 $id[] = $li->id;
                                 $name[] = $li->name;
                                 $cat_path = 'new_cat(' . $li->parent_id . ',' . $li->id . ');' . $cat_path;
                                 break;
                             }
                         }
                     }
                 }
             }
             $regions = $model->getRegions();
             $r_name = '';
             $reg_path = '';
             if ($item->region_id != 0) {
                 $id = array();
                 $name = array();
                 $rid = $item->region_id;
                 if ($rid != 0) {
                     while ($rid != 0) {
                         foreach ($regions as $li) {
                             if ($li->id == $rid) {
                                 $rid = $li->parent_id;
                                 $id[] = $li->id;
                                 $name[] = $li->name;
                                 if (!$reg_path) {
                                     $r_name = $li->name;
                                 }
                                 $reg_path = 'new_reg(' . $li->parent_id . ',' . $li->id . ');' . $reg_path;
                                 break;
                             }
                         }
                         if ($rid == $item->region_id) {
                             break;
                         }
                     }
                 }
             }
             $terms_link = '';
             if ($par->get('terms', 1) > 0 && $par->get('terms_article_id', 0) > 0 && JRequest::getVar('id', 0, '', 'int') == 0) {
                 require_once JPATH_SITE . '/components/com_content/helpers/route.php';
                 $terms_article = $model->getTermsLink($par->get('terms_article_id', 0));
                 if ($terms_article) {
                     $slug = $terms_article->id . ':' . $terms_article->alias;
                     $cslug = $terms_article->catid . ':' . $terms_article->c_alias;
                     $article_link = ContentHelperRoute::getArticleRoute($slug, $cslug);
                     if ($par->get('terms', 0) == 2) {
                         $article_link .= '&tmpl=component';
                     }
                     $terms_link = JRoute::_($article_link);
                 }
             }
             $days = '';
             if ($par->get('durations_list', 1) > 0) {
                 $days = $model->getDays();
             }
             if ($par->get('promotion') == '1') {
                 $promotions = $model->getPromotions();
                 $this->assignRef('promotions', $promotions);
             }
             $custom_contact_fields = $model->getCustomContactFields();
             $this->assignRef('item', $item);
             $this->assignRef('images', $images);
             $this->assignRef('cats', $cats);
             $this->assignRef('cat_path', $cat_path);
             $this->assignRef('regions', $regions);
             $this->assignRef('reg_path', $reg_path);
             $this->assignRef('r_name', $r_name);
             $this->assignRef('terms_link', $terms_link);
             $this->assignRef('days', $days);
             $this->assignRef('custom_contact_fields', $custom_contact_fields);
             parent::display();
         }
     }
 }
Beispiel #19
0
    }
    $cl .= 'cat' . $c->id . ' lvl' . $c->level;
    if ($cl) {
        $cl = 'class="' . $cl . '"';
    }
    $cat_img = '';
    if ($c->level < $img_level && isset($this->cat_images[$c->id])) {
        $cat_img = '<img class="cat_tree_icon" alt="' . $c->name . '" src="' . JURI::base() . $this->cat_images[$c->id]->path . $this->cat_images[$c->id]->name . '_ths.' . $this->cat_images[$c->id]->ext . '" />';
    }
    $ll_coma = '';
    if ($ll_type && $level_limit > 1 && $c->level == $level_limit - 1) {
        if (isset($this->cats[$ci + 1])) {
            $ll_coma = $c->level == $this->cats[$ci + 1]->level ? ',' : '';
        }
    }
    echo '<li ' . $cl . '><a href="' . DJClassifiedsSEO::getCategoryRoute($c->id . ':' . $c->alias) . '">' . $cat_img . $c->name . $items_in_c . '</a>' . $ll_coma;
    $c_count++;
}
if ($prev_l > 0) {
    for ($i = 0; $i < $prev_l; $i++) {
        echo '</li></ul>';
    }
}
?>
			
		</ul>
		<div style="clear:both"></div>
		</div>
	</div>	
	<?php 
$modules_djcf =& JModuleHelper::getModules('djcf-cattree-bottom');
Beispiel #20
0
            if ($cid == $c->id) {
                $cl = 'active current';
            } else {
                $cl = 'active';
            }
            if ($c->have_childs) {
                $cl .= ' deeper';
            }
        }
        if ($c->have_childs) {
            if ($cl) {
                $cl .= ' ';
            }
            $cl .= 'parent';
        }
        echo '<li class="' . $cl . '"><a href="' . JRoute::_(DJClassifiedsSEO::getCategoryRoute($c->id . ':' . $c->alias)) . '">' . $c->name . '</a>';
        $c_count++;
    }
    if ($prev_l > 0) {
        for ($i = 0; $i < $prev_l; $i++) {
            echo '</li></ul>';
        }
    }
    ?>
			
		</ul>
		<?php 
}
if ($params->get('new_ad_link', '0') == 2) {
    echo '<div class="newad_link_bottom"><a class="button" href="' . $new_ad_link . '">' . JText::_('MOD_DJCLASSIFIEDS_MENU_NEW_ADD') . '</a></div>';
}
Beispiel #21
0
 /**
  * Plugin that returns the object list for DJ-Mediatools album
  * 
  * Each object must contain following properties (mandatory): title, description, image
  * Optional properties: link, target (_blank or _self), alt (alt attribute for image)
  * 
  * @param	object	The album params
  */
 public function onAlbumPrepare(&$source, &$params)
 {
     // Lets check the requirements
     $check = $this->onCheckRequirements($source);
     if (is_null($check) || is_string($check)) {
         return null;
     }
     $app = JFactory::getApplication();
     $default_image = $params->get('plg_classifieds_image');
     require_once JPATH_BASE . '/modules/mod_djclassifieds_items/helper.php';
     require_once JPATH_BASE . DS . 'administrator' . DS . 'components' . DS . 'com_djclassifieds' . DS . 'lib' . DS . 'djtheme.php';
     require_once JPATH_BASE . DS . 'administrator' . DS . 'components' . DS . 'com_djclassifieds' . DS . 'lib' . DS . 'djseo.php';
     $mparams = new JRegistry();
     foreach ($params->toArray() as $key => $value) {
         if (strpos($key, 'plg_classifieds_') !== FALSE) {
             $nkey = substr($key, 16);
             switch ($nkey) {
                 case 'catid':
                     $mparams->set('cat_id', $value);
                     break;
                 case 'follow_category':
                     $mparams->set('fallow_category', $value);
                     break;
                 case 'follow_region':
                     $mparams->set('fallow_region', $value);
                     break;
                 case 'only_promoted':
                     foreach ($value as $promo) {
                         $mparams->set('only_' . $promo, 1);
                     }
                     break;
                 default:
                     $mparams->set($nkey, $value);
                     break;
             }
         }
     }
     // override number of items
     $mparams->set('items_nr', $params->get('max_images'));
     // we need ads only with images
     if (empty($default_image)) {
         $mparams->set('only_with_img', 1);
     }
     //$this->debug($mparams);
     $items = modDjClassifiedsItems::getItems($mparams);
     $types = modDjClassifiedsItems::getTypes();
     $slides = array();
     if ($items) {
         foreach ($items as $i) {
             $slide = (object) array();
             if (!empty($i->img_path) && !empty($i->img_name) && !empty($i->img_ext)) {
                 // DJ-Classifieds 3.2+
                 $slide->image = $i->img_path . $i->img_name . '_thb.' . $i->img_ext;
             } else {
                 if (!empty($i->image_url)) {
                     // DJ-Classifieds version < 3.2
                     $images = explode(';', $i->image_url);
                     $slide->image = 'components/com_djclassifieds/images/' . $images[0];
                 } else {
                     if (!empty($default_image)) {
                         $slide->image = $default_image;
                     } else {
                         continue;
                     }
                 }
             }
             // we got image now take extra information
             $slide->extra = '';
             if ($mparams->get('show_date') == 1) {
                 $slide->extra .= '<div class="date">';
                 if (method_exists('DJClassifiedsTheme', 'formatDate')) {
                     $slide->extra .= DJClassifiedsTheme::formatDate(strtotime($i->date_start));
                 } else {
                     $slide->extra .= DJClassifiedsTheme::dateFormatFromTo(strtotime($i->date_start));
                 }
                 $slide->extra .= '</div>';
             }
             if ($mparams->get('show_cat') == 1) {
                 $slide->extra .= '<div class="category">';
                 if ($mparams->get('cat_link') == 1) {
                     $slide->extra .= '<a class="title_cat" href="' . JRoute::_(DJClassifiedsSEO::getCategoryRoute($i->cat_id . ':' . $i->c_alias)) . '">' . $i->c_name . '</a>';
                 } else {
                     $slide->extra .= $i->c_name;
                 }
                 $slide->extra .= '</div>';
             }
             if ($mparams->get('show_type') && $i->type_id > 0) {
                 if (isset($types[$i->type_id])) {
                     $slide->extra .= '<div class="type">';
                     $type = $types[$i->type_id];
                     if ($type->params->bt_class) {
                         $bt_class = ' ' . $type->params->bt_class;
                     } else {
                         $bt_class = '';
                     }
                     if ($type->params->bt_use_styles) {
                         if ($mparams->get('show_type') == 2) {
                             $style = 'style="display:inline-block;' . 'border:' . (int) $type->params->bt_border_size . 'px solid ' . $type->params->bt_border_color . ';' . 'background:' . $type->params->bt_bg . ';' . 'color:' . $type->params->bt_color . ';' . $type->params->bt_style . '"';
                             $slide->extra .= '<div class="type_button' . $bt_class . '" ' . $style . ' >' . $type->name . '</div>';
                         } else {
                             $slide->extra .= '<div class="type_label' . $bt_class . '" >' . $type->name . '</div>';
                         }
                     } else {
                         $slide->extra .= '<div class="type_label' . $bt_class . '" >' . $type->name . '</div>';
                     }
                     $slide->extra .= '</div>';
                 }
             }
             if ($mparams->get('show_region') == 1) {
                 $slide->extra .= '<div class="region">';
                 $slide->extra .= $i->r_name;
                 $slide->extra .= '</div>';
             }
             if ($mparams->get('show_price') == 1 && $i->price) {
                 $slide->extra .= '<div class="price">';
                 $slide->extra .= DJClassifiedsTheme::priceFormat($i->price, $i->currency);
                 $slide->extra .= '</div>';
             }
             // finish getting extra information
             $slide->title = $i->name;
             $slide->description = $i->intro_desc;
             if (empty($slide->description)) {
                 $slide->description = $i->description;
             }
             $slide->full_desc = $i->description;
             $slide->link = JRoute::_(DJClassifiedsSEO::getItemRoute($i->id . ':' . $i->alias, $i->cat_id . ':' . $i->c_alias));
             $slides[] = $slide;
         }
     }
     return $slides;
 }
Beispiel #22
0
 function activateMoveToTopPromotion($id)
 {
     $app = JFactory::getApplication();
     $par = JComponentHelper::getParams('com_djclassifieds');
     $user = JFactory::getUser();
     $db = JFactory::getDBO();
     $id = JRequest::getInt('id', 0);
     $query = "SELECT i.*, c.points as c_points, c.autopublish as c_autopublish, c.alias as c_alias FROM #__djcf_items i " . "LEFT JOIN #__djcf_categories c ON c.id=i.cat_id " . "WHERE i.id=" . $id . " LIMIT 1";
     $db->setQuery($query);
     $item = $db->loadObject();
     $redirect_a = 0;
     if (!$item) {
         $redirect_a = 1;
         $message = JText::_('COM_DJCLASSIFIEDS_WRONG_AD');
     }
     if ($item->user_id != $user->id) {
         $redirect_a = 1;
         $message = JText::_('COM_DJCLASSIFIEDS_WRONG_AD');
     }
     if ($user->id == 0) {
         $redirect_a = 1;
         $message = JText::_('COM_DJCLASSIFIEDS_PLEASE_LOGIN');
     }
     if ($redirect_a) {
         $redirect = "index.php?option=com_djclassifieds&view=items&cid=0";
         $redirect = JRoute::_($redirect, false);
         $app->redirect($redirect, $message);
     }
     $query = "SELECT SUM(p.points)FROM #__djcf_users_points p " . "WHERE p.user_id='" . $user->id . "' ";
     $db->setQuery($query);
     $message = JText::_('COM_DJCLASSIFIEDS_POINTS_PAYMENT_CONFIRMED_PROMOTION_MOVE_TO_TOP_ACTIVATED');
     $redirect = DJClassifiedsSEO::getItemRoute($item->id . ':' . $item->alias, $item->cat_id . ':' . $item->c_alias);
     $date_sort = date("Y-m-d H:i:s");
     $query = "UPDATE #__djcf_items SET date_sort='" . $date_sort . "' " . "WHERE id=" . $item->id . " ";
     $db->setQuery($query);
     $db->query();
     $redirect = JRoute::_($redirect, false);
     $app->redirect($redirect, $message);
 }
Beispiel #23
0
        echo '<li class="' . $cl . '" >';
        echo '<div class="title">';
        echo '<a href="' . DJClassifiedsSEO::getCategoryRoute($c->id . ':' . $c->alias) . '">' . $cat_img . '</a>';
        echo '<div class="cat_title_desc">';
        echo '<h2><a href="' . DJClassifiedsSEO::getCategoryRoute($c->id . ':' . $c->alias) . '">' . $c->name . $items_in_c . '</a></h2>';
        if ($c->description) {
            echo '<div class="cat_desc">' . $c->description . '</div>';
        }
        echo '</div>';
        echo '</div>';
    } else {
        if ($cl) {
            $cl = 'class="' . $cl . '"';
        }
        echo '<li ' . $cl . '>';
        echo '<a href="' . DJClassifiedsSEO::getCategoryRoute($c->id . ':' . $c->alias) . '">';
        echo $cat_img . '<span class="cat_name">' . $c->name . $items_in_c . '</span>';
        echo '</a>';
        echo $ll_coma;
    }
    $c_count++;
}
if ($prev_l > 0) {
    for ($i = 0; $i < $prev_l; $i++) {
        echo '</li></ul>';
    }
}
?>
			
		</ul>
		<div class="clear_both"></div>
Beispiel #24
0
 public function getContentPermalink()
 {
     $link = DJClassifiedsSEO::getItemRoute($this->_item->id . ':' . urlencode($this->_item->alias), $this->_item->cat_id . ':' . urlencode($this->_item->category_alias));
     if (JFactory::getApplication()->isSite()) {
         $link = urldecode(JRoute::_($link));
     }
     $link = $this->prepareLink($link);
     return $link;
 }
Beispiel #25
0
 public function onAfterDJClassifiedsDisplayProfile(&$profile, $params, $view)
 {
     $app = JFactory::getApplication();
     if (!$profile['id']) {
         return false;
     }
     $group_id = $this->params->get('rating_group_author', false);
     if (!$group_id) {
         return false;
     }
     require_once JPath::clean(JPATH_ROOT . '/components/com_djreviews/lib/api.php');
     require_once JPath::clean(JPATH_ROOT . '/administrator/components/com_djclassifieds/lib/djseo.php');
     $uid_slug = $profile['id'] . ':' . DJClassifiedsSEO::getAliasName($profile['name']);
     $name = $profile['name'] ? $profile['name'] : $profile['id'];
     $review = DJReviewsAPI::getInstance(array('group' => $group_id, 'type' => 'com_djclassifieds.author', 'name' => $name, 'link' => 'index.php?option=com_djclassifieds&view=profile&uid=' . $uid_slug, 'id' => $profile['id']));
     return $review->getFullReview();
 }
Beispiel #26
0
        }
        if ($params->get('show_price') == 1 && $i->price) {
            echo '<span class="price">';
            echo DJClassifiedsTheme::priceFormat($i->price, $i->currency);
            echo '</span>';
        }
        echo '</div>';
    }
    echo '</div>';
    if ($params->get('show_description') == 1) {
        echo '<div class="desc">';
        if ($params->get('desc_source', '0') == 1) {
            echo $i->description;
        } else {
            if ($params->get('desc_link') == 1) {
                echo '<a href="' . JRoute::_(DJClassifiedsSEO::getItemRoute($i->id . ':' . $i->alias, $i->cat_id . ':' . $i->c_alias)) . '">';
            }
            $desc_c = $params->get('char_desc_nr');
            if ($desc_c != 0 && $i->intro_desc != '' && strlen($i->intro_desc) > $desc_c) {
                echo mb_substr($i->intro_desc, 0, $desc_c, 'utf-8') . ' ...';
            } else {
                echo $i->intro_desc;
            }
            if ($params->get('desc_link') == 1) {
                echo '</a>';
            }
        }
        echo '</div>';
    }
    echo '</div>';
}
     }
 }
 foreach ($subcats as $c) {
     if ($ii % $cols == 0 && $ii != 0) {
         $row == 0 ? $row = 1 : ($row = 0);
         echo '<div style="clear:both"></div></div><div class="cat_row cat_row' . $row . '"><div class="cat_col" ><div class="cat_col_in" >';
     } else {
         echo '<div class="cat_col" ><div class="cat_col_in" >';
     }
     echo '<div class="title">';
     if (isset($this->cat_images[$c->id])) {
         echo '<a href="' . DJClassifiedsSEO::getCategoryRoute($c->id . ':' . $c->alias) . $anch . '">';
         echo '<img src="' . JURI::base() . $this->cat_images[$c->id]->path . $this->cat_images[$c->id]->name . '_ths.' . $this->cat_images[$c->id]->ext . '" alt="' . $c->name . '" />';
         echo '</a>';
     }
     echo '<div class="cat_title_desc"><h2><a href="' . DJClassifiedsSEO::getCategoryRoute($c->id . ':' . $c->alias) . $anch . '">';
     if ($par->get('show_adsn_cat')) {
         if (!$c->items_count) {
             $c->items_count = 0;
         }
         echo $c->name . ' <span>(' . $c->items_count . ')</span></a>';
     } else {
         echo $c->name . '</a>';
     }
     echo '</h2>';
     echo '<span class="cat_desc">' . $c->description . '</span></div>';
     echo '</div>';
     echo '</div></div>';
     $ii++;
 }
 /*if($ii%3==1){
				</div>
			<?php 
}
if ($par->get('showauthor', '1') == 1) {
    ?>
		<div class="row_gd user_name">
			<span class="row_label"><?php 
    echo JText::_('COM_DJCLASSIFIEDS_CREATED_BY');
    ?>
</span>
			<span class="row_value">
				<?php 
    if ($item->user_id == 0) {
        echo JText::_('COM_DJCLASSIFIEDS_GUEST');
    } else {
        $uid_slug = $item->user_id . ':' . DJClassifiedsSEO::getAliasName($item->username);
        ?>
					<div class="profile_item_box">
						<?php 
        if ($this->profile['img']) {
            echo '<a class="profile_img" href="index.php?option=com_djclassifieds&view=profile&uid=' . $uid_slug . '&Itemid=' . $Itemid . '"><img src="' . JURI::base() . $this->profile['img']->path . $this->profile['img']->name . '_ths.' . $this->profile['img']->ext . '" /></a>';
        }
        ?>
						<div class="profile_name_data">
							<?php 
        echo '<a class="profile_name" href="index.php?option=com_djclassifieds&view=profile&uid=' . $uid_slug . '&Itemid=' . $Itemid . '">' . $item->username . ' <span>(' . $this->user_items_c . ')</span></a>';
        ?>
							<?php 
        if ($this->profile['data']) {
            ?>
								<div class="profile_data">
		             		var icon = new google.maps.MarkerImage("<?php 
            echo $gm_icon_default;
            ?>
", size, start_point, anchor_point);
						<?php 
        } else {
            ?>
							var icon = '';
						<?php 
        }
    }
    ?>
																													
							<?php 
    $marker_txt = '<div style="width:200px;margin-bottom:0px"><div style="margin-bottom:5px;">';
    $marker_txt .= '<a style="text-decoration:none !important;" href="' . JRoute::_(DJClassifiedsSEO::getItemRoute($item->id . ':' . $item->alias, $item->cat_id . ':' . $item->c_alias)) . ' ">';
    if ($item->img_path && $item->img_name && $item->img_ext) {
        $item_img = JURI::base() . $item->img_path . $item->img_name . '_ths.' . $item->img_ext;
        $marker_txt .= '<img style="float:left;margin:5px 10px 0 0;"  width="60px" src="' . $item_img . '" /> ';
    }
    $marker_txt .= '<strong>' . addslashes($item->name) . '</strong><br />';
    $marker_txt .= '<span style="color:#333333">' . addslashes(str_replace(array("\n", "\r", "\r\n"), '', $item->intro_desc)) . '</span>';
    $marker_txt .= '</a></div></div>';
    if ($item->latitude != '0.000000000000000' && $item->longitude != '0.000000000000000') {
        ?>
										var adLatlng = new google.maps.LatLng(<?php 
        echo $item->latitude . ',' . $item->longitude;
        ?>
);
										djmarkers<?php 
        echo $module->id;
Beispiel #30
0
 public function save()
 {
     $app = JFactory::getApplication();
     $model = $this->getModel('category');
     $row = JTable::getInstance('Categories', 'DJClassifiedsTable');
     $par = JComponentHelper::getParams('com_djclassifieds');
     $db = JFactory::getDBO();
     $row->bind(JRequest::get('post'));
     $icon_url = $row->icon_url;
     $row->description = JRequest::getVar('description', '', 'post', 'string', JREQUEST_ALLOWRAW);
     if ($row->alias) {
         $row->alias = DJClassifiedsSEO::getAliasName($row->alias);
     } else {
         $row->alias = DJClassifiedsSEO::getAliasName($row->name);
     }
     $del_icon_id = JRequest::getInt('del_icon_id', 0);
     $del_icon_path = JRequest::getVar('del_icon_path', '');
     $del_icon_name = JRequest::getVar('del_icon_name', '');
     $del_icon_ext = JRequest::getVar('del_icon_ext', '');
     if (JRequest::getVar('del_icon', '0', '', 'int')) {
         if ($del_icon_path && $del_icon_name && $del_icon_ext) {
             $path_to_delete = JPATH_SITE . $del_icon_path . $del_icon_name;
             if (JFile::exists($path_to_delete . '.' . $del_icon_ext)) {
                 JFile::delete($path_to_delete . '.' . $del_icon_ext);
             }
             if (JFile::exists($path_to_delete . '_ths.' . $del_icon_ext)) {
                 JFile::delete($path_to_delete . '_ths.' . $del_icon_ext);
             }
             $query = "DELETE FROM #__djcf_images WHERE type='category' AND item_id=" . $row->id . " AND id=" . $del_icon_id . " ";
             $db->setQuery($query);
             $db->query();
         }
     }
     $row->price = $row->price * 100;
     //echo '<pre>';print_r($row);die();
     if (!$row->ordering) {
         $query = "SELECT ordering FROM #__djcf_categories WHERE parent_id = " . $row->parent_id . " ORDER BY ordering DESC LIMIT 1";
         $db = JFactory::getDBO();
         $db->setQuery($query);
         $order = $db->loadObject();
         $row->ordering = $order->ordering + 1;
     }
     if (!$row->store()) {
         echo $row->getError();
         exit;
     }
     $new_icon = $_FILES['icon'];
     if (substr($new_icon['type'], 0, 5) == "image") {
         $path_to_delete = JPATH_SITE . $del_icon_path . $del_icon_name;
         if (JFile::exists($path_to_delete . '.' . $del_icon_ext)) {
             JFile::delete($path_to_delete . '.' . $del_icon_ext);
         }
         if (JFile::exists($path_to_delete . '_ths.' . $del_icon_ext)) {
             JFile::delete($path_to_delete . '_ths.' . $del_icon_ext);
         }
         $query = "DELETE FROM #__djcf_images WHERE type='category' AND item_id=" . $row->id . " AND id=" . $del_icon_id . " ";
         $db->setQuery($query);
         $db->query();
         $last_id = $row->id;
         $lang = JFactory::getLanguage();
         $icon_name = str_ireplace(' ', '_', $new_icon['name']);
         $icon_name = $lang->transliterate($icon_name);
         $icon_name = strtolower($icon_name);
         $icon_name = JFile::makeSafe($icon_name);
         $icon_name = $last_id . '_' . $icon_name;
         $icon_url = $icon_name;
         $path = JPATH_SITE . "/components/com_djclassifieds/images/category/" . $icon_name;
         move_uploaded_file($new_icon['tmp_name'], $path);
         $nw = $par->get('catth_width', -1);
         $nh = $par->get('catth_height', -1);
         $name_parts = pathinfo($path);
         $img_name = $name_parts['filename'];
         $img_ext = $name_parts['extension'];
         $new_path = JPATH_SITE . "/components/com_djclassifieds/images/category/";
         //DJClassifiedsImage::makeThumb($path, $nw, $nh, 'ths');
         DJClassifiedsImage::makeThumb($path, $new_path . $img_name . '_ths.' . $img_ext, $nw, $nh);
         $query = "INSERT INTO #__djcf_images(`item_id`,`type`,`name`,`ext`,`path`,`caption`,`ordering`) VALUES ";
         $query .= "('" . $row->id . "','category','" . $img_name . "','" . $img_ext . "','/components/com_djclassifieds/images/category/','','1'); ";
         $db->setQuery($query);
         $db->query();
     }
     $db = JFactory::getDBO();
     $query = "DELETE FROM #__djcf_categories_groups WHERE cat_id= " . $row->id . " ";
     $db->setQuery($query);
     $db->query();
     if (isset($_POST['cat_groups'])) {
         $query = "INSERT INTO #__djcf_categories_groups(`cat_id`,`group_id`) VALUES ";
         for ($i = 0; $i < count($_POST['cat_groups']); $i++) {
             $group_id = $_POST['cat_groups'][$i];
             $query .= "('" . $row->id . "','" . $group_id . "'), ";
         }
         $query = substr($query, 0, -2) . ';';
         $db->setQuery($query);
         $db->query();
     }
     switch (JRequest::getVar('task')) {
         case 'apply':
             $link = 'index.php?option=com_djclassifieds&task=category.edit&id=' . $row->id;
             $msg = JText::_('COM_DJCLASSIFIEDS_CATEGORY_SAVED');
             break;
         case 'save2new':
             $link = 'index.php?option=com_djclassifieds&task=category.add';
             $msg = JText::_('COM_DJCLASSIFIEDS_CATEGORY_SAVED');
             break;
         case 'saveItem':
         default:
             $link = 'index.php?option=com_djclassifieds&view=categories';
             $msg = JText::_('COM_DJCLASSIFIEDS_CATEGORY_SAVED');
             break;
     }
     $app->redirect($link, $msg);
 }