Как ограничить каждого пользователя созданием только одного комментария на узел?

Кто-нибудь знает, есть ли какой-либо способ, которым я могу ограничить каждого пользователя сайта, сделать только один комментарий на узел на моем сайте Drupal 7? Я еще ничего не нашел.

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

7 голосов | спросил BenjaminRH 11 +04002011-10-11T01:06:25+04:00312011bEurope/MoscowTue, 11 Oct 2011 01:06:25 +0400 2011, 01:06:25

1 ответ


0

5 лет спустя ... Если вы не хотите писать собственный код или используйте Предел комментариев (который имеет только версию dev для D7), вы можете использовать Правила и Флаг для этого, как описано ниже.

Шаг 1: узлы флага с комментариями

Используйте флаг для создания флага (не-глобального) с меткой чего-то «Комментарий отправлен» (и имя машины comment_submitted).

Шаг 2: зарегистрировать представление комментариев

Используйте Правила для создания настраиваемого правила с событием Rules " После сохранения нового комментарии. ».

Это правило должно выполнить действие «Узел флага» для правил (с использованием флага, созданного на шаге 1).

Шаг 3: отменить дополнительные комментарии

Используйте Правила , чтобы создать настраиваемое правило, чтобы отменить дополнительные комментарии пользователей для узлов, для которых пользователь прокомментировал раньше (= узлы, отмеченные автором комментария). Вот правило, которое вы можете использовать для этого (в формате экспорта правил, обновите имя машины используемого флага, а затем импортируйте его на свой собственный сайт):

{ "rules_unpublish_additional_comments" : {
    "LABEL" : "Unpublish additional comments",
    "PLUGIN" : "reaction rule",
    "ACTIVE" : false,
    "OWNER" : "rules",
    "REQUIRES" : [ "rules", "flag", "comment" ],
    "ON" : { "comment_insert" : [] },
    "IF" : [
      { "flag_flagged_node" : {
          "flag" : "comment_submittedr",
          "node" : [ "comment:node" ],
          "flagging_user" : [ "comment:author" ]
        }
      }
    ],
    "DO" : [ { "data_set" : { "data" : [ "comment:status" ], "value" : "0" } } ]
  }
}

Примечание : это правило действует как в заголовке шага 3 (= отменить дополнительные комментарии ). Таким образом, он не скрывает форму комментария (которая также не задана явно в вопросе). Добавление «заданного сообщения» в качестве действия дополнительных правил может помочь в этом. Таким образом, согласно комментарию от OPER ниже вопроса, этот ответ должен показать, что существует «способ» достичь аналогичного результата, используя Правила (который я предпочел бы использовать вместо добавления другого модуля, имеющего только версию dev).

ответил Pierre.Vriens 11 J0000006Europe/Moscow 2016, 23:39:59

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132