AdsManager старый 2.2
так как у меня на сайте недавно появилась перелинковка-"сортировка" ( по городам, по станциям метро) путем создании новой страницы.
Видел на каком то сайте и решил себе сделать.
Для этого выбрал кротчайший вариант -
ссылки вида
/page=show_result&ad_metro=Китай-Город
/page=show_result&ad_city=Москва
появилась немыслимая вариация новых страниц, а писать к каждому Title, keywords, descr это проще застрелиться ( для категорий отдельно на создавал вручную, но теперь думаю переделать под шаблон), а если не писать то берется стандартное с сайта, что ни есть гуд
Для начала думал создать отдельную функцию под такие страницы, но что то там не срасталось в итоге исправил существующие.
( возможно не оптимальный вариант.
Буду рад предложениям. ну какой созрел)
все добавления делаются в файлах lang.php и AdsManager.php
фаил lang.php добавляем
//List CITY
DEFINE( "ADSMANAGER_LIST_CITY", "Недвижимость в городе ");
//List Metro
DEFINE( "ADSMANAGER_LIST_METRO", "Недвижимость у станции метро ");
фаил AdsManager.php добавляем и изменяем
в самом начале добавляем
//keyword+discr
$ad_city = mosGetParam( $_GET, 'ad_city', "" );
$ad_metro = mosGetParam( $_GET, 'ad_metro', "");
чуть ниже добавляем аргументы $ad_metro, $ad_city, а в других 0 0( в противном случае будут ошибки, так как к show_all обращаются)
в секциях switch ($page)
case 'show_result':
//keywords - metro
/* if ((($ad_city !="")||($ad_metro !=""))&&(($catid == 0)||(!isset($catid))))
show_result($option,$ad_city,$ad_metro,$order,$limitstart);
*////kew
/* else*/
//keyw 2 arg v konce
if (($catid == 0)||(!isset($catid)))
show_all($option,$expand,$text_search,$order,$limitstart,$ad_city,$ad_metro);
else
show_category($catid,$option,$expand,$text_search,$order,$limitstart);
break;
case 'show_all': {
//keyw 2 arg v konce
$cache->call( 'show_all',$option,$expand,$text_search,$order,$limitstart,0,0);
break;
}
case 'search': {
if ($catid == 0)
//keyw 2 arg v konce
$cache->call( 'show_all',$option,$expand,$text_search,$order,$limitstart,0,0);
else
$cache->call( 'show_category',$catid,$option,$expand,$text_search,$order,$limitstart);
break;
}
тот же фаил функция
show_allбыло ( возможно некоторых пунктов у вас нет, так как функция уже менялась под поиск)
function show_all($option,$expand,$text_search,$order,$limitstart)
{
global $mainframe,$database,$mosConfig_absolute_path,$mosConfig_live_site;
$itemid = intval( mosGetParam( $_GET, 'Itemid', 0 ));
//Поиск по цене
$cenot = intval( mosGetParam( $_GET, 'pr_ot', 0 ));
$cendo = intval( mosGetParam( $_GET, 'pt_do', 0 ));
//Поиск по цене
//Поиск по общей площади
$areaot = intval( mosGetParam( $_GET, 'area_ot', 0 ));
$areado = intval( mosGetParam( $_GET, 'area_do', 0 ));
//Поиск по площади участка
$s_ot = intval( mosGetParam( $_GET, 'site_ot', 0 ));
$s_do = intval( mosGetParam( $_GET, 'site_do', 0 ));
//
// Dynamic Page Title
$mainframe->SetPageTitle( ADSMANAGER_LIST_TEXT );
//Pathway
$database->setQuery( "SELECT c.id, c.name,c.parent ".
" FROM #__adsmanager_categories as c ".
"WHERE c.published = 1 ORDER BY c.parent,c.ordering");
$list = $database->loadObjectList();
getSubCatsList($list,0,$subcats,$itemid,$option,$order,$expand);
$paths[0]->text = ADSMANAGER_ROOT_TITLE;
$paths[0]->link = sefRelToAbs('index.php?option='.$option.'&Itemid='.$itemid);
adsmanager_html::show_pathway($paths,$option);
adsmanager_html::show_subcats($subcats);
//List
if (isset($text_search))
$url_text_search = "&text_search=".$text_search;
$url ="index.php?option=$option&page=show_all".$url_text_search."&order=".$order."&area_ot=".$area_ot."&area_do=".$area_do."&site_ot=".$s_ot."&site_do=".$s_do."&pr_ot=".$cenot."&pr_do=".$cendo;//Пагинация поиска
adsList(ADSMANAGER_LIST_TEXT,"",$url,"show_all","1",$text_search,$expand,$order,0,$option,$limitstart);
}
стало ( описание и ключевые для простой пагинации по списку не стал писать ( тут надо придумать что было разное описание, так как ругаются гуглы и яши)
function show_all($option,$expand,$text_search,$order,$limitstart,$ad_city,$ad_metro)
{
global $mainframe,$database,$mosConfig_absolute_path,$mosConfig_live_site;
$itemid = intval( mosGetParam( $_GET, 'Itemid', 0 ));
//Поиск по цене
$cenot = intval( mosGetParam( $_GET, 'pr_ot', 0 ));
$cendo = intval( mosGetParam( $_GET, 'pt_do', 0 ));
//Поиск по цене
//Поиск по общей площади
$areaot = intval( mosGetParam( $_GET, 'area_ot', 0 ));
$areado = intval( mosGetParam( $_GET, 'area_do', 0 ));
//Поиск по площади участка
$s_ot = intval( mosGetParam( $_GET, 'site_ot', 0 ));
$s_do = intval( mosGetParam( $_GET, 'site_do', 0 ));
//
///модификация под метро и город
if($ad_city){
$title = ADSMANAGER_LIST_CITY . $ad_city;
$keyw = ADSMANAGER_LIST_CITY . $ad_city . ", квартиры в городе " . $ad_city;
$disc = ADSMANAGER_LIST_CITY . $ad_city . ". Все объекты недвижимости по продаже, покупке, аренде в городе " . $ad_city;
}
elseif($ad_metro) {
$title = ADSMANAGER_LIST_METRO . $ad_metro;
$keyw = ADSMANAGER_LIST_METRO . $ad_metro .", квартиры у станции " . $ad_metro;
$disc = ADSMANAGER_LIST_METRO . $ad_metro .". Все объекты недвижимости находящиеся около метро " . $ad_metro;
}
else {
$title = ADSMANAGER_LIST_TEXT;
}
// Dynamic Page Title
$mainframe->SetPageTitle( $title );
$mainframe->prependMetaTag( "description", $disc );
$mainframe->prependMetaTag( "keywords" , $keyw );
//Pathway
$database->setQuery( "SELECT c.id, c.name,c.parent ".
" FROM #__adsmanager_categories as c ".
"WHERE c.published = 1 ORDER BY c.parent,c.ordering");
$list = $database->loadObjectList();
getSubCatsList($list,0,$subcats,$itemid,$option,$order,$expand);
$paths[0]->text = ADSMANAGER_ROOT_TITLE;
$paths[0]->link = sefRelToAbs('index.php?option='.$option.'&Itemid='.$itemid);
adsmanager_html::show_pathway($paths,$option);
adsmanager_html::show_subcats($subcats);
//List
if (isset($text_search))
$url_text_search = "&text_search=".$text_search;
$url ="index.php?option=$option&page=show_all".$url_text_search."&order=".$order."&area_ot=".$area_ot."&area_do=".$area_do."&site_ot=".$s_ot."&site_do=".$s_do."&pr_ot=".$cenot."&pr_do=".$cendo;//Пагинация поиска
adsList($title,$disc,$url,"show_all","1",$text_search,$expand,$order,0,$option,$limitstart);
}
Вот как то так.
Буду рад советам по оптимизации.
Может потом созрею на полное авто мета описание под сами объекты и категории.