Форум программистов, компьютерный форум, киберфорум
1С Битрикс
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 2
Регистрация: 09.10.2009
Сообщений: 299
1

Детальная страница новости во всплывающем окне

10.07.2019, 09:40. Просмотров 826. Ответов 4

Всем привет! Есть вот такая проблема:

Есть страница. На ней компонент списка новостей: bitrix:news.list

Список новостей отображается корректно. Детальная страница новости также отображается корректно.
Подключил на страницу палгин fancybox.

Хочу чтобы при клике по элементу списка был бы не переход на детальную страницу новости, а во всплывающем окне бы отображались данные одной новости, детально.

В общем вот страница, на которой размещён компонент bitrix:news.list:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Записаться на тренинг");
?>
 
<link rel="stylesheet" href="css/jquery.fancybox.css?v=2.1.7" type="text/css" media="screen" />
 
<?$APPLICATION->IncludeComponent(
    "bitrix:news.list", 
    "sign_up_training", 
    array(
        "DISPLAY_DATE" => "Y",
        "DISPLAY_NAME" => "Y",
        "DISPLAY_PICTURE" => "Y",
        "DISPLAY_PREVIEW_TEXT" => "Y",
        "AJAX_MODE" => "Y",
        "IBLOCK_TYPE" => "trainings",
        "IBLOCK_ID" => "77",
        "NEWS_COUNT" => "20",
        "SORT_BY1" => "ACTIVE_FROM",
        "SORT_ORDER1" => "DESC",
        "SORT_BY2" => "SORT",
        "SORT_ORDER2" => "ASC",
        "FILTER_NAME" => "",
        "FIELD_CODE" => array(
            0 => "",
            1 => "",
        ),
        "PROPERTY_CODE" => array(
            0 => "",
            1 => "DATE",
            2 => "DESCRIPTION",
            3 => "",
        ),
        "CHECK_DATES" => "Y",
        "DETAIL_URL" => "",
        "PREVIEW_TRUNCATE_LEN" => "",
        "ACTIVE_DATE_FORMAT" => "d.m.Y",
        "SET_TITLE" => "Y",
        "SET_BROWSER_TITLE" => "Y",
        "SET_META_KEYWORDS" => "Y",
        "SET_META_DESCRIPTION" => "Y",
        "SET_LAST_MODIFIED" => "Y",
        "INCLUDE_IBLOCK_INTO_CHAIN" => "Y",
        "ADD_SECTIONS_CHAIN" => "Y",
        "HIDE_LINK_WHEN_NO_DETAIL" => "Y",
        "PARENT_SECTION" => "",
        "PARENT_SECTION_CODE" => "",
        "INCLUDE_SUBSECTIONS" => "Y",
        "CACHE_TYPE" => "A",
        "CACHE_TIME" => "3600",
        "CACHE_FILTER" => "Y",
        "CACHE_GROUPS" => "N",
        "DISPLAY_TOP_PAGER" => "N",
        "DISPLAY_BOTTOM_PAGER" => "N",
        "PAGER_TITLE" => "Новости",
        "PAGER_SHOW_ALWAYS" => "Y",
        "PAGER_TEMPLATE" => "",
        "PAGER_DESC_NUMBERING" => "Y",
        "PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",
        "PAGER_SHOW_ALL" => "Y",
        "PAGER_BASE_LINK_ENABLE" => "Y",
        "SET_STATUS_404" => "Y",
        "SHOW_404" => "Y",
        "MESSAGE_404" => "",
        "PAGER_BASE_LINK" => "",
        "PAGER_PARAMS_NAME" => "arrPager",
        "AJAX_OPTION_JUMP" => "N",
        "AJAX_OPTION_STYLE" => "Y",
        "AJAX_OPTION_HISTORY" => "N",
        "AJAX_OPTION_ADDITIONAL" => "",
        "COMPONENT_TEMPLATE" => "sign_up_training",
        "STRICT_SECTION_CHECK" => "N",
        "FILE_404" => ""
    ),
    false
);?>
 
<div id="fancy-content" style="display:none;">
<!--Это само всплывающее окно fancybox-->
<!--Тут я хочу отображать детальную страницу новости-->
 
