field_id pairs * @param string field_id if alias name was passed in * @param bool * @return array */ 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 .= << $id) { $r .= 'smiley_map["' . $name . '"] = "' . $id . "\";\n"; } } return ($inline) ? '' : $r; } } // ------------------------------------------------------------------------ if (! function_exists('get_clickable_smileys')) { /** * Get Clickable Smileys * * Returns an array of image tag links that can be clicked to be inserted * into a form field. * * @param string the URL to the folder containing the smiley images * @param array * @return array */ function get_clickable_smileys($image_url, $alias = '') { // For backward compatibility with js_insert_smiley if (is_array($alias)) { $smileys = $alias; } elseif (false === ($smileys = _get_smiley_array())) { return false; } // 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[] = '' . $smileys[$key][3] . ''; $used[$smileys[$key][0]] = true; } return $link; } } // ------------------------------------------------------------------------ if (! function_exists('parse_smileys')) { /** * Parse Smileys * * Takes a string as input and swaps any contained smileys for the actual image * * @param string the text to be parsed * @param string the URL to the folder containing the smiley images * @param array * @return string */ function parse_smileys($str = '', $image_url = '', $smileys = null) { if ($image_url === '' or (! is_array($smileys) && false === ($smileys = _get_smiley_array()))) { return $str; } // Add a trailing slash to the file path if needed $image_url = rtrim($image_url, '/') . '/'; foreach ($smileys as $key => $val) { $str = str_replace($key, '' . $smileys[$key][3] . '', $str); } return $str; } } // ------------------------------------------------------------------------ if (! function_exists('_get_smiley_array')) { /** * Get Smiley Array * * Fetches the config/smiley.php file * * @return mixed */ function _get_smiley_array() { static $_smileys; if (! is_array($_smileys)) { if (file_exists(APPPATH . 'config/smileys.php')) { include(APPPATH . 'config/smileys.php'); } if (file_exists(APPPATH . 'config/' . ENVIRONMENT . '/smileys.php')) { include(APPPATH . 'config/' . ENVIRONMENT . '/smileys.php'); } if (empty($smileys) or ! is_array($smileys)) { $_smileys = array(); return false; } $_smileys = $smileys; } return $_smileys; } }