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

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

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

  1. elf

    elf Участник

    День добрый!
    В старых версиях работало:
    {% 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 Новичок

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

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

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

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

    elf Участник

    При добавлении ошибку вываливает:
    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 Администратор Команда форума

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

    qwertyman Новичок

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

    elf Участник

    Если убрать /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 Администратор Команда форума

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

    elf Участник

    <?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 Участник

    <?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 Участник

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

    elf Участник

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

    qwertyman Новичок

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

    qwertyman Новичок

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

    Glokken Участник

    Не знаю.... У меня работает так

    <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 Администратор Команда форума

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

    qwertyman Новичок

    Чувак, ты лучший!
     
    Firestarter нравится это.

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