REST в маршрутах модуля

Главные вкладки

Аватар пользователя Кришпер Кришпер 7 декабря 2017 в 11:05

Вот мы создаём обычную ссылку

function my_module_menu(){
$items = array(); // инициализируем массив наших пунктов меню

$items['my-auth'] = array( //добавляем страницу по пути 'page_example'
'title' => 'Пример страницы', //заголовок страницы
'description' => '', //описание страницы
'page callback' => '_my_auth', //функция возвращающая контент страницы
'access callback' => TRUE, // разрешаем всем просматривать эту страницу
'expanded' => TRUE,
);

А как сделать ссылку по правилам рест? То бишь что бы части ссылки были с подстановочными значениями, ну как /user/{id}/add что бы можно было эти значениями в ф-ции контента разобрать?

Комментарии

Аватар пользователя bumble bumble 7 декабря 2017 в 17:14
1

Для динамических путей могут использоваться wildcards, или просто переданные в коллбек аргументы:

<?php
function mymodule_menu() {
  
$items['mypath/%param/%subparam'] = [
    
'page callback' => 'mymodule_page_callback',
    
'page arguments' => [12]
  ];
  
  return 
$items;
}
 
function 
mymodule_page_callback($param$subparam) {}
?>

Так же, получить значение аргумента пути можно ф-цией arg().

Аватар пользователя Кришпер Кришпер 8 декабря 2017 в 12:11

Bumble , а, пардон, тут вроде не то. Мне надо чтоб с урл шли ссылки, а не так, что бы они были забиты в коде. Опять же, что бы юзер писал user/1 и видел страницу юзера с айди 1, писал 2, видел профиль другого юзера итд итп

Аватар пользователя Кришпер Кришпер 13 декабря 2017 в 2:37

дак тут в коде уже вписаны значения или вместо них будут браться значения из урл и это просто порядоковые номера?
'page arguments' => [1, 2]

Аватар пользователя bumble bumble 13 декабря 2017 в 3:48

Кришпер wrote:

или вместо них будут браться значения из урл и это просто порядоковые номера?

Да, это порядковый номер, стартует от 0.
Это, по сути тоже что и:

<?php
$param 
arg(1);
$subparam arg(2);
?>