Файл: InstantSocial/uploud/plugins/p_like/plugin.php
Строк: 107
<?php
class p_like extends cmsPlugin {
// ==================================================================== //
public function __construct(){
parent::__construct();
require_once 'like.class.php';
$this->info['plugin'] = 'p_like';
$this->info['title'] = 'Мне нравится';
$this->info['description'] = 'Позволяет пользователям отмечать интересные материалы';
$this->info['author'] = 'CHV-VV';
$this->info['version'] = '1.1';
$this->info['tab'] = 'Мне понравилось';
$this->events[] = 'GET_ARTICLE';
$this->events[] = 'GET_POST';
$this->events[] = 'GET_WALL_POSTS';
$this->events[] = 'GET_PHOTO';
$this->events[] = 'USER_PROFILE';
}
// ==================================================================== //
public function install(){
$sql="CREATE TABLE `cms_like_item` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`item_id` int(11) NOT NULL,
`target_id` varchar(20) NOT NULL,
`user_id` int(11) NOT NULL,
`date_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`title` varchar(255) NOT NULL,
`href` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=59 DEFAULT CHARSET=cp1251" ;
if($this->inDB->isTableExists('cms_like_item')){
$this->inDB->query("DROP TABLE cms_like_item");
$this->inDB->query($sql);
}else{
$this->inDB->query($sql);
}
return parent::install();
}
// ==================================================================== //
public function upgrade(){
return parent::upgrade();
}
// ==================================================================== //
public function execute($event, $item){
parent::execute();
$this->addHeads($event);
switch ($event){
case 'GET_ARTICLE':
$item['content'].=$this->printLike($item['id'],'article',$item['title'],$item['seolink'].'.html');
break;
case 'GET_POST':
$item['content_html'].=$this->printLike($item['id'],'blogpost',$item['title'],$item['seolink'],$item['blog_id']);
break;
case 'GET_WALL_POSTS':
$records=array();
foreach($item as $rec){
$key=sizeof($records);
$records[$key]=$rec;
$records[$key]['content'].=$this->printLike($records[$key]['id'],'wallrecord',$records[$key]['user_id'],$records[$key]['id'],$records[$key]['usertype']);
}
$item=$records;
unset($records);
break;
case 'GET_PHOTO':
$item['description'].=$this->printLike($item['id'],'photo',$item['title'],'photos/photo'.$item['id'].'.html');
break;
case 'USER_PROFILE':
require_once 'tpl.class.php';
$tpl= new TPL();
$smarty=$tpl->init();
$uid=$item['id'];
$inUser=cmsUser::getInstance();
if($inUser->id==$uid){$isEdit=true;}else{$isEdit=false;};
$records=Like::getUserlike($uid,1);
$count=Like::getUserLikeCount($uid);
ob_start();
$smarty->assign('is_edit',$isEdit);
$smarty->assign('pageselect',cmsPage::getPagebar($count,1,15,"javascript:selectpage('$uid','%page%')"));
$smarty->assign('records',$records);
$smarty->display('user_like_view.tpl');
$html=ob_get_clean();
return $html;
break;
}
return $item;
}
// ==================================================================== //
private function addHeads($event){
if($event!='USER_PROFILE'){
echo '<link href="/plugins/p_like/css/style.css" rel="stylesheet" type="text/css" />';
echo '<script type="text/javascript" src="/plugins/p_like/js/jquery.qtip.js"></script>';
echo '<script type="text/javascript" src="/plugins/p_like/js/jquery.simplemodal.js"></script>';
echo '<script type="text/javascript" src="/plugins/p_like/js/p_like.js"></script>';
}else{
echo '<script type="text/javascript" src="/plugins/p_like/js/user_like.js"></script>';
}
}
private function printLike($item_id,$target_id,$title,$href,$dep=''){
$count=Like::getLikeCount($item_id,$target_id);
if($count=='nan'){$count='';}
$inUser=cmsUser::getInstance();
$button="<div class='like_button'><span id='item_$item_id'>$count</span><div class='like_href'><a count='$count' item='$item_id' target_id='$target_id' href="javascript:addlike('$item_id','$target_id','$title','$href','$dep')">Мне нравится</a></div></div>";
return $button;
}
// ==================================================================== //
}
?>