Вход Регистрация
Файл: upload/module/poke/include/service/callback.class.php
Строк: 349
<?php
/**
 * [PHPFOX_HEADER]
 */

defined('PHPFOX') or exit('NO DICE!');

/**
 * 
 * 
 * @copyright        [PHPFOX_COPYRIGHT]
 * @author          Miguel Espinoza
 * @package         Phpfox_Service
 * @version         $Id: service.class.php 67 2009-01-20 11:32:45Z Raymond_Benc $
 */
class Poke_Service_Callback extends Phpfox_Service 
{
    
/**
     * Class constructor
     */    
    
public function __construct()
    {    
        
    }
    
    public function 
getNotification($aItem)
    {        
        return array(
            
'link' => Phpfox::getLib('url')->makeUrl($aItem['user_name']),
            
'message' => Phpfox::getPhrase('poke.full_name_has_poked_you', array('full_name' => $aItem['full_name']))
        );    
    }
    public function 
getNotificationLike($aNotification)
    {
        
$aRow $this->database()->select('b.poke_id, u.user_id, u.gender, u.user_name, u.full_name, u2.full_name AS to_full_name')    
            ->
from(Phpfox::getT('poke_data'), 'b')
            ->
join(Phpfox::getT('user'), 'u''u.user_id = b.user_id')
            ->
join(Phpfox::getT('user'), 'u2''u2.user_id = b.to_user_id')
            ->
where('b.poke_id = ' . (int) $aNotification['item_id'])
            ->
execute('getSlaveRow');        

        if (!isset(
$aRow['poke_id']))
        {            
            return 
false;
        }
        
        
$sUsers Phpfox::getService('notification')->getUsers($aNotification);
        
$sTitle Phpfox::getLib('parse.output')->shorten($aRow['to_full_name'], Phpfox::getParam('notification.total_notification_title_length'), '...');
        
        
$sPhrase '';
        if (
$aNotification['user_id'] == $aRow['user_id'] && !isset($aNotification['extra_users']))
        {
            
$sPhrase Phpfox::getPhrase('poke.users_liked_gender_poke_for_title', array('users' => $sUsers'gender' => Phpfox::getService('user')->gender($aRow['gender'], 1), 'title' => $sTitle));    
        }
        elseif (
$aRow['user_id'] == Phpfox::getUserId())        
        {
            
$sPhrase Phpfox::getPhrase('poke.users_liked_your_poke_for_title', array('users' => $sUsers'title' => $sTitle));
        }
        else 
        {
            
$sPhrase Phpfox::getPhrase('poke.users_liked_span_class_drop_data_user_row_full_name_s_span_for_title', array('users' => $sUsers'row_full_name' => $aRow['full_name'], 'title' => $sTitle));
        }
        
        return array(
            
'link' => Phpfox::getLib('url')->makeUrl($aRow['user_name'], array('poke-id' => $aRow['poke_id'])),
            
'message' => $sPhrase,
            
'icon' => Phpfox::getLib('template')->getStyle('image''activity.png''blog')
        );
    }    
    
    public function 
getNotificationComment($aNotification)
    {
        
$aRow $this->database()->select('b.poke_id, u.user_id, u.gender, u.user_name, u.full_name, u2.full_name AS to_full_name')    
            ->
from(Phpfox::getT('poke_data'), 'b')
            ->
join(Phpfox::getT('user'), 'u''u.user_id = b.user_id')
            ->
join(Phpfox::getT('user'), 'u2''u2.user_id = b.to_user_id')
            ->
where('b.poke_id = ' . (int) $aNotification['item_id'])
            ->
execute('getSlaveRow');        

        if (!isset(
$aRow['poke_id']))
        {            
            return 
false;
        }
        
        
$sUsers Phpfox::getService('notification')->getUsers($aNotification);
        
$sTitle Phpfox::getLib('parse.output')->shorten($aRow['to_full_name'], Phpfox::getParam('notification.total_notification_title_length'), '...');
        
        
$sPhrase '';
        if (
$aNotification['user_id'] == $aRow['user_id'] && !isset($aNotification['extra_users']))
        {
            
$sPhrase Phpfox::getPhrase('poke.users_commented_on_gender_poke_for_title', array('users' => $sUsers'gender' => Phpfox::getService('user')->gender($aRow['gender'], 1), 'title' => $sTitle));    
        }
        elseif (
$aRow['user_id'] == Phpfox::getUserId())        
        {
            
$sPhrase Phpfox::getPhrase('poke.users_commented_on_your_poke_for_title', array('users' => $sUsers'title' => $sTitle));
        }
        else 
        {
            
$sPhrase Phpfox::getPhrase('poke.users_commented_on_span_class_drop_data_user_row_full_name_s_span_for_title', array('users' => $sUsers'row_full_name' => $aRow['full_name'], 'title' => $sTitle));
        }
        
        return array(
            
'link' => Phpfox::getLib('url')->makeUrl($aRow['user_name'], array('poke-id' => $aRow['poke_id'])),
            
'message' => $sPhrase,
            
'icon' => Phpfox::getLib('template')->getStyle('image''activity.png''blog')
        );        
    }    

