در حین انجام عملیات خطایی رخ داده است.
The following has evaluated to null or missing:
==> facultyListURL  [in template "20097#20123#41972" at line 26, column 12]

----
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: ${facultyListURL}  [in template "20097#20123#41972" at line 26, column 10]
----
1<div class="edu-portlet-wrapper"> 
2<div class="container"> 
3<div class="page row" data-display-mode="page" id="page"> 
4<div class="iconsContainer"> 
5<div class="icons"> 
6 
7<#--					<#if emailAddresses? has_content>--> 
8 
9<#--						<a--> 
10 
11<#--								class="email"--> 
12 
13<#--								data-end-color="21866a"--> 
14 
15<#--								data-start-color="38ef7d"--> 
16 
17<#--								data-theme="light"--> 
18 
19<#--								data-tippy-content=""--> 
20 
21<#--					>--> 
22 
23<#--<i class="icon-envelope-alt"></i>--> 
24 
25<#--						</a>--> 
26<a href="${facultyListURL}">بازگشت</a> 
27							<@portlet.resourceURL 
28								id="/university_people/faculty_generate_resume" 
29								var="generateResume" 
30
31								<@liferay_portlet.param 
32								name="universityPersonId" 
33								value="${person.getUniversityPersonId()?string}" 
34								/> 
35							</@> 
36						<#if showResumeIcon> 
37 
38							<a 
39									class="cv" 
40									data-end-color="ecae38" 
41									data-start-color="f4d95a" 
42									data-theme="light" 
43									data-tippy-content="دانلود رزومه" 
44									href="${generateResume}" 
45
46								<i class="icon-download-alt"></i> 
47							</a> 
48						</#if> 
49 
50<#--					</#if>--> 
51 
52				</div> 
53			</div> 
54 
55<div class="card col-12"> 
56<header class="header"> 
57 
58<div class="menu"> 
59<div class="right"> 
60<a class="menuBtn"> 
61<i class="icon-reorder"></i> 
62 
63								<span>${ languageUtil.get(resourceBundle, 
64									"menu") 
65									}</span> 
66 
67							</a> 
68 
69							<nav 
70								class="items" 
71								 id="menuitems" 
72								 style="flex-wrap: wrap-reverse; align-items: end;"> 
73								<#list facultyProfileUtils 
74								.getFacultyAvailableProfile(universityFaculty 
75								.getUniversityFacultyId(), locale) as profile> 
76 
77									<#assign activeClass ="" 
78									/> 
79									<#if profile.portletName == 
80									currentTab> 
81										<#assign activeClass ="active" /> 
82									</#if> 
83 
84									<@portlet.renderURL var="portlet2URL"> 
85										<@portlet.param 
86										name="runtimePortletName" 
87										value="${profile.getPortletName()}" 
88										/> 
89 
90										<@portlet.param 
91											name="universityFacultyId" 
92											value="${universityFaculty 
93										.getUniversityFacultyId()}" 
94										/> 
95									</@> 
96									<a 
97											class="${activeClass}" 
98											href="<#if universityFaculty 
99											.getFriendlyURL() 
100											?has_content> 
101																			${facultyFriendlyURLPath+profile.getPath()} 
102																			<#else>portlet2URL </#if>" 
103
104<i class="${profile.getIcon()}"></i> 
105 
106										<span>${profile.getTitle(locale)}</span> 
107									</a> 
108								</#list> 
109							</nav> 
110						</div> 
111					</div> 
112<div class="info"> 
113<div class="image"> 
114							<@portlet.resourceURL 
115								id="/university_people/person_image" 
116								var="imageResourceURL" 
117
118								<@liferay_portlet.param 
119								name="universityPersonImageId" 
120								value="${person.imageId?string}" 
121								/> 
122							</@> 
123 
124							<#if person.imageId gt 0> 
125 
126								<img alt="${person.getFirstName(locale)} ${person 
127								.getLastName(locale)}" 
128									 src=${imageResourceURL}> 
129							<#elseif person.getMale()> 
130								<img 
131										alt="${person.getFirstName(locale)} ${person.getLastName(locale)}" 
132										src="/o/ir.sain.university.people/images/male.jpg" 
133								/> 
134							<#else> 
135 
136								<img 
137										alt="${person.getFirstName(locale)} ${person 
138										.getLastName(locale)}" 
139										src="/o/ir.sain.university.people/images/female.jpeg" 
140								/> 
141							</#if> 
142						</div> 
143 
144<div class="content"> 
145 
146<div class="content_first-line"> 
147 
148							<#-- code--> 
149 
150							<#if degree?has_content> 
151								<h3 class="code">${languageUtil.get(resourceBundle, degree)}</h3> 
152							</#if> 
153 
154							<h6 class="content_modification-date">${languageUtil.get(resourceBundle,"modification-date")}: ${modificationDateStr}</h6> 
155 
156							</div> 
157 
158<h1 class="title"> 
159	${person.getFirstName(locale)} ${person.getLastName(locale)} <#if showActivityStatus><span>(${languageUtil.get(resourceBundle, activityStatusLabel, "elmi")})</span></#if> 
160							</h1> 
161<h3 class="subtitle"> 
162 
163								${universityDepartment.getName(locale)} 
164								<#if showProgramTitle> 
165
166								${universityProgram.getName(locale)} 
167								</#if> 
168							</h3> 
169						</div> 
170					</div> 
171				</header> 
172 
173				<@liferay_portlet.runtime 
174					portletName=runtimePortletName 
175					portletProviderAction=ActionView 
176				/> 
177			</div>		</div> 
178	</div> 
179</div> 
180 
181<script> 
182	<#assign address = "" /> 
183	<#if emailAddresses?has_content> 
184		<#assign address = emailAddresses[0].getAddress() /> 
185		AUI().ready(function() { 
186 
187			<#--var split = "${address}".split("@")--> 
188 
189			<#--var email = split[0]--> 
190 
191			<#--var prefix = split[1]--> 
192 
193			var elements = document.querySelectorAll("[data-start-color]"); 
194			elements.forEach((element) => { 
195				element.style.backgroundImage = 
196					"linear-gradient(147deg, #" + element.getAttribute("data-start-color") + " 0%, #" + element.getAttribute("data-end-color") + " 74%)"; 
197			}); 
198			// var emailicon = document.querySelector(".icons > .email"); 
199			// if (emailicon) { 
200			// 	emailicon.setAttribute("href", "mailto: " + email + "@" + prefix); 
201			// 	emailicon.setAttribute("data-tippy-content", email + "@" + prefix); 
202			// } 
203			// var emails = document.querySelectorAll("[data-email-fill]"); 
204			// emails.forEach((e) => (e.innerHTML = email + "@" + prefix)); 
205 
206			tippy("[data-tippy-content]", { 
207					allowHTML: true, 
208					theme: "light", 
209				}); 
210 
211				tippy("[data-template]", { 
212					content(reference) { 
213						const id = reference.getAttribute("data-template"); 
214						const template = document.getElementById(id); 
215						return template.innerHTML; 
216					}, 
217					allowHTML: true, 
218					theme: "light", 
219					// delay: [0, 500], 
220					duration: [200, 150], 
221					placement: "bottom", 
222					trigger: "click", 
223					hideOnClick: true, 
224				}); 
225		}); 
226	</#if> 
227</script>