Вход Регистрация
Файл: share/sys/classes/share.class.php
Строк: 81
<?php
/**
 * Закладки
 */
class share{
    
/**
     *
     * @var int ID закладки 
     */
    
private $id ;
    
/**
     *
     * @var array Массив для хранения данных закладки 
     */
    
private $data ;
    
/**
     *
     * @var object Объект для работы с анкетой автора 
     */
    
public $ank ;
    
/**
     *
     * @var array Массив для хранения ключей которые необходимо обновить
     */
    
private $update = array() ;
    
    public function 
__construct($id) {
        
$this->id $id ;
        
$this->data $this->getData() ; // получаем данные закладки
        
$this->ank = new user($this->id_user) ; // данные анкеты
    
}
    
/**
     * 
     * @return array возвращаем данные закладки
     */
    
private function getData(){
        
$q DB::me()->prepare("SELECT * FROM `share` WHERE `id` = ? LIMIT 1") ;
        
$q->execute(Array($this->id)) ;
        return 
$q->fetch() ;
    }
    
/**
     * 
     * @global object $dcms настройки сайта
     * @param int $web раширение скриншота для пользователей ПК
     * @param int $wap раширение скриншота для остальных
     * @return string путь к скриншоту
     */
    
public function image($web 240$wap 64){
        global 
$dcms ;
        
$size $dcms->browser_type == 'full' $web $wap ;
    if(
$screen $this->getScreen()){
            return 
$screen->getScreen($size0) ;
    }
    }
    
/**
     * 
     * @param int $size расширение скриншота
     * @return string путь к скриншоту
     */
    
private function getScreen(){
    
$file_name $this->id '.jpeg' ;
    
$file_path SHARE_SCREEN $this->id_user ;
    
$file_dir = new files($file_path);
        if(!
$file_dir->is_file($file_name)){
            
$file_path SHARE_SCREEN ;
            
$file_name 'default.png' ;
            
$this->copyScreen() ;
        }
        
        return 
$file = new files_file($file_path$file_name) ;
    }
    
/**
     * копируем скриншот если его нету
     */
    
private function copyScreen(){
        if(!
is_dir(SHARE_SCREEN $this->id_user)){
            
filesystem::mkdir(SHARE_SCREEN $this->id_user) ;
        }
        @
copy('http://mini.s-shot.ru/1024x768/JPEG/1024/Z100/?' $this->urlSHARE_SCREEN $this->id_user '/' $this->id '.jpeg') ;
    }
    
/**
     * 
     * @return boolean удаляем скриншот
     */
    
private function deleteScreen(){
        
$screen $this->getScreen() ;
        if(
$screen->runame == 'default.png')
            return 
false ;
        return 
$screen->delete() ;
    }
    
/**
     * Обновляем скриншот
     */
    
public function updateScreen(){
        
$this->deleteScreen() ; // удалили скриншот
        
$this->copyScreen() ; // загрузили новый
    
}
    
/**
     * обновляем данные закладки
     */
    
private function update(){
        foreach(
$this->update AS $k => $v){
            
$q DB::me()->prepare("UPDATE `share` SET `$k` = ? WHERE `id` = ? LIMIT 1") ;
            
$q->execute(Array($v$this->id)) ;
        }
    }
    
/**
     * Разрешает доступ над управлением закладки
     * @global object $user
     */
    
public function onlyMy(){
        global 
$user ;
        if(!
$this->id)
            return 
false ;
        if(
$this->id_user != $user->id)
            return 
false ;
        return 
true ;
    }
    
/**
     * Удаляем закладку
     */
    
public function delete(){
        
$this->deleteScreen() ; // удалили скриншот
        
$q DB::me()->prepare("DELETE FROM `share` WHERE `id` = ? LIMIT 1") ;
        
$q->execute(Array($this->id)) ;
    }
    public function 
__set($k$v){
        if(isset(
$this->data[$k])){
            
$this->update[$k] = $v ;
            return 
$this->data[$k] = $v ;
        }
    }
    public function 
__get($name){
        return 
$this->data[$name] ;
    }
    public function 
__destruct() {
        
$this->update() ;
    }
}
Онлайн: 0
Реклама