# 表情辅助函数

表情辅助函数文件包含了一些让你管理表情的函数。

重要

表情辅助函数已经废弃，不建议使用。现在只是为了向前兼容而保留。

- 加载辅助函数
- 概述
- 可点击的表情包教程
  - 控制器
  - 字段别名
- 可用函数

## 加载辅助函数

该辅助函数通过下面的代码加载:

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

## 概述

表情辅助函数用于将纯文本的表情转换为图片，例如：:-) 转换为

另外它还可以显示一组表情图片，当你点击其中的某个表情时将会被插入到一个表单域中。 例如，如果你有一个博客并允许用户提交评论，你可以将这组表情图片显示在评论的旁边， 这样用户就可以点击想要的表情，然后通过一点点的 Javascript 代码，将该表情插入到 用户的评论中去。

## 可点击的表情包教程

这里是一个如何在表单中使用可点击的表情包的示例，这个示例需要你首先下载并安装表情图片， 然后按下面的步骤创建一个控制器和视图。

重要

开始之前，请先 下载表情图片 然后将其放置到服务器的一个公共目录，并打开 application/config/smileys.php 文件设置表情替换的规则。

### 控制器

在 application/controllers/ 目录下，创建一个文件 Smileys.php 然后输入下面的代码。

重要

修改下面的 `get_clickable_smileys()` 函数的 URL 参数，让其指向你的表情目录。

你会发现我们除了使用到了表情库，还使用到了 表格类:

    <?php

    class Smileys extends CI_Controller {

        public 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>
            When you have created the above controller and view, load it by visiting http://www.example.com/index.php/smileys/
        </body>
    </html>

### 字段别名

当修改视图的时候，会牵扯到控制器中的 id 字段，带来不便。为了解决这一问题， 你可以在视图中给表情一个别名，并将其映射到 id 字段。

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

将别名映射到 id 字段，可以使用 smiley_js 函数并传入这两个参数:

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

## 可用函数

`get_clickable_smileys`($image_url[, $alias = ''[, $smileys = NULL]])

  参数: | $image_url (string) -- URL path to the smileys directory $alias (string) -- Field alias
  返回: | An array of ready to use smileys
  返回类型: | array

  返回一个已经绑定了可点击表情的数组。你必须提供表情文件夹的 URL ， 还有表单域的 ID 或者表单域的别名。

  举例:

      $image_array = get_clickable_smileys('http://example.com/images/smileys/', 'comment');

`smiley_js`([$alias = ''[, $field_id = ''[, $inline = TRUE]]])

  参数: | $alias (string) -- Field alias $field_id (string) -- Field ID $inline (bool) -- Whether we're inserting an inline smiley
  返回: | Smiley-enabling JavaScript code
  返回类型: | string

  生成可以让图片点击后插入到表单域中的 JavaScript 代码。如果你在生成表情链接的时候 提供了一个别名来代替 id ，你需要在函数中传入别名和相应的 id ，此函数被设计为 应放在你 Web 页面的 <head> 部分。

  举例:

      <?php echo smiley_js(); ?>

`parse_smileys`([$str = ''[, $image_url = ''[, $smileys = NULL]]])

  参数: | $str (string) -- Text containing smiley codes $image_url (string) -- URL path to the smileys directory $smileys (array) -- An array of smileys
  返回: | Parsed smileys
  返回类型: | string

  输入一个文本字符串，并将其中的纯文本表情替换为等效的表情图片，第一个参数为你的字符串， 第二个参数是你的表情目录对应的 URL 。

  举例:

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