Получите помощь, поддержку и профессиональное общение в Клубе CodeIgniter

# CodeIgniter User Guide Version 2.1.3

Search User Guide

# Помощник Smiley

Файл помощника Smiley содержит функции, которые позволят вам управлять смайликами (эмотиконами).

## Загрузка этого помощника

Этот помощник загружается следующим кодом:

`$this->load->helper('smiley');`

## Обзор

Помощник Smiley принимает текстовые смайлики, вроде :-), и возвращает их в виде изображений, например

Он также позволяет вам отображать набор кликабельных смайликов, при нажатии на которые соответствия будут вставлены в поле формы. Например, если вы имеете блог, в котором позволяете пользователям оставлять комментарии, то вы можете показать набор смайликов следом за формой. Пользователи могут кликать на смайлики, и с некоторой помощью JavaScript они будут помещены в поле формы.

## Учебник по кликабельным смайликам

Вот пример, демонстрирующий, как вы можете создать набор кликабельных смайликов, следом за полем формы. Этот пример требует, чтобы вы сперва скачали и установили изображения смайликов, и создали контроллер и отображение, как показано ниже.

Важно: Перед тем как вы начнете, пожалуйста загрузите картинки смайликов, и поместите их в публично доступное место на вашем сервере. Этот помощник также предполагает, что вы имеете массив со списком смайликов, располагающийся в application/config/smileys.php

### Контроллер

В вашей директории application/controller создайте файл smileys.php и поместите код, как показано ниже.

Важно: Измените URL в функции get_clickable_smileys() так, чтобы он указывал на вашу директорию smiley.

Обратите внимание, что помощник smiley использует Класс Table.

<?php class Smileys extends CI_Controller { function __construct() { parent::__construct(); } function index() { $this->load->helper('smiley'); $this->load->library('table'); $image_array = get_clickable_smileys('http://example.com/images/smileys/', 'comments'); $col_array = $this->table->make_columns($image_array, 8); $data['smiley_table'] = $this->table->generate($col_array); $this->load->view('smiley_view', $data); } } ?>

В вашей директории application/views создайте файл smiley_view.php и поместите в него код:

<html> <head> <title>Smileys</title> <?php echo smiley_js(); ?> </head> <body> <form name="blog"> <textarea name="comments" id="comments" cols="40" rows="4"></textarea> </form> <p>Click to insert a smiley!</p> <?php echo $smiley_table; ?> </body> </html>

Когда вы создадите контроллер и отображение, загрузите их, посетив http://www.example.com/index.php/smileys/

### Алиасы полей

При внесении изменений в отображение может быть неудобным задавать идентификатор поля в контроллере. Чтобы обойти это, вы можете дать ссылкам смайликов имя, которое будет связано с определенным идентификатором в отображении.

`$image_array = get_smiley_links("http://example.com/images/smileys/", "comment_textarea_alias");`

Чтобы сопоставить псевдоним с идентификатором функции, передайте их в функцию smiley_js:

`$image_array = smiley_js("comment_textarea_alias", "comments");`

# Спавка по функциям

## get_clickable_smileys()

Возвращает массив, содержащий смайлики, вписанные в кликабельные ссылки. Вы должны передать URL к директории со смайликами и идентификатор или псевдоним поля.

`$image_array = get_smiley_links("http://example.com/images/smileys/", "comment");`

Примечание: использование этой функции без второго параметра, в комбинации c js_insert_smiley является недопустимым.

## smiley_js()

Генерирует JavaScript, который позволяет сделать кликабельные изображения, которые будут вставлять данные в поле формы. Если вы указали псевдоним вместо идентификатора, вы должны передать псевдоним и соответствующий идентификатор формы в функцию. Эта функция разработана так, чтобы размещать ее во фрагменте <head> вашей веб-страницы.

`<?php echo smiley_js(); ?>`

Примечание: эта функция замещает js_insert_smiley, которая в настоящее время является устаревшей.

## parse_smileys()

Принимает строку на вход, и замещает все найденные смайлики эквивалентными изображениями. Первый параметр должен содержать строку, а второй — URL к директории со смайликами:

`$str = 'Here are some simileys: :-) ;-)';
$str = parse_smileys($str, "http://example.com/images/smileys/");
echo $str;`

### Поделиться

Переведено в компании Аринт.

# Спасибо!

Вы тоже можете оказать помощь проекту! Как это сделать?

## Помощь и поддержка

Вы можете задать вопросы и получить ответы и советы от гуру CodeIgniter и веб-разработки: вступайте в Клуб CodeIgniter