Возможность создания частных шаблонов

С момента запуска нового плагина Discourse Templates мне очень нравится новая возможность: шаблоны ответов хранятся в темах внутри выделенной категории шаблонов. Это упрощает просмотр и редактирование шаблонов, а также позволяет при необходимости фильтровать, тегировать, редактировать и сортировать существующие шаблоны.

Однако на данный момент можно выбрать только одну категорию шаблонов, поэтому все шаблоны сайта доступны всем пользователям, имеющим доступ к этой категории.

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

Запрос на добавление функции

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

  1. Возможность создания личного приватного шаблона, к которому может получить доступ и который может просматривать только пользователь, создавший этот шаблон.
  2. Возможность создания приватных шаблонов, доступных двум или более пользователям сайта, но скрытых от всех остальных.

Примеры использования

Несколько сценариев применения в различных ситуациях:

  • Пользователь хочет создать личные шаблоны для себя, но не хочет засорять основную категорию шаблонов нерелевантными для всего сайта шаблонами.
    • Пример: Компания Алекса использует Discourse как платформу поддержки, и они хотят хранить ответы на все возможные вопросы клиентов в виде шаблонов. Даже если шаблоны никогда не будут использованы, Алекс сможет обращаться к своим личным шаблонам в будущем для решения связанных вопросов клиентов или для освежения знаний о чём-то, что давно не встречалось — даже если эти шаблоны никогда не будут применены.
    • Пример: Алекс использует Discourse как форум сообщества для продуктов и услуг, которые он продаёт на своём основном (не Discourse) сайте. Алекс создаёт шаблон для темы, которую он публикует на своём сайте Discourse каждую пятницу, чтобы повысить вовлечённость.
  • Общие шаблоны для всей команды, но не для всей компании.
    • Пример: Алекс работает разработчиком программного обеспечения, и его команда часто выполняет несколько различных наборов задач внутри компании. Команда разработки программного обеспечения имеет шаблон со списком контрольных пунктов или другими действиями для каждого набора задач, которые должны быть выполнены каждым членом команды.
    • Пример: Алекс управляет командой, использующей Discourse как платформу поддержки. Алекс создаёт шаблоны, доступные только команде поддержки, чтобы помочь команде быстрее отвечать клиентам.
  • Два или более члена команды хотят иметь доступ к одним и тем же шаблонам, но не хотят делиться ими со всей командой.
    • Пример: Алекс работает в поддержке, а Джон — в разработке программного обеспечения. Их компания использует Discourse для общения с клиентами. Джон только что исправил ошибку, поэтому он решает создать шаблон, объясняющий внесённые им изменения в программное обеспечение компании для исправления ошибки, а затем делится этим шаблоном с Алексом, чтобы тот мог проинформировать клиентов об обновлениях. После уведомления всех клиентов шаблон может быть удалён.

Я уверен, что существует множество других сценариев использования, не упомянутых здесь.

Необходимость баланса

Учитывая всё вышесказанное, независимо от того, какие функции существуют для публикации или скрытия шаблонов, пользователям сайта всё равно нужно решать: «С кем должен быть доступен этот шаблон?»

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

А что насчёт тегов?

С помощью плагина Discourse Templates мы теперь можем помечать каждый шаблон тегом, чтобы облегчить сортировку и поиск шаблонов в нужный момент. Так зачем же нам вообще нужны приватные шаблоны для отдельного пользователя или команды? Почему команда поддержки не может просто пометить все свои шаблоны тегом #support и забыть об этом? Почему Алекс не может пометить все свои личные шаблоны тегом #alex-templates и продолжить работу?

Короткий ответ: Нет причин, по которым такой подход не работал бы. Пользователи могут просто пометить шаблоны тегами, а затем искать их при необходимости.

Развёрнутый ответ (который на самом деле представляет собой ещё больше вопросов): Когда люди используют шаблоны, они пролистывают все их или просто ищут нужные? Если вы просто ищете шаблоны, количество шаблонов, через которые вы ищете, вероятно, не имеет большого значения — вы просто ищете и находите то, что нужно. Однако, если вы пролистываете все возможные шаблоны, которые можно использовать, это может занять много времени в зависимости от количества шаблонов на вашем сайте.

А что, если ваш сайт огромный? Если на вашем сайте 1000 шаблонов, но вы используете только 10 из них, зачем вам нужно видеть все остальные шаблоны? Разве они не будут просто лишним шумом для вас? Возможно, это немного преувеличено, но всё же существует порог, когда шаблонов становится слишком много для определённой группы людей или даже для всего сайта.

