TOP - aegif Labo Blog Liferay
テンプレート処理中にエラーが発生しました。
Failed to "?eval" string with this error: ---begin-message--- Syntax error in ?eval-ed string in line 1, column 2: Encountered ")", but was expecting one of: <STRING_LITERAL> <RAW_STRING> "false" "true" <INTEGER> <DECIMAL> "." "+" "-" "!" "[" "(" "{" <ID> ---end-message--- The failing expression: ==> contentJsonString?eval [in template "20101#20128#34150" at line 27, column 31] ---- FTL stack trace ("~" means nesting-related): - Failed at: contentJson = contentJsonString?eval [in template "20101#20128#34150" at line 27, column 17] - Reached through: #assign-container [in template "20101#20128#34150" at line 10, column 9] ----
1<span class="new-entry-title">新着記事</span>
2<div class="blog-new-entry-main-area">
3<#assign dateFormat = "yyyy.MMM.dd" />
4<#assign assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")>
5<#assign assetCategoryPropertyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryPropertyLocalService")>
6<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
7<#assign dlFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")>
8
9<#list entries as entry>
10 <#assign
11 entry = entry
12
13 assetRenderer = entry.getAssetRenderer()
14
15 entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale))
16
17 viewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, assetRenderer, entry, !stringUtil.equals(assetLinkBehavior, "showFullContent"))
18
19 categoryList = assetCategoryLocalService.getAssetEntryAssetCategories(entry.getEntryId())
20 category = categoryList[0]
21 cardTitle = assetCategoryPropertyLocalService.getCategoryProperty(category.getCategoryId(), 'card-title').getValue()
22
23 oldestJournalArticle = journalArticleLocalService.getOldestArticle(groupId, assetRenderer.getArticle().getArticleId())
24 journalArticle = assetRenderer.getArticle()
25 docXml = saxReaderUtil.read(journalArticle.getContent())
26 contentJsonString = value_of(docXml, "blogImage", languageUtil.getLanguageId(locale))
27 contentJson = contentJsonString?eval
28 imageFile = dlFileEntryLocalService.getFileEntry(contentJson.fileEntryId?number)
29 imageURL = themeDisplay.getPortalURL() + "/documents" + "/" + imageFile.getRepositoryId() + "/" + imageFile.getFolderId() + "/" + imageFile.getFileName()
30 />
31
32 <div class="new-blog-entry">
33 <a href="${viewURL}" class="card-link">
34 <img class="blog-image" src="${imageURL}"/>
35 <div class="category-card ${cardTitle}">
36
37 <span class="category-name">${cardTitle}</span>
38 </div>
39 </a>
40 <div class="new-blog-title">
41 <h3>
42 <a href="${viewURL}">
43 ${entryTitle}
44 </a>
45 </h3>
46 </div>
47 <div class="new-blog-summary">
48 ${htmlUtil.escape(assetRenderer.getSummary(renderRequest, renderResponse))}
49 </div>
50 <div class="new-blog-metadata">
51 <span class="new-blog-author">${htmlUtil.escape(portalUtil.getUserName(oldestJournalArticle.getUserId(), assetRenderer.getUserName()))}</span>
52 <span class="new-blog-publish-date">${dateUtil.getDate(entry.getPublishDate(), dateFormat, locale)}</span>
53 </div>
54
55 </div>
56</#list>
57</div>
58
59<#function value_of docXml field languageId>
60 <#local defaultLanguageId = docXml.valueOf("/root/@default-locale") />
61 <#local value = docXml.valueOf("//dynamic-element[@name='" + field + "']/dynamic-content[@language-id='"+ languageId + "']/text()") />
62 <#if !value?has_content>
63 <#local value = docXml.valueOf("//dynamic-element[@name='" + field + "']/dynamic-content[@language-id='"+ defaultLanguageId + "']/text()") />
64 </#if>
65 <#return value />
66</#function>
RANKING
2021.1.08
2020.12.28
2020.12.01
2020.12.18
2020.10.30
Liferay DXP 7.3の新機能であるアプリビルダー(App Builder)をご紹介!
Liferay7.3から導入されたLiferay API Explorerを紹介します。
2020年10月にリリースされたLiferay DXP 7.3の新機能について紹介します
Liferay 7で実際にデータベースに対して発行されているクエリを出力する方法をご紹介
Liferay 7ではデフォルトでレスポンスヘッダにプロダクト情報が出力されるため、それを削除する方法をご紹介