Интервью и выступления

Во время обработки запрошенного шаблона произошла ошибка...
The following has evaluated to null or missing:
==> organizationService.getPersonByUuid(gp_person_uid.getData())  [in template "20100#20136#2378626" at line 71, column 36]

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