ТаблицейБлоками.

Приложение Д: скрипты php, описание, примеры, php файлы, комментарии

Последняя модификация: 10.08.2014 г

Страница загружена с адреса: http://webdesign.site3k.ru/conjuncture/append/d/inter.html

Моя студия веб-дизайна

Интерактивность материала

  1. Выбор типа интерактивности
  2. PHP-скрипт комментария

Выбор типа интерактивности.

Ничто не увеличивает посещаемость сайта так, как возможность живого общения. По этой причине многие веб-ресурсы снабжены форумами, гостевыми книгами и чатами. Но нужно ли это именно вам?

Нужен ли вам чат?

Зайдите на любой сайт имеющий чат и посмотрите содержание чата. Что вы увидите? Фразы, вроде «Мужики, вы чё делаете?», «Пиво пьете?», «А мы курим». Врядли такой материал добавит сайту уважения и популярности. А если его еще и поисковые машины проиндексируют, то словесный мусор вашего чата резко понизит значимость ключевых слов. И вместо желаемой популярности, получится ее снижение в результате меньшего притока посетителей с сайтов поисковых систем, так как ваши страницы будут выталкиваться в конец результатов поиска из-за большого количества никому не нужного словоблудия.

Убедитесь, ни один уважающий себя сайт не обременен чатами и, если ваш сайт не посвящен именно чатам, то незачем устраивать на нем свалку.

Нужна ли вам гостевая книга?

Чтобы ответить на этот вопрос, следует разобраться, что это такое?  Гостевая книга – это, своего рода, книга жалоб и предложений, где посетителю предоставлена возможность изложить свое мнение о сайте. Возможно, она нужна вам, если сайт предлагает какие-то услуги, то отзывы клиентов могут оказать благотворное влияние на потенциальных клиентов. Но многие хорошие сайты обходятся без нее. С одной стороны – мало ли кому и чего захочется написать? А с другой стороны – есть и другие способы узнать мнение посетителей. Есть же  голосования,  почта. Хотят поделиться мнением – пусть напишут лично вам. Нередки случаи, когда в гостевой книге пишут то, что и на заборах. Нужны ли вам такие перлы?

Форум?

Форум придуман для обсуждения вопросов интересующих посетителей сайта. Конечно, возможность обменяться мнениями, получить ответ на свой вопрос, ведет к дополнительному притоку посетителей. Но создатель сайта практически не принимает участие в жизни форума: посетители сами задают вопросы и сами же на них отвечают. Насколько это важно для вашего сайта? Насколько важно дать возможность посетителям общаться на темы, никак не связанные с материалами сайта?

Очень часто форумы пытаются использовать для обсуждения размещенных на сайте статей. Но практически всегда выходит это наиболее худшим образом. Так, например, желающий обсудить какую-то статью, нажимает на кнопку «Обсудить», но вместо конкретной страницы обсуждения, оказывается на странице выбора тем форума, с которой ему требуется безошибочно пройти несколько уровней, прежде чем он доберется до обсуждения интересующей его статьи.

А если посетитель ошибется в выборе? Возможно, он вообще никогда не доберется до интересующей его темы. А почему? Потому что для обсуждения конкретных материалов сайта дизайнеры пытаются использовать стандартные скрипты форумов совершенно не предназначенные для этой цели.

Цель форума – дискуссии на свободные темы. Возможно, форум нужен вашему сайту. Но если вы хотите организовать обсуждение ваших статей, то вам нужны специальные скрипты комментариев.

Комментарии

Задумав дополнение статей всякими комментариями, замечаниями и обсуждениями, следует, в первую очередь, как эти примечания выводить в браузер. Альтернатив всего три:

  1. Помещение замечаний посетителей на страницу со статьей, сразу под ней.
  2. Помещение комментария в дополнительный фрейм.
  3. Открытие его на отдельной странице.

В первом случае рост числа комментариев приводит к увеличению объема страницы, что со временем усложняет ее загрузку и становится нежелательным. Данный способ применяется на некоторых сайтах, но вряд-ли может считаться приемлемым, так как сотня килобайтных замечаний утомит посетителя временем загрузки и, скорее всего, отрицательно отразится на положении страницы в результатах поисковых систем.