<?/*$APPLICATION->IncludeComponent(
    "bitrix:news.detail", 
    ".default", 
    array(
        "DISPLAY_DATE" => "Y",
        "DISPLAY_NAME" => "Y",
        "DISPLAY_PICTURE" => "Y",
        "DISPLAY_PREVIEW_TEXT" => "Y",
        "USE_SHARE" => "N",
        "SHARE_HIDE" => "N",
        "SHARE_TEMPLATE" => "",
        "SHARE_HANDLERS" => array(
            0 => "delicious",
        ),
        "SHARE_SHORTEN_URL_LOGIN" => "",
        "SHARE_SHORTEN_URL_KEY" => "",
        "AJAX_MODE" => "Y",
        "IBLOCK_TYPE" => "trainings",
        "IBLOCK_ID" => "77",
        //"ELEMENT_ID" => $_REQUEST["ELEMENT_ID"],
        "ELEMENT_ID" => 2207811,//Сюда надо как то передать ID нужной новости - той новости, по ссылке на которую кликнули
        "ELEMENT_CODE" => "",
        "CHECK_DATES" => "Y",
        "FIELD_CODE" => array(
            0 => "",
            1 => "",
        ),
        "PROPERTY_CODE" => array(
            0 => "",
            1 => "DESCRIPTION",
            2 => "",
        ),
        "IBLOCK_URL" => "news.php?ID=#IBLOCK_ID#\"",
        "DETAIL_URL" => "",
        "SET_TITLE" => "Y",
        "SET_CANONICAL_URL" => "Y",
        "SET_BROWSER_TITLE" => "Y",
        "BROWSER_TITLE" => "-",
        "SET_META_KEYWORDS" => "Y",
        "META_KEYWORDS" => "-",
        "SET_META_DESCRIPTION" => "Y",
        "META_DESCRIPTION" => "-",
        "SET_STATUS_404" => "Y",
        "SET_LAST_MODIFIED" => "Y",
        "INCLUDE_IBLOCK_INTO_CHAIN" => "Y",
        "ADD_SECTIONS_CHAIN" => "Y",
        "ADD_ELEMENT_CHAIN" => "N",
        "ACTIVE_DATE_FORMAT" => "d.m.Y",
        "USE_PERMISSIONS" => "Y",
        "GROUP_PERMISSIONS" => array(
            0 => "1",
        ),
        "CACHE_TYPE" => "A",
        "CACHE_TIME" => "3600",
        "CACHE_GROUPS" => "N",
        "DISPLAY_TOP_PAGER" => "Y",
        "DISPLAY_BOTTOM_PAGER" => "Y",
        "PAGER_TITLE" => "Страница",
        "PAGER_TEMPLATE" => "",
        "PAGER_SHOW_ALL" => "Y",
        "PAGER_BASE_LINK_ENABLE" => "Y",
        "SHOW_404" => "Y",
        "MESSAGE_404" => "",
        "STRICT_SECTION_CHECK" => "Y",
        "PAGER_BASE_LINK" => "",
        "PAGER_PARAMS_NAME" => "arrPager",
        "AJAX_OPTION_JUMP" => "N",
        "AJAX_OPTION_STYLE" => "Y",
        "AJAX_OPTION_HISTORY" => "N",
        "COMPONENT_TEMPLATE" => ".default",
        "AJAX_OPTION_ADDITIONAL" => "",
        "FILE_404" => ""
    ),
    false
);*/?>
</div>
 
 
<script type="text/javascript" src="js/jquery.fancybox.js?v=2.1.7"></script>
<script type="text/javascript">
    $(document).ready(function() {
        $(".fancybox").fancybox();
 
        $('.fancybox').on('click', function(){
            console.log('Кликнули по ссылке');
 
            var state = {};
            var title = '';
            var url = 'http://домен/hr_info/training/sign_up_training?ELEMENT_ID=' + $(this).data('element-id');
 
            console.log('element-id=',$(this).data('element-id'));
            history.pushState(state, title, url);
 
        });
 
        //history.pushState(state, title, url);
    });
</script>
 
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
То есть по большому счёту мне надо как то в компонент bitrix:news.detail передать номер новости, по которой кликнули. Подскажите, как это можно сделать?

Сейчас пока закомментировал код вызова компонента детальной страницы новости, так как нужный функционал не получилось пока реализовать.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.07.2019, 09:40
Ответы с готовыми решениями:

Детальная страница новости отображается в том же шаблоне, что и список
Делал кто-то когда-то давно сайт на Битриксе. Мне поставлена задача его местами переделать. В...

Детальная страница бренда
Всем привет. Имеется битрикс с многосайтовостью. Одна версия битрикс, одно шаблонное решение, но...

Детальная страница раздела
Написал компонент детальной страницы раздела, но в режиме правки нельзя редактировать данный...

Страница в всплывающем окне
Не знаю как правильно называется, и как правильно выразить свою мысль. В общем не могу додуматься...

4
384 / 368 / 92
Регистрация: 15.02.2012
Сообщений: 1,483
10.07.2019, 13:31 2
1. проверь точно ли есть атрибут data='element-id'
2. на этой странице "домен/hr_info/training/sign_up_training" точно ли есть компонет детальной страницы?
3. так как ты передаешь параметр через строку, то у тебя верно было "ELEMENT_ID" => $_REQUEST["ELEMENT_ID"],
4. если у тебя вдруг пусто $(this).data('element-id'), то можно заменить на $(this).attr('data','element-id')
0
1 / 1 / 2
Регистрация: 09.10.2009
Сообщений: 299
10.07.2019, 14:07  [ТС] 3
Спасибо! Уже нашёл решение. Оно вот тут:

https://kalapasa.ru/stati/o-bi... lnom-okne/
0
30 / 26 / 3
Регистрация: 01.09.2018
Сообщений: 141
10.07.2019, 21:32 4
с индексацией проблем не будет?
0
1087 / 812 / 179
Регистрация: 16.03.2008
Сообщений: 3,885
Записей в блоге: 1
16.07.2019, 09:14 5
Цитата Сообщение от stanislavj Посмотреть сообщение
с индексацией проблем не будет?
Смотря как реализовывать.

Если по Варианту 1, т.е. обычная ссылка, только клик перехватывается и обрабатывается скриптом (тем же fancybox) то проблем ни каких.

Если href не указан как в варианте 2, то тут под вопросом.
HTML5
1
2
<a href="/news/121/" class="js-popup">Вариант 1</a>
<a href="javascript:void(0);" onclick="show(121)">Вариант 2</a>
Добавлено через 1 минуту
Единственное, по хорошему, надо предусмотреть, что если страница вызвана аяксом - только сам контент, если адрес вбит в адресную строку - то полноценная страница
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.07.2019, 09:14

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как отобразить информацию (введенную в форму), в новом окне и во всплывающем окне?
Подскажите пожалуйста, у меня есть форма в нее делаю запись, как сделать так, что бы после введения...

Детальная страница в news.list
Здравствуйте уважаемые коллеги, прошу помочь разобраться с простым компонентом bitrix:news.list ...

Не отображается детальная страница элементов
Добрый день. Столкнулась с такой проблемой. Создала копию ужесуществующего инфоблока на сайте....

Раздвигающая элементы детальная страница
Всем привет) Чтобы не писать велосипеды хотел найти jquery плагин который раздвигает элементы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.