From 386b6d081b41850908adf7b5670db41a344170e6 Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 22 Aug 2012 21:36:55 -0700 Subject: [PATCH] moods --- boot.php | 1 + include/conversation.php | 14 ++++ include/text.php | 33 +++++++++ mod/mood.php | 142 +++++++++++++++++++++++++++++++++++++++ mod/poke.php | 2 +- view/mood_content.tpl | 20 ++++++ 6 files changed, 211 insertions(+), 1 deletion(-) create mode 100644 mod/mood.php create mode 100644 view/mood_content.tpl diff --git a/boot.php b/boot.php index 0c05afd19..b49c92bf0 100644 --- a/boot.php +++ b/boot.php @@ -253,6 +253,7 @@ define ( 'ACTIVITY_TAG', NAMESPACE_ACTIVITY_SCHEMA . 'tag' ); define ( 'ACTIVITY_FAVORITE', NAMESPACE_ACTIVITY_SCHEMA . 'favorite' ); define ( 'ACTIVITY_POKE', NAMESPACE_ZOT . '/activity/poke' ); +define ( 'ACTIVITY_MOOD', NAMESPACE_ZOT . '/activity/mood' ); define ( 'ACTIVITY_OBJ_COMMENT', NAMESPACE_ACTIVITY_SCHEMA . 'comment' ); define ( 'ACTIVITY_OBJ_NOTE', NAMESPACE_ACTIVITY_SCHEMA . 'note' ); diff --git a/include/conversation.php b/include/conversation.php index f7d029812..0b091571f 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -205,6 +205,20 @@ function localize_item(&$item){ $item['body'] = sprintf($txt, $A, $B). "\n\n\n" . $Bphoto; } + if (stristr($item['verb'],ACTIVITY_MOOD)) { + $verb = urldecode(substr($item['verb'],strpos($item['verb'],'#')+1)); + if(! $verb) + return; + + $Aname = $item['author-name']; + $Alink = $item['author-link']; + $A = '[url=' . zrl($Alink) . ']' . $Aname . '[/url]'; + + $txt = t('%1$s is currently %2$s'); + + $item['body'] = sprintf($txt, $A, t($verb)); + } + if ($item['verb']===ACTIVITY_TAG){ $r = q("SELECT * from `item`,`contact` WHERE `item`.`contact-id`=`contact`.`id` AND `item`.`uri`='%s';", diff --git a/include/text.php b/include/text.php index 85ba99dd3..3783d2acc 100644 --- a/include/text.php +++ b/include/text.php @@ -727,6 +727,39 @@ function get_poke_verbs() { return $arr; } +function get_mood_verbs() { + + // index is present tense verb + // value is array containing past tense verb, translation of present, translation of past + + $arr = array( + 'happy' => t('happy'), + 'sad' => t('sad'), + 'mellow' => t('mellow'), + 'tired' => t('tired'), + 'perky' => t('perky'), + 'angry' => t('angry'), + 'stupefied' => t('stupified'), + 'puzzled' => t('puzzled'), + 'interested' => t('interested'), + 'bitter' => t('bitter'), + 'cheerful' => t('cheerful'), + 'alive' => t('alive'), + 'annoyed' => t('annoyed'), + 'anxious' => t('anxious'), + 'cranky' => t('cranky'), + 'disturbed' => t('disturbed'), + 'frustrated' => t('frustrated'), + 'motivated' => t('motivated'), + 'relaxed' => t('relaxed'), + 'surprised' => t('surprised'), + ); + + call_hooks('mood_verbs', $arr); + return $arr; +} + + /** * * Function: smilies diff --git a/mod/mood.php b/mod/mood.php new file mode 100644 index 000000000..7a793c71e --- /dev/null +++ b/mod/mood.php @@ -0,0 +1,142 @@ +user['allow_cid']; + $allow_gid = $a->user['allow_gid']; + $deny_cid = $a->user['deny_cid']; + $deny_gid = $a->user['deny_gid']; + } + + $poster = $a->contact; + + $uri = item_new_uri($a->get_hostname(),$uid); + + $action = sprintf( t('%1$s is currently %2$s'), '[url=' . $poster['url'] . ']' . $poster['name'] . '[/url]' , $verbs[$verb]); + + $arr = array(); + + $arr['uid'] = $uid; + $arr['uri'] = $uri; + $arr['parent-uri'] = (($parent_uri) ? $parent_uri : $uri); + $arr['type'] = 'activity'; + $arr['wall'] = 1; + $arr['contact-id'] = $poster['id']; + $arr['owner-name'] = $poster['name']; + $arr['owner-link'] = $poster['url']; + $arr['owner-avatar'] = $poster['thumb']; + $arr['author-name'] = $poster['name']; + $arr['author-link'] = $poster['url']; + $arr['author-avatar'] = $poster['thumb']; + $arr['title'] = ''; + $arr['allow_cid'] = $allow_cid; + $arr['allow_gid'] = $allow_gid; + $arr['deny_cid'] = $deny_cid; + $arr['deny_gid'] = $deny_gid; + $arr['last-child'] = 1; + $arr['visible'] = 1; + $arr['verb'] = $activity; + $arr['private'] = $private; + + $arr['origin'] = 1; + $arr['body'] = $action; + + $item_id = item_store($arr); + if($item_id) { + q("UPDATE `item` SET `plink` = '%s' WHERE `uid` = %d AND `id` = %d LIMIT 1", + dbesc($a->get_baseurl() . '/display/' . $poster['nickname'] . '/' . $item_id), + intval($uid), + intval($item_id) + ); + proc_run('php',"include/notifier.php","tag","$item_id"); + } + + + call_hooks('post_local_end', $arr); + + proc_run('php',"include/notifier.php","like","$post_id"); + + return; +} + + + +function mood_content(&$a) { + + if(! local_user()) { + notice( t('Permission denied.') . EOL); + return; + } + + $parent = ((x($_GET,'parent')) ? intval($_GET['parent']) : '0'); + + + + $verbs = get_mood_verbs(); + + $shortlist = array(); + foreach($verbs as $k => $v) + if($v !== 'NOTRANSLATION') + $shortlist[] = array($k,$v); + + + $tpl = get_markup_template('mood_content.tpl'); + + $o = replace_macros($tpl,array( + '$title' => t('Mood'), + '$desc' => t('Set your current mood and tell your friends'), + '$verbs' => $shortlist, + '$parent' => $parent, + '$submit' => t('Submit'), + )); + + return $o; + +} \ No newline at end of file diff --git a/mod/poke.php b/mod/poke.php index 5cd88d7e2..edcb27d02 100644 --- a/mod/poke.php +++ b/mod/poke.php @@ -73,7 +73,7 @@ function poke_init(&$a) { $poster = $a->contact; - $uri = item_new_uri($a->get_hostname(),$owner_uid); + $uri = item_new_uri($a->get_hostname(),$uid); $arr = array(); diff --git a/view/mood_content.tpl b/view/mood_content.tpl new file mode 100644 index 000000000..9349c56ae --- /dev/null +++ b/view/mood_content.tpl @@ -0,0 +1,20 @@ +

$title

+ +
$desc
+ +
+
+
+ + + + +
+
+ +
+