Кроме того, что делать, если вы не знаете, что искать? Что, если вы только начали модерировать определённый сайт Discourse и не знаете, как называются все шаблоны, а их 100? Что, если вы ищете шаблон «введение на сайт», но кто-то назвал искомый шаблон «приветствие» (или в подобной ситуации), и ваш поиск ничего не находит?

Здесь нужно учесть множество вопросов, и однозначного правильного ответа может не быть.

Похоже, что другие пользователи здесь тоже обдумывают эту тему. Хотя речь шла об устаревшем плагине Canned Replies, изложенные идеи всё ещё применимы здесь:

Возможные способы реализации

Когда мы думаем о механизмах реализации, упоминалось, что @saquetim может знать больше о том, как лучше это реализовать.

Для личных шаблонов, возможно, достаточно будет личного сообщения самому себе + специального тега?

Если вы хотите, чтобы несколько человек имели доступ к шаблону, может быть, вы можете отправить личное сообщение себе и другому человеку с специальным тегом?

Может быть, мы сможем выбрать несколько категорий шаблонов Discourse?

Что вы думаете по этому поводу? :thinking:

  • Было бы что-то подобное действительно полезным?
  • Зачем нам нужна возможность создавать приватные шаблоны?
  • Как мы хотим, чтобы это использовалось?
12 лайков

Я активно использую шаблоны! И я использую шаблоны Discourse так же, как и чат Discourse: в одиночку, один на один и в любых возможных групповых конфигурациях! :v: :sunglasses:

В каждом из этих примеров это звучит как работа личных сообщений (PM), что, по-моему, отлично: возможность добавлять и удалять пользователей и группы…

Хм… возможно, стоит добавить опции, похожие на то, как Discourse Docs управляет категориями и тегами.

Однако, помимо отображения всех доступных тем шаблонов на основе разрешений категорий в выборщике шаблонов, он также загружает шаблоны для личных сообщений. Таким образом, вы сможете помечать все свои шаблоны для личных сообщений по мере необходимости и делиться ими как обычным личным сообщением (пользователи и группы).

:thinking:

4 лайка

Ого, это было бы так полезно!!

3 лайка

@SaraDev,

Мне очень понравилась идея частных шаблонов и предложенный вами механизм (ЛС самому себе + тег). Я считаю, что это отличное дополнение для плагина. Однако я не уверен насчет возможности обмена этими шаблонами между двумя и более пользователями через ЛС.

Позвольте мне объяснить почему:

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

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

Проблема возникает, когда вы добавляете в уравнение ЛС для групп (официальных или временных), поскольку система прав доступа становится запутанной. У тегов нет прав доступа, как у категорий. Было бы сложно проверить, может ли пользователь использовать шаблоны или нет, или даже ограничить его возможности в этом.

Вот несколько вопросов, которые приходят мне в голову и которые необходимо решить:

  • Какие пользователи должны иметь право использовать частные шаблоны? Я не думаю, что доступ к ним должен быть по умолчанию у всех. В настоящее время право использования плагина определяется категорией, в которой хранятся шаблоны. Такая модель прав не сработает для частных шаблонов, и нам, вероятно, потребуется новая настройка, чтобы администраторы могли этим управлять.

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

  • Мне не очень нравится то, что это может усложнить поиск места, где нужно редактировать или обсуждать шаблон. Пользователям придется знать, является ли это ЛС или темой. Это не критично, но может стать обременительным.

TL;DR: Мне очень понравились личные шаблоны (ЛС самому себе). Я считаю, что использование ЛС нескольким людям в качестве шаблонов может вызвать некоторые проблемы, и это нужно тщательно продумать. Лично я бы остановился на действительно частных шаблонах (видимых только создателем), а общие шаблоны (для 2+ человек) оставил бы системе категорий.

6 лайков

Я считаю, что поддержка нескольких родительских категорий в сочетании с предложенными приватными шаблонами, использующими личные сообщения (PM) самому себе и теги, покроет почти все сценарии использования шаблонов.

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

Если два человека захотят один и тот же шаблон, они всегда могут просто отправить его друг другу через PM, а затем превратить это сообщение в шаблон, скопировав и вставив PM самому себе. Это потребует небольшого дополнительного шага, но я не могу представить, чтобы такая ситуация возникала часто.

