1

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

2

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

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

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

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

3 (edited by eduard-kuznetsov 2020.03.24 20:30)

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

Здравствуйте. Хотел добавить этот код с помощью AnyCode Hook Manager, но не получилось. Из-за него расширение и ставил вообще то. Вы пишите, что он используется в Pan Seo, т.е. проверка уже осуществляется, если этот модуль установлен? Или это независимый скрипт? И без Hook Manager его никак нельзя пристроить? В manifest.xml прописать? Или для новичка это нереально? Если можно, посоветуйте, пожалуйста, что-нибудь аналогичное для проверки уникальности.

4

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

А в pan seo не работает что ли?

1

5

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

Вот я и поинтересовался, нужен ли этот скрипт, если pan seo уже установлен. Подумал, что дополнительно нужно добавить.

6

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

Ну вот смотрите:
https://punbb.info/uploads/images/2020/03/a33dd1fdbc89fe265b08c0f994f52b35.jpg
меняете цифру на свою. Чем меньше значение, тем чувствительнее сравнение.
Но это работает только для сравнения заголовков темы, а не сообщений

1