Создание отдельной статической страницы для сайта на CMS » Блог Обычного веб-мастера
Часто бывает необходимо, что бы на сайте, который размещён на CMS, в принципе, не важно на какой: Wordpress или Joomla, Drupal или даже что-то самописное, была встроена просто статичная страница с произвольным содержимым, то есть что бы по запросу domen.ru/pages42 открывалась необходимое нам содержимое таблицы или какай-то скрипт, который отсутствует в сборке CMS и нет подобных плагинов.
Как же сделать подобный ход? Написать новый плагин, который можно было бы встроить в движок не каждому дано. Я, например, не взялся за бы за это. Есть другой выход – поковыряться в самом шаблоне и встроить вызов определённого файла (например, сделать его вызов инклудом) на определённой странице.
Перейдём к примерам:
Ситуация 1
Нам необходимо изменить стандартное содержание главной страницы, то есть, например, в CMS Wordpress на главной странице по умолчанию осуществляется вывод последних статей, добавленных на сайт, либо просто какая-то отдельная статья (страница). Нам же необходимо создать что-то подобное этой морды на сайте.
Для этого используем серверную функцию $_SERVER['QUERY_STRING'], которая позволяет определить «хвост» страницы после домена, то есть, если нам необходимо определить адрес страницы domen.ru/?page=45 функция нам выведет ?page=45. Именно от уникальности подобного хвоста для каждой страницы, мы и будем отталкиваться при написании этой вставки кода. Стоит отметить, что при включённом ЧПУ необходимо проверять точный вывод данной функции, потому как URL в адресе не всегда моет соответствовать именно URL серверному (надеюсь, вы поняли меня).
- if ($_SERVER['QUERY_STRING'] == ») {
include(‘script.php’);
} else {
// вставка обычного «тела» шаблона
}
Таким образом при «нулевом» хвосте, то есть на главной странице сайта мы получаем вывод необходимого нам скрипта, в котором мы можем самостоятельно написать вывод того, что нам необходимо, либо просто создать статичную конструкцию на html вот такого вида.
Ситуация 2
Предположим, в некоторых разделах страницы, например, в самих разделах меню, нам необходим вывод определённого блока перед основной частью страницы. Не важно, что это может быть и как это можно реализовать с помощью специальных плагинов, а важно лишь то, как это сделать руками на базе шаблона:
- if ($_SERVER['QUERY_STRING'] == ») {
include(‘script.php’);
}
В данном случае необходимо «пропускать» наш «хвост» через «фильтр» регулярных выражений, что бы определить где именно у нас находятся необходимые нам типы страниц и когда именно выводить нужный код.
В данном случае можно написать целый ряд подобных проверок или же что-то более глобальное для того, что бы выводить свой код для разделов, свой для статических страниц и свой для просто внутренних страниц со статьями. Каждый уже решает сам.
Ситуация 3
Выводим необходимый нам код или скрипт вместо определённой внутренней страницы на сайте. Например, нам необходимо вывести вместе стандартной 404 ошибки список пользователей на сайте – мы пишем код, который бы делал выборку и сортировку имён из таблицы и с помощью такого вызова вместо пустой страницы получаем наш код. Что-то подобное было реализовано у меня на сайте на странице Услуги, но там я пошёл чуть дальше и уже подключал к новой странице JS библиотеки, другие php скрипты (можно запутаться кстати потом в инклудах), а так же кучу сторонних файлов.
- if ($_SERVER['QUERY_STRING'] == ‘com_conponent=content&page=45′) {
include(‘script/my_script.php’);
} else {
// вставка обычного «тела» шаблона
}
Таким образом можно получить именно тот код вместо простого вывода. Данная функция будет полезна тогда, когда на определённой странице не достаточно просто стандартной функции оформления текста или других элементов или когда необходимо вставить в «тело» сайта форум, чат, скрипт доски объявления или что-то «своё», а CMS это не позволяет или это сложнее.
Если кому-то помог, буду рад, а вообще жду комментариев к статье. : )


Комментарии к «Создание отдельной статической страницы для сайта на CMS»
И опять об этом. Если поисковики научатся понимать смысл, то блогерам придется поизголяться, чтобы быть читаемыми и не похожими на других.
Спасибо, давно мучился с реализацией этой функции на wordpress. Однозначно в закладки!
Наткнулся случайно на Ваш блог. Теперь стану постоянно просматривать. Надеюсь, не разочаруете и дальше
По поводу вордпресса могу посоветовать создать шаблон страницы и использовать его при таких потребностях, а за остальные способы спасибо
Здравствуйте! Прошу прощения, что пишу не совсем в тему. Я тоже использую Вордпресс для своего блога и у меня возник вопрос, как настроить новую тему. Поиск на официальном сайте ничего не дал, там только пользовательские настройки рассматривают, а мне нужно, видимо, шаблоны править. Не подскажете, где почитать?
Не-по-моему лучше всего всегда начинать с 0-ля-а то эти шаблоны задалбали…
Я тоже просто делал шаблон. Но этот способ конечно, продвинутей
Я думаю, что в вашем случае будет проще обратиться к специалисту и он вам сделает всё не за такие уж и большие деньги (как варинат напишите мне – mr-felix@yandex.ru с описанием того, что необходимо).
Если же хотите всё сделать именно сами, тут необходимо править html, css, php код самого шаблона. Что для этого надо? Знать html, css, php…
Спасибо за инетересную статью, я недавно начал изучать drupal, было очень интересно почитать вашу статью
Работаю на с джумой и другими цмс – реализации через шаблоны или модульное скрытие при отсутствии содержания…..но спасибо, это можно положить в копилку)
Мне на вордпрессе как то нужно было статичную сделать для карты сайты хтмл. Кстати слышал что в ВП 3.0 будет специальный тип страниц кроме стандартного.
спасибо! сегодня на ВП попробую реализовать, а то давно мучалась!
Аффтору однозначно зачет! для моего шаблончека пригодится
Спасибо за материал. Для меня человека недавно начавшего освоение wordpress очень полезно.
За пост спасибо. Возможно, в будущем пригодится, т.к. до этого просто приходилось создавать html файлик и заливать его на хост.
Спасибо за статью. Мне для Wordpress помогло.
блин,а мне нужно для каждой статической страницы свою картинку внизу.В php я 0,новичек(Немоглибы помочь.
if ($_SERVER['QUERY_STRING'] == ‘?option=com_content&view=article&id=47:kozha’)
{
Как мне здесь вывести картинку?
}
?>
Максим, воспользуйтесь функцией echo для вывода. Google в помощь
Спасибо за тему… Радует одно – что остались в инете еще более ли менее не зафлуженные блоги, на которых можно лицезреть интересную информацию и увидеть человеческие обсуждения.
Оставить комментарий