Zik Grandmaster


Зарегистрирован: 27.06.2005 Сообщения: 490 Откуда: Russia, Moscow
|
Добавлено: Пн Мар 27, 2006 2:07 pm Заголовок сообщения: Подстановка расширения файла в конец URL |
|
|
Чтобы получить возможность навигации по сайту через URL’ы вида http://www.some.com/unit1/page.html нужно всего две вещи:
А) подставить во все расширения системы в возвращаемые в DDC URL’ы нужное нам расширение;
Б) «вырезать» это расширение перед разбором URL’a в SAPID’е.
Сначала сделаем пункт Б:
Открываем файл /mvc/controller/requesturi_analysis.inc.php, и после строки
| Код: |
if (!defined("SAPID_STARTED")) die("Hacking attempt!");
|
пишем вот так:
| Код: |
$_SERVER["REQUEST_URI"]=preg_replace("/.html/", "", $_SERVER["REQUEST_URI"]);
|
Теперь вернемся к пункту А, тут все посложнее. Точнее мороки побольше. Нам нужно просмотреть все файлы папки /usr/extensions/ и повставлять в нужные места расширение, чтобы возвращалась уже ссылка с расширением.
Вт пример такой реализации для get_infochannel.inc.php:
Находим следующие строки (в коде они идут не друг за другом подряд):
| Код: |
//...
$stream[$key]["MORE"]= $baseurl . ($stream[$key]["ID"]);
//...
$stream[$key]["to_select"] = $baseurl . 'data/ic_' . $CHANNEL . '/' . ($stream[$key]["ID"]);
//...
$stream[$_key]["prev_to_select"] = $baseurl . 'data/ic_' . $CHANNEL . '/' . ($_prev["ID"]);
//...
$stream[$_key]["next_to_select"] = $baseurl . 'data/ic_' . $CHANNEL . '/' . ($_next["ID"]);
//...
$sapi_obj->env["this.navigation.next.href"]=$sapi_obj->env[$CHANNEL.".navigation.next.href"]= $baseurl."data/$CHANNEL/rowselect-".((int)$limit_finish+1)."-".($limit).( $sapi_obj->env["argv_nav"][2]=="filter"?"filter/".$sapi_obj->env["argv_nav"][3]."/":"" );
//...
$sapi_obj->env["this.navigation.previous.href"]= $sapi_obj->env[$CHANNEL.".navigation.previous.href"]= $baseurl."data/$CHANNEL/rowselect-".((int)$beg)."-".($limit).( $sapi_obj->env["argv_nav"][2]=="filter"?"filter/".$sapi_obj->env["argv_nav"][3]."/":"" );
|
И заменяем на:
| Код: |
//...
$stream[$key]["MORE"]= $baseurl . ($stream[$key]["ID"]) . '.html';
//...
$stream[$key]["to_select"] = $baseurl . 'data/ic_' . $CHANNEL . '/' . ($stream[$key]["ID"]) . '.html';
//...
$stream[$_key]["prev_to_select"] = $baseurl . 'data/ic_' . $CHANNEL . '/' . ($_prev["ID"]) . '.html';
//...
$stream[$_key]["next_to_select"] = $baseurl . 'data/ic_' . $CHANNEL . '/' . ($_next["ID"]) . '.html';
//...
$sapi_obj->env["this.navigation.next.href"]=$sapi_obj->env[$CHANNEL.".navigation.next.href"]= $baseurl."data/$CHANNEL/rowselect-".((int)$limit_finish+1)."-".($limit).".html".( $sapi_obj->env["argv_nav"][2]=="filter"?"filter/".$sapi_obj->env["argv_nav"][3]."/":"" );
//...
$sapi_obj->env["this.navigation.previous.href"]= $sapi_obj->env[$CHANNEL.".navigation.previous.href"]= $baseurl."data/$CHANNEL/rowselect-".((int)$beg)."-".($limit).".html".( $sapi_obj->env["argv_nav"][2]=="filter"?"filter/".$sapi_obj->env["argv_nav"][3]."/":"" );
|
Т.е. просто добавили расширение в конец каждого из возвращаемых в DDC URL'ов.
Тоже самое нужно проделать и со всеми расширениями, которые используются на сайте, например get_tree:
Находим строку:
| Код: |
$stream[$cnt]["HREF"]=$http_path.substr($item["HREF"], 1, strlen($item["HREF"])-2);
|
И заменяем её на:
| Код: |
$stream[$cnt]["HREF"]=$http_path.substr($item["HREF"], 1, strlen($item["HREF"])-2).'.html';
|
И так далее.
Удачи! |
|