Вставить в тему блок из файла/шаблона с помощью Ajax Есть решение

SEO оптимизатор (извините за маты), посоветовал в теме блоки со ссылками на соц. сети вынести в отдельный блок и грузить через Ajax.

Подскажите как это проще сделать в реалиях Webasyst.

В статической странице я бы вызвал $("#load_social").load("social.html"); и все.

Как здесь загрузить файл/шаблон блока который находится в теме?

Спасибо.

6 ответов

  • 1
    Eugen Nichikov Партнер-разработчик 27 февраля 2016 02:05 # Решение

    Не исключено, что это уже не работает :) Можно попробовать посмотреть как GoogleBot.

    Сталкивался со случаями, когда блок подгружённый аяксом, отображался.

    Статичные шаблоны напрямую не будут отображаться.


    Самый простой, наверное, способ: через "Файлы" в приложении "Сайт" залить social.html и грузить его так как вы написали


     $("#load_social").load("{$wa_url}wa-data/public/site/social.html")
  • 1

    Перенести коды виджетов соцсетей непосредственно в нужный статичный шаблон, грузить его аяксом и не забывать после этого подать команды на их рендеринг.
    У FB - например так: https://developers.facebook.com/docs/reference/javascript/FB.XFBML.parse
    Как это сделать у других СС, смотрите в их документации.

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

  • 1
    Евгений 27 февраля 2016 02:00 #

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

    Вот тут подробнее можно? Часть с социальными кнопками вынес в отдельный файл.

    Но возникает вопрос какой путь к файлу указать в команде

    $("#load_social").load("путь/к/файлу/social.html");

    И соответственно как сделать что бы social.html обработался smarty

    Спасибо

    • +1

      Чтобы шаблон обработался Smarty можно блок добавить в страницу-черновик и грузить так:

      $("#load_social").load("/page_url/?preview=asdasdasda#block_id");

      Ну или написать свой плагин. Это не так сложно :)

  • 1
    Евгений 27 февраля 2016 02:21 #

    Под шаблоном который должен обработаться smarty я имел в виду содержимое файла social.html

    В таком варианте


    $("#load_social").load("{$wa_url}wa-data/public/site/social.html")

    smarty ведь не обработает файл? т.е. он тут должен быть с чистым html

    а хотелось бы с обработкой. но если не получится - буду обходиться без настроек из темы.

  • 1

    Если social.html просто статичный html без smarty-кода, то и прогонять его через смарти не нужно.
    В это шаблоне у вас по сути будет голый html и js-код виджетов...главное сделать так, чтобы после загрузки этого шаблона заставить cработать js-код виджетов.
    Почитайте как это делать.
    Вот например http://ru.stackoverflow.com/questions/153733/%D0%9...

  • 1
    Евгений 27 февраля 2016 03:34 #

    Я все понял. Спасибо.

    А если код не статичный, как сделать что бы webasyst его обработал?

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите