получить название программы в друпале - PullRequest
2 голосов
/ 02 мая 2010

Я хотел бы получить имя программы в Drupal (фактически имя в URL, которое вызывает программу или функцию).

Пример: http://localhost/drupal6/my_widget

Это работает:

$myURL = (basename($_SERVER['REQUEST_URI']));  //  $myURL=my_widget

но не при наличии дополнительных параметров:

http://localhost/drupal6/my_widget/parm1/parm2

Ответы [ 3 ]

1 голос
/ 03 мая 2010

Вы можете использовать parse_url для извлечения части пути из URL, а затем вы можете выбрать элемент из разнесенных частей. Например:

$x=parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$y=explode('/',$x);
$z=$y[2];

Более подробную информацию можно найти здесь: http://www.php.net/manual/en/function.parse-url.php

0 голосов
/ 03 мая 2010

В большинстве случаев вы можете и должны использовать hook_menu для обработки URL-адреса и параметров в нем. Посмотрите на следующий пример кода, взятый из http://api.drupal.org/api/function/page_example_menu/6:

function page_example_menu() {
  // This is the minimum information you can provide for a menu item. This menu
  // item will be created in the default menu: Navigation.
  $items['example/foo'] = array(
    'title' => 'Page example: (foo)',
    'page callback' => 'page_example_foo',
    'access arguments' => array('access foo content'),
  );

  // By using the MENU_CALLBACK type, we can register the callback for this
  // path but do not have the item show up in the menu; the admin is not allowed
  // to enable the item in the menu, either.
  //
  // Notice that the 'page arguments' is an array of numbers. These will be
  // replaced with the corresponding parts of the menu path. In this case a 0
  // would be replaced by 'bar', a 1 by 'baz', and like wise 2 and 3 will be
  // replaced by what ever the user provides. These will be passed as arguments
  // to the page_example_baz() function.
  $items['example/baz/%/%'] = array(
    'title' => 'Baz',
    'page callback' => 'page_example_baz',
    'page arguments' => array(2, 3),
    'access arguments' => array('access baz content'),
    'type' => MENU_CALLBACK,
  );

  return $items;
}

Эта функция является реализацией hook_menu. В этом примере зарегистрированы два пути: «example / foo» и «example / baz /% /%». Первый путь - это простой путь без параметров; по запросу функция page_example_foo() вызывается без параметров. Второй путь - это путь с двумя параметрами («аргументами»). Когда этот путь запрашивается, Drupal запустит функцию page_example_baz($argument1, $argument2). Это считается «правильным способом» иметь URL с параметрами.

0 голосов
/ 03 мая 2010

Вы, вероятно, хотите использовать arg ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...