1

Тема: Как добавлять только уникальные темы на форум

Когда на форуме пользователи создают тему, то мало кто из них пользуется поиском по форуму, чтобы найти решение. А бывает, что в форму поиска пользователь просто вводит не те ключевые слова. Поэтому не найдя решения, пользователи вынуждены создавать темы с дублирующим заголовком. Думаю, что мало кому из владельцев форумов понравиться такое наполнение форума одинаковыми темами.

Чтобы предотвратить появление дублирующих или очень схожих тем на форуме можно воспользоваться следующей не сложной конструкцией:

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

Поделиться

2

Re: Как работает проверка заголовка темы на уникальность?

Когда пользователь решает создать тему с очень похожим заголовком уже существующей темы, то скрипт сравнивает заголовок на схожесть. затем выводит список похожих тем с ссылками на них, которые превысили порог уникальности.

Можно настроить свой порог уникальности. Чем ниже процент, тем чувствительней проверка.
$uniqueness = 85;

Приведенный выше скрипт используется в расширении Pan SEO Optimization

Поделиться