Processwire, создайте собственный маршрут url: / родительский / дочерний к / дочернему

#routing #processwire

#маршрутизация #processwire

Вопрос:

Привет поклонникам Processwire,

я ищу решение для изменения собственного URL-маршрута в Processwire. Это моя структура шаблонов в Processwire:

 /categories (tpl_style_categories_parent.php)
    /cat1 (tpl_style_categories.php)
    /cat2 (tpl_style_categories.php)
  

url-адрес на данный момент — categories/cat1, но я хочу только / cat1 в качестве url.
Как я могу сделать это возможным?

Ответ №1:

Лучший способ сделать это — включить сегменты URL в родительском элементе tpl_style_categories_parent (не отображаются в предоставленной вами структуре) для захвата названия категории и отображения содержимого соответствующей страницы. Очень упрощенный код на этой странице шаблона (тот, который здесь не виден):

 if($input->urlSegment1) {

  $name = $sanitizer->name($input->urlSegment1);
  $category_page = $pages->get("template=tpl_style_categories, name={$name}");

  echo $category_page->render();

} else {

  // normal code for the template

}
  

Обязательно прочитайте все в этой ссылке, чтобы узнать о лучших методах использования сегментов URL

Комментарии:

1. Я включаю сегмент Url и добавляю ваш код в шаблон. Я пытаюсь www.my-domain.de/cat1 вместо того , чтобы www.my-domain.de/category/cat1 . Но это не работает. В doku я не нашел способа сделать это. Не могли бы вы помочь мне, пожалуйста, с каким-нибудь рабочим примером?

2. @chuebert может быть, вы могли бы предоставить дополнительную информацию, например, обновив свой вопрос, чтобы включить больше примеров кода, которые вы пробовали до сих пор..