function print_smile_set()
{
try {
include $_SERVER['DOCUMENT_ROOT'] . '/chat/dsn.php';
$sql = "SELECT smile, path FROM smiles";
$s = $dsn->query($sql);
$ress = $s->fetchall();
foreach ($ress as $row) :
$smiles_key = $row['smile'];
$smile_path = $row['path']; ?>
<input type="submit" name="smile" title="<?= $smiles_key; ?>" value="<?= $smiles_key; ?>"
style="background:url(<?= $smile_path; ?> );
background-repeat: no-repeat;float:left;height:45px;border:none;
width:50px;font-size:0;" />
<?php
endforeach;
} catch (PDOException $e) {
echo $e->getMessage();
echo $e->getLine();
exit();
}
}
Смайлы сделаны в виде кнопок. В свойстве «background» кнопки идет картинка смайла. Нажатие кнопки вставляет смайл.
Внимание! Стили CSS для смайлов задаются непосредственно в скрипте в строке <input … style=””>
24.2 Печать комментариев
Для печати комментариев служит функция «print_comment.php»
Листинг 40. print_comment.php Путь: news/function/ print_comment.php
<?php
/* печать комментария со смайлами */
function comment_to_smile($comment)
{
try {
include $_SERVER['DOCUMENT_ROOT'] . '/chat/dsn.php';
$sql = "SELECT smile, path FROM smiles";
$s = $dsn->query($sql);
$ress = $s->fetchall();
foreach ($ress as $row) :
$smiles_key = $row['smile'];
$smile_path = $row['path'];
endforeach;
} catch (PDOException $e) {
echo $e->getMessage();
echo $e->getLine();
exit();
}
$smile_path = array_column($ress, 'path'); // Массив с кодами смайлов
$smiles_keys = array_column($ress, 'smile'); // Массив с соответствующими путями к изображениям смайлов
for ($i = 0; $i < count($smile_path); $i++) {
$smile_path[$i] = "<img src='" . $smile_path[$i] . "' alt='' />";//получаем изображение смайла
}