Take two:
[www-register-wizard.git] / helpers / smiley_helper.php
1 <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');\r
2 /**\r
3  * CodeIgniter\r
4  *\r
5  * An open source application development framework for PHP 4.3.2 or newer\r
6  *\r
7  * @package             CodeIgniter\r
8  * @author              ExpressionEngine Dev Team\r
9  * @copyright   Copyright (c) 2008, EllisLab, Inc.\r
10  * @license             http://codeigniter.com/user_guide/license.html\r
11  * @link                http://codeigniter.com\r
12  * @since               Version 1.0\r
13  * @filesource\r
14  */\r
15 \r
16 // ------------------------------------------------------------------------\r
17 \r
18 /**\r
19  * CodeIgniter Smiley Helpers\r
20  *\r
21  * @package             CodeIgniter\r
22  * @subpackage  Helpers\r
23  * @category    Helpers\r
24  * @author              ExpressionEngine Dev Team\r
25  * @link                http://codeigniter.com/user_guide/helpers/smiley_helper.html\r
26  */\r
27 \r
28 // ------------------------------------------------------------------------\r
29 \r
30 /**\r
31  * JS Insert Smiley\r
32  *\r
33  * Generates the javascrip function needed to insert smileys into a form field\r
34  *\r
35  * @access      public\r
36  * @param       string  form name\r
37  * @param       string  field name\r
38  * @return      string\r
39  */\r
40 if ( ! function_exists('js_insert_smiley'))\r
41 {\r
42         function js_insert_smiley($form_name = '', $form_field = '')\r
43         {\r
44                 return <<<EOF\r
45 <script type="text/javascript">\r
46         function insert_smiley(smiley)\r
47         {\r
48                 document.{$form_name}.{$form_field}.value += " " + smiley;\r
49         }\r
50 </script>\r
51 EOF;\r
52         }\r
53 }\r
54 // ------------------------------------------------------------------------\r
55 \r
56 /**\r
57  * Get Clickable Smileys\r
58  *\r
59  * Returns an array of image tag links that can be clicked to be inserted \r
60  * into a form field.  \r
61  *\r
62  * @access      public\r
63  * @param       string  the URL to the folder containing the smiley images\r
64  * @return      array\r
65  */\r
66 if ( ! function_exists('get_clickable_smileys'))\r
67 {\r
68         function get_clickable_smileys($image_url = '', $smileys = NULL)\r
69         {\r
70                 if ( ! is_array($smileys))\r
71                 {\r
72                         if (FALSE === ($smileys = _get_smiley_array()))\r
73                         {\r
74                                 return $smileys;\r
75                         }\r
76                 }\r
77 \r
78                 // Add a trailing slash to the file path if needed\r
79                 $image_url = preg_replace("/(.+?)\/*$/", "\\1/",  $image_url);\r
80 \r
81                 $used = array();\r
82                 foreach ($smileys as $key => $val)\r
83                 {\r
84                         // Keep duplicates from being used, which can happen if the\r
85                         // mapping array contains multiple identical replacements.  For example:\r
86                         // :-) and :) might be replaced with the same image so both smileys\r
87                         // will be in the array.\r
88                         if (isset($used[$smileys[$key][0]]))\r
89                         {\r
90                                 continue;\r
91                         }\r
92 \r
93                         $link[] = "<a href=\"javascript:void(0);\" onClick=\"insert_smiley('".$key."')\"><img src=\"".$image_url.$smileys[$key][0]."\" width=\"".$smileys[$key][1]."\" height=\"".$smileys[$key][2]."\" alt=\"".$smileys[$key][3]."\" style=\"border:0;\" /></a>";\r
94 \r
95                         $used[$smileys[$key][0]] = TRUE;\r
96                 }\r
97 \r
98                 return $link;\r
99         }\r
100 }\r
101 \r
102 // ------------------------------------------------------------------------\r
103 \r
104 /**\r
105  * Parse Smileys\r
106  *\r
107  * Takes a string as input and swaps any contained smileys for the actual image\r
108  *\r
109  * @access      public\r
110  * @param       string  the text to be parsed\r
111  * @param       string  the URL to the folder containing the smiley images\r
112  * @return      string\r
113  */\r
114 if ( ! function_exists('parse_smileys'))\r
115 {\r
116         function parse_smileys($str = '', $image_url = '', $smileys = NULL)\r
117         {\r
118                 if ($image_url == '')\r
119                 {\r
120                         return $str;\r
121                 }\r
122 \r
123                 if ( ! is_array($smileys))\r
124                 {\r
125                         if (FALSE === ($smileys = _get_smiley_array()))\r
126                         {\r
127                                 return $str;\r
128                         }\r
129                 }\r
130 \r
131                 // Add a trailing slash to the file path if needed\r
132                 $image_url = preg_replace("/(.+?)\/*$/", "\\1/",  $image_url);\r
133 \r
134                 foreach ($smileys as $key => $val)\r
135                 {\r
136                         $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);\r
137                 }\r
138 \r
139                 return $str;\r
140         }\r
141 }\r
142 \r
143 // ------------------------------------------------------------------------\r
144 \r
145 /**\r
146  * Get Smiley Array\r
147  *\r
148  * Fetches the config/smiley.php file\r
149  *\r
150  * @access      private\r
151  * @return      mixed\r
152  */\r
153 if ( ! function_exists('_get_smiley_array'))\r
154 {\r
155         function _get_smiley_array()\r
156         {\r
157                 if ( ! file_exists(APPPATH.'config/smileys'.EXT))\r
158                 {\r
159                         return FALSE;\r
160                 }\r
161 \r
162                 include(APPPATH.'config/smileys'.EXT);\r
163 \r
164                 if ( ! isset($smileys) OR ! is_array($smileys))\r
165                 {\r
166                         return FALSE;\r
167                 }\r
168 \r
169                 return $smileys;\r
170         }\r
171 }\r
172 \r
173 \r
174 /* End of file smiley_helper.php */\r
175 /* Location: ./system/helpers/smiley_helper.php */