вопрос
Здравствуйте, {custom tags="новости,шаблоны"} выведет все новости, которые содержат ключевые слова из облака тегов "новости" и "шаблоны".
Как сделать, чтобы выводило только те новости, у которых не один из этих, а оба эти тега присутствуют одновременно?
Как сделать, чтобы выводило только те новости, у которых не один из этих, а оба эти тега присутствуют одновременно?
Открыть файл /engine/modules/functions.php найти код
В {custom} использовать
if( preg_match( "#tags=['\"](.+?)['\"]#i", $param_str, $match ) ) {
Выше вставитьif (preg_match("#and-tags=['\"](.+?)['\"]#i", $param_str, $match)) {
$tempArray = [];
$match[1] = explode(',', trim($match[1]));
$oldMySQL = version_compare($db->mysql_version, '5.5.3', '<') == 1 ? false : true;
foreach ($match[1] as $value) {
$value = $db->safesql(trim($value));
if ($value) {
if ($oldMySQL) {
$tempArray[] = "tags REGEXP '[[:<:]](" . $value . ")[[:>:]]'";
} else {
$tempArray[] = "tags REGEXP '([[:punct:]]|^)(" . $value . ")([[:punct:]]|$)'";
}
}
}
if ($tempArray) {
$where[] = implode(' AND ', $tempArray);
}
unset($tempArray);
}
В {custom} использовать
and-tags="тег,кофе"