Sapid
Текущее время: Ср сен 08, 2010 4:04 am

Часовой пояс: UTC + 2 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Подстановка расширения файла в конец URL
СообщениеДобавлено: Пн мар 27, 2006 5:07 pm 
Не в сети
Grandmaster
Grandmaster

Зарегистрирован: Пн июн 27, 2005 3:43 pm
Сообщения: 475
Откуда: Russia, Moscow
Чтобы получить возможность навигации по сайту через 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';


И так далее.

Удачи! :)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 2 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB