Модуль Drupal Flag и извлечение UID - PullRequest
2 голосов
/ 04 марта 2011

Боюсь, я уже знаю ответ, но мне было интересно, может ли кто-нибудь подтвердить это для меня.

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

Теперь я хотел бы настроить представление, которое перечисляет, кто что пометил, но столкнулся с проблемой, когда возвращаемый UID равен 0 для каждого фрагмента контента. Я проверяю базу данных и столбец uid в таблице flag_content показывает 0 для каждого флага. Это потому, что я установил флаг как «глобальный», и, таким образом, модуль флага не записывает uid помечающего пользователя? Разве они не должны предупредить вас, если это так?

Большое спасибо.

1 Ответ

1 голос
/ 04 марта 2011

Это правда, потому что флаг установлен как «глобальный», uid всегда будет 0. Но есть обходной путь .

Обход:

  1. Вам необходимо установить модули CCK и Rules.
  2. Создайте поле usereference в типе контента, который вы хотите пометить вашим глобальным флагом, и вы установите его невидимый (если у вас есть разрешения по поле не забудьте дать право просмотра все пользователи вам нужны).
  3. Создайте правило для события «узел был помечен», и вы установите глобальный флаг, который вы хотите в качестве ссылки.
  4. Создайте действие «заполнить поле», вы выбираете ссылку на использование поле, которое вы создали до и в «Дополнительно: укажите значение поля с PHP-кодом "вы положили:
    return array(0 => array('uid' => $flagging_user->uid));
    Это поместит UID маркирующего пользователя в ваш поле usereference.
  5. По вашему мнению, теперь вам просто нужно отобразить поле usereference, и вы будет видеть для каждого узла, который отметил это.

Это довольно просто реализовать и использовать с Views. Для этого вам понадобятся модули CCK и Rules .

...