Download our zondacrypto
app and start investing now!
How can we help you?
The following has evaluated to null or missing: ==> rootMenuItemId [in template "20100#20126#HELP_DESK_PAGE_NAVIGATION" at line 94, column 37] ---- 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: #assign myNavPrefs = freeMarkerPortle... [in template "20100#20126#HELP_DESK_PAGE_NAVIGATION" at line 85, column 9] ----
1<#assign
2assetCategoryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")
3assetVocabularyService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")
4classNameLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.ClassNameLocalService")
5structureLocalService = serviceLocator.findService("com.liferay.dynamic.data.mapping.service.DDMStructureLocalService")
6layoutService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")
7
8articleId = .vars['reserved-article-id'].data
9currentArticle = zonda.journalArticleService.getArticle(groupId,articleId)
10articleFriendlyUrl = currentArticle.getUrlTitle(locale)
11
12articleResourcePK = currentArticle.getResourcePrimKey()
13globalGroupId = themeDisplay.getCompanyGroupId()
14
15categories = assetCategoryService.getCategories(zonda.jaClassName, articleResourcePK)
16
17vocabulary = assetVocabularyService.fetchAssetVocabularyByUuidAndGroupId(zonda.vocabularyHelpdeskUuid, globalGroupId)!''
18/>
19
20<#if categories?has_content>
21 <#assign
22 vocabularyId = vocabulary.vocabularyId
23 />
24 <#list categories as category>
25
26 <#if category.vocabularyId==vocabularyId>
27 <#assign categoryParent = category.getParentCategory() />
28 <#if categoryParent?has_content && categoryParent.categoryId!=0>
29 <#assign
30 currentCategory = category
31 currentCategoryParent = categoryParent
32 />
33 </#if>
34 <#else>
35 <#if permissionChecker.isSignedIn()>
36 <div class="alert alert-info">
37 <@liferay.language key="zonda-category-error" />
38 </div>
39 </#if>
40 </#if>
41 </#list>
42<#else>
43 <#if permissionChecker.isSignedIn()>
44 <div class="alert alert-info">
45 <@liferay.language key="zonda-category-error" />
46 </div>
47 </#if>
48</#if>
49
50<#if currentCategory?has_content>
51
52 <#assign
53 currentCategoryId = currentCategory.categoryId
54 currentCategoryParentId = currentCategoryParent.categoryId
55 />
56
57 <nav class="left-nav">
58
59 <#assign
60 navTemplateName = "ddmTemplate_BB-HELPDESK-NAVIGATION-IN-ARTICLE"
61 helpdeskMainUrl = articleFriendlyUrl?split("/")[0]
62
63 layoutHelpdeskByUrl = layoutService.fetchLayoutByFriendlyURL(groupId, false, zonda.helpdeskPrefix+helpdeskMainUrl)!''
64 layoutHelpdeskByParentCategory = layoutService.fetchLayoutByFriendlyURL(groupId, false, zonda.helpdeskParentPrefix+currentCategoryParent.name?lower_case)!''
65 />
66
67 <#if layoutHelpdeskByUrl?has_content>
68 <#assign rootMenuItemId = layoutHelpdeskByUrl.getUuid() />
69 <#elseif layoutHelpdeskByParentCategory?has_content>
70 <#assign rootMenuItemId = layoutHelpdeskByParentCategory.getUuid() />
71 <#if permissionChecker.isSignedIn()>
72 <div class="alert alert-info">
73 <@liferay.language key="zonda-friendly-url-error-in-article" />
74 </div>
75 </#if>
76 <#else>
77 <#if permissionChecker.isSignedIn()>
78 <div class="alert alert-info">
79 <@liferay.language key="zonda-friendly-url-error-in-article" />
80 <@liferay.language key="zonda-parent-category-error-in-layout" />
81 </div>
82 </#if>
83 </#if>
84
85 <#assign
86 myNavPrefs = freeMarkerPortletPreferences.getPreferences({
87 "expandedLevels": "auto",
88 "rootMenuItemLevel": "0",
89 "displayStyleGroupId": "${globalGroupId}",
90 "siteNavigationMenuId": "0",
91 "siteNavigationMenuType": "6",
92 "displayDepth": "0",
93 "rootMenuItemType": "select",
94 "rootMenuItemId":"${rootMenuItemId}",
95 "displayStyle": "${navTemplateName}"
96 })
97 />
98
99 <@liferay_portlet["runtime"]
100 defaultPreferences="${myNavPrefs}"
101 instanceId="nav_category_id_${currentCategoryParentId}"
102 persistSettings=false
103 portletName="com_liferay_site_navigation_menu_web_portlet_SiteNavigationMenuPortlet"
104 />
105
106 <#assign
107 journalArticleClassId = classNameLocalService.getClassNameId(zonda.jaClassName)
108 maxArticlesCount = 120
109 templateName = "ddmTemplate_WIDGET-TEMPLATE-HELPDESK-SIMPLE-ARTICLE-LIST"
110 structureKey = "HELP_DESK_PAGE"
111 structureId = structureLocalService.getStructure(globalGroupId,journalArticleClassId,structureKey).getStructureId()
112
113 assetPublisherPreferences = freeMarkerPortletPreferences.getPreferences({
114 "selectionStyle":"dynamic",
115 "displayStyle":"${templateName}",
116 "queryName0":"assetCategories",
117 "orderByColumn2":"title",
118 "orderByType2":"ASC",
119 "orderByColumn1":"priority",
120 "orderByType1":"DESC",
121 "queryContains0":"true",
122 "queryAndOperator0":"false",
123 "queryValues0":"${currentCategoryId}",
124 "classTypeIds": "${structureId}",
125 "anyClassTypeJournalArticleAssetRendererFactory": "${structureId}",
126 "classTypeIdsJournalArticleAssetRendererFactory": "${structureId}",
127 "anyAssetType": "${journalArticleClassId}",
128 "classNameIds": "${journalArticleClassId}",
129 "rssDelta": "${maxArticlesCount}",
130 "delta": "${maxArticlesCount}"
131 })
132 />
133 <@liferay_portlet["runtime"]
134 defaultPreferences="${assetPublisherPreferences}"
135 instanceId="asset_category_id_${currentCategoryId}_helpdesk_${maxArticlesCount}"
136 persistSettings=true
137 portletName="com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet"
138 />
139
140 <@liferay_aui.script>
141 var listPlaceholder = document.createElement('div');
142 listPlaceholder.setAttribute('id', 'element-for-article');
143
144 var listWrapperElementToPlaceholder = document.getElementById("portlet_com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet_INSTANCE_asset_category_id_${currentCategoryId}_helpdesk_${maxArticlesCount}");
145 var portletElementToPlaceholder = listWrapperElementToPlaceholder.querySelector(".portlet-asset-publisher .portlet-body");
146 var portletContentToHide = listWrapperElementToPlaceholder.querySelector(".portlet-asset-publisher .portlet-content");
147
148 if(listPlaceholder) {
149 listPlaceholder.append(portletElementToPlaceholder);
150 portletContentToHide.classList.add('hide');
151 }
152
153 var categoryNavElement = document.getElementById("categoryId_${currentCategoryId}");
154
155 if (categoryNavElement){
156 categoryNavElement.classList.add('active');
157 categoryNavElement.parentElement.append(listPlaceholder);
158 }
159 else{
160 console.log('Zondacrypto Error - Please set category in layout');
161 }
162 </@liferay_aui.script>
163
164 </nav>
165
166<#else>
167 <#if permissionChecker.isSignedIn()>
168 <div class="alert alert-info">
169 <@liferay.language key="zonda-there-is-incorrect-category-in-article" />
170 </div>
171 </#if>
172</#if>
If you have any problems with Google Authenticator we recommend you to synchronize time in the application. (PLEASE NOTE: this option is only available for devices with Android system).
In order to do that please open your Google Authenticator app and choose „Settings”. After that please choose „Time correction for codes” and click „Sync now”. Once the synchronization is ready refresh your browser and try to type the GA code once again.
The synchronization will only affect internal time of your Google Authenticator app and will not change your device’s Time and Date settings.
In case the synchronization did not solve the problem there is a possibility to turn off Google Authenticator on your account manually. In order to do that please contact us via: [email protected]
To make sure that you are rightful owner of the account, we need you to send us „selfie'' photo with the document, which was used to verify your account and a piece of paper with today's date. Your face, as well as a document you have used to verify your account should be visible. After verifying you as the account's owner, we will be able to turn off your two-factor Google Authenticator verification.