Добавьте ссылку, чтобы снять флажок со всех узлов


По умолчанию он доступен только для пометки или снятия флажка с элемента, ссылка здесь. Я хочу добавить ссылку, чтобы снять флажок со всех помеченных узлов текущего пользователя, есть ли способ это сделать?

В этот момент я получаю код для очистки всех помеченных узлов, но я не знаю, как сделать этот фрагмент в виде ссылки

db_query("DELETE FROM {flag_content} WHERE sid = %d", flag_get_sid());
 3
Author: Adrian Cid Almaguer, 2011-07-08

2 answers

Создайте пользовательский модуль, который реализует hook_menu(). Используйте это для создания пути и пользовательской функции обратного вызова, которая будет выполнять ваш запрос. Что-то вроде:

/**
 * Implementation of hook_menu()
 */
function MYMODULE_menu() {
  $items = array();

  $items['flags/remove/%user'] = array(
    'page callback' => 'MYMODULE_remove_flags',
    'page arguments' => array(2),
    'access callback' => 'MYMODULE_check_access',
    'access arguments' => array(2),
    'type' => MENU_CALLBACK,
  );

  return $items;
}

// Adding custom functions, etc

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

 2
Author: Laxman13, 2011-07-08 14:24:00

Я использовал этот обходной путь для реализации функции "не помечать спам". В принципе, я создал второй (глобальный) флаг "без спама", который модераторы могут использовать в нескольких, чтобы теперь показывать узлы, помеченные как спам.

Скриншоты (щелкните правой кнопкой мыши и откройте в новом окне для полного размера): view that shows content flagged for spam

Настройки счетчика флагов_спама: spam flag

Настройка Flag_nospam flag_nospam setting

Поля "ссылка флага" установят флаг "nospam", чтобы скрыть эти узлы из представления. Я не видел выбора для какого флага применяются ссылки на флаг. Я предполагаю, что вам придется добавить отношение "счетчик флагов_спама".

 1
Author: uwe, 2011-09-17 17:37:43