# CodeIgniter User Guide Version 1.7

Search User Guide

# Smiley Helper

The Smiley Helper file contains functions that let you manage smileys (emoticons).

## Loading this Helper

This helper is loaded using the following code:

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

## Overview

The Smiley helper has a renderer that takes plain text simileys, like :-) and turns them into a image representation, like

It also lets you display a set of smiley images that when clicked will be inserted into a form field. For example, if you have a blog that allows user commenting you can show the smileys next to the comment form. Your users can click a desired smiley and with the help of some JavaScript it will be placed into the form field.

## Clickable Smileys Tutorial

Here is an example demonstrating how you might create a set of clickable smileys next to a form field. This example requires that you first download and install the smiley images, then create a controller and the View as described.

Important: Before you begin, please download the smiley images and put them in a publicly accessible place on your server. This helper also assumes you have the smiley replacement array located at application/config/smileys.php

### The Controller

In your application/controllers/ folder, create a file called `smileys.php` and place the code below in it.

Important: Change the URL in the get_clickable_smileys() function below so that it points to your smiley folder.

You'll notice that in addition to the smiley helper we are using the Table Class.

<?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://example.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); } } ?>

In your application/views/ folder, create a file called `smiley_view.php` and place this code in it:

<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>

When you have created the above controller and view, load it by visiting http://www.your=site.com/index.php/smileys/

# Function Reference

## get_clickable_smileys()

Returns an array containing your smiley images wrapped in a clickable link. You must supply the URL to your smiley folder via the first parameter:

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

## js_insert_smiley()

Generates the JavaScript that allows the images to be clicked and inserted into a form field. The first parameter must contain the name of your form, the second parameter must contain the name of the form field. This function is designed to be placed into the <head> area of your web page.

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

## parse_smileys()

Takes a string of text as input and replaces any contained plain text smileys into the image equivalent. The first parameter must contain your string, the second must contain the URL to your smiley folder:

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