Как в версии 3.1.0 сделать генерацию страницы по ключу

Тема в разделе "Шаблонизатор и Шаблоны", создана пользователем elf, 5 июн 2016.

  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  1. elf

    elf Участник

    27 окт 2015
    119
    31
    Мужской
    День добрый!
    В старых версиях работало:
    {% set lines = rand_str_from_file(settings.doc_root ~ '/templates/public/blog/data/keywords.txt',10) %}
    {% for line in lines %}
    <a href="{{settings.base_url}}{{ line|pretty_urlencode() }}">{{ line|title }}</a>
    {% endfor %}
    Выводились ссылки при переходе по ним формировалась страница по заданному ключу.
    В версии 3.1.0. такое не катит, выдает Page Not Found.
    Как побороть?
     
  2. qwertyman

    qwertyman Новичок

    30 май 2016
    17
    4
    Мужской
    И у меня такое, неужели никто не знает. Ведь все с этим столкнулись.
     
  3. Firestarter

    Firestarter Администратор
    Команда форума

    26 окт 2015
    1.199
    553
    В ваш routes.php Добавьте описание этого типа контента:

    'post' => [
    'route' => '/{keyword}',
    'file' => 'post.html',
    'status' => 200,
    'headers' => [
    'Content-Type'=>'text/html'
    ]
    ],
     
    elf и Kai нравится это.
  4. elf

    elf Участник

    27 окт 2015
    119
    31
    Мужской
    При добавлении ошибку вываливает:
    Static route "/about.html" is shadowed by previously defined variable route "/([^/]+)" for method "GET"
    File: /var/www/user/data/www/door.com/vendor/nikic/fast-route/src/DataGenerator/RegexBasedAbstract.php
     
  5. Firestarter

    Firestarter Администратор
    Команда форума

    26 окт 2015
    1.199
    553
    Суть в чем, после этой манипуляции, либо /{keyword} либо /about.html так как /about.html попадает под правило /{keyword}
     
    elf нравится это.
  6. qwertyman

    qwertyman Новичок

    30 май 2016
    17
    4
    Мужской
    Ну так и что делать, если такая же ошибка вылезает? Выше перечисленное не помогает.
     
  7. elf

    elf Участник

    27 окт 2015
    119
    31
    Мужской
    Если убрать /about.html, то лезет ошибка
    An exception has been thrown during the rendering of a template ("Named route does not exist for name: about") in "layout.html" at line 71.
    /var/www/user/data/www/door.com/vendor/twig/twig/lib/Twig/Template.php
    Простое выпиливание ссылки на страницу about из layout.html не помогает.

    На дефолтных настройках шаблона blog генерация новых страниц у меня прекращается на 200 страницах. Досконально не разбирался, ибо некогда. Интуитивно чувствую, что цикл прекращается из-за завязки всей перелинковки на файл sitemap.txt (банально заканчиваются ссылки ). Самый простой способ обойти это без танцев с бубнами (а эти танцы порядком поднадоели) - генерация новых страниц из файла с ключами, а здесь вылезает этот баг.
    Огромная просьба к разработчику либо разрешить этот баг, либо указать другой способ генерации страниц из файла
     
    qwertyman нравится это.
  8. Firestarter

    Firestarter Администратор
    Команда форума

    26 окт 2015
    1.199
    553
    Покажите содержимое файла routes.php вашего шаблона.
     
  9. elf

    elf Участник

    27 окт 2015
    119
    31
    Мужской
    <?php

    return [

    'homepage' => [
    'route' => '/',
    'file' => 'homepage.html',
    'status' => 200,
    'headers' => [
    'Content-Type'=>'text/html'
    ]
    ],

    'post' => [
    'route' => '/post/{keyword}',
    'file' => 'post.html',
    'status' => 200,
    'headers' => [
    'Content-Type'=>'text/html'
    ]
    ],

    'about' => [
    'route' => '/about.html',
    'file' => 'about.html',
    'status' => 200,
    'headers' => [
    'Content-Type'=>'text/html'
    ]
    ],

    'robots' => [
    'route' => '/robots.txt',
    'file' => 'robots.txt',
    'status' => 200,
    'headers' => [
    'Content-Type'=>'text/plain'
    ]
    ],

    'sitemap' => [
    'route' => '/sitemap.xml',
    'file' => 'sitemap.xml',
    'status' => 200,
    'headers' => [
    'Content-Type'=>'text/xml'
    ]
    ],

    'rss' => [
    'route' => '/rss.xml',
    'file' => 'rss.xml',
    'status' => 200,
    'headers' => [
    'Content-Type'=>'text/xml'
    ]
    ],

    ]

    ?>

    Это дефолтный, работает.
     
  10. elf

    elf Участник

    27 окт 2015
    119
    31
    Мужской
    <?php

    return [

    'homepage' => [
    'route' => '/',
    'file' => 'homepage.html',
    'status' => 200,
    'headers' => [
    'Content-Type'=>'text/html'
    ]
    ],

    'post' => [
    'route' => '/{keyword}',
    'file' => 'post.html',
    'status' => 200,
    'headers' => [
    'Content-Type'=>'text/html'
    ]
    ],

    'robots' => [
    'route' => '/robots.txt',
    'file' => 'robots.txt',
    'status' => 200,
    'headers' => [
    'Content-Type'=>'text/plain'
    ]
    ],

    'sitemap' => [
    'route' => '/sitemap.xml',
    'file' => 'sitemap.xml',
    'status' => 200,
    'headers' => [
    'Content-Type'=>'text/xml'
    ]
    ],

    'rss' => [
    'route' => '/rss.xml',
    'file' => 'rss.xml',
    'status' => 200,
    'headers' => [
    'Content-Type'=>'text/xml'
    ]
    ],

    ]

    ?>

    Так валится с ошибкой:
    Static route "/robots.txt" is shadowed by previously defined variable route "/([^/]+)" for method "GET"
    /var/www/user/data/www/door.com/vendor/nikic/fast-route/src/DataGenerator/RegexBasedAbstract.php
     
  11. Glokken

    Glokken Участник

    26 окт 2015
    144
    32
    Мужской
    Тут походу и с robots.txt sitemap.xml rss.xm тоже самое происходит.... Получается что только удлиннением url решать?
    Типа
    'route' => '/каталог/{keyword}', ? Не здорово. Хотя и не смертельно - это ж дорвей :)
     
  12. elf

    elf Участник

    27 окт 2015
    119
    31
    Мужской
    Да похеру: хоть удлинением, хоть кастрацией)))
    Лишь бы конструкция работала: кей из файла --> преобразование в ссылку --> генерация страницы при переходе по этой ссылке -->кей закончились -->страницы больше не генерируются
    УСЕ!!!
    )))
     
  13. qwertyman

    qwertyman Новичок

    30 май 2016
    17
    4
    Мужской
    Так то это основная функция дорвея, и смешно что лагает.. А с удлинением ссылки генерит паги?
     
  14. qwertyman

    qwertyman Новичок

    30 май 2016
    17
    4
    Мужской
    Или я олень, или лыжи не едут. АДМИН, покажи здесь куски кода на примере шаблона фильмотека. Что и куда. Не генерит страницы.
     
  15. Glokken

    Glokken Участник

    26 окт 2015
    144
    32
    Мужской
    Не знаю.... У меня работает так

    <p>
    {% set nn = random(12..20) %}
    {% set full = [settings.doc_root ~ '/templates/public/shablon/data/', keyfile.txt %}

    {% set lines = rand_str_from_file(full,nn) %}
    {% for line in lines %}
    <a href="{{settings.base_url}}cat/{{line|pretty_urlencode()}}">{{line|capitalize}}</a> |
    {% endfor %}
    </p>

    Ну и в route

    'cat' => [
    'route' => '/cat/{keyword}',
    'file' => 'cat.html',
    'status' => 200,
    'headers' => [
    'Content-Type'=>'text/html'
    ]
    ],
     
    elf и Fet1w нравится это.
  16. Firestarter

    Firestarter Администратор
    Команда форума

    26 окт 2015
    1.199
    553
    Точно так же и у меня в шаблоне фильмотека работает. Проверил пару раз у себя, все таки нужно через дополнительный параметр, типа cat или page, или любой другой.
     
  17. qwertyman

    qwertyman Новичок

    30 май 2016
    17
    4
    Мужской
    Чувак, ты лучший!
     
    Firestarter нравится это.

Поделиться этой страницей