From e75e7b21fb84fe2e9c16eba32b513ae47c536e0d Mon Sep 17 00:00:00 2001 From: Mzhelskiy Maxim Date: Wed, 9 Sep 2015 10:47:01 +0700 Subject: [PATCH] =?UTF-8?q?=D0=92=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6=D0=BD?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D1=8C=20=D0=BF=D1=80=D0=BE=D0=BF=D1=83=D1=81?= =?UTF-8?q?=D0=BA=D0=B0=D1=82=D1=8C=20=D1=82=D0=BE=D0=BF=D0=B8=D0=BA=D0=B8?= =?UTF-8?q?=20=D0=BD=D0=B0=20=D0=B3=D0=BB=D0=B0=D0=B2=D0=BD=D0=BE=D0=B9=20?= =?UTF-8?q?=D0=B8=D0=B7=20=D0=BE=D0=BF=D1=80=D0=B5=D0=B4=D0=B5=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=BD=D1=8B=D1=85=20=D0=B1=D0=BB=D0=BE=D0=B3=D0=BE=D0=B2?= =?UTF-8?q?=20fix=20#681?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../classes/actions/ActionBlog.class.php | 9 ++++++++- .../modules/blog/entity/Blog.entity.class.php | 20 +++++++++++++++++++ .../modules/blog/mapper/Blog.mapper.class.php | 10 ++++++---- .../topic/mapper/Topic.mapper.class.php | 2 +- application/frontend/components/blog/add.tpl | 8 ++++++++ application/frontend/i18n/ru.php | 4 ++++ .../install/data/sql/patch_1.0.3_to_2.0.0.sql | 5 ++++- 7 files changed, 51 insertions(+), 7 deletions(-) diff --git a/application/classes/actions/ActionBlog.class.php b/application/classes/actions/ActionBlog.class.php index cfbebf3c..352e35be 100644 --- a/application/classes/actions/ActionBlog.class.php +++ b/application/classes/actions/ActionBlog.class.php @@ -266,6 +266,11 @@ class ActionBlog extends Action $oBlog->setDateAdd(date("Y-m-d H:i:s")); $oBlog->setLimitRatingTopic(getRequestStr('blog_limit_rating_topic')); $oBlog->setUrl(getRequestStr('blog_url')); + if ($this->oUserCurrent->isAdministrator()) { + $oBlog->setSkipIndex(getRequest('blog_skip_index') ? 1 : 0); + } else { + $oBlog->setSkipIndex(0); + } $oBlog->setAvatar(null); /** * Создаём блог @@ -380,6 +385,7 @@ class ActionBlog extends Action $oBlog->setLimitRatingTopic(getRequestStr('blog_limit_rating_topic')); if ($this->oUserCurrent->isAdministrator()) { $oBlog->setUrl(getRequestStr('blog_url')); // разрешаем смену URL блога только админу + $oBlog->setSkipIndex(getRequest('blog_skip_index') ? 1 : 0); } /** * Обновляем блог @@ -405,6 +411,7 @@ class ActionBlog extends Action */ $_REQUEST['blog_title'] = $oBlog->getTitle(); $_REQUEST['blog_url'] = $oBlog->getUrl(); + $_REQUEST['blog_skip_index'] = $oBlog->getSkipIndex(); $_REQUEST['blog_type'] = $oBlog->getType(); $_REQUEST['blog_description'] = $oBlog->getDescription(); $_REQUEST['blog_limit_rating_topic'] = $oBlog->getLimitRatingTopic(); @@ -1477,7 +1484,7 @@ class ActionBlog extends Action * Обрабатываем добавление по каждому из переданных логинов */ foreach ($aUsers as $iUserId) { - $iUserId = (int) $iUserId; + $iUserId = (int)$iUserId; if (!$iUserId) { continue; diff --git a/application/classes/modules/blog/entity/Blog.entity.class.php b/application/classes/modules/blog/entity/Blog.entity.class.php index 490dc330..33d30a61 100644 --- a/application/classes/modules/blog/entity/Blog.entity.class.php +++ b/application/classes/modules/blog/entity/Blog.entity.class.php @@ -176,6 +176,16 @@ class ModuleBlog_EntityBlog extends Entity return $this->_getDataOne('blog_url'); } + /** + * Возвращает флаг пропуска топиков на главной + * + * @return int|null + */ + public function getSkipIndex() + { + return $this->_getDataOne('blog_skip_index'); + } + /** * Возвращает полный серверный путь до аватара блога * @@ -435,6 +445,16 @@ class ModuleBlog_EntityBlog extends Entity $this->_aData['blog_url'] = $data; } + /** + * Устанавливает флаг пропуска топиков на главной + * + * @param string $data + */ + public function setSkipIndex($data) + { + $this->_aData['blog_skip_index'] = $data; + } + /** * Устанавливает полный серверный путь до аватара блога * diff --git a/application/classes/modules/blog/mapper/Blog.mapper.class.php b/application/classes/modules/blog/mapper/Blog.mapper.class.php index e73f2b77..19f935f7 100644 --- a/application/classes/modules/blog/mapper/Blog.mapper.class.php +++ b/application/classes/modules/blog/mapper/Blog.mapper.class.php @@ -43,13 +43,14 @@ class ModuleBlog_MapperBlog extends Mapper blog_date_add, blog_limit_rating_topic, blog_url, + blog_skip_index, blog_avatar ) - VALUES(?d, ?, ?, ?, ?, ?, ?, ?) + VALUES(?d, ?, ?, ?, ?, ?, ?, ?, ?) "; if ($iId = $this->oDb->query($sql, $oBlog->getOwnerId(), $oBlog->getTitle(), $oBlog->getDescription(), $oBlog->getType(), $oBlog->getDateAdd(), $oBlog->getLimitRatingTopic(), $oBlog->getUrl(), - $oBlog->getAvatar()) + $oBlog->getSkipIndex(), $oBlog->getAvatar()) ) { return $iId; } @@ -75,13 +76,14 @@ class ModuleBlog_MapperBlog extends Mapper blog_count_topic= ?d, blog_limit_rating_topic= ?f , blog_url= ?, + blog_skip_index= ?d, blog_avatar= ? WHERE blog_id = ?d "; $res = $this->oDb->query($sql, $oBlog->getTitle(), $oBlog->getDescription(), $oBlog->getType(), $oBlog->getDateEdit(), $oBlog->getCountVote(), $oBlog->getCountUser(), - $oBlog->getCountTopic(), $oBlog->getLimitRatingTopic(), $oBlog->getUrl(), $oBlog->getAvatar(), + $oBlog->getCountTopic(), $oBlog->getLimitRatingTopic(), $oBlog->getUrl(), $oBlog->getSkipIndex(), $oBlog->getAvatar(), $oBlog->getId()); return $this->IsSuccessful($res); } @@ -137,7 +139,7 @@ class ModuleBlog_MapperBlog extends Mapper } /** - * Добавляет свзяь пользователя с блогом в БД + * Добавляет связь пользователя с блогом в БД * * @param ModuleBlog_EntityBlogUser $oBlogUser Объект отношения пользователя с блогом * @return bool diff --git a/application/classes/modules/topic/mapper/Topic.mapper.class.php b/application/classes/modules/topic/mapper/Topic.mapper.class.php index b81b7366..d83c729e 100644 --- a/application/classes/modules/topic/mapper/Topic.mapper.class.php +++ b/application/classes/modules/topic/mapper/Topic.mapper.class.php @@ -604,7 +604,7 @@ class ModuleTopic_MapperTopic extends Mapper if (isset($aFilter['topic_rating']) and is_array($aFilter['topic_rating'])) { $sPublishIndex = ''; if (isset($aFilter['topic_rating']['publish_index']) and $aFilter['topic_rating']['publish_index'] == 1) { - $sPublishIndex = " or topic_publish_index = 1 ) and ( topic_skip_index = 0 "; + $sPublishIndex = " or topic_publish_index = 1 ) and ( topic_skip_index = 0 and b.blog_skip_index = 0 "; } if ($aFilter['topic_rating']['type'] == 'top') { $sWhere .= " AND ( t.topic_rating >= " . (float)$aFilter['topic_rating']['value'] . " {$sPublishIndex} ) "; diff --git a/application/frontend/components/blog/add.tpl b/application/frontend/components/blog/add.tpl index 19910fc3..82267fa8 100644 --- a/application/frontend/components/blog/add.tpl +++ b/application/frontend/components/blog/add.tpl @@ -61,6 +61,14 @@ note = $aLang.blog.add.fields.rating.note label = $aLang.blog.add.fields.rating.label} + {* Принудительный вывод топиков на главную (доступно только админам) *} + {if $oUserCurrent->isAdministrator()} + {component 'field' template='checkbox' + name = 'blog_skip_index' + note = $aLang.blog.add.fields.skip_index.note + label = $aLang.blog.add.fields.skip_index.label} + {/if} + {hook run='form_add_blog_end'} diff --git a/application/frontend/i18n/ru.php b/application/frontend/i18n/ru.php index bfe48404..1e75abcc 100644 --- a/application/frontend/i18n/ru.php +++ b/application/frontend/i18n/ru.php @@ -211,6 +211,10 @@ return array( 'label' => 'Аватар', 'error' => 'Не удалось загрузить аватар', ), + 'skip_index' => array( + 'label' => 'Не выводить топики на главную', + 'note' => 'Все топики из этого блога не смогут попадать на главную страницу', + ), ), // Сообщения 'alerts' => array( diff --git a/application/install/data/sql/patch_1.0.3_to_2.0.0.sql b/application/install/data/sql/patch_1.0.3_to_2.0.0.sql index d113e3c4..481fa17b 100644 --- a/application/install/data/sql/patch_1.0.3_to_2.0.0.sql +++ b/application/install/data/sql/patch_1.0.3_to_2.0.0.sql @@ -878,4 +878,7 @@ ALTER TABLE `prefix_topic` ADD `topic_slug` VARCHAR(500) NOT NULL DEFAULT '' AFT -- 27.03.2015 ALTER TABLE `prefix_topic` ADD `topic_date_publish` DATETIME NOT NULL AFTER `topic_date_edit_content`, ADD INDEX (`topic_date_publish`) ; -UPDATE `prefix_topic` SET `topic_date_publish` = `topic_date_add`; \ No newline at end of file +UPDATE `prefix_topic` SET `topic_date_publish` = `topic_date_add`; + +-- 09.09.2015 +ALTER TABLE `prefix_blog` ADD `blog_skip_index` TINYINT(1) NOT NULL DEFAULT '0' , ADD INDEX (`blog_skip_index`) ; \ No newline at end of file