I am new to this forum,
I changed the helper.php a little bit in.
<?php
defined('_JEXEC') or die('Direct Access to this location is not allowed.');
class Modprop_locationHelper
{
function getCountries()
{
global $mainframe, $option;
$cid= JRequest::getVar('cid', 0, '', 'int');
$db = &JFactory::getDBO();
if($cid == NULL){
$query = 'SELECT c.*,count(p.id) as tot, '
. ' CASE WHEN CHAR_LENGTH(c.alias) THEN CONCAT_WS(":", c.id, c.alias) ELSE c.id END as CYslug '
. ' FROM #__properties_country as c '
. ' left join #__properties_products as p on p.cyid = c.id '
. ' WHERE c.published = 1 AND p.published = 1 '
. ' group by c.id ORDER BY c.name';
}else{
$query = 'SELECT c.*,count(p.id) as tot, '
. ' CASE WHEN CHAR_LENGTH(c.alias) THEN CONCAT_WS(":", c.id, c.alias) ELSE c.id END as CYslug,'
. ' CASE WHEN CHAR_LENGTH(y.alias) THEN CONCAT_WS(":", y.id, y.alias) ELSE y.id END as Cslug '
. ' FROM #__properties_country as c '
. ' left join #__properties_products as p on p.cyid = c.id '
. ' left join #__properties_category as y on y.id = p.cid '
. ' WHERE c.published = 1 AND p.published = 1 AND p.cid='.$cid
. ' group by c.id ORDER BY c.name';}
$db->setQuery($query);
$items = $db->loadObjectList();
//$items = ($items = $db->loadObjectList())?$items:array();
return $items;
}
function getStates($cyid)
{
global $mainframe, $option;
$cid = JRequest::getVar('cid', 0, '', 'int');
//$cyid = JRequest::getVar('cyid', 0, '', 'int');
jimport('joomla.application.component.helper');
$db = &JFactory::getDBO();
if($cid == NULL){
$query = 'SELECT s.*,count(p.id) as tot, '
. ' CASE WHEN CHAR_LENGTH(cy.alias) THEN CONCAT_WS(":", cy.id, cy.alias) ELSE cy.id END as CYslug, '
. ' CASE WHEN CHAR_LENGTH(s.alias) THEN CONCAT_WS(":", s.id, s.alias) ELSE s.id END as Sslug '
. ' FROM #__properties_state as s '
. ' left join #__properties_products as p on p.sid = s.id '
. ' left join #__properties_country as cy on cy.id = p.cyid '
. ' WHERE s.published = 1 AND p.published = 1 AND s.parent = '.$cyid
. ' group by s.id ORDER BY s.name';
}else{
$query = 'SELECT s.*,count(p.id) as tot, '
. ' CASE WHEN CHAR_LENGTH(cy.alias) THEN CONCAT_WS(":", cy.id, cy.alias) ELSE cy.id END as CYslug, '
. ' CASE WHEN CHAR_LENGTH(s.alias) THEN CONCAT_WS(":", s.id, s.alias) ELSE s.id END as Sslug, '
. ' CASE WHEN CHAR_LENGTH(c.alias) THEN CONCAT_WS(":", c.id, c.alias) ELSE c.id END as Cslug '
. ' FROM #__properties_state as s '
. ' left join #__properties_products as p on p.sid = s.id '
. ' left join #__properties_country as cy on cy.id = p.cyid '
. ' left join #__properties_category as c on c.id = p.cid '
. ' WHERE s.published = 1 AND p.published = 1 AND s.parent = '.$cyid
. ' AND p.cid ='.$cid
. ' group by s.id ORDER BY s.name';}
$db->setQuery($query);
$States = $db->loadObjectList();
// echo str_replace('#_','jos',$query);
return $States;
}
function getLocalities()
{
$db = &JFactory::getDBO();
$sid = JRequest::getVar('sid', 0, '', 'int');
$cid= JRequest::getVar('cid', 0, '', 'int');
if($cid == NULL){
$query = 'SELECT l.*,count(p.id) as tot, '
. ' CASE WHEN CHAR_LENGTH(l.alias) THEN CONCAT_WS(":", l.id, l.alias) ELSE l.id END as Lslug '
. ' FROM #__properties_locality as l '
. ' left join #__properties_products as p on p.lid = l.id '
. ' WHERE l.published = 1 AND p.published = 1 AND l.parent = '.$sid
. ' group by l.id ORDER BY l.name';
}else{
$query = 'SELECT l.*,count(p.id) as tot, '
. ' CASE WHEN CHAR_LENGTH(l.alias) THEN CONCAT_WS(":", l.id, l.alias) ELSE l.id END as Lslug, '
. ' CASE WHEN CHAR_LENGTH(c.alias) THEN CONCAT_WS(":", c.id, c.alias) ELSE c.id END as Cslug '
. ' FROM #__properties_locality as l '
. ' left join #__properties_products as p on p.lid = l.id '
. ' left join #__properties_category as c on c.id = p.cid '
. ' WHERE l.published = 1 AND p.published = 1 AND l.parent = '.$sid
. ' AND p.cid ='.$cid
. ' group by l.id ORDER BY l.name';}
$db->setQuery($query);
$Localities = $db->loadObjectList();
return $Localities;
}
function getLocalitiesByCountry()
{
$db = &JFactory::getDBO();
$cyid = JRequest::getVar('cyid', 0, '', 'int');
$cid= JRequest::getVar('cid', 0, '', 'int');
if($cid == NULL){
$query = 'SELECT l.*,count(p.id) as tot, '
. ' CASE WHEN CHAR_LENGTH(s.alias) THEN CONCAT_WS(":", s.id, s.alias) ELSE s.id END as Sslug, '
. ' CASE WHEN CHAR_LENGTH(l.alias) THEN CONCAT_WS(":", l.id, l.alias) ELSE l.id END as Lslug '
. ' FROM #__properties_locality as l '
. ' LEFT JOIN #__properties_state AS s ON s.id = l.parent '
. ' left join #__properties_products as p on p.lid = l.id '
. ' WHERE l.published = 1 AND p.published = 1 AND s.parent = '.$cyid
. ' group by l.id ORDER BY l.name';
}else{
$query = 'SELECT l.*,count(p.id) as tot, '
. ' CASE WHEN CHAR_LENGTH(s.alias) THEN CONCAT_WS(":", s.id, s.alias) ELSE s.id END as Sslug, '
. ' CASE WHEN CHAR_LENGTH(l.alias) THEN CONCAT_WS(":", l.id, l.alias) ELSE l.id END as Lslug, '
. ' CASE WHEN CHAR_LENGTH(c.alias) THEN CONCAT_WS(":", c.id, c.alias) ELSE c.id END as Cslug '
. ' FROM #__properties_locality as l '
. ' LEFT JOIN #__properties_state AS s ON s.id = l.parent '
. ' left join #__properties_products as p on p.lid = l.id '
. ' left join #__properties_category as c on c.id = p.cid '
. ' WHERE l.published = 1 AND p.published = 1 AND s.parent = '.$cyid
. ' AND p.cid ='.$cid
. ' group by l.id ORDER BY l.name';}
//echo str_replace('#_','jos',$query);
$db->setQuery($query);
$Localities = $db->loadObjectList();
return $Localities;
}
}
?>
And insert in the default.php
$linkState = LinkHelper::getLink('properties','showstate','',$State->CYslug,$State->Sslug,'',$State->Cslug,'','');
$x++;
$linkLocality = LinkHelper::getLink('properties','showlocality','',$State->CYslug,$State->Sslug,$Locality->Lslug,$State->Cslug,'','');
$x++;
$linkCountry = LinkHelper::getLink('properties','showcountry','',$Country->CYslug,'','',$Country->Cslug,'','');
$x++;
And in router.php
I add $vars['cid'] = $segments
}elseif($segments[0]=='showcountry'){
$vars['task'] = 'showcountry';
if($UseCountry){
$vars['cyid'] = $segments[1];
$vars['cid'] = $segments[2];
$vars['limitstart'] = $segments[3];
}
else{
$vars['limitstart'] = $segments[1];
}
and
}elseif($segments[0]=='showstate'){
$vars['task'] = 'showstate';
if($UseCountry and $UseState){
$vars['cyid'] = $segments[1];
$vars['sid'] = $segments[2];
$vars['cid'] = $segments[3];
$vars['limitstart'] = $segments[4];
and
}elseif($segments[0]=='showlocality'){
$vars['task'] = 'showlocality';
if($UseCountry and $UseState and $UseLocality){
$vars['cyid'] = $segments[1];
$vars['sid'] = $segments[2];
$vars['lid'] = $segments[3];
$vars['cid'] = $segments[4];
$vars['limitstart'] = $segments[5];
It works perfect so you need one module.
Look here
www.euro-links.nl
I hoop that anyone can use it.
Regards
Frans