Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » jQuery » Как поправить JS в модальном окне модуль {AJAX FULL-STORY}?

Как поправить JS в модальном окне модуль {AJAX FULL-STORY}?


     10.08.2019    дле    jQuery, Модули    74

вопрос
Собственно сам вопрос по модулю {AJAX FULL-STORY}, как мне сделать так, что бы инфа выводилась не в стандартном модальном окне от DLE, а в модальном окне Bootstrap.
Есть код :
$(document).on('click', '[data-afs-id]', function () {
    var $this = $(this),
        $data = $this.data();

    $.ajax({
            url: dle_root + 'engine/ajax/full-story.php',
            type: 'GET',
            dataType: 'html',
            data: {
                newsId: $data.afsId, // Обязательная переменная
                preset: ($data.afsPreset) ? $data.afsPreset : '', // Название файла с настройками (необязательно)
                template: ($data.afsTemplate) ? $data.afsTemplate : '', // Название файла с шаблоном (необязательно)
            },
        })
        .done(function (data) {
            var $html = $(data);

            // Данные получены, можно заняться разбором и показать их в диалоге
            // Ниже простейший пример вывода контента в стандартном модальном окне DLE

            var modalId = 'afs-' + $data.afsId + '-' + $data.afsPreset + '-' + $data.afsTemplate;
            modalId = modalId.replace(/\//g, "-");

            var $modalBlock = $('<div style="display: none;"><div id="' + modalId + '"></div></div>');

            $modalBlock
                .appendTo('body') // Добавляем блок на страницу
                .find('#' + modalId) // Ищем интересующий нас селектор
                .html($html) // Вставляем в него полученный код
                .dialog({ // Показываем модальное окно
                    width: 800
                });

        })
        .fail(function () {
            console.log("full-story error");
        });
});


этот код выводит блок такого типа:

<div class="ui-dialog ui-widget ui-widget-content ui-corner-all ui-draggable" style="" tabindex="-1" role="dialog" aria-labelledby="ui-id-1">
    <div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix"><span id="ui-id-1" class="ui-dialog-title">&nbsp;</span><a href="#" class="ui-dialog-titlebar-close ui-corner-all" role="button" data-select-link-text="1"><span class="ui-icon ui-icon-closethick">close</span></a></div>
	     <div id="afs-548-undefined-undefined" class="ui-dialog-content ui-widget-content" style="width: auto; min-height: 130px; height: auto;" scrolltop="0" scrollleft="0">
		 
		////////////// тут содержимое которое подгружается с шаблона /////////////
		
    </div>
</div>

У меня есть уже настроеное модальное окно но оно работает на Bootstrap и много JS на нем завязано,
так вот, как мне сделать так, что бы это все дело выводилось таким образом:
<div class="modaler-poster fade-poster" id="pley{news-id}" tabindex="-1" role="dialog" aria-labelledby="pley{news-id}" aria-hidden="true">
	<div class="modaler-poster-dialog window-popup event-private-public public-event" role="document">
		<div class="modaler-poster-content">
			<div class="close icon-close" data-poster="modaler-poster" aria-label="Close">
				<svg><use xlink:href="{THEME}/js/test/style/img/svg-icons/icons.svg#olymp-close-icon"></use></svg>
			</div>
			////////////// тут содержимое которое подгружается с шаблона/////////////
		</div>
	</div>
</div>


Нужно поправить JS, помогите решить проблему?

Ответил: LazyDev


$(document).on('click', '[data-afs-id]', function () {
    var $this = $(this),
        $data = $this.data();

    $.ajax({
            url: dle_root + 'engine/ajax/full-story.php',
            type: 'GET',
            dataType: 'html',
            data: {
                newsId: $data.afsId, // Обязательная переменная
                preset: ($data.afsPreset) ? $data.afsPreset : '', // Название файла с настройками (необязательно)
                template: ($data.afsTemplate) ? $data.afsTemplate : '', // Название файла с шаблоном (необязательно)
            },
        })
        .done(function (data) {
            var $html = $(data);
            var modalId = $data.afsId;
            $('#pley' + modalId + ' > .modaler-poster-dialog > .modaler-poster-content').append($html);
        })
        .fail(function () {
            console.log("full-story error");
        });
});

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

zis
Юзер

zis - 10 августа 2019 22:26 -

Ни работает код.

LazyDev
php-developer

LazyDev - 10 августа 2019 22:32 -

zis, обновил код.

Мой блог: LazyDev.pro
Если мне не интересен вопрос, не помогаю, и за этим по контактам прошу не писать.

zis
Юзер

zis - 10 августа 2019 22:45 -

все тоже самое, по разметке тоже смотрю, никаких всплывающих блоков нет.

LazyDev
php-developer

LazyDev - 11 августа 2019 00:16 -

zis, потому что вам нужно вызвать код вызова вашего окна. Я сделал вставку в контейнер окна, а вам осталось после него сделать вызов.

Мой блог: LazyDev.pro
Если мне не интересен вопрос, не помогаю, и за этим по контактам прошу не писать.

zis
Юзер

zis - 11 августа 2019 01:06 -

Я уверяю не работает ваш пример, в стандартном примере инфа выводится с ajax/fullstory, но в вашем примере вообще ничего не происходит, я уже что только не пробовал.
Может я не правильно выразился, у меня в fullstory.tpl используется модальное окно, оно не загружается по ajax, оно в самой разметке, при клике на скажем ссылку <button data-toggle="modaler-poster" data-target="#pley{news-id}" class="skew-button1"><span>модал окно</span></button> всплывает само окно.
Я просто решил разгрузить страницу, что бы вся инфа подгружалась с помощью ajax, вот собственно нашел этот модуль и все бы ничего, если бы не сама разметка модального окна представленная в этом примере, она мне не подходит, мне нужно переделывать много чего, стили, js, js плеера и т д, вот если бы мою разметку модального окна вставить взамен предложной, было бы все ок.

LazyDev
php-developer

LazyDev - 11 августа 2019 02:06 -

zis, вы не понимаете что у вас окно инициализируется а запрос нет? Вы видите по какому параметру в скрипте срабатывает AJAX запрос?
data-afs-id
А у вас в кнопке что? Только открытие окна, нет никаких параметров что описаны в модуле. Для начала настройте нормально а тогда проверяйте.

Мой блог: LazyDev.pro
Если мне не интересен вопрос, не помогаю, и за этим по контактам прошу не писать.

zis
Юзер

zis - 11 августа 2019 12:54 -

Разобрался, все работает, спс за помощь.

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

Похожие вопросы

наверх