forked from GNUsocial/gnu-social
		
	The portion after StartAtomPubNewActivity would never be reached since Favorite handles that activity through ActivityHandlerPlugin nowadays. So I cleaned it up and followed a couple of paths, making stuff prettier.
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
class FavCommand extends Command 
 | 
						|
{ 
 | 
						|
    var $other = null; 
 | 
						|
 
 | 
						|
    function __construct($user, $other) 
 | 
						|
    { 
 | 
						|
        parent::__construct($user); 
 | 
						|
        $this->other = $other; 
 | 
						|
    } 
 | 
						|
 
 | 
						|
    function handle($channel) 
 | 
						|
    { 
 | 
						|
        $notice = $this->getNotice($this->other); 
 | 
						|
 
 | 
						|
        $fave            = new Fave(); 
 | 
						|
        $fave->user_id   = $this->user->id; 
 | 
						|
        $fave->notice_id = $notice->id; 
 | 
						|
        $fave->find(); 
 | 
						|
 
 | 
						|
        if ($fave->fetch()) { 
 | 
						|
            // TRANS: Error message text shown when a favorite could not be set because it has already been favorited. 
 | 
						|
            $channel->error($this->user, _('Could not create favorite: Already favorited.')); 
 | 
						|
            return; 
 | 
						|
        } 
 | 
						|
 
 | 
						|
        try {
 | 
						|
            $fave = Fave::addNew($this->user->getProfile(), $notice); 
 | 
						|
        } catch (Exception $e) {
 | 
						|
            $channel->error($this->user, $e->getMessage());
 | 
						|
            return;
 | 
						|
        }
 | 
						|
 
 | 
						|
        // @fixme favorite notification should be triggered 
 | 
						|
        // at a lower level 
 | 
						|
 
 | 
						|
        $other = User::getKV('id', $notice->profile_id); 
 | 
						|
 
 | 
						|
        if ($other && $other->id != $this->user->id && !empty($other->email)) { 
 | 
						|
            require_once INSTALLDIR.'/lib/mail.php';
 | 
						|
 | 
						|
            mail_notify_fave($other, $this->user->getProfile(), $notice);
 | 
						|
        } 
 | 
						|
 
 | 
						|
        Fave::blowCacheForProfileId($this->user->id);
 | 
						|
 
 | 
						|
        // TRANS: Text shown when a notice has been marked as favourite successfully. 
 | 
						|
        $channel->output($this->user, _('Notice marked as fave.')); 
 | 
						|
    } 
 | 
						|
}
 |