1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-05-17 00:08:17 +03:00

добавлена проверка URL и Title блога на уже существующие при его создании

This commit is contained in:
Mzhelskiy Maxim 2008-10-16 15:40:57 +00:00
parent 755cb02eba
commit 9c8c9546ba
4 changed files with 44 additions and 3 deletions

View file

@ -238,7 +238,7 @@ class ActionBlog extends Action {
/**
* Запускаем проверку корректности ввода полей при редактировании блога
*/
if (!$this->checkBlogFields()) {
if (!$this->checkBlogFields($oBlog)) {
return false;
}
$oBlog->setTitle(getRequest('blog_title'));
@ -279,7 +279,7 @@ class ActionBlog extends Action {
*
* @return unknown
*/
protected function checkBlogFields() {
protected function checkBlogFields($oBlog=null) {
/**
* Проверяем только если была отправлена форма с данными
*/
@ -296,6 +296,15 @@ class ActionBlog extends Action {
$this->Message_AddError('Название блога должно быть от 2 до 200 символов','Ошибка');
$bOk=false;
}
/**
* Проверяем есть ли уже блог с таким названием
*/
if ($oBlogExists=$this->Blog_GetBlogByTitle(getRequest('blog_title'))) {
if (!$oBlog or $oBlog->getId()!=$oBlogExists->getId()) {
$this->Message_AddError('Блог с таким названием уже существует','Ошибка');
$bOk=false;
}
}
/**
* Проверяем есть ли заголовок топика, с заменой всех пробельных символов на "_"
*/
@ -312,6 +321,15 @@ class ActionBlog extends Action {
$this->Message_AddError('URL блога должен отличаться от: '.join(',',$this->aBadBlogUrl),'Ошибка');
$bOk=false;
}
/**
* Проверяем есть ли уже блог с таким URL
*/
if ($oBlogExists=$this->Blog_GetBlogByUrl(getRequest('blog_url'))) {
if (!$oBlog or $oBlog->getId()!=$oBlogExists->getId()) {
$this->Message_AddError('Блог с таким URL уже существует','Ошибка');
$bOk=false;
}
}
/**
* Проверяем есть ли описание блога
*/

View file

@ -73,6 +73,22 @@ class Blog extends Module {
}
return $data;
}
/**
* Получить блог по названию
*
* @param unknown_type $sTitle
* @return unknown
*/
public function GetBlogByTitle($sTitle) {
if (false === ($data = $this->Cache_Get("blog_url_{$sTitle}"))) {
if ($data = $this->oMapperBlog->GetBlogByTitle($sTitle)) {
$this->Cache_Set($data, "blog_url_{$sTitle}", array("blog_update_{$data->getId()}",'blog_new'), 60*5);
} else {
$this->Cache_Set($data, "blog_url_{$sTitle}", array('blog_update','blog_new'), 60*5);
}
}
return $data;
}
/**
* Создаёт персональный блог
*

View file

@ -154,7 +154,13 @@ class Mapper_Blog extends Mapper {
return null;
}
public function GetBlogByTitle($sTitle) {
$sql = "SELECT * FROM ".DB_TABLE_BLOG." WHERE blog_title = ? ";
if ($aRow=$this->oDb->selectRow($sql,$sTitle)) {
return new BlogEntity_Blog($aRow);
}
return null;
}
public function GetBlogVote($sBlogId,$sUserId) {
$sql = "SELECT * FROM ".DB_TABLE_BLOG_VOTE." WHERE blog_id = ?d and user_voter_id = ?d ";

View file

@ -140,6 +140,7 @@ ALTER TABLE `prefix_user` ADD `user_settings_notice_reply_comment` TINYINT( 1 )
ALTER TABLE `prefix_blog` ADD INDEX ( `blog_title` )