Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Местоположение на сайте
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Местоположение на сайте

Страниц (1): [1]
 

1. Kuzia - 01 Августа, 2010 - 18:59:27 - перейти к сообщению
Нужно вывести местоположение юзера на сайте. И не url'ом, а названием страницы
Например:
/ - Главная
/blog - Блог
/forum - Форум
/gallery - Галерея
и т.д.
Просьба дать пример реализации сего чуда

P.S. Все страницы в примере можно не рассписывать Радость
2. DeepVarvar - 01 Августа, 2010 - 19:09:08 - перейти к сообщению
На каждой странице определяем переменную $page_name = 'Имя страницы';

и там где это надо:
echo 'Вы находитесь на странице '.$page_name;

ну или почти то же если с шаблонизатором...
(Добавление)
Блин....
Короче так, построим простейший шаблонизатор:
Каждая ( ЛЮБАЯ!!! ) страница должна иметь "индивидуальные свойства отображения" (назовем их так), это:
1. Заголовок (title)
2. Имя (какраз то что тебе надо)
3. Метаданные (keywords, content и пр....)
4. Все остальное в зависимости от того что мы на этой странице показываем

Например есть страница новостей...

Еще до какого либо вывода в браузер нужно определить все эти переменные, и лучше загнать их сразу в массив:

$replace_content['page_title'] = 'Новости';
$replace_content['page_name'] = 'Новости';
$replace_content['article_title'] = 'Новость номер 1';
$replace_content['article_text'] = 'Содержимое новости номер один, просто текст этой новости';

Теперь нам нужно "схавать" шаблон страницы:

$current_shablon = file_get_contents('templates/news_shablon.htm');

Сам шаблон выглядит так:
CODE (html):
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3. <title>{PAGE_TITLE}</title>
  4. </head>
  5. <body>
  6. <div>{PAGE_NAME}</div>
  7. <div><strong>{ARTICLE_TITLE}</strong><br>{ARTICLE_TEXT}</div>
  8. </body>
  9. </html>
  10.  


Ну а теперь займемся делом:

while( list($name,$value) = each ($replace_content) ) {
if(!is_array($value)) {
$current_shablon = str_replace('{'.strtoupper($name).'}',$value,$current_shablon);
}
echo $current_shablon;

Вот и все.......
(Добавление)
Ну а если шаблоны это не целые страницы, а хедер, футер и прочие это суть разные файлы, тогда необходимо использовать так называемый "буфер" (накопительный) для конкатенации шаблонов в целую страницу. И в конце кгда страница буфером собрана идем по ней нашим циклом и вписываем нужные значения вместо акронимов...
3. Kuzia - 01 Августа, 2010 - 20:45:07 - перейти к сообщению
Честно сказать, из написанного понял не все (я новичок). Но у знакомого программера подглядел краешком глаза его код. У него все названия страниц забиты в одном файлы и если я правильно понимаю, то вывод названия страницы в соответствии с введенным url. Так мне кажется более удобнее. Возможно ли пойти этим путем. Если да, то как?

P.S. Связатся с ним немогу (он вечно занят)
4. DeepVarvar - 01 Августа, 2010 - 20:51:05 - перейти к сообщению
DeepVarvar пишет:
На каждой странице определяем переменную $page_name = 'Имя страницы';

и там где это надо:
echo 'Вы находитесь на странице '.$page_name;


Или завести отдельный файл с названиями страниц (это кстати уже сложнее)

 

Powered by ExBB FM 1.0 RC1