From c7e5999d0b3d5a0742acd5aa57f43bdbae6da6fa Mon Sep 17 00:00:00 2001 From: admin Date: Sat, 28 Oct 2006 05:21:35 +0000 Subject: --- system/helpers/smiley_helper.php | 154 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 154 insertions(+) create mode 100644 system/helpers/smiley_helper.php (limited to 'system/helpers/smiley_helper.php') diff --git a/system/helpers/smiley_helper.php b/system/helpers/smiley_helper.php new file mode 100644 index 000000000..05ffb29b2 --- /dev/null +++ b/system/helpers/smiley_helper.php @@ -0,0 +1,154 @@ + + function insert_smiley(smiley) + { + document.{$form_name}.{$form_field}.value += " " + smiley; + } + +EOF; +} + +// ------------------------------------------------------------------------ + +/** + * 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 + */ +function get_clickable_smileys($image_url = '') +{ + if (FALSE === ($smileys = _get_smiley_array())) + { + return array(); + } + + // Add a trailing slash to the file path if needed + $image_url = preg_replace("/(.+?)\/*$/", "\\1/", $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[] = "\"".$smileys[$key]['3']."\""; + + $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 + */ +function parse_smileys($str, $image_url) +{ + 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, "\"".$smileys[$key]['3']."\"", $str); + } + + return $str; +} + +// ------------------------------------------------------------------------ + +/** + * Get Smiley Array + * + * Fetches the config/smiley.php file + * + * @access private + * @return mixed + */ +function _get_smiley_array() +{ + if ( ! file_exists(APPPATH.'config/smileys'.EXT)) + { + return FALSE; + } + + include_once(APPPATH.'config/smileys'.EXT); + + if ( ! isset($smileys) OR ! is_array($smileys)) + { + return FALSE; + } + + return $smileys; +} + + + + +?> \ No newline at end of file -- cgit v1.2.3-24-g4f1b