Добавьте ссылку, чтобы снять флажок со всех узлов
По умолчанию он доступен только для пометки или снятия флажка с элемента, ссылка здесь. Я хочу добавить ссылку, чтобы снять флажок со всех помеченных узлов текущего пользователя, есть ли способ это сделать?
В этот момент я получаю код для очистки всех помеченных узлов, но я не знаю, как сделать этот фрагмент в виде ссылки
db_query("DELETE FROM {flag_content} WHERE sid = %d", flag_get_sid());
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
Чтобы приступить к созданию пользовательского модуля, руководство разработчика модуля
Я использовал этот обходной путь для реализации функции "не помечать спам". В принципе, я создал второй (глобальный) флаг "без спама", который модераторы могут использовать в нескольких, чтобы теперь показывать узлы, помеченные как спам.
Скриншоты (щелкните правой кнопкой мыши и откройте в новом окне для полного размера):
Настройки счетчика флагов_спама:
Настройка Flag_nospam
Поля "ссылка флага" установят флаг "nospam", чтобы скрыть эти узлы из представления. Я не видел выбора для какого флага применяются ссылки на флаг. Я предполагаю, что вам придется добавить отношение "счетчик флагов_спама".