- count() returns very different results and never a boolean (not even false on error condition). - therefore you should NOT use it in boolean expressions. This still *can* be done in PHP because of its lazyness. But it is discouraged if it comes to more clean code. Signed-off-by: Roland Häder <roland@mxchange.org>
		
			
				
	
	
		
			49 lines
		
	
	
	
		
			1,004 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
	
		
			1,004 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| 
 | |
| function starred_init(&$a) {
 | |
| 
 | |
| 	require_once("include/threads.php");
 | |
| 
 | |
| 	$starred = 0;
 | |
| 
 | |
| 	if(! local_user())
 | |
| 		killme();
 | |
| 	if($a->argc > 1)
 | |
| 		$message_id = intval($a->argv[1]);
 | |
| 	if(! $message_id)
 | |
| 		killme();
 | |
| 
 | |
| 	$r = q("SELECT starred FROM item WHERE uid = %d AND id = %d LIMIT 1",
 | |
| 		intval(local_user()),
 | |
| 		intval($message_id)
 | |
| 	);
 | |
| 	if(! dbm::is_result($r))
 | |
| 		killme();
 | |
| 
 | |
| 	if(! intval($r[0]['starred']))
 | |
| 		$starred = 1;
 | |
| 
 | |
| 	$r = q("UPDATE item SET starred = %d WHERE uid = %d and id = %d",
 | |
| 		intval($starred),
 | |
| 		intval(local_user()),
 | |
| 		intval($message_id)
 | |
| 	);
 | |
| 
 | |
| 	update_thread($message_id);
 | |
| 
 | |
| 	// See if we've been passed a return path to redirect to
 | |
| 	$return_path = ((x($_REQUEST,'return')) ? $_REQUEST['return'] : '');
 | |
| 	if($return_path) {
 | |
| 		$rand = '_=' . time();
 | |
| 		if(strpos($return_path, '?')) $rand = "&$rand";
 | |
| 		else $rand = "?$rand";
 | |
| 
 | |
| 		goaway($a->get_baseurl() . "/" . $return_path . $rand);
 | |
| 	}
 | |
| 
 | |
| 	// the json doesn't really matter, it will either be 0 or 1
 | |
| 
 | |
| 	echo json_encode($starred);
 | |
| 	killme();
 | |
| }
 |