Во время обработки запрошенного шаблона произошла ошибка...
The following has evaluated to null or missing:
==> ctx.proc  [in template "20100#20136#1583049" at line 447, column 26]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: ${ctx.proc}  [in template "20100#20136#1583049" at line 447, column 24]
----
1<#assign log = staticUtil['com.liferay.portal.kernel.log.LogFactoryUtil'].getLog("feeds.template")> 
2<#assign _ = log.info(themeDisplay.getURLCurrent())/> 
3 
4<#assign ctx = staticUtil['ru.voskhod.gpparf.portal.feeds.main.page.portlet.util.FeedsTemplateRenderUtil'].buildContext(.vars)> 
5 
6<#assign tagList = templateUtil.getArticleTagsWithId(groupId, ctx.journalArticleId, locale)/> 
7<#assign catList = templateUtil.getNewsCategoriesWithId(groupId, ctx.journalArticleId, locale)/> 
8 
9<#assign feedUrl = "/web" + themeDisplay.getSiteGroup().getFriendlyURL() + "/mass-media/news/archive"/> 
10 
11<#--todo:: перенести это безумие в buildContext--> 
12<#if gp_media_file?? && gp_media_file.getSiblings()?has_content> 
13    <#assign audioList = ddmService.getAudioFiles(gp_media_file.getSiblings()) /> 
14    <#assign videoList = ddmService.getVideoFiles(gp_media_file.getSiblings()) /> 
15</#if> 
16 
17<#assign imagesList = [] /> 
18<#if gp_images?? && gp_images.getSiblings()?has_content > 
19    <#list gp_images.getSiblings() as cur_gp_images> 
20        <#if cur_gp_images.getData()?? && cur_gp_images.getData() != ""> 
21            <#if gp_main_image_uuid?? && gp_main_image_uuid.getData()?? && cur_gp_images.getAttribute("uuid") == gp_main_image_uuid.getData()> 
22                <#assign imagesList = [cur_gp_images] + imagesList /> 
23            <#else> 
24                <#assign imagesList = imagesList + [cur_gp_images] /> 
25            </#if> 
26        </#if> 
27    </#list> 
28</#if> 
29 
30<#assign mediaFileCount = 0 /> 
31<#if gp_media_file?? && gp_media_file?has_content && gp_media_file.getSiblings()?has_content> 
32    <#list gp_media_file.getSiblings() as cur_gp_media> 
33        <#if cur_gp_media.data?? && cur_gp_media.data?has_content> 
34            <#assign mediaFileCount = mediaFileCount + 1 /> 
35        </#if> 
36    </#list> 
37</#if> 
38 
39<#assign attachmentCount = 0 /> 
40<#if gp_attachment?? && gp_attachment?has_content && gp_attachment.getSiblings()?has_content> 
41    <#list gp_attachment.getSiblings() as cur_gp_attachment> 
42        <#if cur_gp_attachment.data?? && cur_gp_attachment.data?has_content> 
43            <#assign attachmentCount = attachmentCount + 1 /> 
44        </#if> 
45    </#list> 
46</#if> 
47 
48<style> 
49    button:focus { 
50        outline: unset; 
51
52 
53    .a_custom { 
54        padding-top: 10px !important; 
55        color: white; 
56
57 
58    .a_custom:hover, .a_custom:focus { 
59        color: #ffffff; 
60        text-decoration: none; 
61        outline: unset; 
62
63</style> 
64 
65<h2 class="feeds-page__title"> 
66    ${themeDisplay.portletDisplay.title} 
67</h2> 
68<div class="feeds-page__header"> 
69    <ul class="feeds-page__info"> 
70        <#if ctx.datetimePubFieldFormatted?has_content> 
71            <li class="feeds-page__info_item">${ctx.datetimePubFieldFormatted}</li> 
72        </#if> 
73        <#if ctx.proc?has_content> 
74            <li class="feeds-page__info_item"> 
75                <#if ctx.procUri?has_content> 
76                    <a href="${ctx.procUri}" title="" class="feeds-page__info_link"> 
77                        ${ctx.proc} 
78                    </a> 
79                <#else> 
80                    <a title="" class="feeds-page__info_link" style="cursor: default;"> 
81                        ${ctx.proc} 
82                    </a> 
83                </#if> 
84            </li> 
85        </#if> 
86    </ul> 
87    <div class="feeds-page__subtitle" id="text_printprw">${ctx.journalArticleTitle}</div> 
88</div> 
89<div class="feeds-page__body"> 
90    <div class="feeds-page__navigation"> 
91        <#if gp_content?has_content> 
92            <div class="feeds-page__navigation_item text-item is-active" 
93                 onclick="openTab('feeds-page__article_text_block', 'text-item')"> 
94                <span class="feeds-page__navigation_icon is-text">&nbsp;</span> 
95                <span class="feeds-page__navigation_tooltip"> 
96                    <@liferay.language key="feeds.tab.text" /> 
97                </span> 
98            </div> 
99        </#if> 
100        <#if (imagesList?size > 0)> 
101            <div class="feeds-page__navigation_item photo-item" 
102                 onclick="openTab('feeds-page__article_gallery', 'photo-item')"> 
103                <span class="feeds-page__navigation_icon is-image">&nbsp;</span> 
104                <span class="feeds-page__navigation_badge">${imagesList?size}</span> 
105                <span class="feeds-page__navigation_tooltip"> 
106                    <@liferay.language key="feeds.tab.photo" /> 
107                </span> 
108            </div> 
109        </#if> 
110        <#if (mediaFileCount > 0)> 
111            <div class="feeds-page__navigation_item media-item" 
112                 onclick="openTab('feeds-page__article_media', 'media-item')"> 
113                <span class="feeds-page__navigation_icon is-video">&nbsp;</span> 
114                <span class="feeds-page__navigation_badge">${mediaFileCount}</span> 
115                <span class="feeds-page__navigation_tooltip"> 
116                    <@liferay.language key="feeds.tab.media" /> 
117                </span> 
118            </div> 
119        </#if> 
120        <#if (attachmentCount > 0)> 
121            <div class="feeds-page__navigation_item attach-item" 
122                 onclick="openTab('feeds-page__article_file', 'attach-item')"> 
123                <span class="feeds-page__navigation_icon is-attach">&nbsp;</span> 
124                <span class="feeds-page__navigation_badge">${attachmentCount}</span> 
125                <span class="feeds-page__navigation_tooltip"> 
126                    <@liferay.language key="feeds.tab.attach" /> 
127                </span> 
128            </div> 
129        </#if> 
130        <#if !ctx.internal> 
131            <div class="feeds-page__navigation_item share-item" 
132                 onclick="openTab('feeds-page__article_share', 'share-item')"> 
133                <span class="feeds-page__navigation_icon is-share">&nbsp;</span> 
134                <span class="feeds-page__navigation_tooltip"> 
135                    <@liferay.language key="feeds.tab.share" /> 
136                </span> 
137            </div> 
138        </#if> 
139    </div> 
140    <div class="feeds-page__article"> 
141        <#if gp_content?has_content> 
142            <div class="feeds-page__article_text_block"> 
143                <#if (imagesList?size > 0)> 
144                    <div class="feeds-page__article_image"> 
145                        <div class="feeds-page__article_image-viewport"> 
146                            <div class="feeds-page__article_image-list"> 
147                                <#list imagesList as cur_gp_image> 
148                                    <#if cur_gp_image.getAttribute("alt")??> 
149                                        <#assign img_alt = cur_gp_image.getAttribute("alt")/> 
150                                    <#else> 
151                                        <#assign img_alt = ""/> 
152                                    </#if> 
153 
154                                    <#if cur_gp_image.getAttribute("displaySource")?? && cur_gp_image.getAttribute("displaySource") == "true"> 
155                                        <#assign img_src = cur_gp_image.getData()/> 
156                                    <#else> 
157                                        <#assign img_src = "/o/adaptive-media/image/" + cur_gp_image.getAttribute("fileEntryId") + "/news/img"/> 
158                                    </#if> 
159 
160                                    <div class="feeds-page__article_image-item"> 
161                                        <img src="${img_src}" alt="${img_alt}"> 
162                                    </div> 
163                                </#list> 
164                            </div> 
165                        </div> 
166                        <div class="feeds-page__article_image-buttons"> 
167                            <span class="feeds-page__article_image-arr to-left">&nbsp;</span> 
168                            <span class="feeds-page__article_image-arr to-right">&nbsp;</span> 
169                        </div> 
170                        <div class="feeds-page__article_image-counter"> 
171                        </div> 
172                    </div> 
173                </#if> 
174 
175                <div class="feeds-page__article_text"> 
176                    ${gp_content.getData()} 
177                </div> 
178 
179                <div class="feeds-page__article_buttons"> 
180                    <a href="" class="button size-s a_custom" aria-label="<@liferay.language key="news.print" />" 
181                       id="button_printprw"><@liferay.language key="news.print" /> 
182                    </a> 
183                    <a href="${feedUrl}" 
184                       class="button button-contour size-s"><@liferay.language key="news.archive" /> 
185                    </a> 
186                    <div class="feeds-page__article_buttons-last" id="subscribeButtonPlaceHolder"></div> 
187                </div> 
188            </div> 
189        </#if> 
190 
191        <!-- Images begin --> 
192        <#if (imagesList?size > 0)> 
193            <div class="feeds-page__article_gallery" style="display: none"> 
194                <h4 class="feeds-page__article_gallery-title">${gp_images.getSiblings()?size} <@liferay.language key="photo" /></h4> 
195                <ul class="feeds-page__article_gallery-list"> 
196                    <#list imagesList as cur_gp_image> 
197                        <#if cur_gp_image.getAttribute("alt")??> 
198                            <#assign img_alt = cur_gp_image.getAttribute("alt")/> 
199                        <#else> 
200                            <#assign img_alt = ""/> 
201                        </#if> 
202 
203                        <#if cur_gp_image.getAttribute("displaySource")?? && cur_gp_image.getAttribute("displaySource") == "true"> 
204                            <#assign img_src = cur_gp_image.getData()/> 
205                        <#else> 
206                            <#assign img_src = "/o/adaptive-media/image/" + cur_gp_image.getAttribute("fileEntryId") + "/news/img"/> 
207                        </#if> 
208 
209                        <a data-epp-photo-modal="feeds-images" 
210                           data-title="${img_alt}" 
211                           href="${img_src}"> 
212                            <li class="feeds-page__article_gallery-item one-new-slider__item swiper-slide" 
213                                style="background-image: url('${img_src}')" 
214
215                            </li> 
216                        </a> 
217                    </#list> 
218                </ul> 
219            </div> 
220        </#if> 
221        <!-- Images end --> 
222 
223 
224        <!-- Media --> 
225        <#if (mediaFileCount > 0)> 
226            <div class="feeds-page__article_media" style="display: none"> 
227                <!-- Video slide --> 
228                <#if videoList?has_content> 
229                    <div class="feeds-page__article_video"> 
230                        <h4 class="feeds-page__article_video-title">${videoList?size} 
231                            <@liferay.language key="video" /> 
232                        </h4> 
233                        <ul class="feeds-page__article_video-list"> 
234                            <#list videoList as cur_gp_media_file> 
235                                <#assign url = templateUtil.getImagePath(cur_gp_media_file, themeDisplay) /> 
236                                <#assign previewUrl = url + "&videoThumbnail=1" /> 
237                                <#assign videoSizeTitle = templateUtil.fileSizeFormat(cur_gp_media_file.size, locale)/> 
238 
239                                <#if cur_gp_media_file.description?has_content > 
240                                    <#assign description = cur_gp_media_file.description /> 
241                                <#else> 
242                                    <#assign description = cur_gp_media_file.title /> 
243                                </#if> 
244 
245                                <li class="feeds-page__article_video-item"> 
246                                    <div class="feeds-page__article_video-preview"> 
247                                        <a data-epp-video-modal="feeds-images" 
248                                           data-title="${description}" 
249                                           data-preview="${previewUrl}" 
250                                           href="${url}" 
251
252                                            <span class="feeds-page__article_video-tumb" 
253                                                  style="background-image: url('${previewUrl}')" 
254
255                                            </span> 
256                                        </a> 
257                                        <p class="feeds-page__article_video-name"> 
258                                            <span> 
259                                                ${description} 
260                                            </span> 
261                                        </p> 
262                                    </div> 
263                                    <a href="${url}&download=true" target="_blank" class="button size-s"> 
264                                        <@liferay.language key="news.download" /> [ ${videoSizeTitle} ] 
265                                    </a> 
266                                </li> 
267                            </#list> 
268                        </ul> 
269                    </div> 
270                </#if> 
271                <!-- Video slide end --> 
272 
273                <!-- Audio slide --> 
274                <#if audioList?has_content> 
275                    <div class="feeds-page__article_audio "> 
276                        <h4 class="feeds-page__article_audio-title"> 
277                            ${audioList?size} <@liferay.language key="audio" /> 
278                        </h4> 
279                        <ul class="feeds-page__article_audio-list media-audio-wrapper"> 
280                            <#list audioList as cur_gp_media_file> 
281                                <#assign url = templateUtil.getImagePath(cur_gp_media_file, themeDisplay) /> 
282                                <#assign videoSizeTitle = templateUtil.fileSizeFormat(cur_gp_media_file.size, locale)/> 
283 
284                                <li class="feeds-page__article_audio-item media-a-wrapper"> 
285                                    <span class="feeds-page__article_audio-name"> 
286                                        <span> 
287                                            <#if cur_gp_media_file.description?has_content > 
288                                                ${cur_gp_media_file.description} 
289                                            <#else> 
290                                                ${cur_gp_media_file.title} 
291                                            </#if> 
292                                        </span> 
293                                    </span> 
294                                    <audio class="feeds_media_player" 
295                                           controls 
296                                           style="max-width:100%;" 
297                                           stretching="auto" 
298                                           pluginPath="js" 
299                                           loop="false" 
300                                           features="['playpause', 'progress', 'current', 'duration', 'tracks', 'volume']" 
301                                           alwaysShowControls="false" 
302                                           pauseOtherPlayers="true" 
303                                           preload="none" 
304
305                                        <source src="${url}" type="${cur_gp_media_file.getMimeType()}"> 
306                                    </audio> 
307                                    <a href="${url}&download=true" target="_blank" class="button size-s"> 
308                                        <@liferay.language key="news.download" /> [ ${videoSizeTitle} ] 
309                                    </a> 
310                                </li> 
311                            </#list> 
312                        </ul> 
313                    </div> 
314                </#if> 
315                <!-- Audio slide end --> 
316            </div> 
317        </#if> 
318        <!-- Media end --> 
319 
320        <!-- Attachments begin --> 
321        <#if (attachmentCount > 0)> 
322            <div class="feeds-page__article_file" style="display: none"> 
323                <#assign numberOfFiles = templateUtil.numberOfFiles(gp_attachment.getSiblings()?size) /> 
324                <h4 class="feeds-page__article_file-title">${numberOfFiles}</h4> 
325                <ul class="feeds-page__article_file-list"> 
326                    <#list gp_attachment.getSiblings() as cur_gp_attachment> 
327                        <#assign fileSize = ddmService.getFileSizeByDataEntry(locale, groupId, cur_gp_attachment) /> 
328                        <#assign sizeTitle = templateUtil.fileSizeFormat(fileSize, locale)/> 
329 
330                        <#if cur_gp_attachment.data?? && cur_gp_attachment.data?has_content> 
331                            <#assign fileMeta = cur_gp_attachment.data?replace('\\\\u(....)', '&#x$1;', 'r')?eval/> 
332 
333                            <li class="feeds-page__article_file-item"> 
334                                <p class="feeds-page__article_file-name"> 
335                                    <#if cur_gp_attachment.gp_attachment_description?? && cur_gp_attachment.gp_attachment_description.getData()?has_content> 
336                                        <#assign fileDescription = cur_gp_attachment.gp_attachment_description.getData() /> 
337                                        <spna> 
338                                            ${fileDescription} 
339                                        </spna> 
340                                    <#else > 
341                                        <spna> 
342                                            ${fileMeta.title} 
343                                        </spna> 
344                                    </#if> 
345                                </p> 
346                                <a href="${cur_gp_attachment.getData()}&download=true" target="_blank" 
347                                   class="button size-s a_custom"> 
348                                    <@liferay.language key="news.download" /> [ ${sizeTitle} ] 
349                                </a> 
350                            </li> 
351                        </#if> 
352                    </#list> 
353                </ul> 
354            </div> 
355        </#if> 
356 
357        <!-- Attachments end --> 
358 
359        <#if !ctx.internal> 
360            <div class="feeds-page__article_share" style="display: none"> 
361                <span class="feeds-page__article_share-title"> 
362                    <@liferay.language key="news.direct-link" /> 
363                </span> 
364                <div class="text-field hidden-xs"> 
365                    <div class="text-field__value"> 
366                        <input type="search" class="text-field__input" placeholder="${ctx.repostUrl}" 
367                               value="${ctx.repostUrl}" 
368                               readonly> 
369                    </div> 
370                    <span class="text-field__help">&nbsp;</span> 
371                </div> 
372                <button id="shareButton" class="a_custom button hidden-lg hidden-sm  hidden-md size-s" 
373                        onclick="CopyToClipboard('${ctx.repostUrl}')" 
374
375                    <@liferay.language key="news.direct-link.copy" /> 
376                </button> 
377 
378                <span class="feeds-page__article_share-title"> 
379                    <@liferay.language key="news.share" /> 
380                </span> 
381                <ul class="feeds-page__article_share-list"> 
382                    <li class="feeds-page__article_share-item"> 
383                        <a href="#" title="" class="feeds-page__article_share-link s_vk">Вконтакте</a> 
384                    </li> 
385                    <li class="feeds-page__article_share-item"> 
386                        <a href="#" title="" class="feeds-page__article_share-link s_livejournal">LiveJournal</a> 
387                    </li> 
388                    <li class="feeds-page__article_share-item"> 
389                        <a href="#" title="" class="feeds-page__article_share-link s_facebook">Facebook</a> 
390                    </li> 
391                    <li class="feeds-page__article_share-item"> 
392                        <a href="#" title="" class="feeds-page__article_share-link s_twitter">Twitter</a> 
393                    </li> 
394                </ul> 
395            </div> 
396        </#if> 
397    </div> 
398</div> 
399<div class="feeds-page__footer"> 
400    <#if catList?has_content> 
401        <div class="feeds-page__footer_item"> 
402            <h4 class="feeds-page__footer_title"><@liferay.language key="news.rubrics" /></h4> 
403            <#list catList?keys as catName> 
404                <a class="chips" href="${feedUrl + "?rubrics=" + catList[catName]}"> 
405                    ${catName} 
406                </a> 
407            </#list> 
408        </div> 
409    </#if> 
410    <#if tagList?has_content> 
411        <div class="feeds-page__footer_item"> 
412            <h4 class="feeds-page__footer_title">Теги</h4> 
413            <#list tagList?keys as tagName> 
414                <a class="chips" href="${feedUrl + "?tags=" + tagList[tagName]}"> 
415                    ${tagName} 
416                </a> 
417            </#list> 
418        </div> 
419    </#if> 
420</div> 
421 
422<div id="printContent" class="print_data"> 
423    <div class="print_header"> 
424        <div class="print__wrapper"> 
425            <div class="print__logo"> 
426                <#if !ctx.internal> 
427                    <img src="/o/gpparf-public-theme/images/logo.png" alt="logo" width="50" height="54"> 
428                <#else> 
429                    <img src="/o/gpparf-internal-theme/images/logo.svg" alt="logo" width="50" height="54"> 
430                </#if> 
431                <h2 class="print__title">${ctx.procStart}<br><span>${ctx.procEnd}</span></h2> 
432            </div> 
433            <div class="print_button_wrapper no-print"> 
434                <a href="#" class="print_button" aria-label="<@liferay.language key="news.print" />" 
435                   id="button_print" onclick="self.print()"> 
436                    <svg xmlns="http://www.w3.org/2000/svg" width="24" height="19" viewBox="0 0 24 19"> 
437                        <path fill-rule="evenodd" 
438                              d="M7 17h10v-7H7v7zm-2 1v-4H0V3h24v11h-5v5H5v-1zm0-9V8h14v4h3V5H2v7h3V9zm0-9h14v2H5V0zm4 13h6v2H9v-2z"></path> 
439                    </svg> 
440                </a> 
441            </div> 
442        </div> 
443        <div class="container"> 
444            <div class="category__info row"> 
445                <div class="category__item col-xs-6 col-sm-6 col-md-6 col-lg-6"> 
446                    <span class="category__category"><@liferay.language key="news.source" />:</span> 
447                    <p>${ctx.proc}</p> 
448                </div> 
449                <div class="category__item col-xs-6 col-sm-6 col-md-6 col-lg-6"> 
450                    <span class="category__category"><@liferay.language key="news.publication-date" />:</span> 
451                    <p>${ctx.datetimePubFieldFormatted}</p> 
452                </div> 
453            </div> 
454        </div> 
455    </div> 
456 
457    <section class="one-new__content"> 
458        <h2 class="one-new__title">${ctx.journalArticleTitle}</h2> 
459        <#if gp_content?has_content> 
460            <div class="break-word">${gp_content.getData()}</div> 
461        </#if> 
462    </section> 
463    <div class="print_footer"> 
464        <div class="container"> 
465            <div class="row"> 
466                <div class="col-xs-6 col-sm-6 col-md-6 col-lg-6"> 
467                    © 2003-2020 ${ctx.proc}<br> 
468                    <@liferay.language key="footer.copyright" /> 
469                </div> 
470                <div class="col-xs-6 col-sm-6 col-md-6 col-lg-6"> 
471                    <#if ctx.currentUnitContactInfo?has_content> 
472                        <@liferay.language key="news.address" />: ${ctx.currentUnitContactInfo.address}<br> 
473                        <#if ctx.currentUnitContactInfo.categoryPointTitle?? && ctx.currentUnitContactInfo.phone??> 
474                            ${ctx.currentUnitContactInfo.categoryPointTitle}: 
475                            <a href="tel:${ctx.currentUnitContactInfo.phone}">${ctx.currentUnitContactInfo.phone}</a> 
476                        </#if> 
477                    </#if> 
478                </div> 
479            </div> 
480        </div> 
481    </div> 
482</div> 
483 
484 
485<script> 
486  (function () { 
487    var init = function () { 
488      $(".feeds-page__article_share-link").ShareLink({ 
489        title: '${ctx.journalArticleTitle}', 
490        text: '${ctx.journalArticleTitle}', 
491        image: '${themeDisplay.getPortalURL()}/documents/1664002/1691794/emblem_big%281%29.PNG',//'http://cdn.myanimelist.net/images/characters/3/27890.jpg', 
492        url: '${ctx.repostUrl}' 
493      }); 
494 
495 
496      $("#button_printprw").printPreview({ 
497        obj2print: '#printContent', 
498        width: '980', 
499        style: '<style>.print_data{display:block;}</style>', 
500        resizable: 'no', 
501        status: 'no', 
502        title: '${ctx.proc?html}' 
503      }); 
504 
505      $("#shareButton").on("click", function () { 
506        $(this).html('<@liferay.language key="news.direct-link.copy-success" />'); 
507        setTimeout(function () { 
508          $("#shareButton").html('<@liferay.language key="news.direct-link.copy" />'); 
509        }, 600); 
510      }); 
511 
512      $('.feeds_media_player').mediaelementplayer({ 
513        audioVolume: "vertical", 
514        success: function (mediaElement, originalNode, instance2) { 
515          mediaElement.pause(); 
516          mediaElement.load(); 
517
518      }); 
519 
520      <#if (imagesList?size > 0)> 
521      eppCarousel.create({ 
522        containerSelector: '.feeds-page__article_image-list', 
523        buttonsSelector: '.feeds-page__article_image-buttons', 
524        dotContainerSelector: '.feeds-page__article_image-counter', 
525        dotElementClass: '${(imagesList?size > 1 && imagesList?size <= 5)?string('feeds-page__article_image-counter_item', '')}', 
526        dotElementTag: 'a', 
527        fadeElementSelector: '.feeds-page__article_image_content', 
528        infinity: true, 
529      }); 
530      </#if> 
531 
532      textOverflowDots('.feeds-page__article_video-name span'); 
533      textOverflowDots('.feeds-page__article_audio-name span'); 
534    }; 
535 
536    if ($().mediaelementplayer && $().ShareLink && $().printPreview) 
537      init(); 
538    else 
539      document.addEventListener("DOMContentLoaded", init); 
540  })(); 
541 
542  function openTab(blockName, tabName) { 
543 
544    var tab = $('.' + tabName); 
545 
546    if (!tab.hasClass('is-active')) { 
547 
548      $('.text-item').removeClass('is-active'); 
549      $('.photo-item').removeClass('is-active'); 
550      $('.media-item').removeClass('is-active'); 
551      $('.attach-item').removeClass('is-active'); 
552      $('.share-item').removeClass('is-active'); 
553 
554      tab.addClass('is-active'); 
555 
556      $('.feeds-page__article_text_block').css('display', 'none'); 
557      $('.feeds-page__article_gallery').css('display', 'none'); 
558      $('.feeds-page__article_media').css('display', 'none'); 
559      $('.feeds-page__article_file').css('display', 'none'); 
560      $('.feeds-page__article_share').css('display', 'none'); 
561      $('.' + blockName).css('display', 'block'); 
562
563
564</script>