Embed виджет для стороннего сайта.

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Embed виджет для стороннего сайта.

Сообщение Loveorigami »

Приветствую всех, читающих эту тему.

Собственно, появилась необходимость отдать свои данные в уже сформированном htnl виде для размещения на других сайтах.
Например.

Туроператор дает возможность своим агентам создать виджет с ценами по объекту (+ настроить внешний вид).
Агент, получает код этого виджета и размещает его у себя на сайте, тем самым показывая на нем цены туроператора.

Т.е.

Код: Выделить всё

<script type="text/javascript" charset="utf-8" src="https://stells.info/assets/js/partner.fire.js"></script>
<div class="s-partnership" style="display:none;">EmnEq1JOLTtiWcJ%2BI%2F1ZjMN%2F4vG6VuXav232zs%2BtYaY%3D</div>
Дает такой результат
http://www.gintur.com/object/fregat/price

Как такое можно реализовать на Yii2?
Ну или что можно почитать по этому поводу.

Спасибо.
Последний раз редактировалось Loveorigami 2017.07.13, 09:07, всего редактировалось 1 раз.
sosnovskiy
Сообщения: 239
Зарегистрирован: 2017.03.28, 20:03

Re: Embed виджет для стороннего сайта.

Сообщение sosnovskiy »

А как бы вы без yii это реализовывали?
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Re: Embed виджет для стороннего сайта.

Сообщение Loveorigami »

Я имел ввиду, с особенностями yii2 вроде crsf. А так - не знаю...
Пока вижу, что загружается некий скрипт, в который передаются параметры.
По ним, я думаю, идет запрос на контроллер. Затем полученные данные возвращаются на сторонний сайт в div.
Вот меня интересует начальная стадия. Может, кто то уже делал подобное?
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Embed виджет для стороннего сайта.

Сообщение ElisDN »

Сделайте контроллер по маршруту partner.fire.js&partner=123, который будет рендерить JS с document.write('<div... >') или document.write('<iframe ...>').
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Re: Embed виджет для стороннего сайта.

Сообщение Loveorigami »

Идея хорошая. Спасибо. Но по примеру как тут
http://www.gintur.com/object/fregat/price
там меняются цены, в зависимости от выбранного номера . Получается, что ннужен полный js скрипт, который будер реализовывать такие сценарии...
sosnovskiy
Сообщения: 239
Зарегистрирован: 2017.03.28, 20:03

Re: Embed виджет для стороннего сайта.

Сообщение sosnovskiy »

ElisDN писал(а): 2017.07.13, 02:21 Сделайте контроллер по маршруту partner.fire.js&partner=123, который будет рендерить JS с document.write('<div... >') или document.write('<iframe ...>').
Как сказал вам Дмитрий - выводите iframe и указывайте get парамтер partner. По этому параметру "подбирайте" нужные цены и рендерьте "страничку". Все
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Re: Embed виджет для стороннего сайта.

Сообщение Loveorigami »

Если бы я хотел делать через Iframe, можно и тему не создавать и так все ясно. Данные могут быть разного размера по высоте (как на примере ). На стороннем сайте будет скролл...
Меня интересует имеено тот вариант, что в теме.
Если перейти по ссылке из кода, там открывается скрипт, а не iframe
https://stells.info/assets/js/partner.fire.js
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Embed виджет для стороннего сайта.

Сообщение ElisDN »

Loveorigami писал(а): 2017.07.13, 11:21 Если перейти по ссылке из кода, там открывается скрипт, а не iframe
Открывается скрипт https://stells.info/assets/partner.fire.js:

Код: Выделить всё

!function(){
    var e="stellsPartner";
    if(!window.hasOwnProperty(e)){
        window[e]={queue_length:0,cycle_num:0};
        var n=document.createElement("script");
        n.type="text/javascript",
        n.src="https://stells.info/assets/partner.app.js?_=1499249152";
        try{
            document.body.appendChild(n)
        }catch(t){
            window.onload=function(){document.body.appendChild(n)}
        }
    }
    window[e].queue_length++,
    window[e].cycle_num=0
}();
который создаёт скрипт <script src="https://stells.info/assets/partner.app.js" ...>, который расчитывает размеры окна и генерирует:

Код: Выделить всё

<iframe src="https://stells.info/partnership/integration/?key=dwwAvtHXOh36mRYDFSDrtYB9QTjLYkNjOb%2BenVNN12A%3D" id="stellsPartner1" scrolling="no" frameborder="0" allowtransparency="true" style="border: 0px; width: 100%; overflow: hidden; min-height: 250px; height: 2439px;"></iframe>
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Re: Embed виджет для стороннего сайта.

Сообщение Loveorigami »

Все. Понял!
Спасибо большое!
Ответить