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

Рецепты приготовления контента.

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

  1. ddn128

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

    Предлагаю делиться вашими кодами для контента.
    Вот, например что я выяснил опытным путём :) , т.к. в php нуб, а мозг пытливый и фантазия извращённая:
    Если сделать:
    Код:
    {% set lines = rand_str_from_file('shab.txt',1) %}
                {% for line in lines %}
                    {{line|multiply}}
                {% endfor %}
    , то получим сгенерированный спинтаксом текст из шаблона {слово1|слово2}, а шаб берётся из файла "shab.txt".
    "shab.txt" нужен для того, чтобы не захламлять код шаба доргена, если например текста много или есть неск. разных шаблонов:
    {1В настоящее время|1Сегодня|1Сейчас} с {1очень|1весьма|1крайне} {1cкорым|1быстрым|1борзым|1живым}
    {2В настоящее время|2Сегодня|2Сейчас} с {2очень|2весьма|2крайне} {2cкорым|2быстрым|2борзым|2живым}
    {3В настоящее время|3Сегодня|3Сейчас} с {3очень|3весьма|3крайне} {3cкорым|3быстрым|3борзым|3живым}
    {4В настоящее время|4Сегодня|4Сейчас} с {4очень|4весьма|4крайне} {4cкорым|4быстрым|4борзым|4живым}

    т.е. возьмётся рандомная строка либо с "1", либо с "2" .... и из неё сгенерируется текст:
    1Сейчас с 1весьма 1живым.
    ....
    2В настоящее время с 2очень 2живым.
    .....

    Если добавить "|links(1)|raw"

    Код:
    {% set lines = rand_str_from_file('shab.txt',1) %}
                {% for line in lines %}
                    {{line|multiply|links(3)|raw}}
                {% endfor %}
    то в конце текста добавится линк на случ. страницу

    А если сделать:
    Код:
    {% set lines = rand_str_from_file('shab.txt',1) %}
                {% for line in lines %}
                    {{line|multiplylinks(1)|raw}}
                {% endfor %}
    {% set lines = rand_str_from_file('drugoy_shab.txt',1) %}
                {% for line in lines %}
                    {{line|multiply}}
                {% endfor %}
    то линк будет "внутри" текста

    А если сделать:
    Код:
    {% set lines = rand_str_from_file('shab.txt',3) %}
                {% for line in lines %}
                    {{line|multiply|markov(3, 10)|links(1)|raw}}
                {% endfor %}
    то это ващеее....

    4 строки в шабе могут нагенерить Мегатонны уник. текста.

    P.S. я в восторге от v.3
     
    BRAVO, fxsoul, Thommy и 6 другим нравится это.
  2. heyner

    heyner Участник

    А как сделать красивые description - кто не будь нашел таблетку?
     
  3. ddn128

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

    Ну если хочешь красивые, то надо писать норм. шаблон для спинтакса, а лучше несколько. Чем лучше шаб, тем "красивее" текст. Чем больше шаблонов, тем больше вариаций.

    {Сайт|Портал|Ресурс} о том как разводить {кроликов|зайцев|лохов}.
    {Всё|Информацию} о том как разводить {кроликов|зайцев|лохов} узнаете {на нашем|у нас на} {сайте|портале|ресурсе}.
    {Эксклюзивная|Актуальная|Проверенная} инфа о том как разводить {кроликов|зайцев|лохов} узнаете {на нашем|у нас на} {сайте|портале|ресурсе}.
    Только {на нашем|у нас на} {сайте|портале|ресурсе} Вы узнаете как разводить {кроликов|зайцев|лохов}.
    Только {на нашем|у нас на} {сайте|портале|ресурсе} {эксклюзивная|актуальная|проверенная} инфа о том как разводить {кроликов|зайцев|лохов}.
    {Не знаешь как|Не умеешь|Хочешь научиться|Учишься|Хочешь узнать} как разводить {кроликов|зайцев|лохов} - заходи {на наш|к нам на} {сайт|портал|ресурс}

    Вот уже более 260 вариантов отличного "человеческого" текста. Правда это больше похоже на title (лень было писать большое предложение).
     
    heyner нравится это.
  4. heyner

    heyner Участник

    Это я все понял мне конкретика нужна как вставить этот шаб в <meta name="description" content="{{keyword|title}}

    Так что ли ?
    <meta name="description" content="{ {В настоящее время|Сегодня|Сейчас} с {очень|весьма|крайне} {cкорым|быстрым|борзым|живым}'|multiply }}" />
     
  5. ddn128

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

    Если 1 шаб, то да. Только ты скобки и кавычку пропустил:

    <meta name="description" content="{{ '{В настоящее время|Сегодня|Сейчас} с {очень|весьма|крайне} {cкорым|быстрым|борзым|живым}'|multiply }}" />

    Если неск., то:

    <meta name="description" content="
    {% set rand_num= random(10) %}
    {% set lines = rand_str_from_file('shab.txt',rand_num) %}
    {% for line in lines %}
    {{line|multiply}}
    {% endfor %}
    " />

    В файле shab.txt лежат твои шаблоны для дескрипш.
    Каждый шаб с новой строки.
     
    heyner и elf нравится это.
  6. heyner

    heyner Участник

    ДА а как их соединить с ключами .
    Т.е. у меня на странице вставляется keywords при чем он берется из файла случайно( не знаю как сделать сниппет с определенным ключом из файла)..как найти в файле нужный дискрипшен с таким же ключом.
    Чтобы получилось keywords-12 = <meta name="description" content="{{ '{В настоящее время|keywords-12|}'|multiply }}" />

    Еще хотел спросить ..у меня есть файл с дискрипшенами. Как мне его использовать соосно с кеворйдами?

    <li><a href="{{settings.base_url}}{{ keywords[1]|url_encode() }}">{{keywords[1]}}</a></li>
    Вот строка берется я так понял keywords[1] из списка ..как мне для этого кейворда из файла поставить description?

    Чтобы было понятно я по своим ключам собрал дискрипшены и хочу их правильно использовать на странице: ключ= дискрипшен. В общем чтобы не было рондома.
     
    Последнее редактирование: 8 мар 2016
  7. eri

    eri Новичок

    Здорово парни, подскажите, как добавить ключ в текстовку. Допустим парсится или берется из файла текст, как сделать чтобы в нем прописывался ключ. И еще вопрос, есть ли возможность генерации текста, по алгоритму "составление по запятым"?
     
  8. heyner

    heyner Участник

    Как соединить такое в шаблоне.

    В файле есть ключи: key1,key2,key3 - файл txt
    В другом файле есть: title key1, title key2,title key3, - файл txt
    В третьем файле есть: description key1, description key12,description key3- файл txt

    Нужно соединить все на странице чтобы получилось
    <heade>
    title key1
    description key1
    </head>
    <body>
    key1
    </body>
    Ну и каждая последующая страница подставлялся свой кеy.
     
  9. heyner

    heyner Участник

    а где прописывается файл keywords.txt с ключами? Система всегда знает что это keywords.txt? Если он у меня будет называться по другому, где прописывать его?
     
  10. stev

    stev Новичок

    /data/
     
  11. heyner

    heyner Участник

    Я знаю что data/ но у меня получается следующее. Откуда алгоритм знает что нужно взять именно этот файл. Если я его назову по другому, он же его брать не будет?

    И еще в меню ставятся ключи 4 шт по ним открываются страницы на этом все . Дор получается из 5 стр . Реально в файле keywords.txt -10 000 ключей. Не пойму почему алго не берет остальные? Может из-за того что стоят интерации keyword [1] а нужно просто ставить {{keyword}}?
     
  12. heyner

    heyner Участник

    У всех работает такое ?

    {% set search = rand_str_from_file('keywords.txt',1000) %}
    {% for tag in yandex_last(search) %}
    <a href="{{settings.base_url}}{{ tag|url_encode() }}">{{ tag|title }}</a>
    {% endfor %}
     
  13. heyner

    heyner Участник

    Раннее в шаблоне стоял другой код. Сейчас поставил вот такое :

    <!--Беру 4уе статью из ПС-->
    {% set article = get_article(snippets[2].url) %}
    <h2>{{article.title}}</h2>
    <p>{{article.content|striptags|links(1)|raw}}</p>
    {% else %}
    <!--Беру новую статью из ПС-->
    {% set article = get_article(snippets[3].url) %}

    <h2>{{article.title}}</h3>
    <p>{{article.content|striptags|links(1)|raw}}</p>
    {% endif %}

    Вы дает ошибку :

    Type: Twig_Error_Syntax
    Message: Unexpected "endif" tag (expecting closing tag for the "cache" tag defined near line 42) in "page.html" at line 106.
    File: /var/www/newdatingclub.com/public_html/vendor/twig/twig/lib/Twig/Parser.php
    Line: 172

    почему ошибка? Все вроди теги закрыты/ На старый кеш не работает?
     
  14. Firestarter

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

    Вместо endif должно стоять end cache тег
     
  15. heyner

    heyner Участник

    Так end cache у меня стоит ниже по странице ...и он один.
     
  16. ddn128

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

    Выводим случайное изображение (с разными именами) из папки (можно любой файл, не обязательно картинку).
    Есть неск. способов вывести рандом изображение, но есть 1 недостаток - необх. знать из название и\или количество. Поэтому "придумал" решение вывода картинки с любыми\разными названиями:
    Итак:
    допустим картинки лежат в папке "dor.ru/templates/public/tmp/img/btn/"
    Повторяю - названия файлов могут быть разные: image453.jpg, foto34.png, kartinka_refg.jpg ....
    Код:
    <!-- считываем и кладём названия всех файлов в массив -->
    {% set reg_btn = php_scandir(settings.doc_root ~ '/templates/public/' ~settings.view.public.template~ '/img/reg_btn') %}
    <!-- считываем и кладём количество всех файлов в переменную  -->
    {% set reg_btn_с = php_count(reg_btn)-1 %}
    <!-- генерируем случайное число от 2 до кол-ва файлов  -->
    {% set reg_btn_num = random(2..reg_btn_с) %}
    <!-- выводим рандом файл\картинку -->
    <img src="{{settings.base_url~'templates/public/' ~settings.view.public.template~ '/img/reg_btn/'~reg_btn[reg_btn_num]}}" /> 
    
     
    Zlodey, mordvin, Art и 2 другим нравится это.
  17. ddn128

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

    Парсим соцсети и др. сайты без rss по RSS:
    Есть много разных агрегаторов rss - теоретически для любой сети можно нагуглить.
    Для примера будем парсить Инстаграм
    Идём http://rssbridge.buddylist.co/
    Выбираем необх. нам сервис и указываем что парсить (например https://www.instagram.com/varlamov/)
    Получаем ссылку с RSS:
    http://rssbridge.buddylist.co/?action=display&bridge=InstagramBridge&u=varlamov&format=MrssFormat
    Ну а дальше дело техники (в админке есть макрос для парсинга rss)

    Код:
    {% set rss = get_rss_articles('http://rssbridge.buddylist.co/?action=display&bridge=InstagramBridge&u=varlamov&format=MrssFormat') %}
      {{rss[0].title}}
      {{rss[0].link}}
      {{rss[0].description|raw}}
    
    P.S. Каждый раз (для разных акков) ходить на http://rssbridge.buddylist.co/ не обязательно.
    Можно сложить необх. ники (или ссылки) в файл,
    затем брать из файла и подставлять в ссылку
    rssbridge.buddylist.co/?action=display&bridge=InstagramBridge&u=здесь переменнная&format=MrssFormat

    http://rssbridge.buddylist.co/?action=display&bridge=InstagramBridge&u=varlamov&format=MrssFormat
    http://rssbridge.buddylist.co/?action=display&bridge=InstagramBridge&u=guliaguma&format=MrssFormat
    и т.д.
     
    Последнее редактирование: 21 окт 2016
    ustinai, Art, heyner и 2 другим нравится это.
  18. heyner

    heyner Участник

    Дорогой наш ddn128 - если еще че то придумаешь.. вылаживай.
    А как ты это делаешь?
    Код:
    затем брать из файла и подставлять в ссылку
    rssbridge.buddylist.co/?action=display&bridge=InstagramBridge&u=здесь переменнная&format=MrssFormat
    
     
  19. ddn128

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

    Да, я не делаю, пока писал придумал :)
    Ну как вариант:
    Берём ники, которые хотим парсить, складываем в файл insta.txt
    varlamov
    guliaguma
    huykin
    pupkin
    ...

    Код:
    {% set url = rand_str_from_file(settings.doc_root ~ '/templates/public/'~settings.view.public.template~'/data/insta.txt',1) %}
    {% set rss = get_rss_articles('http://rssbridge.buddylist.co/?action=display&bridge=InstagramBridge&u='~url[0]~'&format=MrssFormat') %}
    {% for i in 0..5 %}
    <div class="photo">{{rss.description|raw}}</div>
    <div class="title">{{rss.title}}</div>
    { % endfor % }
    


    На практике не проверял, но думаю должно работать
     
    Zlodey, Art и elf нравится это.
  20. ddn128

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

    Меня тут спрашивают - "А что делать, если нужен rss с сайта, которого нет в сервисе buddylist.co"
    Вар. 1. - подождать, когда\если будет внедрена "хотелка" с парсингом html
    Вар 2. - погуглить, и найти 100500 агрегаторов на любой вкус. Например https://feedfry.com/
    Из вот такой стр. одного малоизвестного сайта - https://www.avito.ru/moskva/uslugi
    Делает вот такую ленту - https://feedfry.com/rss/11e6985cc223174ca096c09aaba3eb98

    Или из другого, широко известного в узких кругах :) - https://feedfry.com/rss/11e6985e7cb1e97a9241d9f591b4603e
    Ну т .д.
     
    ustinai и Art нравится это.

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