Topic: Как добавлять только уникальные темы на форум
Когда на форуме пользователи создают тему, то мало кто из них пользуется поиском по форуму, чтобы найти решение. А бывает, что в форму поиска пользователь просто вводит не те ключевые слова. Поэтому не найдя решения, пользователи вынуждены создавать темы с дублирующим заголовком. Думаю, что мало кому из владельцев форумов понравиться такое наполнение форума одинаковыми темами.
Чтобы предотвратить появление дублирующих или очень схожих тем на форуме можно воспользоваться следующей не сложной конструкцией:
uniqueness
if($subject) {
$query = array(
'SELECT' => 'id, subject',
'FROM' => 'topics',
);
$result = $forum_db->query_build($query) or error(__FILE__, __LINE__);
$res = array();
while($fetch_subject = $forum_db->fetch_assoc($result) )
{
$res[] = $fetch_subject;
$row = $fetch_subject['subject'];
similar_text(utf8_strtolower($row), utf8_strtolower($subject), $part);
$similarity_part = floor($part);
//порог уникальности заголовка в процентах
$uniqueness = 85;
if ($similarity_part > $uniqueness ) {
$errors[] = 'Неуникальность заголовка превысила '.$similarity_part.' % в теме <a href="'.forum_link($forum_url['topic'], $fetch_subject['id']).'" target="_blank">'.$fetch_subject['subject'].'</a>';
}
}
}
Весь этот код вешается на хук
($hook = get_hook('po_end_validation')) ? eval($hook) : null;
в файле post.php