140 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			140 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| <?php
 | |
| 
 | |
| require_once('include/security.php');
 | |
| require_once('include/bbcode.php');
 | |
| require_once('include/items.php');
 | |
| 
 | |
| 
 | |
| function mood_init(&$a) {
 | |
| 
 | |
| 	if(! local_channel())
 | |
| 		return;
 | |
| 
 | |
| 	$uid = local_channel();
 | |
| 	$channel = $a->get_channel();
 | |
| 	$verb = notags(trim($_GET['verb']));
 | |
| 	
 | |
| 	if(! $verb) 
 | |
| 		return;
 | |
| 
 | |
| 	$verbs = get_mood_verbs();
 | |
| 
 | |
| 	if(! array_key_exists($verb,$verbs))
 | |
| 		return;
 | |
| 
 | |
| 	$activity = ACTIVITY_MOOD . '#' . urlencode($verb);
 | |
| 
 | |
| 	$parent = ((x($_GET,'parent')) ? intval($_GET['parent']) : 0);
 | |
| 
 | |
| 
 | |
| 	logger('mood: verb ' . $verb, LOGGER_DEBUG);
 | |
| 
 | |
| 
 | |
| 	if($parent) {
 | |
| 		$r = q("select mid, owner_xchan, private, allow_cid, allow_gid, deny_cid, deny_gid 
 | |
| 			from item where id = %d and parent = %d and uid = %d limit 1",
 | |
| 			intval($parent),
 | |
| 			intval($parent),
 | |
| 			intval($uid)
 | |
| 		);
 | |
| 		if(count($r)) {
 | |
| 			$parent_mid = $r[0]['mid'];
 | |
| 			$private    = $r[0]['item_private'];
 | |
| 			$allow_cid  = $r[0]['allow_cid'];
 | |
| 			$allow_gid  = $r[0]['allow_gid'];
 | |
| 			$deny_cid   = $r[0]['deny_cid'];
 | |
| 			$deny_gid   = $r[0]['deny_gid'];
 | |
| 		}
 | |
| 	}
 | |
| 	else {
 | |
| 
 | |
| 		$private       = 0;
 | |
| 
 | |
| 		$allow_cid     =  $channel['channel_allow_cid'];
 | |
| 		$allow_gid     =  $channel['channel_allow_gid'];
 | |
| 		$deny_cid      =  $channel['channel_deny_cid'];
 | |
| 		$deny_gid      =  $channel['channel_deny_gid'];
 | |
| 	}
 | |
| 
 | |
| 	$poster = $a->get_observer();
 | |
| 
 | |
| 	$mid = item_message_id();
 | |
| 
 | |
| 	$action = sprintf( t('%1$s is %2$s','mood'), '[zrl=' . $poster['xchan_url'] . ']' . $poster['xchan_name'] . '[/zrl]' , $verbs[$verb]); 
 | |
| 	$item_flags = ITEM_WALL|ITEM_ORIGIN;
 | |
| 	if(! $parent_mid)
 | |
| 		$item_flags |= ITEM_THREAD_TOP;
 | |
| 
 | |
| 	$arr = array();
 | |
| 
 | |
| 	$arr['aid']           = get_account_id();
 | |
| 	$arr['uid']           = $uid;
 | |
| 	$arr['mid']           = $mid;
 | |
| 	$arr['parent_mid']    = (($parent_mid) ? $parent_mid : $mid);
 | |
| 	$arr['item_flags']    = $item_flags;
 | |
| 	$arr['author_xchan']  = $poster['xchan_hash'];
 | |
| 	$arr['owner_xchan']   = (($parent_mid) ? $r[0]['owner_xchan'] : $poster['xchan_hash']);
 | |
| 	$arr['title']         = '';
 | |
| 	$arr['allow_cid']     = $allow_cid;
 | |
| 	$arr['allow_gid']     = $allow_gid;
 | |
| 	$arr['deny_cid']      = $deny_cid;
 | |
| 	$arr['deny_gid']      = $deny_gid;
 | |
| 	$arr['item_private']  = $private;
 | |
| 	$arr['verb']          = $activity;
 | |
| 	$arr['body']          = $action;
 | |
| 
 | |
| 	if ((! $arr['plink']) && ($arr['item_flags'] & ITEM_THREAD_TOP)) {
 | |
| 		$arr['plink'] = z_root() . '/channel/' . $channel['channel_address'] . '/?f=&mid=' . $arr['mid'];
 | |
| 	}
 | |
| 
 | |
| 
 | |
| 	$post = item_store($arr);
 | |
| 	$item_id = $post['item_id'];
 | |
| 
 | |
| 	if($item_id) {
 | |
| 		proc_run('php',"include/notifier.php","activity", $item_id);
 | |
| 	}
 | |
| 
 | |
| 	call_hooks('post_local_end', $arr);
 | |
| 
 | |
| 	if($_SESSION['return_url'])
 | |
| 		goaway(z_root() . '/' . $_SESSION['return_url']);
 | |
| 
 | |
| 	return;
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| function mood_content(&$a) {
 | |
| 
 | |
| 	if(! local_channel()) {
 | |
| 		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;
 | |
| 
 | |
| }
 |