Skip to content

Commit

Permalink
10.07.2015
Browse files Browse the repository at this point in the history
- Исправлена ошибка с фильтрацией по значению допполя.
- Добавлена возможность фильтровать новости по тегам текущей новости
`&tags=thisNewsTags`.
  • Loading branch information
pafnuty committed Jul 9, 2015
1 parent 9a955b7 commit 82c64c3
Showing 1 changed file with 25 additions and 8 deletions.
33 changes: 25 additions & 8 deletions upload/engine/modules/base/blockpro.php
Original file line number Diff line number Diff line change
Expand Up @@ -449,11 +449,11 @@ class Protect{ public $status=false; public $errors=false; public $activation_ke
}

// Фильтрация НОВОСТЕЙ по их ID
if ($base->cfg['postId'] == 'this' && $_REQUEST["newsid"]) {
$base->cfg['postId'] = $_REQUEST["newsid"];
if ($base->cfg['postId'] == 'this' && $_REQUEST['newsid']) {
$base->cfg['postId'] = $_REQUEST['newsid'];
}
if ($base->cfg['notPostId'] == 'this' && $_REQUEST["newsid"]) {
$base->cfg['notPostId'] = $_REQUEST["newsid"];
if ($base->cfg['notPostId'] == 'this' && $_REQUEST['newsid']) {
$base->cfg['notPostId'] = $_REQUEST['newsid'];
}

if (($base->cfg['postId'] || $base->cfg['notPostId']) && $base->cfg['related'] == '') {
Expand Down Expand Up @@ -504,7 +504,7 @@ class Protect{ public $status=false; public $errors=false; public $activation_ke
// Если в строке подключения &xfilter=this и мы просматриваем страницу допполя, то сюда уже попадёт имя этого поля
$wheres[] = ($_currentXfield)
? $ignoreXfilters . 'xfields LIKE ' . $xfiltersArr
: $ignoreXfilters . 'autor regexp "[[:<:]](' . str_replace(',', '|', $xfiltersArr) . ')[[:>:]]"';
: $ignoreXfilters . 'p.xfields regexp "[[:<:]](' . str_replace(',', '|', $xfiltersArr) . ')[[:>:]]"';
}
}

Expand Down Expand Up @@ -544,6 +544,21 @@ class Protect{ public $status=false; public $errors=false; public $activation_ke
$_currentTag = true;
}

// Фильтрация новостей по тегам текущей новости, когда в строке подключения прописано &tags=thisNewsTags и мы просматриваем полную новость
if ((int)$_REQUEST['newsid'] > 0) {
if ($base->cfg['tags'] == 'thisNewsTags' || $base->cfg['notTags'] == 'thisNewsTags') {
$curTagNewsId = $base->db->getRow('SELECT tags FROM ?n WHERE id=?i', PREFIX . '_post', $_REQUEST['newsid']);
if (!empty($curTagNewsId['tags'])) {
if ($base->cfg['tags'] == 'thisNewsTags') {
$base->cfg['tags'] = $curTagNewsId['tags'];
}
if ($base->cfg['notTags'] == 'thisNewsTags') {
$base->cfg['notTags'] = $curTagNewsId['notTags'];
}
}
}
}

if ($base->cfg['tags'] || $base->cfg['notTags']) {
$ignoreTags = ($base->cfg['notTags']) ? 'NOT ' : '';
$tagsArr = ($base->cfg['notTags']) ? $base->cfg['notTags'] : $base->cfg['tags'];
Expand All @@ -558,7 +573,9 @@ class Protect{ public $status=false; public $errors=false; public $activation_ke
$tagNews = $base->db->getCol('SELECT news_id FROM ?n WHERE ?p', PREFIX . '_tags', $wherTag);
$tagNews = array_unique($tagNews);

$wheres[] = 'id ' . $ignoreTags . ' IN (' . implode(',', $tagNews) . ')';
if (count($tagNews)) {
$wheres[] = 'id ' . $ignoreTags . ' IN (' . implode(',', $tagNews) . ')';
}

}
}
Expand Down Expand Up @@ -588,13 +605,13 @@ class Protect{ public $status=false; public $errors=false; public $activation_ke
// Если включен режим вывода похожих новостей:
$reltedFirstShow = false;
if ($base->cfg['related']) {
if ($base->cfg['related'] == 'this' && $_REQUEST["newsid"] == '') {
if ($base->cfg['related'] == 'this' && $_REQUEST['newsid'] == '') {
echo '<span style="color: red;">Переменная related=this работает только в полной новости и не работает с ЧПУ 3 типа.</span>';

return;
}

$relatedId = ($base->cfg['related'] == 'this') ? $_REQUEST["newsid"] : $base->cfg['related'];
$relatedId = ($base->cfg['related'] == 'this') ? $_REQUEST['newsid'] : $base->cfg['related'];
$relatedRows = 'title, short_story, full_story, xfields';
$relatedIdParsed = $base->db->parse('id = ?i', $relatedId);

Expand Down

0 comments on commit 82c64c3

Please sign in to comment.