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

Стул сгорел

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

  1. ddn128

    ddn128 Опытный Пользователь

    как {{ keys }} оказывается на 2-стр.? Ты её через роутер передаёшь?

    Я не использ. rand_text_from_file, но видел тут обсуждения по этой пробл. Где-то уже было что-то подобное
     
  2. DenisDoorwway

    DenisDoorwway Участник

    На главной странице формируется меню через цикл for где вывод идет как <a href="/article/{{ keys }}"> {{ keys }} </a><br/> В роуте описываю ссылку на файл как 'route' => '/article/{keys}' и все. И выходить при переходе по ссылке {{ keys }} будет ключем и по нему будет все парситься.
     
  3. ddn128

    ddn128 Опытный Пользователь

    Да, всё верно. Просто хотел уточнить для тех, кто захочет передать др. переменную (не keyword ), но у них не получицца. Патамушта её надо прописать в роутере

    И ещё:
    Лучше писать не относит., а абсолют. пути в ссылках, а то могут возникать неожиданности
    Т.е. не
    <a href="/article/{{ keys }}"> {{ keys }} </a>
    а
    <a href="{{settings.base_url}}article/{{ keys }}"> {{ keys }} </a>

    Если ссылка с глав., то скорее всего ничего не случиться, но если она будет с внутр., то может прописаться путь к этой внутр.
    Например относ. ссылка (<a href="/article/{{ keys }}"> {{ keys }} </a> ) со стр. dor.com/category/porno, может привести на урл. dor.com/category/porno/article/bdsm
     
    Последнее редактирование: 30 сен 2016
    DenisDoorwway нравится это.
  4. DenisDoorwway

    DenisDoorwway Участник

    И снова я в восторге.
    Сломал голову как сделать карту сайта. В админке есть такая штука
    Код:
    Функция search_query(filename) собирает ключевые слова по которым перешли на сайт и записывает их в filename.
    Пример использования:
                {% set filename =  settings.doc_root ~ '/templates/public/blog/data/keywords.txt' %}
                {{ search_query(filename) }}
    Правлю путь на свой. Файл на сервере есть. Пощелкал по ссылкам на сайте. Файл пустой.

    Во втором тандере была замечательная функция экспорта ссылок на уже сгенерированые страницы. Есть ли аналог в третьем?
     
  5. ddn128

    ddn128 Опытный Пользователь

    Если шаб блог, то карта сайта уже есть в демо шабе:

    Код:
    {% cache 'sitemap_file' ~ cache_id 0 %}
    {% set sitemap_file =  settings.doc_root ~ '/templates/public/blog/data/sitemap.txt' %} 
    {{ php_file_put_contents(sitemap_file, uri.path ~ ":" ~ keyword ~ "\r\n", 8) }}
    {% endcache %}
    лично я вместо' /templates/public/blog/data/sitemap.txt'
    пишу
    /templates/public/' ~settings.view.public.template~ '/data/sitemap.txt'

    и тогда пофиг как называется папка с шабом - работать будет при любом названии, т.к.
    settings.view.public.template - берётся название шаба из конфига
     
    Последнее редактирование: 9 окт 2016
    DenisDoorwway нравится это.
  6. DenisDoorwway

    DenisDoorwway Участник

    Почему-то не передается ключ. Идет просто обрезанная ссылка без домена в стиле post/some%keys%google: и все.
    В идеале было бы чтобы писалось как <a href="полный урл">ключ</a>
     
  7. ddn128

    ddn128 Опытный Пользователь

    Не видя сложновастенько, но видимо как-то так


    Код:
    {% cache 'sitemap_file' ~ cache_id 0 %}
    {% set sitemap_file =  settings.doc_root ~ '/templates/public/'~settings.view.public.template~'/data/'~settings.base_host~'_sitemap.txt' %}
    {{ php_file_put_contents(sitemap_file, '<a href="http://'~settings.base_host~ uri.path ~ '">' ~ keyword ~ '</a> \r\n', 8) }}
    {% endcache %}
    
     
    Последнее редактирование: 9 окт 2016
    DenisDoorwway нравится это.
  8. DenisDoorwway

    DenisDoorwway Участник

    Спасибо. Хорошо когда в чем-то разбираешься :)
     
  9. DenisDoorwway

    DenisDoorwway Участник

    Кто подскажет как в rss отдавать полную статью?
    На пример шаблона blog
    Код:
    <?xml version="1.0" encoding="UTF-8" ?>
    <rss version="2.0">
    <channel>
      <title>{{settings.base_host}} RSS</title>
      <link>http://{{settings.base_host}}</link>
      <description>Rss feed of {{settings.base_host}} site</description>
    {#
        Беру файл со ссылками на страницы дора, далее обхожу и разделяю каждую строку на ссылку-заголовок и вывожу в цикле.
    #}
    {% set sitemap_file =  settings.doc_root ~ '/templates/public/blog/data/sitemap.txt' %} 
    {% set links = str_from_file(sitemap_file) %}
    {% for link in links %}
    {% set parts = link|split(':') %}
    <item>
        <title>{{parts[1]|title}}</title>
        <link>http://{{settings.base_host ~ parts[0]}}</link>
        <description>{{parts[1]|title}}</description>
    </item>
    {% endfor %}
    </channel>
    </rss>
    {{parts[1]|title}} - надо заменить чем-то, что будет отдавать полную статью, а не только ключ. Возможно ли это?
     
  10. GrafMK

    GrafMK Активный Участник

    Если не ошибаюсь. Данная конструкция просто преобразует то что записанно в файле сайтмап тхт. Не более. А если в нем нет статьи то и вывести её не получиться
     
  11. DenisDoorwway

    DenisDoorwway Участник

    т.е нужен серьезный сэкас чтобы это реализовать o_O
     
  12. ddn128

    ddn128 Опытный Пользователь

    1. по тайтлам парсишь либо статью с ПС, либо сниппеты, либо что тебе надо (естеств. будет отличаться от того, что на доре)
    2. с помощью "get_article_" пасишь свою же стр. по ссылке из сайтмап, если стр. закеширована естеств.
     
    DenisDoorwway нравится это.
  13. DenisDoorwway

    DenisDoorwway Участник

    Вообще идея в том, чтобы напарсить контент в файл для импорта. Нужно просто формировать нужный контент и писать его в файл. Вот и думаю как это лучше сделать.

    Пытался через php_file_put_contents, но там нужно сильно мудрить с расстановкой знаков экранирования чтобы где надо работал дорген, а где не надо просто оставался код как есть т.ч для меня это пока не вариант.

    А вот с get_article может что-то и выйдет.
     
  14. DenisDoorwway

    DenisDoorwway Участник

    Вот может ли мне хоть кто-то внятно объяснить почему так происходить?
    Беру примеры кода из админки, а они не работают. Что за???
    Захотел вывести видео с ютуба. Взял код с админки
    Код:
                {% set youtube_videos = youtube_videos(keyword,10) %}
                {% for video in youtube_videos %}
                    {{video}}
                {% endfor %}
    и словил ошибку
    Notice: Array to string conversion in C:\teee\OpenServer\domains\new2.dor\vendor\twig\twig\lib\Twig\Environment.php(413) : eval()'d code on line 45

    Вот сижу и думаю да что стало-то с тандером? Раньше брал код из админки. Расставлял в нужных местах и все. Все работало. Теперь приходиться ломать голову почему это не работает, как сделать это, как сделать то. Ну что за ё-мое? Зачем тогда вообще эти пример в админке нужны?
     
  15. amness

    amness Активный Участник

    Массив в строку не хочет конвертить. Это к разработчику наверное.
    Я вот на 3.12 досих пор сижу и всё норм.:)
     
  16. DenisDoorwway

    DenisDoorwway Участник

    Да я бы сам с радостью ушел бы на 2.59 да удалил архив с ним.
     
  17. elf

    elf Участник

    у меня на ней пинги не работают(
     
  18. elf

    elf Участник

    могу поделиться, у меня вся линейка двойки есть.
    Вот только 2.59 впску вешает при генерации(
     
  19. DenisDoorwway

    DenisDoorwway Участник

    Тандер уже не торт :(
     
  20. DenisDoorwway

    DenisDoorwway Участник

    Если не жалко.
     

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