Проекты
Во время обработки запрошенного шаблона произошла ошибка...
The following has evaluated to null or missing:
==> entry.getPublishDate() [in template "20116#20152#3768232" at line 18, column 29]
----
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 date = entry.getPublishDate() [in template "20116#20152#3768232" at line 18, column 13]
---- 1<style> 2.item__menu { 3 position: absolute; 4 top: 0; 5 right: 0; 6} 7</style> 8<#assign portletId = themeDisplay.getPortletDisplay().getId()/> 9<#if entries?has_content> 10 <section class="avo-section avo_news avo_news_inner"> 11 <div class="avo_news_2col"> 12 13 <div class="row"> 14 15 <#list entries as entry> 16 <#assign entryRenderer = entry.getAssetRenderer()/> 17 <#assign imgUrl = entryRenderer.getURLImagePreview(renderRequest)!""/> 18 <#assign date = entry.getPublishDate()/> 19<#-- полная картинка --> 20 21 <#-- получение дополнительных полей --> 22 <#assign fields = entryRenderer.getDDMFormValuesReader().getDDMFormValues().getDDMFormFieldValuesMap() /> 23 24 <#assign hasImages = false> 25 <#list fields['image']! as image> 26 <#if image.getValue().getString(locale)?has_content> 27 <#assign hasImages = true> 28 <#break> 29 </#if> 30 </#list> 31 32 <#assign hasVideos = false> 33 <#list fields['videoLink']! as videoLink> 34 <#if videoLink.getValue().getString(locale)?has_content> 35 <#assign hasVideos = true> 36 <#break> 37 </#if> 38 </#list> 39 40 <#assign bigPreviewFull = ''/> 41 <#assign bigPreviewSmall = ''/> 42 <#assign bigPreviews = fields['bigPreview']![]> 43 <#if bigPreviews?size gt 0> 44 <#assign bigPreviewJSON = bigPreviews[0].getValue().getString(locale) /> 45 <#if bigPreviewJSON?length gt 0 > 46 <#assign bigPreview = bigPreviewJSON?eval /> 47 <#assign bigPreviewFull = "/documents/${bigPreview.groupId}/0/${bigPreview.title}/${bigPreview.uuid}" /> 48 <#assign bigPreviewSmall = bigPreviewFull + '?imagePreview=1' /> 49 50 </#if> 51 </#if> 52 53 <#assign entryUrl = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, entry, true)/> 54 55 <div class="col-sm-6"> 56 <article class="news_item"> 57 <div class="picture"> 58 <picture> 59 <#if bigPreviewSmall?has_content> 60 <img src="${bigPreviewSmall}" alt="${entry.getTitle(locale)}"/> 61 <#elseif imgUrl?has_content> 62 <img src="${imgUrl}" alt="${entry.getTitle(locale)}"/> 63 <#else/> 64 <span>${entry.getTitle(locale)}</span> 65 </#if> 66 </picture> 67 68 <div class="hover_box"> 69 <a class="hover_link" href="${entryUrl}"></a> 70 <#if bigPreviewFull?has_content> 71 <div class="icons"> 72 <a download="download" href="${bigPreviewFull}" title="Скачать"> 73 <svg height="512pt" viewBox="0 0 512 512" width="512pt" xmlns="http://www.w3.org/2000/svg"><path d="m409.785156 278.5-153.785156 153.785156-153.785156-153.785156 28.285156-28.285156 105.5 105.5v-355.714844h40v355.714844l105.5-105.5zm102.214844 193.5h-512v40h512zm0 0"/></svg> 74 </a> 75 <a data-fancybox class="fullscreen" href="${bigPreviewFull}" title="Увеличить"> 76 <svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="expand" class="svg-inline--fa fa-expand fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z"></path></svg> 77 </a> 78 </div> 79 </#if> 80 </div> 81 </div> 82 <div class="flex"> 83 <span class="date">${dateUtil.getDate(date, "dd MMMM yyyy", locale)}</span> 84 <span class="avo_icons"> 85 <#if hasImages> 86 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M22 16V4C22 2.9 21.1 2 20 2H8C6.9 2 6 2.9 6 4V16C6 17.1 6.9 18 8 18H20C21.1 18 22 17.1 22 16ZM11.4 12.53L13.03 14.71L15.61 11.49C15.81 11.24 16.19 11.24 16.39 11.49L19.35 15.19C19.61 15.52 19.38 16 18.96 16H9C8.59 16 8.35 15.53 8.6 15.2L10.6 12.53C10.8 12.27 11.2 12.27 11.4 12.53ZM2 7V20C2 21.1 2.9 22 4 22H17C17.55 22 18 21.55 18 21C18 20.45 17.55 20 17 20H5C4.45 20 4 19.55 4 19V7C4 6.45 3.55 6 3 6C2.45 6 2 6.45 2 7Z" fill="#B8BCCB"/></svg> 87 </#if> 88 <#if hasVideos> 89 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M18 4L19.82 7.64C19.9 7.8 19.78 8 19.6 8H17.62C17.24 8 16.89 7.79 16.73 7.45L15 4H13L14.82 7.64C14.9 7.8 14.78 8 14.6 8H12.62C12.24 8 11.89 7.79 11.73 7.45L10 4H8L9.82 7.64C9.9 7.8 9.78 8 9.6 8H7.62C7.24 8 6.89 7.79 6.72 7.45L5 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V5C22 4.45 21.55 4 21 4H18Z" fill="#B8BCCB"/></svg> 90 </#if> 91 </span> 92 </div> 93 <a href="${entryUrl}"> 94 <h3>${entry.getTitle(locale)}</h3> 95 <#assign summary = entryRenderer.getSummary(renderRequest,renderResponse)/> 96 <#assign fullSummary = summary/> 97 <#assign abstractLength = getPreference(portletPreferences, "abstractLength", 200)/> 98 <#assign summarySplitIndex = summary?index_of(" ", abstractLength)/> 99 <#if summarySplitIndex gt 0> 100 <#assign summary = summary?substring(0,summarySplitIndex)?remove_ending(".") + '...'/> 101 </#if> 102 <p title="${fullSummary}">${summary}</p> 103 </a> 104 <#assign editPermission = entryRenderer.hasEditPermission(permissionChecker)/> 105 <#if editPermission> 106 <div class="item__menu"> 107 <#assign redirectUrl = portletURLFactory.create(renderRequest, themeDisplay.getPortletDisplay().getId(),themeDisplay.getPlid(), "RENDER_PHASE")/> 108 <#assign editUrl = entryRenderer.getURLEdit(renderRequest,renderResponse,windowStateFactory.getWindowState("NORMAL"),redirectUrl)/> 109 <#assign editTitle = languageUtil.format(locale, 'edit-x', htmlUtil.escape(entry.getTitle(locale))) /> 110 <#assign menuId = portletId + '_' + entry.getEntryId()/> 111 <@liferay_ui["icon-menu"] cssClass="visible-interaction" direction="left-side" markupView="lexicon" showWhenSingleIcon=true> 112 <@liferay_ui.icon data={'destroyOnHide': true, 'id': menuId + '_edit', 'title': editTitle} message="edit" label=true method="get" url=editUrl.toString() useDialog=false/> 113 </@> 114 </div> 115 </#if> 116 </article> 117 </div><!--col--> 118 119 </#list> 120 </div><!--/row--> 121 122 </div><!--/container--> 123 </section><!--/--> 124</#if> 125 126<#function getPreference preferences name defaultValue> 127 <#assign preferenceArray = preferences[name]![]/> 128 <#if preferenceArray?size gt 0> 129 <#return preferenceArray[0]?number!defaultValue> 130 </#if> 131 <#return defaultValue> 132</#function> — 10 Материалов на странице