You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
public static function removeTags($tags)
{
if(empty($tags))
return;
BlogTag::updateAllCounters(['frequency' => 1], 'name in ("' . implode ( '"," ', $tags) . '")');
BlogTag::deleteAll('frequency <= 0');
}
получается, что при удалении тега, частотность увеличивается на 1. А должна уменьшаться:
['frequency' => -1]
Но даже в этом случае уменьшается только удин тег. Если удалить сразу два тега, то частотность уменьшится только у первого. Как решение, вызывать для каждого тега в foreach?
foreach ($tags as $tag) {
BlogTag::updateAllCounters(['frequency' => -1], 'name in ("' . $tag . '")');
}
Кстати, плюсуется тоже только один тег.
The text was updated successfully, but these errors were encountered:
Да, систему тегов не трогали с момента их создания китайцем 3 года назад.
надо исправлять.
Если вдруг исправили, можете написать тут или пуллреквестить)
В функции public static function removeTags($tags)
Вместо BlogTag::updateAllCounters(['frequency' => 1], 'name in ("' . implode ( '"," ', $tags) . '")');
Используем (с минусом)
foreach ($tags as $tag) {
BlogTag::updateAllCounters(['frequency' => -1], 'name in ("' . $tag . '")');
}
Аналогично в функции увеличения счетчика тэгов (сейчас не у компа, не помню название)
Вместо BlogTag::updateAllCounters(['frequency' => 1], 'name in ("' . implode ( '"," ', $tags) . '")');
Используем (с плюсом)
foreach ($tags as $tag) {
BlogTag::updateAllCounters(['frequency' => 1], 'name in ("' . $tag . '")');
}
Куда сложнее для меня оказалась вторая проблема с отсутствием фильтрации по тегу (нажал на тег - получил все записи с тегом). Пытался забирать из GET, но тогда почему-то это отрабатывается и в других ситуациях(
получается, что при удалении тега, частотность увеличивается на 1. А должна уменьшаться:
['frequency' => -1]
Но даже в этом случае уменьшается только удин тег. Если удалить сразу два тега, то частотность уменьшится только у первого. Как решение, вызывать для каждого тега в foreach?
Кстати, плюсуется тоже только один тег.
The text was updated successfully, but these errors were encountered: