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); } }
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); }
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; }
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; }
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); }
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; }
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); }
<?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>'; } ?>
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); }
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>'; }
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); } } }
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')); }
} 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"> </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');
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; }
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]; }
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); }
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(); } } }
} $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');
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>'; }
/** * 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; }
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); }
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>
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; }
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(); }
} 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;
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); }