Search Results

テンプレート処理中にエラーが発生しました。
The following has evaluated to null or missing:
==> restClient.get("/headless-admin-taxonomy/v1.0/sites/${companyId}/taxonomy-vocabularies/by-external-reference-code/RESOURCE_TYPE").id  [in template "8911408109993434201#23484949#23489017" at line 6, column 32]

----
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 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: vocabularyId = restClient.get("/headl...  [in template "8911408109993434201#23484949#23489017" at line 6, column 17]
----
1<#if entries?has_content> 
2 
3	<#assign 
4		totalCount = 0 
5		companyId = themeDisplay.getCompanyGroupId() 
6		vocabularyId = restClient.get("/headless-admin-taxonomy/v1.0/sites/${companyId}/taxonomy-vocabularies/by-external-reference-code/RESOURCE_TYPE").id 
7		categories = restClient.get("/headless-admin-taxonomy/v1.0/taxonomy-vocabularies/${vocabularyId}/taxonomy-categories").items 
8		orderedEntries = [] 
9		validCategoryIds = [] 
10	/> 
11 
12	<#list categories as category> 
13		<#if stringUtil.equals(category.externalReferenceCode, "HOW_TO") || stringUtil.equals(category.externalReferenceCode, "OFFICIAL_DOCUMENTATION")> 
14			<#assign validCategoryIds += [category.id] /> 
15		</#if> 
16	</#list> 
17 
18	<#list assetCategoriesSearchFacetDisplayContext.getBucketDisplayContexts() as bucket> 
19		<#assign totalCount = totalCount + bucket.getCount() /> 
20	</#list> 
21 
22	<ul class="learn-category-facet-tabs list-unstyled tab-list" id="tab-list"> 
23		<li class="facet-value"> 
24			<@clay.button 
25				cssClass="btn-unstyled facet-clear tab-btn text-center ${assetCategoriesSearchFacetDisplayContext.isNothingSelected()?then('selected-tab-btn', '')}" 
26				displayType="link" 
27				onClick="${namespace}updateSelection(event)" 
28				value="clear" 
29
30				<span class="term-text">${languageUtil.get(locale, "all-results", "All Results")}</span> 
31 
32				<#if entry.isFrequencyVisible()> 
33					<span class="term-count">${totalCount}</span> 
34				</#if> 
35			</@clay.button> 
36		</li> 
37 
38	<#list entries as entry> 
39	<#assign categoryId = entry.getFilterValue() /> 
40 
41	<#list categories as category> 
42		<#if category.id == categoryId> 
43			<#if category.externalReferenceCode == "OFFICIAL_DOCUMENTATION"> 
44				<#assign orderedEntries = [entry] + orderedEntries /> 
45			<#elseif category.externalReferenceCode == "HOW_TO"> 
46				<#assign orderedEntries += [entry] /> 
47			</#if> 
48		</#if> 
49	</#list> 
50</#list> 
51 
52<#list orderedEntries as entry> 
53	<li class="facet-value"> 
54		<@clay.button 
55			cssClass="btn-unstyled facet-term tab-btn term-name text-center ${(entry.isSelected())?then('selected-tab-btn', '')}" 
56			data\-term\-id="${entry.getFilterValue()}" 
57			disabled="true" 
58			displayType="link" 
59			onClick="${namespace}updateSelection(event)" 
60
61			<span class="term-text"> 
62				${htmlUtil.escape(entry.getBucketText())} 
63			</span> 
64 
65			<#if entry.isFrequencyVisible()> 
66				<span class="term-count"> 
67					${entry.getFrequency()} 
68				</span> 
69			</#if> 
70		</@clay.button> 
71	</li> 
72</#list> 
73	</ul> 
74 
75	<div class="dropdown learn-category-facet-tabs tab-list" id="tab-list-mobile"> 
76		<button 
77			aria-expanded="false" 
78			aria-haspopup="true" 
79			class="btn btn-unstyled d-inline-block selected-tab-btn" 
80			data-toggle="liferay-dropdown" 
81			displayType="button" 
82			id="dropdownAlignment1" 
83
84			<div class="d-flex facet-value-mobile justify-content-center opacity-75"> 
85				<#assign facetCount = 0 /> 
86				<#list entries as entry> 
87					<#if entry.isSelected()> 
88						<#assign facetCount++ /> 
89 
90						<span class="term-text">${entry.getBucketText()}</span> 
91						<#if entry.isFrequencyVisible()> 
92							<span class="term-count">${entry.getFrequency()}</span> 
93						</#if> 
94					</#if> 
95				</#list> 
96				<#if facetCount == 0> 
97					<span class="term-text">All results</span> 
98					<span class="term-count">${totalCount}</span> 
99				</#if> 
100			</div> 
101		</button> 
102 
103		<ul 
104			aria-labelledby="dropdownAlignment1" 
105			class="dropdown-menu" 
106			x-placement="bottom-start" 
107
108			<li class="align-items-center d-flex position-relative ${assetCategoriesSearchFacetDisplayContext.isNothingSelected()?then('selected-item-mobile-tab', '')}"> 
109				<@clay.button 
110					cssClass="dropdown-item facet-clear nav-link rounded" 
111					displayType="link" 
112					onClick="${namespace}updateSelection(event)" 
113					value="clear" 
114
115					<span class="term-text">${languageUtil.get(locale, "all-results", "All Results")}</span> 
116					<#if entry.isFrequencyVisible()> 
117						<span class="term-count">${totalCount}</span> 
118					</#if> 
119				</@clay.button> 
120			</li> 
121 
122			<#list entries as entry> 
123				<li class="align-items-center d-flex ${(entry.isSelected())?then('selected-item-mobile-tab', '')}"> 
124					<@clay.button 
125						cssClass="dropdown-item facet-clear nav-link rounded" 
126						data\-term\-id="${entry.getFilterValue()}" 
127						displayType="link" 
128						onClick="${namespace}updateSelection(event)" 
129
130						<span class="term-text">${htmlUtil.escape(entry.getBucketText())}</span> 
131						<#if entry.isFrequencyVisible()> 
132							<span class="term-count">${entry.getFrequency()}</span> 
133						</#if> 
134					</@clay.button> 
135				</li> 
136			</#list> 
137		</ul> 
138	</div> 
139</#if> 
140 
141<@liferay_aui.script> 
142	function handleStyleTabs(event) { 
143		const targetButton = event.currentTarget; 
144		const buttons = document.querySelectorAll('.tab-btn'); 
145 
146		buttons.forEach(button => { 
147			button.classList.remove('selected-tab-btn'); 
148		}); 
149 
150		if (targetButton.classList.contains('tab-btn')) { 
151			targetButton.classList.add('selected-tab-btn'); 
152
153
154 
155	function ${namespace}updateSelection(event) { 
156		handleStyleTabs(event); 
157 
158		const form = event.currentTarget.form; 
159 
160		if (form) { 
161			Liferay.Search.FacetUtil.selectTerms(form, []); 
162 
163			if (event.target.value === "clear") { 
164				Liferay.Search.FacetUtil.clearSelections(event); 
165
166			else { 
167				Liferay.Search.FacetUtil.changeSelection(event); 
168
169
170
171</@> 
172 
173<style> 
174	.learn-category-facet-tabs .facet-term-unselected .term-text { 
175		opacity: 0.8; 
176
177 
178	.learn-category-facet-tabs .facet-value { 
179		flex:1; 
180
181 
182	.learn-category-facet-tabs.tab-list { 
183		align-items:center; 
184		display: flex; 
185		background: var(--Neutral-01, #F7F7F8); 
186		border-radius: 99px; 
187		height: 52px; 
188		padding: 4px 6px; 
189
190 
191	.learn-category-facet-tabs .selected-tab-btn { 
192		background: var(--Action-Primary-Active-Lighten, #E6EDFB); 
193		border-radius: 99px; 
194		opacity: 1; 
195		padding: 8px; 
196		text-align: center; 
197		width: 100%; 
198
199 
200	.learn-category-facet-tabs .term-count { 
201		background: var(--Status-Info-Info, #2E5AAC); 
202		border-radius: 12px; 
203		color: var(--Neutral-00, #FFF); 
204		font-size: 13px; 
205		padding: 2px 5px; 
206
207 
208	.learn-category-facet-tabs .term-text { 
209		color: var(--Neutral-10, #282934); 
210		font-size: 14px; 
211		font-style: normal; 
212		font-weight: 600; 
213
214 
215	.selected-item-mobile-tab::after { 
216		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' fill='currentColor' class='lexicon-icon lexicon-icon-check' role='presentation' viewBox='0 0 512 512'%3E%3Cpath d='M192.9,429.5c-8.3,0-16.4-3.3-22.3-9.2L44.5,294.1C15,263.2,62.7,222,89.1,249.5L191.5,352l230-258.9 c27.2-30.5,74.3,11.5,47.1,41.9L216.4,418.9c-5.8,6.5-14,10.3-22.6,10.6C193.5,429.5,193.2,429.5,192.9,429.5z'%3E%3C/path%3E%3C/svg%3E"); 
217		background-repeat: no-repeat; 
218		background-size: contain; 
219		content: ""; 
220		height: 15px; 
221		position: absolute; 
222		right: 1rem; 
223		top: 50%; 
224		transform: translateY(-50%); 
225		width: 15px; 
226
227 
228	@media screen and (max-width: 992px) { 
229		.learn-category-facet-tabs .facet-value-mobile { 
230			gap: var(--spacer-2, 0.5rem); 
231
232 
233		.learn-category-facet-tabs .facet-value-mobile .term-text { 
234			opacity: 0.80; 
235
236 
237		.learn-category-facet-tabs .dropdown-menu, 
238		.learn-category-facet-tabs#tab-list-mobile { 
239			max-width: none; 
240			padding: var(--spacer-2, 0.5rem); 
241			width: 100%; 
242
243 
244		.learn-category-facet-tabs#tab-list { 
245			display: none !important; 
246
247 
248		.learn-category-facet-tabs#tab-list-mobile { 
249			align-items: center; 
250			display: flex !important; 
251			width: 100%; 
252
253
254 
255	#tab-list-mobile { 
256		display: none; 
257
258 
259	#tab-list-mobile::after { 
260		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23999AA3' d='M103.5 204.3l136.1 136.1c9 9 23.7 9 32.7 0l136.1-136.1c14.6-14.6 4.3-39.5-16.4-39.5H119.9C99.2 164.8 88.9 189.7 103.5 204.3z'/%3E%3C/svg%3E"); 
261		background-repeat: no-repeat; 
262		background-size: contain; 
263		content: ""; 
264		height: 15px; 
265		position: absolute; 
266		right: 1rem; 
267		top: 50%; 
268		transform: translateY(-50%); 
269		width: 15px; 
270
271</style> 
Capability
Feature
Deployment Approach
Configuring Liferay Authentication With PingOne Using SAML
This recipe guides you through the basic steps needed to integrate PingOne, your Identity Provider (IdP), with your Liferay environment using Security Assertion Markup Language (SAML). PingOne...
公開日: 2024/08/02 14:34
Integrate Azure AD with Liferay DXP Using OpenID Connect
This recipe guides you through the basic steps needed to integrate Azure AD (now known as Microsoft Entra ID), your Identity Provider (IdP), with your Liferay environment using OpenID Connect....
公開日: 2024/08/02 16:36
Integrate Azure AD with Liferay DXP Using SAML
As a general best practice, integrating Liferay DXP with other Identity Providers (IdPs) provides enhanced security and streamlines authentication management. This recipe guides you through the...
公開日: 2024/08/05 17:12
Building Multi-Step Forms With Liferay DXP Objects
This recipe guides you through the basic steps to build a multi-step form. Liferay DXP environment An object definition with fields A user who has access and control to create and manage objects,...
公開日: 2024/08/06 18:21
Integrate Okta with Liferay DXP using OpenID Connect
This recipe guides you through the steps to integrate Okta, your Identity Provider (IdP), with your Liferay environment using OpenID Connect. Okta Dev account Liferay DXP environment Administrative...
公開日: 2024/08/06 20:09
Designing and Displaying Reusable Navigation Menus
Navigation menus for a site are typically tied strictly to a site's page hierarchy and structure. The Navigation Menus feature in Liferay is powerful because it enables you to create navigation...
公開日: 2024/08/15 18:33
Building a Reusable and Dynamic Accordion With Fragments
Liferay Fragments are reusable, customizable web elements that serve as building blocks for a page. They consist of HTML, CSS, and JavaScript to provide structure, style, and functionality to your...
公開日: 2024/08/19 16:54
Using Zapier to Sync Object Data with Google Sheets
This recipe guides you through the steps required to use webhooks to trigger sync tasks between Liferay Objects and Google Sheets using Zapier.
公開日: 2024/11/14 16:15
提供されたフラグメントセットの作成
提供されたフラグメントセットの作成 提供されたフラグメントセットは、ページフラグメントを含むデプロイ可能なモジュールです。 提供されたセットのフラグメントは、通常のフラグメントと同じように使用できますが、データベースには含まれておらず、UI から直接変更することはできません。 Liferay 7.3以降を実行している場合は、圧縮された ZIP...
公開日: 2024/05/09 18:57
フラグメントにデフォルトのリソースを含める
フラグメントにデフォルトのリソースを含める フラグメントセットに画像(例: .gif、.jpg、.jpeg、.png)を含めて、フラグメントで使用できるようにすることができます。 ドキュメントとメディアなどの他のアプリケーションではなく、フラグメントと一緒に画像を保持すると便利です。 ここでは、フラグメント...
公開日: 2024/05/09 18:57
フラグメント固有のタグと属性のリファレンス
フラグメント固有のタグと属性のリファレンス 標準的なHTML、CSS、JavaScriptに加えて、Liferay固有のタグや属性を使用して、編集可能なセクションを定義したり、ウィジェットを埋め込んだりすることができます。 ...
公開日: 2024/05/09 18:57
Fragment Specific Tags and Attributes Reference for Liferay 7.3 and Earlier Versions
Fragment Specific Tags and Attributes Reference for Liferay 7.3 and Earlier Versions Along with standard HTML, CSS, and JavaScript, you can use Liferay-specific tags and attributes to define...
公開日: 2024/11/22 22:52
フラグメントドロップゾーンの定義
フラグメントドロップゾーンの定義 ドロップゾーンは、コンテンツページの構築に不可欠です。 フラグメントの中に、ユーザーが他のフラグメントやウィジェットをドラッグ&ドロップできる領域を定義することで、ユニークなページレイアウトや動的な表示を実現することができます。 ドロップゾーンを定義するには、次の手順に従います。 [サイト管理] → [デザイン] → [Fragments]...
公開日: 2024/05/09 18:57
開発者リファレンス
開発者リファレンス フラグメントの開発リファレンス
公開日: 2024/05/09 18:57
フラグメント設定タイプのリファレンス
フラグメント設定タイプのリファレンス このリファレンスには、フラグメントに使用可能な構成タイプがリストされています。 フラグメントを設定可能にする方法については、 フラグメントへの構成オプションの追加 を参照してください。 以下は実装できる構成可能なフラグメントタイプです。 text select checkbox colorPicker (Liferay 7.4+...
公開日: 2024/05/09 18:57
フラグメント内の要素の順序を設定する
フラグメント内の要素の順序を設定する 対応可能:Liferay 7.4以降 スライダー または タブ フラグメントは、通常、情報の異なる領域を表示するために使用されるものです。 スライダーは、この情報をスライドのカルーセルのように表示します。 タブは複数あり、それぞれ異なる情報が表示されます。 ...
公開日: 2024/05/09 18:57
フラグメントエディターの使用
フラグメントエディターの使用 Liferay DXPには、コンテンツページフラグメントを開発するためのビルトイン エディタ 。 エディターにアクセスするには、 Site Menu( Site Menu ) を開き、 Design → Fragments に移動します。 ここから、フラグメントとフラグメントセットの表示、管理、作成ができます。 フラグメントセットの作成 ...
公開日: 2024/05/09 18:57
フラグメント設定の検証
フラグメント設定の検証 フラグメント の設定オプション を定義するときに、有効なエントリーのルールを決定する text タイプのフィールドに validation プロパティを追加することができます。 ルールのタイプを指定することで、各フィールドが受け付けるデータのタイプを決定する:text、number、email、url、pattern`のいずれかである。...
公開日: 2024/05/09 18:57
Importing/Exporting Data
Importing/Exporting Data Liferay Self-Hosted Liferay SaaS Liferay PaaS Liferay 7.4 If you want to import or export data from Liferay, you use batch client extensions. Use and reuse your data...
公開日: 2024/05/09 18:54
フラグメントツールキットコマンドリファレンス
フラグメントツールキットコマンドリファレンス フラグメントツールキットは、現在実行中の Liferay DXP インスタンスに接続して、フラグメントをインポートおよびエクスポートできます。 ツールキットで作成したフラグメントをポータルに自動的にインポートすることもできます。 次のコマンドを使用できます。 コマンドDescription npm run...
公開日: 2024/05/09 18:57