Blame | Last modification | View Log | RSS feed
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');/*** CodeIgniter** An open source application development framework for PHP 5.1.6 or newer** @package CodeIgniter* @author ExpressionEngine Dev Team* @copyright Copyright (c) 2008 - 2011, EllisLab, Inc.* @license http://codeigniter.com/user_guide/license.html* @link http://codeigniter.com* @since Version 1.0* @filesource*/// ------------------------------------------------------------------------/*** CodeIgniter Smiley Helpers** @package CodeIgniter* @subpackage Helpers* @category Helpers* @author ExpressionEngine Dev Team* @link http://codeigniter.com/user_guide/helpers/smiley_helper.html*/// ------------------------------------------------------------------------/*** Smiley Javascript** Returns the javascript required for the smiley insertion. Optionally takes* an array of aliases to loosely couple the smiley array to the view.** @access public* @param mixed alias name or array of alias->field_id pairs* @param string field_id if alias name was passed in* @return array*/if ( ! function_exists('smiley_js')){function smiley_js($alias = '', $field_id = '', $inline = TRUE){static $do_setup = TRUE;$r = '';if ($alias != '' && ! is_array($alias)){$alias = array($alias => $field_id);}if ($do_setup === TRUE){$do_setup = FALSE;$m = array();if (is_array($alias)){foreach ($alias as $name => $id){$m[] = '"'.$name.'" : "'.$id.'"';}}$m = '{'.implode(',', $m).'}';$r .= <<<EOFvar smiley_map = {$m};function insert_smiley(smiley, field_id) {var el = document.getElementById(field_id), newStart;if ( ! el && smiley_map[field_id]) {el = document.getElementById(smiley_map[field_id]);if ( ! el)return false;}el.focus();smiley = " " + smiley;if ('selectionStart' in el) {newStart = el.selectionStart + smiley.length;el.value = el.value.substr(0, el.selectionStart) +smiley +el.value.substr(el.selectionEnd, el.value.length);el.setSelectionRange(newStart, newStart);}else if (document.selection) {document.selection.createRange().text = smiley;}}EOF;}else{if (is_array($alias)){foreach ($alias as $name => $id){$r .= 'smiley_map["'.$name.'"] = "'.$id.'";'."\n";}}}if ($inline){return '<script type="text/javascript" charset="utf-8">/*<![CDATA[ */'.$r.'// ]]></script>';}else{return $r;}}}// ------------------------------------------------------------------------/*** Get Clickable Smileys** Returns an array of image tag links that can be clicked to be inserted* into a form field.** @access public* @param string the URL to the folder containing the smiley images* @return array*/if ( ! function_exists('get_clickable_smileys')){function get_clickable_smileys($image_url, $alias = '', $smileys = NULL){// For backward compatibility with js_insert_smileyif (is_array($alias)){$smileys = $alias;}if ( ! is_array($smileys)){if (FALSE === ($smileys = _get_smiley_array())){return $smileys;}}// Add a trailing slash to the file path if needed$image_url = rtrim($image_url, '/').'/';$used = array();foreach ($smileys as $key => $val){// Keep duplicates from being used, which can happen if the// mapping array contains multiple identical replacements. For example:// :-) and :) might be replaced with the same image so both smileys// will be in the array.if (isset($used[$smileys[$key][0]])){continue;}$link[] = "<a href=\"javascript:void(0);\" onclick=\"insert_smiley('".$key."', '".$alias."')\"><img src=\"".$image_url.$smileys[$key][0]."\" width=\"".$smileys[$key][1]."\" height=\"".$smileys[$key][2]."\" alt=\"".$smileys[$key][3]."\" style=\"border:0;\" /></a>";$used[$smileys[$key][0]] = TRUE;}return $link;}}// ------------------------------------------------------------------------/*** Parse Smileys** Takes a string as input and swaps any contained smileys for the actual image** @access public* @param string the text to be parsed* @param string the URL to the folder containing the smiley images* @return string*/if ( ! function_exists('parse_smileys')){function parse_smileys($str = '', $image_url = '', $smileys = NULL){if ($image_url == ''){return $str;}if ( ! is_array($smileys)){if (FALSE === ($smileys = _get_smiley_array())){return $str;}}// Add a trailing slash to the file path if needed$image_url = preg_replace("/(.+?)\/*$/", "\\1/", $image_url);foreach ($smileys as $key => $val){$str = str_replace($key, "<img src=\"".$image_url.$smileys[$key][0]."\" width=\"".$smileys[$key][1]."\" height=\"".$smileys[$key][2]."\" alt=\"".$smileys[$key][3]."\" style=\"border:0;\" />", $str);}return $str;}}// ------------------------------------------------------------------------/*** Get Smiley Array** Fetches the config/smiley.php file** @access private* @return mixed*/if ( ! function_exists('_get_smiley_array')){function _get_smiley_array(){if (defined('ENVIRONMENT') AND file_exists(APPPATH.'config/'.ENVIRONMENT.'/smileys.php')){include(APPPATH.'config/'.ENVIRONMENT.'/smileys.php');}elseif (file_exists(APPPATH.'config/smileys.php')){include(APPPATH.'config/smileys.php');}if (isset($smileys) AND is_array($smileys)){return $smileys;}return FALSE;}}// ------------------------------------------------------------------------/*** JS Insert Smiley** Generates the javascript function needed to insert smileys into a form field** DEPRECATED as of version 1.7.2, use smiley_js instead** @access public* @param string form name* @param string field name* @return string*/if ( ! function_exists('js_insert_smiley')){function js_insert_smiley($form_name = '', $form_field = ''){return <<<EOF<script type="text/javascript">function insert_smiley(smiley){document.{$form_name}.{$form_field}.value += " " + smiley;}</script>EOF;}}/* End of file smiley_helper.php *//* Location: ./system/helpers/smiley_helper.php */