Проблема с тегами на новом экземпляре Discourse?

Мой новый экземпляр Discourse (в настоящее время на версии 38950840e0) работает всего несколько дней. При включении тегов сегодня я быстро столкнулся с рядом проблем.

Когда я создаю новую тему, я могу добавить тег, и всё работает как положено. Однако, когда я пытаюсь отредактировать существующую тему, чтобы добавить тег, или создать новый тег, ничего не происходит. Я вижу, что тег отправляется в сетевом запросе типа PUT, но в логах базы данных я не вижу никаких записей в таблицах topic_tags или tags.

Также я заметил, что иногда теги ведут на /tag/<tagname>, а иногда на /tags/<tagname>. Первый вариант работает, второй — нет.

У меня установка почти по умолчанию с минимумом плагинов — только плагин multilingual, который, насколько я понимаю, затрагивает функционал тегов? В настройках администратора я почти ничего не менял; в отношении тегов я лишь включил опцию «Включить теги для тем?» и больше ничего.

Форум работает, но в данный момент установлен в режим приватности. Я могу предоставить ссылку-приглашение, если кто-то захочет посмотреть…

1 лайк

Маршрут для тегов недавно был переименован с tags на tag. Похоже, что проблема вызвана плагином.

Попробуйте перейти в логи ошибок вашего сайта (они находятся в разделе Администрирование / Логи / Логи ошибок), а затем пометить тему тегом. Возможно, это спровоцирует запись в логах. Если это произойдет или если вы увидите старые записи логов, касающиеся тегов, посмотрите, что отображается на вкладках «info» и «backtrace» для этой записи лога.

Вкладка «backtrace» может предоставить информацию о причине проблемы. Она будет выглядеть примерно так:

2 лайка

Спасибо за ответ. В логах ничего нет. Единственное, что я могу предположить, это то, что что-то из Multilingual Plugin 🌐 ещё не обновлено с учётом последних изменений?

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

1 лайк

На будущее, на случай если кому-то это пригодится: я вынес очень короткий фрагмент из многоязычного плагина в отдельный плагин, и для моего случая это работает отлично:

// assets/javascripts/discourse/initializers/custom-locale-initializer.js.es6

import { withPluginApi } from 'discourse/lib/plugin-api';
import { default as discourseComputed } from "discourse-common/utils/decorators";

export default {
  name: 'custom_locale',
  initialize(container) {
    const siteSettings = container.lookup("site-settings:main");

    if (!siteSettings.custom_locale_disable_others) return;
    
    withPluginApi('0.11.1', api => {
      api.modifyClass('controller:preferences/interface', {
        @discourseComputed()
        availableLocales() {
            return [
                { value: 'en', name: 'English' },
                { value: 'cust', name: 'My Custom Locale'},
            ]
        }
      });
    });
  }
}

Теги снова работают как ожидалось, поэтому могу подтвердить, что проблема в плагине. (Пытался редактировать различные ссылки с /tags на /tag, но без успеха.)

2 лайка

Вы имеете в виду «с /tags на /tag…»? :slightly_smiling_face:

2 лайка