/* Устанавливаем условие видимости блока комментариев и кнопок показать и скрыть комментарии */
if (isset($_GET['opensay'])) {
$display_say = 'display:none;';
$display_but = 'display:flow-root;';
}
else {
$display_say = 'display:flow-root;';
$display_but = 'display:none;';
}
/* Применяем условие видимости к кнопкам показать и скрыть комментарии */
echo '<div class="opensay" style="'.$display_but.'"><a href="?" class="aopensays">Показать комментарии</a></div>';
echo '<div class="opensay" style="'.$display_say.'"><a href="?opensay" class="aopensays">Скрыть комментарии</a></div>';
/* Вставляем форму добавить комментарий */
if (isset($_GET['addsay'])){
$pageid = strtok($_SERVER['PHP_SELF'],'?');
include_once $_SERVER['DOCUMENT_ROOT'].'/chat/say/form_addsay.html.php';
}
/* Выводим лист комментариев */
//сортируем в обратном порядке наверху последний комментарий
try {
include $_SERVER['DOCUMENT_ROOT'].'/chat/dsn.php';
$sql = 'SELECT say.id, say.userid, say.saydate, say.saytext, users.login, users.img FROM say INNER JOIN users ON users.`id` = say.userid WHERE say.page_id = :page_id ORDER BY say.id DESC';
$s = $dsn->prepare($sql);
$s -> bindValue(':page_id', $page_id);
$s -> execute();
}
catch (PDOException $e) {
echo $e->getMessage();
echo $e->getLine();
exit();
}
foreach ($s as $row) {
$say[] = array(
'id' => $row['id'],
'saytext' => $row['saytext'],
'saydate' => $row['saydate'],
'img' => $row['img'],
'login' => $row['login'],
'userid' => $row['userid']);
}
include_once $_SERVER['DOCUMENT_ROOT'].'/chat/say/form_say.html.php';
Контроллер определяет условия видимости управляющих комментариями кнопок и форм ввода комментариев, индексирует страницу и формирует массив say[] с комментариями, который будет выводится в форме form_say.html.php после обработки.
Как видим у него также есть файлы которые нужно обрабатывать. Если сейчас подключить контроллер, то на странице будет ошибка. Файлы еще не готовы. В папке «chat» создаем папку «function» в которой будут находиться функции по обработке комментариев.
24. Папка функций
24.1 Печать смайлов
Для вывода набора доступных смайлов написана функция «print_smile_set.php»
Листинг 39. print_smile_set.php Путь: news/function/ print_smile_set.php
<?php
error_reporting(E_ALL);
/* печать блока доступных смайлов в виде кнопок */