    public function 
getActivityFeed($aItem)
    {        
        
$aRow $this->database()->select('uc.*, l.like_id AS is_liked, uc.total_like, uc.total_comment, u.user_name, u.full_name')
                ->
from(Phpfox::getT('poke_data'), 'uc')
                ->
leftJoin(Phpfox::getT('like'), 'l''l.type_id = 'poke' AND l.item_id = uc.poke_id AND l.user_id = ' Phpfox::getUserId())                
                ->
join(Phpfox::getT('user'), 'u''u.user_id = uc.to_user_id')
                ->
where('uc.poke_id = ' . (int) $aItem['item_id'])
                ->
execute('getSlaveRow');
        
        if (empty(
$aRow))
        {
            return 
false;        
        }
        
        
$sLink Phpfox::getLib('url')->makeUrl($aItem['user_name'], array('poke-id' => $aRow['poke_id']));
        
$aReturn = array(
            
'feed_link' => $sLink,
            
'feed_title' => '',
            
'feed_info' => Phpfox::getPhrase('poke.poked_a_href_link_full_name_a', array('link' => Phpfox::getLib('url')->makeUrl($aRow['user_name']), 'full_name' => $aRow['full_name'])),
            
'total_comment' => $aRow['total_comment'],            
            
'feed_total_like' => $aRow['total_like'],
            
'feed_is_liked' => isset($aRow['is_liked']) ? $aRow['is_liked'] : false,
            
'feed_icon' => Phpfox::getLib('image.helper')->display(array('theme' => 'misc/user.png''return_url' => true)),
            
'time_stamp' => $aItem['time_stamp'],
            
'enable_like' => true,
            
'comment_type_id' => 'poke',
            
'like_type_id' => 'poke'
        
);
        ((
$sPlugin Phpfox_Plugin::get('poke.component_service_callback_getactivityfeed__1')) ? eval($sPlugin) : false);
        return 
$aReturn;
        
    }

