Есть неприятная особенность при разбивке сайта на include() — из-за особенностей дизайна приходится переносить элементы шаблона на страницу с текстом. Например, DIV-блок, в который внедрен тег H1 и его никак не получается переделать.
Такой подход приведет к тому, что в будущем, когда мы захотим переписать шаблон, нам придется лазить по всем файлам с текстом и сносить этот кусок кода. Так вот, есть решение – PHP
Скрипт определяет текущий УРЛ и подставляет текст из переменной по условиям ниже:
<?php
//Для уменьшения объема кода задаем пепеменной $rurl определение текущей страницы,
//т.е. того, что идет после http://sitename.dn/вот_эту_часть
$rurl = $_SERVER["REQUEST_URI"];
//Задаем условие: если текущий урл совпадает с адресом из переменной $rurl, т.е. текущей страницей,
//то выводим текст из переменной $pagename
if (($rurl=="/") || ($rurl=="/index.php" )){$pagename="Главная страница";}
if (($rurl=="/register.php" ) || ($rurl=="/reg" )){$pagename="Регистрация";}
if (($rurl=="/stats.php" ) || ($rurl=="/stat" )){$pagename="Статистика";}
if (($rurl=="/members.php" ) || ($rurl=="/mem")){$pagename="Аккаунт";}
if ($rurl=="/403.php"){$pagename="Ошибка 403";}
if ($rurl=="/404.php"){$pagename="Ошибка 404 ";}
//Выводим текст на странице
echo"$pagename";
/*
Задаем файлу любое имя, например pagename.php и вставляем на сайт через инклуд следующей конструкцией:
<? include('pagename.php'); ?>
*/
?>
В комментариях к скрипту описана вся последовательность действий. Если вы очень далеки от PHP то достаточно просто включить \”логику\” и через две минуты скрипт станет понятен любому! Так же вы можете скачать готовый пример!
В DLE эту функцию выполняет один из тегов встроенного метаязыка
Скажите пожалуйста, как извлечь имя файла из $_SERVER["REQUEST_URI"] и вставить в условие IF.
Что за имя файла, дайте пример. Данная запись определяет текущую страницу сайта, осоно не привязываясь к домену, т.е. в случае с данной страницей
Спасибо за участие. Меня интересует php-сценарий при котором передается какой-либо параметр. Условно адрес может иметь такой вид: http://site.ru/article.php?id=9.
если нужно проверить сразу два ключа, например:
http://site.ru/article.php?id=9&world=sometext
&& – и
|| – или
GET – получает передаваемый параметр в адресе.
так формируются короткие новости, да и вообще, практически все:
логика (на самом деле все гораздо сложнее) для коротких новостей дле:
Спасибо за совет, попробую то, что вы предлагаете.
Help. I am looking for guide
а что нужно добавить что бы выводился текст “по умолчанию” то есть на всех других урл не соответсвующих условиям?
Проверить сейчас нет возможности, попробуйте объявить переменную
$pagepame = ‘Текст по умолчанию’;
до начала условий, вот сюда:
да. спасибо, работает… но только с двойными кавычками
странно, кавычки особой роли не играют и больше нужны для экранирования противоположных кавычек. Я двойные вообще не использую т.к. шифт зажимать нужно 🙂
А в тексте кавычек нет?
Здравствуйте! У меня редкая CMS – “OJS”. Можно задать через админку метатеги всем страницам, кроме главной. А чтобы задать метатеги главной странице – нужно делать это через редактирование кода в файле шаблона. Но если просто вставить метатеги в код файла, то метатеги вставятся и на всех других страницах. А это не нужно, т.к. через админку можно вставить две вариации – для русского языка и для английского. Так вот, подскажите, пожалуйста, как можно сделать, чтобы шла проверка адреса страницы, и если адрес совпадает с адресом главной страницы, чтобы вставлялся метатег (а на других страницах он выводиться не должен, да это и не нужно, т.к. там уже есть метатеги).
Спасибо!
За определение адреса страницы на языке PHP отвечает конструкция
$_SERVER[“REQUEST_URI”];
Нужно написать следующее условие (см. пример в статье):
if($_SERVER[“REQUEST_URI”] == ‘/’){
// тут ваш код для вставки ключевых слов
}
слэш означает, что после имени сайта ничего нет.
Спасибо большое, но, к сожалению, пока не сработало. Наверно, я что-то не так делаю. Я вставил в тег следующий код:
<?php
if($_SERVER["REQUEST_URI"] == ‘/’){
}
?>
Подскажите, пожалуйста, так надо было делать или нет?
Спасибо!
Ой, между { и } у меня был вставлен метатег (он удалился, пришлось убрать открывающую и закрывающую скобки тега):
Метатег снова удалился (после нажатия на кнопку “отправить”). Извините, что я расплодил бессмысленные комментарии.
Сделайте пример кода, как вы добавляете метатеги сейчас и как нужно сделать для главной. Сюда публикуйте через <pre>code </pre>
А еще проще — скиньте пример кода главной куда нибудь по указанным контактам. Там, похоже, нужно правильно расставить кавычки со скобками и все заработает
Спасибо за ответ! На остальных страницах сайта можно вставлять через админку (т.е. просто есть поле для метатегов), в коде копаться не нужно. Но на главную страницу это не распространяется, на главную можно только через дописывания tpl-файла. Я бы хотел, чтобы на главной странице сайта был тег (вставил через pre, надеюсь что сейчас не удалится).
Спасибо!