| Server IP : 54.36.91.62 / Your IP : 216.73.217.94 Web Server : Apache System : Linux webm013.cluster127.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64 User : coopiak ( 151928) PHP Version : 8.3.23 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/coopiak/amisdesseniors-fr/nice/administrator/components/com_djclassifieds/lib/ |
Upload File : |
<?php
/**
* @package DJ-Classifieds
* @copyright Copyright (C) DJ-Extensions.com, All rights reserved.
* @license http://www.gnu.org/licenses GNU/GPL
* @author url: http://dj-extensions.com
* @author email contact@dj-extensions.com
*/
defined('_JEXEC') or die('Restricted access');
require_once(JPATH_ROOT.'/administrator/components/com_djclassifieds/lib/djcategory.php');
require_once(JPATH_ROOT.'/administrator/components/com_djclassifieds/lib/djregion.php');
require_once(JPATH_ROOT.'/administrator/components/com_djclassifieds/lib/djtheme.php');
require_once(JPATH_ROOT.'/components/com_djclassifieds/model.php');
class DJClassifiedsSEO
{
protected static $_lookup_arr = array();
public static function getItemRoute($id, $catid = 0, $regid = 0, $ignore_active_itemid = null)
{
$app = JFactory::getApplication();
$menus = $app->getMenu('site');
$m_active = $menus->getActive();
$par = $app->isClient('site') ? $app->getParams('com_djclassifieds') : JComponentHelper::getParams('com_djclassifieds');
$app->triggerEvent('onBeforeDJClassifiedsSEOGetItemRoute', array(&$id, &$catid, &$regid));
$link = 'index.php?option=com_djclassifieds&view=item&id='.$id;
if(!JFactory::getConfig()->get('sef')){
if($par->get('seo_item_url_structure','0') == '-1'){
$catid = 0;
}
if($par->get('seo_item_url_structure','0') == '0' || $par->get('seo_item_url_structure','0') == '-1'){
$regid = 0;
}
}
if((int)$catid >= 0){
$link .= '&cid='.$catid;
}
if((int)$regid >= 0){
$link .= '&rid='.$regid;
}
$menu_item = $menus->getItems('link', 'index.php?option=com_djclassifieds&view=item&id='.intval($id), true);
if(empty($menu_item) && $par->get('seo_item_itemid')){
$forced_menu_item = $menus->getItems('id', $par->get('seo_item_itemid'), true);
if($forced_menu_item && (strpos($forced_menu_item->link, 'index.php?option=com_djclassifieds&view=items') !== false || strpos($forced_menu_item->link, 'index.php?option=com_djclassifieds&view=categories') !== false)){
$menu_item = $forced_menu_item;
}
}
if(empty($menu_item)){
$ignore_active_itemid = ($ignore_active_itemid === null && in_array('item', $par->get('seo_ignore_active_itemid',array()))) ? true : $ignore_active_itemid;
$active_id = (!$ignore_active_itemid && $m_active && $m_active->component == 'com_djclassifieds' && strpos($m_active->link, 'index.php?option=com_djclassifieds&view=items') !== false) ? $m_active->id : null;
$menu_item = self::getItemsMenuItem($catid, $regid, true, $active_id);
}
$link .= '&Itemid='.($menu_item ? $menu_item->id : $menus->getDefault()->id);
$app->triggerEvent('onAfterDJClassifiedsSEOGetItemRoute', array(&$link, $id, $catid, $regid));
return $link;
}
public static function getCategoryRoute($catid, $ignore_active_itemid = null)
{
$app = JFactory::getApplication();
$menus = $app->getMenu('site');
$m_active = $menus->getActive();
$par = $app->isClient('site') ? $app->getParams('com_djclassifieds') : JComponentHelper::getParams('com_djclassifieds');
$link = 'index.php?option=com_djclassifieds&view=items';
if((int)$catid >= 0){
$link .= '&cid='.$catid;
}
$ignore_active_itemid = ($ignore_active_itemid === null && in_array('category', $par->get('seo_ignore_active_itemid',array()))) ? true : $ignore_active_itemid;
$active_id = (!$ignore_active_itemid && $m_active && $m_active->component == 'com_djclassifieds' && strpos($m_active->link, 'index.php?option=com_djclassifieds&view=items') !== false) ? $m_active->id : null;
$items_menu_item = self::getItemsMenuItem($catid, 0, true, $active_id);
if($items_menu_item){
$link .= '&Itemid='.$items_menu_item->id;
}
return $link;
}
public static function getRegionRoute($regid, $ignore_active_itemid = null)
{
$app = JFactory::getApplication();
$menus = $app->getMenu('site');
$m_active = $menus->getActive();
$par = $app->isClient('site') ? $app->getParams('com_djclassifieds') : JComponentHelper::getParams('com_djclassifieds');
// backward compatibiliy (before alias column)
$regid = self::getRegionAlias((int)$regid);
$link = 'index.php?option=com_djclassifieds&view=items';
if((int)$regid >= 0){
$link .= '&rid='.$regid;
}
$ignore_active_itemid = ($ignore_active_itemid === null && in_array('region', $par->get('seo_ignore_active_itemid',array()))) ? true : $ignore_active_itemid;
$active_id = (!$ignore_active_itemid && $m_active && $m_active->component == 'com_djclassifieds' && strpos($m_active->link, 'index.php?option=com_djclassifieds&view=items') !== false) ? $m_active->id : null;
$items_menu_item = self::getItemsMenuItem(0, $regid, true, $active_id);
if($items_menu_item){
$link .= '&Itemid='.$items_menu_item->id;
}
return $link;
}
public static function getItemsMenuItem($cid = 0, $rid = 0, $include_categories = true, $preferred_itemid = null, $prefer_blog = false)
{
$app = JFactory::getApplication();
$menus = $app->getMenu('site');
$cid = (int)$cid;
$rid = (int)$rid;
$lookup_store_id = $cid.'_'.$rid.'_'.($include_categories ? '1' : '0').($preferred_itemid ? $preferred_itemid : '0').'_'.($prefer_blog ? '1' : '0');
if(isset(self::$_lookup_arr[$lookup_store_id])){
return self::$_lookup_arr[$lookup_store_id];
}
$url_arr_table = array();
$url_arr_blog = array();
if($cid && $rid){
$url_arr_table[] = 'index.php?option=com_djclassifieds&view=items&cid='.$cid.'&rid='.$rid;
$url_arr_blog[] = 'index.php?option=com_djclassifieds&view=items&layout=blog&cid='.$cid.'&rid='.$rid;
}
if($cid){
foreach(DJClassifiedsCategory::getParentPath(1,$cid) as $c){
$url_arr_table[] = 'index.php?option=com_djclassifieds&view=items&cid='.$c->id;
$url_arr_blog[] = 'index.php?option=com_djclassifieds&view=items&layout=blog&cid='.$c->id;
$url_arr_table[] = 'index.php?option=com_djclassifieds&view=items&cid='.$c->id.'&rid=0';
$url_arr_blog[] = 'index.php?option=com_djclassifieds&view=items&layout=blog&cid='.$c->id.'&rid=0';
}
}
if($rid){
foreach(DJClassifiedsRegion::getParentPath($rid,1) as $r){
$url_arr_table[] = 'index.php?option=com_djclassifieds&view=items&rid='.$r->id;
$url_arr_blog[] = 'index.php?option=com_djclassifieds&view=items&layout=blog&rid='.$r->id;
$url_arr_table[] = 'index.php?option=com_djclassifieds&view=items&cid=0&rid='.$r->id;
$url_arr_blog[] = 'index.php?option=com_djclassifieds&view=items&layout=blog&cid=0&rid='.$r->id;
}
}
$url_arr_table[] = 'index.php?option=com_djclassifieds&view=items&cid=0&rid=0';
$url_arr_table[] = 'index.php?option=com_djclassifieds&view=items&cid=0'; // backward compatibility
$url_arr_table[] = 'index.php?option=com_djclassifieds&view=items'; // backward compatibility
$url_arr_blog[] = 'index.php?option=com_djclassifieds&view=items&layout=blog&cid=0&rid=0';
$url_arr_blog[] = 'index.php?option=com_djclassifieds&view=items&layout=blog&cid=0'; // backward compatibility
$url_arr_blog[] = 'index.php?option=com_djclassifieds&view=items&layout=blog'; // backward compatibility
if($prefer_blog){
$url_arr = array_merge($url_arr_blog, $url_arr_table);
}else{
$url_arr = array_merge($url_arr_table, $url_arr_blog);
}
if($preferred_itemid){ // look for the menu item with preferred Itemid first
foreach($url_arr as $s_url){
$menu_items_tmp = $menus->getItems('link', $s_url, false);
foreach($menu_items_tmp as $menu_item_tmp){
if($menu_item_tmp->id == $preferred_itemid){
$menu_item = $menu_item_tmp;
break 2;
}
}
}
}
if(empty($menu_item)){
foreach($url_arr as $s_url){ // look for the menu item without restrictions
$menu_items_tmp = $menus->getItems('link', $s_url, false);
foreach($menu_items_tmp as $menu_item_tmp){
$it_par = $menu_item_tmp->getParams();
if(!$it_par->get('show_fav_profiles_items') && !$it_par->get('type_id')){
$menu_item = $menu_item_tmp;
break 2;
}
}
}
}
if($include_categories){
$url_arr[] = 'index.php?option=com_djclassifieds&view=categories';
}
if(empty($menu_item)){
foreach($url_arr as $s_url){
$menu_item = $menus->getItems('link', $s_url, true);
if($menu_item){
break;
}
}
}
self::$_lookup_arr[$lookup_store_id] = !empty($menu_item) ? $menu_item : false;
return self::$_lookup_arr[$lookup_store_id];
}
public static function getSearchResultsMenuItem($params)
{
$app = JFactory::getApplication();
$menus = $app->getMenu('site');
$se_cats = $app->input->getVar('se_cats', '');
if(!is_array($se_cats)) $se_cats = explode(',', $se_cats);
$se_cats = array_filter($se_cats);
$se_cat_id = str_replace('p', '', end($se_cats));
$cid = $se_cat_id ? $se_cat_id : 0;
$se_regs = $app->input->getVar('se_regs', '');
if(!is_array($se_regs)) $se_regs = explode(',', $se_regs);
$se_regs = array_filter($se_regs);
$se_reg_id = str_replace('p', '', end($se_regs));
$rid = $se_reg_id ? $se_reg_id : 0;
if(!$cid && !$app->input->exists('se_cats') && $params->get('show_cat','1') && $params->get('cat_id')){
$cid = $params->get('cat_id');
}
if($params->get('results_active_itemid','0') && $app->input->getInt('Itemid')){
$menu_custom = $menus->getItem($app->input->getInt('Itemid'));
if($menu_custom && strpos($menu_custom->link, 'index.php?option=com_djclassifieds&view=items') !== false){
return $menu_custom;
}
}
if($params->get('results_itemid',0)){
$menu_custom = $menus->getItem($params->get('results_itemid',0));
if($menu_custom && strpos($menu_custom->link, 'index.php?option=com_djclassifieds&view=items') !== false){
return $menu_custom;
}
}
$menu_item = self::getItemsMenuItem($cid, $rid, false, null, $params->get('result_view','0') == '1');
return !empty($menu_item) ? $menu_item : false;
}
public static function getSearchResultsLink($params) // backward compatibility
{
$menu_item = self::getSearchResultsMenuItem($params);
if($menu_item){
$itemid_uri = $menu_item->link;
$itemid = $menu_item->id;
$link = JUri::getInstance($itemid_uri);
$link->setVar('Itemid', $itemid);
}else{
$link = 'index.php?option=com_djclassifieds&view=items';
}
return $link;
}
public static function getSearchResultsItemid($params)
{
$menu_item = self::getSearchResultsMenuItem($params);
if($menu_item){
$itemid = $menu_item->id;
}else{
$itemid = '';
}
return $itemid;
}
public static function getItemsSearchLink($params) // backward compatibility
{
return self::getSearchResultsLink($params);
}
static function getRegionAlias($id)
{
$db = JFactory::getDBO();
$query = "SELECT * FROM #__djcf_regions WHERE id=".$id;
$db->setQuery($query);
$region = $db->loadObject();
if(!$region){
return;
}elseif($region->alias){
return $id.':'.$region->alias;
}else{
return $id.':'.self::getAliasName($region->name);
}
}
public static function getAliasName($name = '')
{
$par = JComponentHelper::getParams('com_djclassifieds');
$alias = strip_tags(mb_strtolower($name, 'UTF-8'));
if($par->get('seo_alias_urlsafe','1')){
$alias = JFilterOutput::stringURLSafe($alias);
}else{
$alias = JFilterOutput::stringURLUnicodeSlug($alias);
}
$alias = str_ireplace(' ', '_', $alias);
return $alias;
}
public static function getNewAdLink() // backward compatibility
{
$app = JFactory::getApplication();
$menus = $app->getMenu('site');
$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;
}
return $new_ad_link;
}
public static function getUserAdsLink(){ // backward compatibility
$app = JFactory::getApplication();
$menus = $app->getMenu('site');
$menu_userads_itemid = $menus->getItems('link','index.php?option=com_djclassifieds&view=useritems',1);
$menu_userads_link = 'index.php?option=com_djclassifieds&view=useritems';
if($menu_userads_itemid){
$menu_userads_link .= '&Itemid='.$menu_userads_itemid->id;
}
return $menu_userads_link;
}
public static function getUserFavAdsLink(){ // backward compatibility
$app = JFactory::getApplication();
$menus = $app->getMenu('site');
$menu_fav_item = $menus->getItems('link','index.php?option=com_djclassifieds&view=items&layout=favourites',1);
$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);
if($menu_fav_item){
$fav_ads_link='index.php?option=com_djclassifieds&view=items&layout=favourites&Itemid='.$menu_fav_item->id;
}else if($menu_item){
$fav_ads_link='index.php?option=com_djclassifieds&view=items&cid=0&Itemid='.$menu_item->id.'&fav=1';
}else if($menu_item_blog){
$fav_ads_link='index.php?option=com_djclassifieds&view=items&layout=blog&cid=0&Itemid='.$menu_item_blog->id.'&fav=1';
}else{
$fav_ads_link='index.php?option=com_djclassifieds&view=items&cid=0&fav=1';
}
return $fav_ads_link;
}
public static function getURLfromSlug($slug, $context = '', $id_sufix = '')
{
$db = JFactory::getDBO();
$par = JComponentHelper::getParams('com_djclassifieds');
$slug_a = explode(':', ($slug ? $slug : ''));
$url = '';
if($context == 'profile' && $par->get('seo_only_id_in_profile_url', '0')){
return $slug_a[0];
}elseif($par->get('seo_alias_in_url', '1') && in_array($context, $par->get('seo_remove_id_from_url', array())) && count($slug_a) == 2){
$alias = $slug_a[1];
if($context == 'item'){
$query = "SELECT count(id) FROM #__djcf_items WHERE alias = ".$db->q($alias);
}elseif($context == 'profile'){
$query = "SELECT count(id) FROM #__users WHERE username = ".$db->q($alias);
}elseif(($context == 'category' || $context == 'region') && in_array('category', $par->get('seo_remove_id_from_url', array())) && in_array('region', $par->get('seo_remove_id_from_url', array()))){
$query = "SELECT count(id) FROM "
."(SELECT id FROM #__djcf_categories WHERE alias = ".$db->q($alias)." "
."UNION "
."SELECT id FROM #__djcf_regions WHERE alias = ".$db->q($alias).") v";
}elseif($context == 'category'){
$query = "SELECT count(id) FROM #__djcf_categories WHERE alias = ".$db->q($alias);
}elseif($context == 'region'){
$query = "SELECT count(id) FROM #__djcf_regions WHERE alias = ".$db->q($alias);
}
$db->setQuery($query);
$count = $db->loadResult();
if($count == 1){ // return alias only if alias is unique
return $alias;
}
}
if($par->get('seo_alias_in_url','1')){
if(isset($slug_a[1])){
$slug_a[1] = DJClassifiedsSEO::getAliasName($slug_a[1]);
if($id_sufix=='l' && substr($slug_a[0], -1)=='l'){
$id_sufix = '';
}
if($par->get('seo_id_position','1')){
$url .= $slug_a[1].$par->get('seo_link_separator',',').$slug_a[0].$id_sufix;
}else{
$url .= $slug_a[0].$id_sufix.$par->get('seo_link_separator',',').$slug_a[1];
}
}else{
$url = $slug_a[0].$id_sufix;
}
}else{
$url = $slug_a[0].$id_sufix;
}
return $url;
}
public static function getIDfromURL($url, $context = '')
{
$db = JFactory::getDBO();
$par = JComponentHelper::getParams( 'com_djclassifieds' );
$url_a = explode($par->get('seo_link_separator',','), $url);
if($context == 'profile' && $par->get('seo_only_id_in_profile_url', '0')){
return (int)$url;
}elseif($par->get('seo_alias_in_url', '1') && in_array($context, $par->get('seo_remove_id_from_url', array()))){
$alias = $url;
if($context == 'item'){
$query = "SELECT id FROM #__djcf_items WHERE alias = ".$db->q($alias);
}elseif($context == 'category'){
$query = "SELECT id FROM #__djcf_categories WHERE alias = ".$db->q($alias);
}elseif($context == 'region'){
$query = "SELECT id FROM #__djcf_regions WHERE alias = ".$db->q($alias);
}elseif($context == 'profile'){
$query = "SELECT id FROM #__users WHERE username = ".$db->q($alias);
}
$db->setQuery($query);
$id = $db->loadResult();
if($id){
return $id.':'.$alias;
}
}
if(isset($url_a[1])){
if($par->get('seo_id_position','1')){
$id = end($url_a);
unset($url_a[count($url_a)-1]);
}else{
$id = (int)$url_a[0];
unset($url_a[0]);
}
}else{
$id = (int)$url;
}
if(!$id || !is_numeric(rtrim($id,'l'))){
return false;
}
if($par->get('seo_alias_in_url', '1') && in_array($context, $par->get('seo_remove_id_from_url', array()))){
$slug = '';
}else{
$slug = implode('-',$url_a);
}
return $id.($slug ? ':'.$slug : '');
}
public static function isIDRegion($url)
{
$par = JComponentHelper::getParams( 'com_djclassifieds' );
$db = JFactory::getDBO();
if(in_array('region', $par->get('seo_remove_id_from_url', array()))){
$url = str_replace(':', '-', $url);
$query = "SELECT id FROM #__djcf_regions WHERE alias = ".$db->q($url);
$db->setQuery($query);
$exists = $db->loadResult();
if($exists){
return true;
}
}
$url_a = explode($par->get('seo_link_separator',','),str_ireplace(':', $par->get('seo_link_separator',','), $url));
if(isset($url_a[1])){
if($par->get('seo_id_position','1')){
$id = end($url_a);
}else{
$id = $url_a[0];
}
}else{
$id = $url;
}
if(substr($id, -1)=='l' && is_numeric(rtrim($id, substr($id, -1)))){
return true;
}else{
return false;
}
}
public static function getMainAdvertsItemid(){ // backward compatibility
$app = JFactory::getApplication();
$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;
}
return $itemid;
}
public static function getUserProfileItemid(){ // backward compatibility
$app = JFactory::getApplication();
$menus = $app->getMenu('site');
$menu_item = $menus->getItems('link','index.php?option=com_djclassifieds&view=profiles',1);
$itemid = '';
if($menu_item){
$itemid='&Itemid='.$menu_item->id;
}else{
$menu_item = $menus->getItems('link','index.php?option=com_djclassifieds&view=profile',1);
if($menu_item){
$itemid='&Itemid='.$menu_item->id;
}
}
return $itemid;
}
public static function setMeta()
{
$app = JFactory::getApplication();
$document = JFactory::getDocument();
$menus = $app->getMenu('site');
$m_active = $menus->getActive();
if($m_active){
if($m_active->getParams()->get('menu-meta_keywords')){
$document->setMetaData('keywords',$m_active->getParams()->get('menu-meta_keywords'));
}
if($m_active->getParams()->get('menu-meta_description')){
$document->setDescription($m_active->getParams()->get('menu-meta_description'));
}
}
}
public static function setSiteNameInPageTitle()
{
$config = JFactory::getConfig();
$document = JFactory::getDocument();
$par = JComponentHelper::getParams('com_djclassifieds');
if($par->get('use_sitename_pagetitles', '1')){
$site_name_page_title = $config->get('sitename_pagetitles', '0');
$title_separator = $par->get('seo_title_separator', ' - ');
if($site_name_page_title){
$sitename = $config->get('sitename', '');
$title = $document->getTitle();
if($site_name_page_title == '1'){
$document->setTitle($sitename.$title_separator.$title);
}else{
$document->setTitle($title.$title_separator.$sitename);
}
}
}
}
// backward compatibility
public static function getViewLink($view, $cat_id = null)
{
return self::getViewUri($view, $cat_id);
}
public static function getViewUri($view, $opts = array())
{
$app = JFactory::getApplication();
$par = JComponentHelper::getParams('com_djclassifieds');
$menus = $app->getMenu('site');
if(is_numeric($opts)){ // view backward compatibility
$cat_id = $opts;
$opts = array('cat_id' => $cat_id);
}
if($view == 'favourites'){
$link = 'index.php?option=com_djclassifieds&view=items&layout=favourites&cid=0&rid=0';
$fav_menu_item = $menus->getItems('link', $link, true);
$link .= $fav_menu_item ? '&Itemid='.$fav_menu_item->id : '';
return $link;
}else{
$link = 'index.php?option=com_djclassifieds&view='.$view;
}
if(!empty($opts['Itemid'])){
$link .= '&Itemid='.$opts['Itemid'];
}elseif($app->input->get('option') == 'com_djclassifieds' && $app->input->get('view') == $view && $app->input->get('Itemid')){
$link .= '&Itemid='.$app->input->get('Itemid');
}else{
if($view == 'additem' && !empty($opts['cat_id'])){ // look for category-specific additem menu items
$menu_items = $menus->getItems('link', $link, 0);
foreach($menu_items as $menu_item){
$it_par = $menu_item->getParams();
if($it_par->get('default_cat_id')){
foreach(DJClassifiedsCategory::getParentPath(1, $opts['cat_id']) as $cp){
if($cp->id == $it_par->get('default_cat_id')){
$itemid = $menu_item->id;
break 2;
}
}
}
}
}elseif($view == 'plans'){ // look for the menu item without plans restriction
$menu_items = $menus->getItems('link', $link, 0);
foreach($menu_items as $menu_item){
$it_par = $menu_item->getParams();
if(!$it_par->get('plans')){
$itemid = $menu_item->id;
break;
}
}
}elseif($view == 'useritems'){ // look for the menu item without cat restriction
$menu_items = $menus->getItems('link', $link, 0);
foreach($menu_items as $menu_item){
$it_par = $menu_item->getParams();
if(!$it_par->get('cat_id')){
$itemid = $menu_item->id;
break;
}
}
}elseif($view == 'profileedit'){ // look for the menu item without redirect restriction
$menu_items = $menus->getItems('link', $link, 0);
foreach($menu_items as $menu_item){
$it_par = $menu_item->getParams();
if(!$it_par->get('redirect')){
$itemid = $menu_item->id;
break;
}
}
}
if(!empty($itemid)){
$link .= '&Itemid='.$itemid;
}else{
if(in_array($view, array('payment', 'renewitem', 'checkout'))){ // no separate menu item - use current itemid
if($app->input->get('Itemid')){
$link .= '&Itemid='.$app->input->get('Itemid');
}
}elseif($view == 'profile'){ // get profiles menu item, if exists
$menu_item = $menus->getItems('link','index.php?option=com_djclassifieds&view=profiles', 1);
if(!$menu_item || !empty($opts['force_profile']) || ($menu_item && $menu_item->alias == $par->get('seo_view_profile','profile'))){
$menu_item = $menus->getItems('link','index.php?option=com_djclassifieds&view=profile', 1);
}elseif(!empty($opts['group_id'])){ // look for the menu item with the corresponding profile group_id
$menu_items = $menus->getItems('link', 'index.php?option=com_djclassifieds&view=profiles', 0);
foreach($menu_items as $m_item){
$it_par = $m_item->getParams();
if($it_par->get('group_id') && $opts['group_id'] == $it_par->get('group_id')){
$menu_item = $m_item;
break;
}
}
}
}else{
$menu_item = $menus->getItems('link', $link, 1);
}
if(!empty($menu_item) && $menu_item->type != 'alias'){
$link .= '&Itemid='.$menu_item->id;
}
}
}
return $link;
}
static function getRedirectPage($redirect) // bacwkard compatibility
{
if(is_numeric($redirect)){
$redirect = 'index.php?Itemid='.$redirect;
}
return $redirect;
}
static function handleItemNotFound()
{
$app = JFactory::getApplication();
$par = JComponentHelper::getParams('com_djclassifieds');
if($par->get('404_item_redirect','0') == 1){
throw new Exception(JText::_('COM_DJCLASSIFIEDS_ITEM_NOT_AVAILABLE'), 404);
}elseif($par->get('404_item_redirect_custom')){
$app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_ITEM_NOT_AVAILABLE'), 'warning');
$app->redirect(JRoute::_('index.php?Itemid='.$par->get('404_item_redirect_custom'), false));
}else{
$app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_ITEM_NOT_AVAILABLE'), 'warning');
$app->redirect(JRoute::_(DJClassifiedsSEO::getCategoryRoute('0:all'), false));
}
}
static function handleCategoryNotFound()
{
$app = JFactory::getApplication();
$par = JComponentHelper::getParams('com_djclassifieds');
DJClassifiedsTheme::loadLanguage();
if($par->get('404_cat_redirect','0')==1){
throw new Exception(JText::_('COM_DJCLASSIFIEDS_CATEGORY_NOT_AVAILABLE'), 404);
}elseif($par->get('404_cat_redirect_custom')){
$app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_CATEGORY_NOT_AVAILABLE'), 'warning');
$app->redirect(JRoute::_('index.php?Itemid='.$par->get('404_cat_redirect_custom'), false));
}else{
$app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_CATEGORY_NOT_AVAILABLE'), 'warning');
$app->redirect(JRoute::_(DJClassifiedsSEO::getCategoryRoute('0:all'), false));
}
}
static function redirectWrongItem($redirect_uri = null, $msg = null, $msg_type = 'error')
{
$app = JFactory::getApplication();
if(!$redirect_uri){
$redirect_uri = DJClassifiedsSEO::getCategoryRoute('0:all');
}
if(!$msg){
$msg = 'COM_DJCLASSIFIEDS_WRONG_AD';
}
$app->enqueueMessage(JText::_($msg), $msg_type);
$app->redirect(JRoute::_($redirect_uri, false));
}
static function redirectLogIn($return_uri = null, $msg = null)
{
$app = JFactory::getApplication();
if(!$return_uri){
$return_uri = JUri::getInstance();
}
if(!$msg){
$msg = 'COM_DJCLASSIFIEDS_PLEASE_LOGIN';
}
$app->enqueueMessage(JText::_($msg), 'notice');
$app->redirect(JRoute::_('index.php?option=com_users&view=login&return='.base64_encode($return_uri), false));
}
static function getUrlVars()
{
$app = JFactory::getApplication();
$vars = '';
if($app->input->get('se')){
$vars .= '&se='.$app->input->get('se');
if($app->input->getVar('search')){
$vars .= '&search='.htmlspecialchars($app->input->getVar('search'), ENT_COMPAT, 'UTF-8');
}
foreach($app->input->get->getArray() as $key => $get_v){
if(strstr($key, 'se_')){
if(is_array($get_v)){
for($gvi=0;$gvi<count($get_v);$gvi++){
$vars .= '&'.$key.'[]='.htmlspecialchars($get_v[$gvi], ENT_COMPAT, 'UTF-8');
}
}else{
$vars .= '&'.$key.'='.htmlspecialchars($get_v, ENT_COMPAT, 'UTF-8');
}
}
}
}
if($app->input->getVar('cid')){
$vars .= '&cid='.$app->input->getVar('cid');
}
if($app->input->getVar('rid')){
$vars .= '&rid='.$app->input->getVar('rid');
}
if($app->input->getInt('fav', 0)){
$vars .= '&fav=1';
}
if($app->input->getVar('uid')){
$vars .= '&uid='.$app->input->getVar('uid');
}
if($app->input->getInt('Itemid', 0)){
$vars .= '&Itemid='.$app->input->getInt('Itemid');
}
return $vars;
}
static function getPageHeading($par)
{
return $par->get('show_page_heading', '1') ? ($par->get('page_heading') ? $par->get('page_heading') : $par->get('page_title', '')) : '';
}
static function getFeedUri($uri, $par)
{
if($par->get('rss_feed','1')){
$link = JUri::getInstance($uri);
$link->setVar('format', 'feed');
if($par->get('rss_feed','1')=='1'){
$link->setVar('type', 'rss');
}else if($par->get('rss_feed','1')=='2'){
$link->setVar('type', 'atom');
}
return $link;
}
return false;
}
static function getUserSlug($user_id, $authorname = null)
{
return $user_id.($authorname ? ':'.self::getAliasName($authorname) : '');
}
public static function getArticleLink($id, $tmpl = 0) // backward compatibility
{
$djmodel = new DJClassifiedsModel();
return $djmodel->getTermsLink($id, $tmpl);
}
static function getVarFromUriPath($varname)
{
$juri = JUri::getInstance();
if($juri->getQuery()){
$varval = $juri->getVar($varname) ? $juri->getVar($varname) : '0';
}else{
$path_arr = explode('/',$juri->getPath());
$last_var = end($path_arr);
$varval = is_numeric($last_var) ? $last_var : '0';
}
return $varval;
}
}