    public function 
addLike($iItemId$bDoNotSendEmail false)
    {
        
$aRow $this->database()->select('pd.poke_id, pd.user_id, u.user_name, u.user_name AS to_user_name, u2.full_name')
            ->
from(Phpfox::getT('poke_data'), 'pd')
            ->
join(Phpfox::getT('user'), 'u''u.user_id = pd.user_id')
            ->
join(Phpfox::getT('user'), 'u2''u2.user_id = pd.to_user_id')
            ->
where('pd.poke_id = ' . (int) $iItemId)
            ->
execute('getSlaveRow');
            
        if (!isset(
$aRow['poke_id']))
        {
            return 
false;
        }
        
        
$this->database()->updateCount('like''type_id = 'poke' AND item_id = ' . (int) $iItemId '''total_like''poke_data''poke_id = ' . (int) $iItemId);    
        
        if (!
$bDoNotSendEmail)
        {
            
$sLink Phpfox::getLib('url')->makeUrl($aRow['user_name'], array('poke-id' => $aRow['poke_id']));
            
$sLink2 Phpfox::getLib('url')->makeUrl($aRow['to_user_name']);
            
            
Phpfox::getLib('mail')->to($aRow['user_id'])
                ->
subject(array('poke.full_name_liked_one_of_your_pokes', array('full_name' => Phpfox::getUserBy('full_name'))))
                ->
message(array('poke.full_name_liked_when_you_poked_row_full_name', array('full_name' => Phpfox::getUserBy('full_name'), 'link' => $sLink'row_full_name' => $aRow['full_name'])))
                ->
notification('like.new_like')
                ->
send();
                    
            
Phpfox::getService('notification.process')->add('poke_like'$aRow['poke_id'], $aRow['user_id']);                
        }
    }
    
    public function 
deleteLike($iItemId)
    {
        
$this->database()->updateCount('like''type_id = 'poke' AND item_id = ' . (int) $iItemId '''total_like''poke_data''poke_id = ' . (int) $iItemId);    
    }        
    
    public function 
getAjaxCommentVar()
    {
        return 
null;
    }
    
    public function 
getCommentItem($iId)
    {        
        
$aRow $this->database()->select('poke_id AS comment_item_id, f.user_id AS comment_user_id')
                ->
join(Phpfox::getT('feed'), 'f''f.item_id = cf.poke_id')
                ->
from(Phpfox::getT('poke_data'), 'cf')
                ->
where('cf.poke_id = ' . (int) $iId)
                ->
execute('getSlaveRow');

        
$aRow['privacy_comment'] = '0';
        
$aRow['comment_view_id'] = '0';

        if (!
Phpfox::getService('comment')->canPostComment($aRow['comment_user_id'], $aRow['privacy_comment']))
        {
            
Phpfox_Error::set(Phpfox::getPhrase('poke.unable_to_post_a_comment_on_this_item_due_to_privacy_settings'));

            unset(
$aRow['comment_item_id']);
        }

        return 
$aRow;
    }
    
    public function 
addComment($aVals$iUserId null$sUserName null)
    {
        
$aRow $this->database()->select('cf.poke_id, u.full_name, u.gender, u.user_id, u.user_name')
                ->
from(Phpfox::getT('poke_data'), 'cf')
                ->
join(Phpfox::getT('user'), 'u''u.user_id = cf.user_id')
                ->
where('cf.poke_id = ' . (int) $aVals['item_id'])
                ->
execute('getSlaveRow');
        
        if (!isset(
$aRow['poke_id']))
        {
            return 
false;
        }

        
// Update the post counter if its not a comment put under moderation or if the person posting the comment is the owner of the item.
        
if (empty($aVals['parent_id']))
        {
            
$iCount $this->database()->select('total_comment')
                    ->
from(Phpfox::getT('poke_data'))
                    ->
where('poke_id = ' . (int) $aVals['item_id'])
                    ->
execute('getSlaveField');

            
$this->database()->update(Phpfox::getT('poke_data'), array('total_comment' => ($iCount 1)), 'poke_id = ' . (int)$aRow['poke_id']);
        }

        
// Send the user an email
        
$sLink Phpfox::getLib('url')->makeUrl($aRow['user_name'], array('poke-id' => $aRow['poke_id']));

        
Phpfox::getService('comment.process')->notify(array(
                    
'user_id' => $aRow['user_id'],
                    
'item_id' => $aRow['poke_id'],
                    
'owner_subject' => Phpfox::getPhrase('poke.full_name_commented_on_your_poke', array('full_name' => Phpfox::getUserBy('full_name'))),
                    
'owner_message' => Phpfox::getPhrase('poke.full_name_commented_on_your_poke_to_see_the_comment_thread_follow_the_link_below_a_href_link_link_a', array('full_name' => Phpfox::getUserBy('full_name'), 'link' => $sLink)),
                    
'owner_notification' => 'comment.add_new_comment',
                    
'notify_id' => 'poke_comment',
                    
'mass_id' => 'poke_comment',
                    
'mass_subject' => (Phpfox::getUserId() == $aRow['user_id'] ? Phpfox::getPhrase('poke.full_name_commented_on_gender_poke', array('full_name' => Phpfox::getUserBy('full_name'), 'gender' => Phpfox::getService('user')->gender($aRow['gender'], 1))) : Phpfox::getPhrase('poke.full_name_commented_on_row_full_name_s_poke', array('full_name' => Phpfox::getUserBy('full_name'), 'row_full_name' => $aRow['full_name']))),
                    
'mass_message' => (Phpfox::getUserId() == $aRow['user_id'] ? Phpfox::getPhrase('poke.full_name_commented_on_gender_poke_to_see_the_comment_thread', array('full_name' => Phpfox::getUserBy('full_name'), 'gender' => Phpfox::getService('user')->gender($aRow['gender'], 1), 'link' => $sLink)) : Phpfox::getPhrase('poke.full_name_commented_on_row_full_name_s_poke_message', array('full_name' => Phpfox::getUserBy('full_name'), 'row_full_name' => $aRow['full_name'], 'link' => $sLink)))
                )
        );
    }
    
    public function 
getProfileSettings()
    {
        return array(
            
'poke.can_send_poke' => array(
                
'phrase' => Phpfox::getPhrase('poke.can_send_pokes'),
                
'anyone' => false
            
)
        );        
    }    
    
    
/**
     * If a call is made to an unknown method attempt to connect
     * it to a specific plug-in with the same name thus allowing 
     * plug-in developers the ability to extend classes.
     *
     * @param string $sMethod is the name of the method
     * @param array $aArguments is the array of arguments of being passed
     */
    
public function __call($sMethod$aArguments)
    {
        
/**
         * Check if such a plug-in exists and if it does call it.
         */
        
if ($sPlugin Phpfox_Plugin::get('poke.service_callback__call'))
        {
            eval(
$sPlugin);
            return;
        }
            
        
/**
         * No method or plug-in found we must throw a error.
         */
        
Phpfox_Error::trigger('Call to undefined method ' __CLASS__ '::' $sMethod '()'E_USER_ERROR);
    }    
}

?>
Онлайн: 1
Реклама