Сборка сайта :: Текстовые линки в textlist модуле

Давно уже самому завалящему веб-девелоперу известно что использование текстовых линков типа http://www.mysite.com/ubertext.html  предпочтительнее передачи параметров через GET (http://www.mysite.com/?doc=111)  или POST (что на мой взгляд вообще страшное ЗЛО). 
По просьбам телезрителей рассказываю как это реализовать в WBG на примере стандартного textlist модуля.
Textlist модуль уже более менее готов под такое применение, но doomаю что никаких проблем у вас не должно возникнуть с любыми другими.

Итак, задача состоит из 3 частей:
а) Надо где-то вводить и хранить текстовой линк.
б) Модуль навигации должен выплюнть в output не ?doc=xxx а /textlink.html
в) Процессинг: WBG должен правильно разобрать URL, перейти в правильную категорию и открыть правильный документ.

а) В случае textlist модуля поле для URL уже готово и при save кладется в поле doc_url. Берем любой документ и в поле URL вводим ubertext.html
б) В файле modules/output/textlist_out/_text_list.php где
$link = '?doc='.$arr['id'];

ставим что-то типа
if ($arr['doc_url']){
    $link = $arr['doc_url'];
} else {
    $link = '?doc='.$arr['id'];
}


в) Напоминаю - до категории WBG добирается так - разбирает URL, находит категорию с этим URL и переходит в OUTPUT модуль этой категории.
Поскольку линк мы получаем в виде http://www.site.com/eng/category/ubertext.html  то по умолчанию WBG попытается найти категорию /eng/category/ubertext.html  что неверно. Чтобы этого не происходило берем index.php и добавляем
$REQUEST_URI  = preg_replace("![^/]+\.(php|html|htm|php5)!si" , "" , $REQUEST_URI);
чтобы в процессинг WBG  пошло /eng/category
Теперь WBG будет попадать в правильную категорию, осталось открывать правильный документ.  В OUTPUT модуле (textlist_out.php в данном случае) в самое начало добавляем

if (preg_match("!/([^/]+[.]html)!siU", $_SERVER['REQUEST_URI'], $pattern)){
    $DOC =  mysql_fetch_assoc(mysql_query("SELECT id FROM _mod_textlist WHERE (doc_url='".$pattern[1]."') and active=1 and category_id='".$web->active_category."'"));
   if ($DOC){
       $_GET['doc'] = $DOC['id'];
   }
}


Вот в принципе и все. Если найду времечко - расскажу как реализовывать много других полезных для SEO фишек. Кстати - сильно грамотный с точки зрения SEO сайтик на WBG - www.fashion2you.eu
Пользователь

Пароль

Поиск по сайту



Ссылка продана за пачку денег
CMS для професионалов