# CodeIgniter ユーザガイド 日本語版 Version 1.6.1

ユーザガイドを検索

# スマイリーヘルパ

スマイリーヘルパのファイルは、スマイリー (顔文字) を管理できる関数で構成されています。

## ヘルパのロード

このヘルパは次のコードを使ってロードします:

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

## 概要

スマイリーヘルパは、 :-) [訳注:日本の顔文字の（＾＾）に相当] のようなプレーンテキストの顔文字をもとに、 のような画像の表現に変換して描画します。

また、クリックしたときにフォームフィールドに挿入できる顔文字画像のセットも表示できます。たとえば、ユーザがコメントをつけられるブログを作成しているとき、顔文字のセットをコメントフォームの下に表示させることができます。ユーザは、セットしたい顔文字をクリックでき、JavaScriptで、選択した顔文字がフォームフィールドに置かれます。

## クリッカブルスマイリーのチュートリアル

以下は、フォームフィールドの下にクッリクできる顔文字を作成する方法を説明した例です。このサンプルでは、まず、顔文字の画像をダウンロードしてインストールする必要があります。そのあと、説明通りにコントローラとビューを作成します。

Important: 始める前に、顔文字をダウンロードして、サーバのパブリックにアクセスできる場所に設置してください。また、このヘルパは、application/config/smileys.php にある顔文字置き換え設定の配列が必要になります

### コントローラ

application/controllers/ フォルダの中に、`smileys.php` という名前のファイルを作成し、その中に下のコードを書いて下さい。

Important: get_clickable_smileys() 関数で、smiley フォルダの場所を指すようにURLを変更します。

スマイリーヘルパーのほか、HTMLテーブルクラスを使っているのがわかると思います。

<?php class Smileys extends Controller { function Smileys() { parent::Controller(); } function index() { $this->load->helper('smiley'); $this->load->library('table'); $image_array = get_clickable_smileys('http://www.your-site.com/images/smileys/'); $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 js_insert_smiley('blog', 'comments'); ?> </head> <body> <form name="blog"> <textarea name="comments" cols="40" rows="4"></textarea> </form> <p>Click to insert a smiley!</p> <?php echo $smiley_table; ?> </body> </html>

上のコントローラとビューを作成したら、次のURLを訪問して読み込んでください http://www.your=site.com/index.php/smileys/

# 関数リファレンス

## get_clickable_smileys()

クッリク可能なリンクで囲まれた顔文字画像の配列を返します。顔文字画像のフォルダのURLを第1引数で指定する必要があります:

`$image_array = get_clickable_smileys("http://www.your-site.com/images/smileys/");`

## js_insert_smiley()

顔文字画像をクリックしフォームフィールドに挿入可能にするJavaScriptを生成します。第1引数で、フォームの名前を、第2引数で、フォームフィールドの名前を指定する必要があります。この関数は、webページの <head> の中に設置するよう設計されています。

`<?php echo js_insert_smiley('blog', 'comments'); ?>`

## parse_smileys()

テキストを入力として、プレーンテキストの顔文字を同じ種類の画像の顔文字に変換します。第1引数には、文字列を、第2引数には、顔文字画像のフォルダのURLを指定する必要があります:

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