Вход Регистрация
Файл: InstantSocial/uploud/plugins/p_like/like.class.php
Строк: 121
<?php
if(!defined('VALID_CMS')) { die('ACCESS DENIED'); }
class 
Like{
  public static function 
getLikeCount($id,$target){    $inDB=cmsDatabase::getInstance();
   
$count=$inDB->rows_count('cms_like_item',"item_id='$id' AND target_id='$target'");
   return 
$count?$count:'nan';   }

  public static function 
getUserLikeCount($uid){       if(!$uid){return false;}     $inDB=cmsDatabase::getInstance();
    
$count=$inDB->rows_count('cms_like_item',"user_id=$uid");
    return 
$count?$count:false;   }

  public static function 
addLike($item,$target,$title,$href,$dep,$user_id){    $inDB=cmsDatabase::getInstance();
   if(!
preg_match('/(^article$|^blogpost$|^wallrecord$|^photo$)/',$target)){return false;}
   if(
self::isLike($item,$user_id,$target)){        $inDB->query("DELETE FROM cms_like_item WHERE item_id='$item' AND user_id='$user_id' AND target_id='$target'");

       return 
true;
       }    
$title=iconv("utf-8","windows-1251",$title);
   
$title=$inDB->escape_string(stripslashes(str_replace(array('r''n'), ' '$title)));

   
$href preg_replace ('/[^a-z0-9_./-]/i'''$href);
   if(
$item<=|| $target=="" || $title=="" || $href==""){return false;}
      if(
$target=='wallrecord'){
        if(
$dep=='user'){             $user=$inDB->get_fields('cms_users',"id='$title'",'login , nickname');
            if(!
$user){return false;};             $title='Запись на стене пользователя: '.$user['nickname'];
            
$href='users/'.$user['login'];         }elseif($dep=='club'){             $club=$inDB->get_field('cms_clubs',"id='$title'",'title');
            if(!
$club){return false;}             $href='clubs/'.$title;
            
$title='Запись на стене клуба: '.$club;
        }else {return 
false;}

      }elseif(
$target=='blogpost'){        $bloglink=$inDB->get_field('cms_blogs',"id='$dep'",'seolink');
       if(!
$bloglink){return false;}
       
$href='blogs/'.$bloglink.'/'.$href.'.html';
      }

      
$sql="INSERT INTO cms_like_item (item_id,target_id,user_id,date_time,title,href)
            VALUES ('
{$item}','{$target}','{$user_id}',NOW(),'{$title}','{$href}')";
      
$inDB->query($sql,true);
      return 
true;

  }


  public static function 
getLikePrev($item,$target,$page=false){       $inDB=cmsDatabase::getInstance();
      
$users=array();
      
$s_sql="";
      if(
$page){$s_sql="LIMIT ".(($page-1)*30).", 30";}else{$s_sql='LIMIT 6';}     if(!preg_match('/(^article$|^blogpost$|^wallrecord$|^photo$)/',$target)){return false;}
    
$sql="SELECT u.id as id, u.login as login ,u.nickname as nickname, p.imageurl as avatar, u.is_deleted as is_deleted
          FROM cms_like_item li
          LEFT JOIN cms_users u ON u.id = li.user_id
          LEFT JOIN cms_user_profiles p ON p.user_id = li.user_id
          WHERE item_id='
$item' AND target_id='$target' ORDER BY li.date_time DESC $s_sql ";
    
$result=$inDB->query($sql);
    if (
$inDB->num_rows($result)){         if (!function_exists('usrImageNOdb')){
            include_once(
$_SERVER['DOCUMENT_ROOT'].'/components/users/includes/usercore.php');
        }
        while(
$user $inDB->fetch_assoc($result)){             $user['url']=cmsUser::getProfileURL($user['login']);
            
$user['avatar']=usrImageNOdb($user['id'], 'small'$user['avatar'], $user['is_deleted']);
            
$users[]=$user;         }
    }


    return 
$users;
  }

  public static function 
getUserLike($uid,$page=1){         //no fixed bug (wall id clubs&users ident)       if(!$uid){return false;}
      if(!
$page){$page=1;}
      
$records=array();     $inDB=cmsDatabase::getInstance();
    
$sql="SELECT *
          FROM cms_like_item
          WHERE user_id='
$uid' ORDER BY date_time DESC LIMIT ".(($page-1)*15).", 15";
    
$result=$inDB->query($sql);
    if (
$inDB->num_rows($result)){        while($record $inDB->fetch_assoc($result)){         if($record['target_id']=='wallrecord'){             $record['data']=$inDB->get_field('cms_user_wall',"id='$record[item_id]'",'content');
            if(!
$record['data']){$record['data']="<b>Запись не найдена</b>";}
        }

        if(
$record['target_id']=='photo'){             $photo_url=$inDB->get_field('cms_photo_files',"id='$record[item_id]'",'file');
            if(
$photo_url){$record['data']='<img class="like_photo" src="/images/photos/small/'.$photo_url.'">';
            }else{              
$record['data']="<b>Изображение не найдено</b>";             }         }
        
$records[]=$record;        }
    }
    return 
$records;   }

  public static function 
deleteMyLike($uid,$item,$target){    $inDB=cmsDatabase::getInstance();    if(!preg_match('/(^article$|^blogpost$|^wallrecord$|^photo$)/',$target)){return false;}
   if(
$item<=0){return false;}
   
$sql="DELETE FROM cms_like_item WHERE user_id='$uid' AND item_id='$item' AND target_id='$target'";
   
$inDB->query($sql);
   return 
true;
  }

  private static function 
isLike($item_id,$user_id,$target){       $inDB=cmsDatabase::getInstance();       $result=$inDB->rows_count('cms_like_item',"item_id='$item_id' AND user_id='$user_id' AND target_id='$target'");
      return 
$result?true:false;   }




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