Мне кажется, что уровни доверия (Trust Levels) могли бы стать хорошим способом ограничить использование приватных шаблонов только теми, кому они действительно нужны. Одна из проблем, которую я вижу в случае с приватными шаблонами (и шаблонами в целом), заключается в том, что если у пользователя есть к ним доступ, он может создать много «спама» на сайте, постоянно публикуя одно и то же сообщение, вплоть до того, что его аккаунт может потребоваться заблокировать или ограничить, если ситуация станет совсем плохой. Шаблоны в целом также кажутся функцией, больше подходящей для администраторов, модераторов или суперпользователей, а не для всех пользователей, и разрешение использовать приватные шаблоны только пользователям с высоким уровнем доверия решило бы эту проблему.

Я представляю себе настройку в плагине «Шаблоны», позволяющую пользователям с уровнем доверия «X» или выше использовать приватные шаблоны. Что-то вроде этого, но для параметра «Минимальный уровень доверия для приватных шаблонов».

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

Определение тега глобально было бы проще с точки зрения настройки администратором сайта, а затем каким-то образом информировать пользователей: «используйте этот тег для приватных шаблонов», чтобы это было очевидно. Мне кажется, что это может сработать, если PM передаётся между несколькими пользователями, поскольку тег приватного шаблона будет определён глобально, и это всё равно будет работать в ситуациях, когда шаблон PM доступен только пользователю, который его создал. Однако я не уверен, какие последствия это будет иметь для проверки того, может ли пользователь использовать шаблоны или нет, поскольку в такой конструкции все будут использовать один и тот же тег приватного шаблона.

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

Возможно, здесь могла бы помочь кнопка в области выбора шаблонов при создании поста? Что-то вроде:

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

Мне интересно узнать, есть ли у кого-то ещё мысли по этому поводу.

1 лайк

Это действительно интересный момент. :+1:

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

Хм, интересно, а если бы я создала на своём сайте тег #preferred-templates-maiki, то могла бы просто выбрать его и получить все используемые мной шаблоны под рукой. Тогда я могла бы помечать этим тегом множество тем, не только свои собственные… :thinking:

2 лайка

Я бы не стал добавлять туда кнопку. Плагин canned-replies был устроен именно так. На мой взгляд, интерфейс становится немного перегруженным для функции, которой вы не будете пользоваться слишком часто.

Возможно, было бы лучше создать маршрут, аналогичный /top или /latest, который перечислял бы все доступные шаблоны в одном месте. У нас мог бы быть, например, /templates, где вам нужно было бы просто нажать на тему, чтобы открыть её.

Я думал об этом при разработке плагина.

Я понимаю, что это могло бы быть удобно, но, на мой взгляд, это создаёт больше проблем, чем решает.

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

Представьте: вы пометили пост от третьей стороны как шаблон, а затем его отредактировали до чего-то неожиданного. Вы не заметите, что шаблон изменился, а человек, который его редактировал, не поймёт, что изменял именно шаблон.

Не знаю, в данном случае я предпочитаю чётко определённый процесс.

2 лайка

Это имеет смысл! :+1:

Я имел в виду тегирование тем внутри категории шаблонов. Вот скриншот из наших семейных форумов, где я пометил все свои шаблоны тегом #maiki-templates.

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

В случае моей семьи и Кловер у нас обоих будут списки дел, которые нужно отмечать. Логично пометить их все тегом #chores, шаблоны, за которые отвечаю я, — тегом #maiki-template, а шаблоны Кловер — тегом #compulsory-familial-servitude. Тогда мы сможем легко фильтровать шаблоны по мере необходимости из селектора «Вставить шаблон».

Так что… мой случай использования покрыт. :slight_smile: :+1:

Мои личные шаблоны являются общедоступными! :person_shrugging:

2 лайка

Теперь у нас есть частные шаблоны!

Они работают практически так, как мы обсуждали. Отправьте себе личное сообщение и пометьте его специальным тегом, настроенным в параметрах, и сообщение появится в списке шаблонов.

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

7 лайков

Это отличная новость! Я с нетерпением жду возможности попробовать это в ближайшее время.

3 лайка

Привет @saquetim
Я попробовал этот шаг, но, похоже, он не работает. Поддерживается ли это в последней версии плагина?

Спасибо за этот ответ, он прояснил для меня, как работают приватные шаблоны. :vulcan_salute::smiling_face_with_sunglasses::+1: