XF 2.0 Точке нет места в заголовке!

Статус
В этой теме нельзя размещать новые ответы.

CMTV

Проверенные
Сообщения
238
Решения
2
Реакции
1,180
Баллы
1,935
Всем привет!

Вот думаю, можно ли без создания аддона убирать точку в конце заголовка тем/ресурсов при их публикации?

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

Типо так:
1535824506577.png

Вот я и думаю, как бы без создания аддона убирать ее автоматически как только человек публикует тему.

Хотя, что-то мне подсказывает, придется все же писать аддон, так как ее надо убирать и при повторном редактировании темы :unsure:
 
Последнее редактирование:
Без аддона - никак.
Можно просто делать.
PHP:
$thread_name = trim($thread_name, '.!?');
Будет убирать точки, восклицательные и вопросительные знаки в конце и в начале названия треда.
 
Тогда уж лучше не править файлы движка, а сделать модификацию шаблона и нужным полям присвоить атрибут
 
Идея хорошая, вот только человек может и не понять, почему у него красным подсвечивается заголовок)

Хотя, вроде как во всех нормальных браузерах при неправильном вводе отображается содержимое атрибута title. Сейчас попробую.

Ок. Вопрос решен.

Идем в шаблон forum_post_thread и находим там следующий код:

HTML:
<xf:prefixinputrow
                   label="{{ phrase('title') }}"
                   prefixes="{$prefixes}"
                   type="thread"
                   prefix-value="{{ $forum.draft_thread.prefix_id ?: ($thread.prefix_id ?: $forum.default_prefix_id) }}"
                   textbox-value="{{ $thread.title ?: $forum.draft_thread.title }}"
                   textbox-class="input--title"
                   placeholder="{$forum.thread_prompt}"
                   rowtype="fullWidth noLabel"
                   autofocus="autofocus"
                   maxlength="{{ max_length('XF:Thread', 'title') }}" />

Добавляем несколько новых атрибутов:

HTML:
<xf:prefixinputrow
                label="{{ phrase('title') }}"
                prefixes="{$prefixes}"
                type="thread"
                prefix-value="{{ $forum.draft_thread.prefix_id ?: ($thread.prefix_id ?: $forum.default_prefix_id) }}"
                textbox-value="{{ $thread.title ?: $forum.draft_thread.title }}"
                textbox-class="input--title"
                pattern="(?:(?=.*\\.{2,}$).+|(?!.*[-_.]$).+)"
                oninvalid="setCustomValidity('Точки в конце заголовков не ставятся!')"
                oninput="setCustomValidity('')"
                placeholder="{$forum.thread_prompt}"
                rowtype="fullWidth noLabel"
                autofocus="autofocus"
                maxlength="{{ max_length('XF:Thread', 'title') }}" />
  • pattern="(?:(?=.*\\.{2,}$).+|(?!.*[-_.]$).+)" - этот монстр сканирует текст заголовка и выявляет запрещенную точку
  • oninvalid="setCustomValidity('Точки в конце заголовков не ставятся!')" - вывод сообщения об ошибке
  • oninput="setCustomValidity('')" - убираем сообщение об ошибке при изменении поля
1535876989833.png
 
Последнее редактирование модератором:
Все будет работать корректно. Проверяется только наличие одной точки в самом конце строки. Двое(и более)точия тоже не считаются и пройдут валидацию.
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Современный облачный хостинг провайдер | Aéza

Похожие темы

Назад
Сверху Снизу