Пример #1
0
 /**
  * Добавляет блог в БД
  *
  * @param ModuleBlog_EntityBlog $oBlog	Объект блога
  * @return int|bool
  */
 public function AddBlog(ModuleBlog_EntityBlog $oBlog)
 {
     $sql = "INSERT INTO " . Config::Get('db.table.blog') . " \n\t\t\t(user_owner_id,\n\t\t\tblog_title,\n\t\t\tblog_description,\n\t\t\tblog_type,\t\t\t\n\t\t\tblog_date_add,\n\t\t\tblog_limit_rating_topic,\n\t\t\tblog_url,\n\t\t\tblog_avatar\n\t\t\t)\n\t\t\tVALUES(?d,  ?,\t?,\t?,\t?,\t?, ?, ?)\n\t\t";
     if ($iId = $this->oDb->query($sql, $oBlog->getOwnerId(), $oBlog->getTitle(), $oBlog->getDescription(), $oBlog->getType(), $oBlog->getDateAdd(), $oBlog->getLimitRatingTopic(), $oBlog->getUrl(), $oBlog->getAvatar())) {
         return $iId;
     }
     return false;
 }
Пример #2
0
 /**
  * Проверяет может ли пользователь создавать топики в определенном блоге
  *
  * @param Entity_User $oUser
  * @param Entity_Blog $oBlog
  * @return bool
  */
 public function CanAddTopic(ModuleUser_EntityUser $oUser, ModuleBlog_EntityBlog $oBlog)
 {
     /**
      * Если юзер является создателем блога то разрешаем ему постить
      */
     if ($oUser->getId() == $oBlog->getOwnerId()) {
         return true;
     }
     /**
      * Если рейтинг юзера больше либо равен порогу постинга в блоге то разрешаем постинг
      */
     if ($oUser->getRating() >= $oBlog->getLimitRatingTopic()) {
         return true;
     }
     return false;
 }
Пример #3
0
 /**
  * Проверяет можно или нет пользователю удалять данный блог
  *
  * @param ModuleBlog_EntityBlog $oBlog    Блог
  * @param ModuleUser_EntityUser $oUser    Пользователь
  *
  * @return bool|int
  */
 public function IsAllowDeleteBlog($oBlog, $oUser)
 {
     // * Разрешаем если это админ сайта
     if ($oUser->isAdministrator() || $oUser->isModerator()) {
         return self::CAN_DELETE_BLOG_WITH_TOPICS;
     }
     // * Разрешаем владелецу, но только пустой
     if ($oBlog->getOwnerId() == $oUser->getId()) {
         return self::CAN_DELETE_BLOG_EMPTY_ONLY;
     }
     $oBlogUser = E::ModuleBlog()->GetBlogUserByBlogIdAndUserId($oBlog->getId(), $oUser->getId());
     if ($oBlogUser && $oBlogUser->IsBlogAdministrator()) {
         return self::CAN_DELETE_BLOG_EMPTY_ONLY;
     }
     return false;
 }
Пример #4
0
 /**
  * Проверяет можно или нет пользователю управлять пользователями блога
  *
  * @param  ModuleBlog_EntityBlog $oBlog	Блог
  * @param  ModuleUser_EntityUser $oUser	Пользователь
  * @return bool
  */
 public function IsAllowAdminBlog($oBlog, $oUser)
 {
     if ($oUser->isAdministrator()) {
         return true;
     }
     /**
      * Разрешаем если это создатель блога
      */
     if ($oBlog->getOwnerId() == $oUser->getId()) {
         return true;
     }
     /**
      * Явлется ли авторизованный пользователь администратором блога
      */
     $oBlogUser = $this->Blog_GetBlogUserByBlogIdAndUserId($oBlog->getId(), $oUser->getId());
     if ($oBlogUser && $oBlogUser->getIsAdministrator()) {
         return true;
     }
     return false;
 }
Пример #5
0
 /**
  * Добавляет блог в БД
  *
  * @param   ModuleBlog_EntityBlog $oBlog    - Объект блога
  *
  * @return  int|bool
  */
 public function AddBlog($oBlog)
 {
     $sql = "\n            INSERT INTO ?_blog\n            (\n                user_owner_id,\n                blog_title,\n                blog_description,\n                blog_type,\n                blog_date_add,\n                blog_limit_rating_topic,\n                blog_url,\n                blog_avatar\n            )\n            VALUES (\n                ?d,\n                ?,\n                ?,\n                ?,\n                ?,\n                ?,\n                ?,\n                ?\n            )\n        ";
     $nId = $this->oDb->query($sql, $oBlog->getOwnerId(), $oBlog->getTitle(), $oBlog->getDescription(), $oBlog->getType(), $oBlog->getDateAdd(), $oBlog->getLimitRatingTopic(), $oBlog->getUrl(), $oBlog->getAvatar());
     return $nId ? $nId : false;
 }
Пример #6
0
 /**
  * Загружает аватар в блог
  *
  * @param array $aFile	Массив $_FILES при загрузке аватара
  * @param ModuleBlog_EntityBlog $oBlog	Блог
  * @return bool
  */
 public function UploadBlogAvatar($aFile, $oBlog)
 {
     if (!is_array($aFile) || !isset($aFile['tmp_name'])) {
         return false;
     }
     $sFileTmp = Config::Get('sys.cache.dir') . func_generator();
     if (!move_uploaded_file($aFile['tmp_name'], $sFileTmp)) {
         return false;
     }
     $sPath = $this->Image_GetIdDir($oBlog->getOwnerId()) . "blogs/" . $oBlog->getId() . "/";
     $aParams = $this->Image_BuildParams('avatar');
     $oImage = $this->Image_CreateImageObject($sFileTmp);
     /**
      * Если объект изображения не создан,
      * возвращаем ошибку
      */
     if ($sError = $oImage->get_last_error()) {
         // Вывод сообщения об ошибки, произошедшей при создании объекта изображения
         // $this->Message_AddError($sError,$this->Lang_Get('error'));
         @unlink($sFileTmp);
         return false;
     }
     /**
      * Срезаем квадрат
      */
     $oImage = $this->Image_CropSquare($oImage);
     $aSize = Config::Get('module.blog.avatar_size');
     rsort($aSize, SORT_NUMERIC);
     $sSizeBig = array_shift($aSize);
     if ($oImage && ($sFileAvatar = $this->Image_Resize($sFileTmp, $sPath, "avatar_blog_{$oBlog->getUrl()}_{$sSizeBig}x{$sSizeBig}", Config::Get('view.img_max_width'), Config::Get('view.img_max_height'), $sSizeBig, $sSizeBig, false, $aParams, $oImage))) {
         foreach ($aSize as $iSize) {
             if ($iSize == 0) {
                 $this->Image_Resize($sFileTmp, $sPath, "avatar_blog_{$oBlog->getUrl()}", Config::Get('view.img_max_width'), Config::Get('view.img_max_height'), null, null, false, $aParams, $oImage);
             } else {
                 $this->Image_Resize($sFileTmp, $sPath, "avatar_blog_{$oBlog->getUrl()}_{$iSize}x{$iSize}", Config::Get('view.img_max_width'), Config::Get('view.img_max_height'), $iSize, $iSize, false, $aParams, $oImage);
             }
         }
         @unlink($sFileTmp);
         /**
          * Если все нормально, возвращаем расширение загруженного аватара
          */
         return $this->Image_GetWebPath($sFileAvatar);
     }
     @unlink($sFileTmp);
     /**
      * В случае ошибки, возвращаем false
      */
     return false;
 }