Update of /cvsroot/php-blog/serendipity/plugins/serendipity_event_emoticate
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15226/plugins/serendipity_event_emoticate
Modified Files:
serendipity_event_emoticate.php
Log Message:
* Replace emoticons with new and transparent icons
* Added ability to define emoticons for a specific theme, this can be done by setting $serendipity['custom_emoticons'] in layout.php
Index: serendipity_event_emoticate.php
===================================================================
RCS file: /cvsroot/php-blog/serendipity/plugins/serendipity_event_emoticate/serendipity_event_emoticate.php,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- serendipity_event_emoticate.php 10 Jul 2004 08:24:13 -0000 1.8
+++ serendipity_event_emoticate.php 23 Aug 2004 18:15:58 -0000 1.9
@@ -49,27 +49,52 @@
$conf_array[] = $element['name'];
}
$propbag->add('configuration', $conf_array);
-
- // A Set of emoticons to rewrite
- $this->smiles = array(
- ":'(" => serendipity_getTemplateFile('img/cry_smile.gif'),
- ':-)' => serendipity_getTemplateFile('img/regular_smile.gif'),
- ':-O' => serendipity_getTemplateFile('img/embaressed_smile.gif'),
- ':O' => serendipity_getTemplateFile('img/embaressed_smile.gif'),
- ':-(' => serendipity_getTemplateFile('img/sad_smile.gif'),
- ':(' => serendipity_getTemplateFile('img/sad_smile.gif'),
- ':)' => serendipity_getTemplateFile('img/regular_smile.gif'),
- '8-)' => serendipity_getTemplateFile('img/shades_smile.gif'),
- ':-D' => serendipity_getTemplateFile('img/teeth_smile.gif'),
- ':D' => serendipity_getTemplateFile('img/teeth_smile.gif'),
- '8)' => serendipity_getTemplateFile('img/shades_smile.gif'),
- ':-P' => serendipity_getTemplateFile('img/tounge_smile.gif'),
- ';-)' => serendipity_getTemplateFile('img/wink_smile.gif'),
- ';)' => serendipity_getTemplateFile('img/wink_smile.gif'),
- ':P' => serendipity_getTemplateFile('img/tounge_smile.gif')
- );
+
}
+ function getEmoticons() {
+ global $serendipity;
+
+ /* Avoid multiple runs of serendipity_getTemplateFile(),
+ in other words - if we already have a list of smilies, don't bother looking for another */
+ if ( sizeof($this->smilies) != 0 ) {
+ return $this->smilies;
+ }
+
+ /* Hijack global variable $serendipity['custom_emoticons'] if it exists */
+ if ( isset($serendipity['custom_emoticons']) && is_array($serendipity['custom_emoticons']) ) {
+ $this->smilies = $serendipity['custom_emoticons'];
+ } else {
+ $this->smilies = array(
+ ":'(" => serendipity_getTemplateFile('img/emoticons/cry.png'),
+
+ ':-)' => serendipity_getTemplateFile('img/emoticons/smile.png'),
+ ':)' => serendipity_getTemplateFile('img/emoticons/smile.png'),
+
+ ':|' => serendipity_getTemplateFile('img/emoticons/normal.png'),
+
+ ':-O' => serendipity_getTemplateFile('img/emoticons/eek.png'),
+ ':O' => serendipity_getTemplateFile('img/emoticons/eek.png'),
+
+ ':-(' => serendipity_getTemplateFile('img/emoticons/sad.png'),
+ ':(' => serendipity_getTemplateFile('img/emoticons/sad.png'),
+
+ '8-)' => serendipity_getTemplateFile('img/emoticons/cool.png'),
+ '8)' => serendipity_getTemplateFile('img/emoticons/cool.png'),
+
+ ':-D' => serendipity_getTemplateFile('img/emoticons/laugh.png'),
+ ':D' => serendipity_getTemplateFile('img/emoticons/laugh.png'),
+
+ ':-P' => serendipity_getTemplateFile('img/emoticons/tongue.png'),
+ ':P' => serendipity_getTemplateFile('img/emoticons/tongue.png'),
+
+ ';-)' => serendipity_getTemplateFile('img/emoticons/wink.png'),
+ ';)' => serendipity_getTemplateFile('img/emoticons/wink.png'),
+ );
+ }
+
+ return $this->smilies;
+ }
function generate_content(&$title) {
$title = PLUGIN_EVENT_EMOTICATE_NAME;
@@ -88,7 +113,6 @@
function event_hook($event, &$bag, &$eventData) {
global $serendipity;
-
$hooks = &$bag->get('event_hooks');
if (isset($hooks[$event])) {
@@ -97,13 +121,12 @@
foreach ($this->markup_elements as $temp) {
if (serendipity_db_bool($this->get_config($temp['name'], true)) && isset($eventData[$temp['element']])) {
- $element = $temp['element'];
+ $element = &$eventData[$temp['element']];
- foreach ($this->smiles as $key => $value) {
- $eventData[$element] = preg_replace("/([\t\ ]?)" . preg_quote($key, '/') . "([\t\ \!\.\)]?)/m",
+ foreach ($this->getEmoticons() as $key => $value) {
+ $element = preg_replace("/([\t\ ]?)" . preg_quote($key, '/') . "([\t\ \!\.\)]?)/m",
"$1<img src=\"$value\" alt=\"$key\" style=\"display: inline; vertical-align: bottom;\" class=\"emoticon\" />$2",
- $eventData[$element]
- );
+ $element);
}
}
}
|