Второй случай достаточно неплох, так как позволит одновременно смотреть и статью и ее обсуждение, которое можно, при желании, запретить к индексированию поисковыми системами, но требует разделение страниц на 2 фрейма, что не многим понравится, а, к тому же, усложнит организацию навигации. Ведь вместо обычной ссылки на материал, потребуется либо ставить ссылку на страницу фреймов, а к каждой странице добавить ее фрейм-содержатель. Либо, к каждой ссылке придется добавить скрипт, открывающий, помимо статьи, ее комментарий. Возможен и другой вариант, наверное, наименее хлопотный: при обычных ссылках и без лишних фрейм-содержателей, статьи сами будут загружать фрейм комментариев по событию onLoad.

Открытие дополнений, внесенных посетителями, на отдельной странице является более традиционным способом. Как и в предыдущем варианте, их индексирование поисковиками можно запретить. Если такой способ кажется более удачным, следует решить, в каком окне их открывать: в том же, вместо страницы со статьей, или в новом. Результирующее окно имеет значение для оформления страницы. Если обсуждение открывается вместо обсуждаемого, эта страница должна выглядеть так же, как и другие страницы сайта. То есть, она должна содержать меню и прочие элементы. Если открывается в отдельном окне, с нее можно убрать все лишнее, сделав легче и ускорив загрузку. Кроме того, в этом случае, одновременно можно просматривать и статью, и комментарий, как и в случае применения фреймов.

Какой из способов выбрать – решать вам. Каждый из них будет иметь некоторое различие кода, но главная часть скрипта останется неизменной. Так что, не отвлекаясь на незначительные различия, рассмотрим код комментария, открываемого на отдельной странице.

PHP-скрипт комментария

Для полного понимания скрипта, следует определить его концепции:

  1. Каждая статья сайта должна иметь собственные комментарии.
  2. Комментарии должны открываться по щелчку на ссылке.
  3. Если какие-то комментарии уже есть, рядом со ссылкой на них, должно указываться количество комментариев.
  4. Поскольку большое количество комментариев приведет к громоздкости страницы, требуется ограничить допустимую длину комментария и количество комментариев на 1 странице (последнее правило определяет постраничный вывод комментариев некоторыми порциями).
  5. Поскольку на сайте может быть много страниц и каждая из них может иметь огромное количество комментариев, недопустимо считывание всего файла комментария в массив функциями типа file(), во избежание переполнения памяти сервера.

Определив концепции, можно взяться за их воплощение.

Поскольку каждая статья должна иметь свои комментарии, добавление ссылки на вызов комментария имеет смысл реализовать таким образом:

<a href="/comment/comment.php?htm=<!--#echo var="DOCUMENT_URI" -->" target=_blank> Комментарии к странице <!--#include virtual="/comment/count.php?htm=${DOCUMENT_URI}" --></a>

Данный код передает в качестве параметра вызова скрипта переменную htm, значение которой определяется SSI-инструкцией и указывает на файл, содержащий ссылку. Вторая SSI-инструкция вызывает небольшой дополнительный скрипт, выводящий на страницу имеющееся количество комментариев (то есть, фактически, для полного сервиса используется два скрипта).

В связи с разделением функций на два скрипта, возникает потребность вынести определение общих для них переменных, ограничивающих длину полей и количество сообщений на странице в отдельный файл, включаемый в них PHP-оператором require. Назовем этот файл setings.php. Вот его содержимое:

setings.php

<?
$maxlines=10; // количество сообщений на странице (требуется только для comment.php)
$maxlen=35;   // длина полей имени, названия города и т. п.
$maxlenMes=1000;// длина сообщения
?>

Задание этих переменных в одном месте позволит избежать расхождений, которые могут возникнуть со временем при коррекции скриптов.

Определив переменные, создадим простой скрипт, выдающий на страницу количество комментариев:

count.php

 

Создав маленький вспомогательный скрипт итогов, переходим к основному:

comment.php

Скрипт может и не маленький, но для удобства посетителей, его можно усложнить еще, добавив проверку корректности ввода с помощью JavaScript. Для чего в форму добавляем:

onsubmit="return test()"

А в заголовочную часть страницы добавляем скрипт:

<SCRIPT LANGUAGE="JavaScript"><!--
function test()
{
 returnValue = false ;
if(document.frm.name.value=='') 
    alert('Укажите свое имя!');
else if (document.frm.mess.value=='') {
        alert('Отсутствует текст сообщения!');
 }else{
     returnValue = true ;
 }
 return returnValue ;
}//--></SCRIPT>

 

Комментарии к странице (всего 8)

 

 

 


На главную страницу сайта