diff options
author | Stefan Parviainen <saparvia@caterva.eu> | 2014-12-20 17:33:35 +0100 |
---|---|---|
committer | Stefan Parviainen <saparvia@caterva.eu> | 2014-12-20 17:33:35 +0100 |
commit | fe80dbb3a73167b6297b3d645ee566f892c0b0ee (patch) | |
tree | 354b8a4a571b9b5ae9c18ce7fa49e8438209b15b | |
parent | 6d8214f96bfc8b981fae7c0ffe0cba68206dd86b (diff) | |
download | volse-hubzilla-fe80dbb3a73167b6297b3d645ee566f892c0b0ee.tar.gz volse-hubzilla-fe80dbb3a73167b6297b3d645ee566f892c0b0ee.tar.bz2 volse-hubzilla-fe80dbb3a73167b6297b3d645ee566f892c0b0ee.zip |
Access list of smilies over JSON
-rw-r--r-- | include/text.php | 69 | ||||
-rw-r--r-- | mod/smilies.php | 14 |
2 files changed, 51 insertions, 32 deletions
diff --git a/include/text.php b/include/text.php index ee0fef262..6516d734d 100644 --- a/include/text.php +++ b/include/text.php @@ -958,37 +958,10 @@ function get_mood_verbs() { return $arr; } - -/** - * - * Function: smilies - * - * Description: - * Replaces text emoticons with graphical images - * - * @Parameter: string $s - * - * Returns string - * - * It is expected that this function will be called using HTML text. - * We will escape text between HTML pre and code blocks, and HTML attributes - * (such as urls) from being processed. - * - * At a higher level, the bbcode [nosmile] tag can be used to prevent this - * function from being executed by the prepare_text() routine when preparing - * bbcode source for HTML display - * - */ -function smilies($s, $sample = false) { +// Function to list all smilies, both internal and from addons +// Returns array with keys 'texts' and 'icons' +function list_smilies() { $a = get_app(); - - if(intval(get_config('system','no_smilies')) - || (local_user() && intval(get_pconfig(local_user(),'system','no_smilies')))) - return $s; - - $s = preg_replace_callback('{<(pre|code)>.*?</\1>}ism','smile_shield',$s); - $s = preg_replace_callback('/<[a-z]+ .*?>/ism','smile_shield',$s); - $texts = array( '<3', '</3', @@ -1066,8 +1039,42 @@ function smilies($s, $sample = false) { ); - $params = array('texts' => $texts, 'icons' => $icons, 'string' => $s); + $params = array('texts' => $texts, 'icons' => $icons); call_hooks('smilie', $params); + return $params; +} +/** + * + * Function: smilies + * + * Description: + * Replaces text emoticons with graphical images + * + * @Parameter: string $s + * + * Returns string + * + * It is expected that this function will be called using HTML text. + * We will escape text between HTML pre and code blocks, and HTML attributes + * (such as urls) from being processed. + * + * At a higher level, the bbcode [nosmile] tag can be used to prevent this + * function from being executed by the prepare_text() routine when preparing + * bbcode source for HTML display + * + */ +function smilies($s, $sample = false) { + $a = get_app(); + + if(intval(get_config('system','no_smilies')) + || (local_user() && intval(get_pconfig(local_user(),'system','no_smilies')))) + return $s; + + $s = preg_replace_callback('{<(pre|code)>.*?</\1>}ism','smile_shield',$s); + $s = preg_replace_callback('/<[a-z]+ .*?>/ism','smile_shield',$s); + + $params = list_smilies(); + $params['string'] = $s; if($sample) { $s = '<div class="smiley-sample">'; diff --git a/mod/smilies.php b/mod/smilies.php index c47f95da7..b22d0c6d2 100644 --- a/mod/smilies.php +++ b/mod/smilies.php @@ -1,3 +1,15 @@ <?php -function smilies_content(&$a) { return smilies('',true); } +function smilies_content(&$a) { + if ($a->argv[1]==="json"){ + $tmp = list_smilies(); + $results = array(); + for($i = 0; $i < count($tmp['texts']); $i++) { + $results[] = array('text' => $tmp['texts'][$i], 'icon' => $tmp['icons'][$i]); + } + json_return_and_die($results); + } + else { + return smilies('',true); + } +} |