Взгляды, аргументы и блоки - PullRequest
0 голосов
/ 22 июня 2010

В настоящее время у меня возникают проблемы, чтобы понять, как представления Drupal работают с аргументами при отображении представления в виде блока.У меня есть несколько простых страниц (например, студии / Бремен) и несколько пользователей, которые соответствуют этим страницам (например, имя пользователя: Бремен).Пользователи могут публиковать новости, которые нужно дразнить на странице studios / *.

Нужно ли использовать обработчик аргументов, который переводит идентификатор_узла в arg(1) в соответствующее имя пользователя, или есть более простой способ?

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

1 Ответ

1 голос
/ 22 июня 2010

arg (1) не будет именем пользователя или UID и не будет работать так, как вы ожидаете.Однако мы можем попытаться выполнить поиск и вернуться, чтобы предоставить значение аргумента по умолчанию окольным путем.

ДЕЙСТВИЕ, ЧТОБЫ ПРИНЯТЬ, ЕСЛИ АРГУМЕНТ НЕТ: установлен на Пустой текст, или, 404. Независимо от ваших предпочтений.

Укажите код PHP для Валидатора:

if ($argument) {
   $user = db_fetch_object(db_query('SELECT name FROM {users} WHERE name = "%s"', $argument));
   if ($user) {
      $handler->argument = $user->name;
      return $user->name;
   }
}

Здесь вы должны убедиться, что arg (1) является именем пользователя на определенных страницах.не будет содержать (или не позволять) проходить через символы, вызывая SQL-инъекцию.

Паттернами имени пользователя можно управлять с помощью Pathauto.Однако это не помешает кому-то ввести нежелательную информацию в URL, и Drupal / Views должен иметь возможность обходить символы в URL.Вы можете проверить это, установив ДЕЙСТВИЕ, ЧТОБЫ ПРИНЯТЬ, ЕСЛИ АРГУМЕНТ НЕ ПРОВЕРЯЕТ для отображения страницы 404 или пустого текста.

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

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

...