اعضاء هیات علمی - دانشکده علوم
در حین انجام عملیات خطایی رخ داده است.
The following has evaluated to null or missing: ==> curUniversityProgram [in template "20097#20123#3633486" at line 434, column 162] ---- 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: @liferay_portlet.param name="universi... [in template "20097#20123#3633486" at line 434, column 105] - Reached through: @portlet.renderURL var="nextPage" [in template "20097#20123#3633486" at line 433, column 33] ----
1<style>
2 .edu-list-portlet-wrapper {
3 font-family: 'KalamehWebFaNum_Bold';
4 background: #F7F7F7;
5 }
6 .edu-list-portlet-wrapper .edu-list-portlet-header .container {
7 padding-top: 80px;
8 padding-bottom: 170px;
9 }
10 .edu-list-portlet-wrapper .edu-list-portlet-header h1.head {
11 color: #fff;
12 text-align: center;
13 }
14 .edu-list-portlet-wrapper .edu-list-portlet-header .filter {
15 justify-content: center;
16 }
17 .edu-list-portlet-wrapper .edu-list-portlet-header .filter .input.dropdown {
18 background: #ffc000;
19 padding: 0 30px !important;
20 }
21 .edu-list-portlet-wrapper .edu-list-portlet-header .filter .input{
22 background: #FFFFFF;
23 border-radius: 25px;
24 }
25 .edu-list-portlet-wrapper .edu-list-portlet-header button.button.input {
26 background: transparent;
27 color: #064096;
28 margin-right: -55px;
29 padding: 8px;
30 }
31 .edu-list-portlet-wrapper .edu-list-portlet-header .filter .input.button svg {
32 fill: #223a70;
33 margin-left: 0;
34 }
35 .edu-list-portlet-wrapper .edu-list-portlet-header {
36 background-image: url('/documents/20123/3633508/faculty-list.png/a4c0deb3-c68f-52fa-dbb7-3316c8eee431?version=1.0&t=1652970401030');
37 background-repeat: no-repeat;
38 background-size: cover;
39 position: relative;
40 }
41 .edu-list-portlet-wrapper .edu-list-portlet-header:before {
42 content: "";
43 position: absolute;
44 width: 100%;
45 height: 100%;
46 background: linear-gradient(90.05deg, rgba(32, 86, 173, 0.8) 1.32%, rgba(53, 85, 173, 0.8) 16%, rgba(74, 84, 174, 0.8) 27.65%, rgba(95, 83, 174, 0.8) 40.31%, rgba(97, 66, 164, 0.8) 56.01%, rgba(100, 50, 154, 0.8) 74.75%, rgba(103, 34, 144, 0.8) 98.56%);
47 }
48 .edu-list-portlet-wrapper .users .item {
49 background: #FFFFFF;
50 box-shadow: 0px 5px 25px rgb(0 0 0 / 15%);
51 border-radius: 8px;
52 margin-bottom: 70px;
53 }
54 .edu-list-portlet-wrapper .users .item .image {
55 background: #FFFFFF;
56 box-shadow: 0px 5px 25px rgb(0 0 0 / 15%);
57 border-radius: 8px;
58 margin-right: 24px;
59 margin-top: -75px;
60 }
61 .edu-list-portlet-wrapper .users .item .content .title {
62 font-weight: 700;
63 font-size: 18px;
64 line-height: 27px;
65 color: #726E6E;
66 }
67 .edu-list-portlet-wrapper .users .item .content .text {
68 color: #4e4a67;
69 margin-bottom: 20px;
70 line-height: 1.5em;
71 font-family: 'KalamehWebFaNum';
72 }
73 .edu-list-portlet-wrapper .pagination .page-item.active .page-link {
74 background: #ffc000;
75 color: #223a70;
76 }
77</style>
78<#assign
79UniversityPersonLocalService = serviceLocator.findService("ir.sain.university.people.service.UniversityPersonLocalService")
80UniversityProgramLocalService = serviceLocator.findService("ir.sain.university.service.UniversityProgramLocalService")
81UniversityFacultyUniversityProgramRelLocalService = serviceLocator.findService("ir.sain.university.people.service.UniversityFacultyUniversityProgramRelLocalService")
82
83/>
84<@portlet.actionURL
85 name="/faculty_list/faculty_action"
86 var="facultySearchURL"
87>
88 <@liferay_portlet.param
89 name="cmd"
90 value="search"
91 />
92</@>
93
94<!-- Start EDU List Portlet -->
95
96<main class="edu-list-portlet-wrapper">
97 <div class="edu-list-portlet-header">
98 <div class="container">
99 <div class="row">
100 <#if universityDepartment?has_content>
101 <h1 class="col-12 head">${languageUtil.get(resourceBundle,"elmi")}
102 <#if sizeDepartments gt 1>
103 <div class="dropdown input m-0" data-dropdown="" style=" display: inline-block;">
104 <button class="dropbtn" data-dropdown-btn="" style="padding: 0.2em 0.4em;">
105 <svg style="top: -2px;height: 1.1em;" viewBox="0 0 26 26">
106 <path d="M 7.984375 1 C 7.722656 1.003906 7.476563 1.109375 7.292969 1.292969 L 3.292969 5.292969 C 3.03125 5.542969 2.925781 5.917969 3.019531 6.265625 C 3.109375 6.617188 3.382813 6.890625 3.734375 6.980469 C 4.082031 7.074219 4.457031 6.96875 4.707031 6.707031 L 7 4.414063 L 7 17 L 9 17 L 9 4.414063 L 11.292969 6.707031 C 11.542969 6.96875 11.917969 7.074219 12.265625 6.980469 C 12.617188 6.890625 12.890625 6.617188 12.980469 6.265625 C 13.074219 5.917969 12.96875 5.542969 12.707031 5.292969 L 8.707031 1.292969 C 8.515625 1.101563 8.253906 0.996094 7.984375 1 Z M 17 1 L 17 3 L 19 3 L 19 1 Z M 17 5 L 17 7 L 19 7 L 19 5 Z M 17 9 L 17 21.585938 L 14.707031 19.292969 C 14.519531 19.097656 14.261719 18.992188 13.988281 18.988281 C 13.582031 18.992188 13.21875 19.238281 13.0625 19.613281 C 12.910156 19.992188 13 20.421875 13.292969 20.707031 L 17.292969 24.707031 C 17.683594 25.097656 18.316406 25.097656 18.707031 24.707031 L 22.707031 20.707031 C 22.96875 20.457031 23.074219 20.082031 22.980469 19.734375 C 22.890625 19.382813 22.617188 19.109375 22.265625 19.019531 C 21.917969 18.925781 21.542969 19.03125 21.292969 19.292969 L 19 21.585938 L 19 9 Z M 7 19 L 7 21 L 9 21 L 9 19 Z M 7 23 L 7 25 L 9 25 L 9 23 Z"></path>
107 </svg>
108 </button>
109
110 <div class="dropdown-content" style="font-size: 0.5em;">
111 <svg style="left: 0.5em;top: 0.4em;" viewBox="0 0 30 30">
112 <path d="M 13 3 C 7.4889971 3 3 7.4889971 3 13 C 3 18.511003 7.4889971 23 13 23 C 15.396508 23 17.597385 22.148986 19.322266 20.736328 L 25.292969 26.707031 A 1.0001 1.0001 0 1 0 26.707031 25.292969 L 20.736328 19.322266 C 22.148986 17.597385 23 15.396508 23 13 C 23 7.4889971 18.511003 3 13 3 z M 13 5 C 17.430123 5 21 8.5698774 21 13 C 21 17.430123 17.430123 21 13 21 C 8.5698774 21 5 17.430123 5 13 C 5 8.5698774 8.5698774 5 13 5 z"></path>
113 </svg>
114
115 <input
116 type="text"
117 placeholder="<@liferay.language key="search" /> ..."
118 class="search-input"
119 data-dropdown-search/>
120 <#if universityDepartments?has_content>
121
122 <@portlet.renderURL var="departmentRenderURL">
123 <@liferay_portlet.param name="universityDepartmentId" value="0" />
124 <@liferay_portlet.param
125 name="keywords"
126 value="${keywords}"
127 />
128 </@>
129 <#list universityDepartments as universityDepartment>
130 <@portlet.renderURL var="programRenderURL">
131 <@liferay_portlet.param name="universityDepartmentId" value=universityDepartment.getUniversityDepartmentId()?string />
132 <@liferay_portlet.param
133 name="keywords"
134 value="${keywords}"
135 />
136 </@>
137 <a href=${programRenderURL}> ${universityDepartment.getName(locale)} </a>
138 </#list>
139 </#if>
140 </div>
141 </div>
142 </#if>
143 </h1>
144 <div class="col-12 filter">
145 <form
146 action="${facultySearchURL}"
147 method="post"
148 name="<@portlet.namespace/>">
149 <input
150 class="input"
151 type="search"
152 name="<@portlet.namespace/>keywords"
153 value="<#if keywords?has_content>${keywords}</#if>"
154 placeholder="${languageUtil.get(resourceBundle,"search-by-name")}"/>
155 <input
156 type="hidden"
157 name="<@portlet.namespace/>universityDepartmentId"
158 value="${universityDepartment.getUniversityDepartmentId()}"/>
159 <input
160 type="hidden"
161 name="<@portlet.namespace/>universityProgramId"
162 value="${curUniversityProgram}"/>
163 <button class="button input">
164 <svg viewBox="0 0 30 30">
165 <path
166 d="M 13 3 C 7.4889971 3 3 7.4889971 3 13 C 3 18.511003 7.4889971 23 13 23 C 15.396508 23 17.597385 22.148986 19.322266 20.736328 L 25.292969 26.707031 A 1.0001 1.0001 0 1 0 26.707031 25.292969 L 20.736328 19.322266 C 22.148986 17.597385 23 15.396508 23 13 C 23 7.4889971 18.511003 3 13 3 z M 13 5 C 17.430123 5 21 8.5698774 21 13 C 21 17.430123 17.430123 21 13 21 C 8.5698774 21 5 17.430123 5 13 C 5 8.5698774 8.5698774 5 13 5 z"
167 ></path>
168 </svg>
169 </button>
170 </form>
171
172 <div
173 class="m-3 hide">${languageUtil.get(resourceBundle,"programs")}:
174 </div>
175
176 <div class="input dropdown m-0" data-dropdown>
177 <button
178 class="dropbtn"
179 data-dropdown-btn>
180 <svg viewBox="0 0 26 26">
181 <path
182 d="M 7.984375 1 C 7.722656 1.003906 7.476563 1.109375 7.292969 1.292969 L 3.292969 5.292969 C 3.03125 5.542969 2.925781 5.917969 3.019531 6.265625 C 3.109375 6.617188 3.382813 6.890625 3.734375 6.980469 C 4.082031 7.074219 4.457031 6.96875 4.707031 6.707031 L 7 4.414063 L 7 17 L 9 17 L 9 4.414063 L 11.292969 6.707031 C 11.542969 6.96875 11.917969 7.074219 12.265625 6.980469 C 12.617188 6.890625 12.890625 6.617188 12.980469 6.265625 C 13.074219 5.917969 12.96875 5.542969 12.707031 5.292969 L 8.707031 1.292969 C 8.515625 1.101563 8.253906 0.996094 7.984375 1 Z M 17 1 L 17 3 L 19 3 L 19 1 Z M 17 5 L 17 7 L 19 7 L 19 5 Z M 17 9 L 17 21.585938 L 14.707031 19.292969 C 14.519531 19.097656 14.261719 18.992188 13.988281 18.988281 C 13.582031 18.992188 13.21875 19.238281 13.0625 19.613281 C 12.910156 19.992188 13 20.421875 13.292969 20.707031 L 17.292969 24.707031 C 17.683594 25.097656 18.316406 25.097656 18.707031 24.707031 L 22.707031 20.707031 C 22.96875 20.457031 23.074219 20.082031 22.980469 19.734375 C 22.890625 19.382813 22.617188 19.109375 22.265625 19.019531 C 21.917969 18.925781 21.542969 19.03125 21.292969 19.292969 L 19 21.585938 L 19 9 Z M 7 19 L 7 21 L 9 21 L 9 19 Z M 7 23 L 7 25 L 9 25 L 9 23 Z"
183 ></path>
184 </svg>
185 <#if curUniversityProgram gt 0>
186 <#assign
187 uProgram = UniversityProgramLocalService.getUniversityProgram(curUniversityProgram)
188 />
189 <#if uProgram?has_content>
190 ${uProgram.getName(locale)}
191 </#if>
192 <#else>
193 <@liferay.language key="all" />
194 </#if>
195 </button>
196
197 <div class="dropdown-content">
198 <svg viewBox="0 0 30 30">
199 <path
200 d="M 13 3 C 7.4889971 3 3 7.4889971 3 13 C 3 18.511003 7.4889971 23 13 23 C 15.396508 23 17.597385 22.148986 19.322266 20.736328 L 25.292969 26.707031 A 1.0001 1.0001 0 1 0 26.707031 25.292969 L 20.736328 19.322266 C 22.148986 17.597385 23 15.396508 23 13 C 23 7.4889971 18.511003 3 13 3 z M 13 5 C 17.430123 5 21 8.5698774 21 13 C 21 17.430123 17.430123 21 13 21 C 8.5698774 21 5 17.430123 5 13 C 5 8.5698774 8.5698774 5 13 5 z"
201 ></path>
202 </svg>
203
204 <input
205 type="text"
206 placeholder="<@liferay.language key="search" /> ..."
207 class="search-input"
208 data-dropdown-search/>
209 <#if universityPrograms?has_content>
210
211 <@portlet.renderURL var="programRenderURL">
212 <@liferay_portlet.param name="universityProgramId" value="0" />
213 <@liferay_portlet.param
214 name="keywords"
215 value="${keywords}"
216 />
217 </@>
218 <a href=${programRenderURL}> ${languageUtil.get(resourceBundle,"all")} </a>
219
220 <#list universityPrograms as universityProgram>
221 <@portlet.renderURL var="programRenderURL">
222 <@liferay_portlet.param name="universityProgramId" value=universityProgram.getUniversityProgramId()?string />
223 <@liferay_portlet.param
224 name="keywords"
225 value="${keywords}"
226 />
227 </@>
228 <a href=${programRenderURL}> ${universityProgram.getName(locale)} </a>
229 </#list>
230 </#if>
231 </div>
232 </div>
233 </div>
234 </#if>
235 </div>
236 </div>
237 </div>
238 <div class="container" style="margin-top: -70px">
239 <#if universityFaculties?has_content>
240 <div class="row users">
241 <#list universityFaculties as universityFaculty>
242 <#assign
243 universityPerson = UniversityPersonLocalService.getUniversityPerson(universityFaculty.getUniversityPersonId())
244 universityFacultyProgram = UniversityFacultyUniversityProgramRelLocalService.getUniversityFacultyUniversityProgramRelByUniversityFacultyId(universityFaculty.getUniversityFacultyId(), -1, -1, null)[0]
245 universityProgram = UniversityProgramLocalService.getUniversityProgram(universityFacultyProgram.getUniversityProgramId())
246 a=emailAddress.getEmailAddresses(companyId,nameFaculty,universityFaculty.getUniversityFacultyId())
247
248 />
249
250 <div class="col-md-6 col-xl-4">
251 <div class="item">
252 <a href="${portletDisplayContext.getUniversityFacultyProfileURL(universityFaculty.getUniversityFacultyId())}">
253 <div class="image">
254 <@portlet.resourceURL
255 id="/person/image"
256 var="imageResourceURL"
257 >
258 <@liferay_portlet.param name="universityPersonImageId" value=universityPerson.getImageId()?string />
259 </@>
260 <#if universityPerson.getImageId() gt 0>
261 <img
262 class="img"
263 alt="${universityPerson.getFirstName(locale)} ${universityPerson.getLastName(locale)}"
264 src="${imageResourceURL}"/>
265 <#else>
266 <#if universityPerson.getMale()>
267 <img
268 class="img"
269 alt="${universityPerson.getFirstName(locale)} ${universityPerson.getLastName(locale)}"
270 src="/o/ir.sain.university.people/images/male.jpg"/>
271 <#else>
272 <img
273 class="img"
274 alt="${universityPerson.getFirstName(locale)} ${universityPerson.getLastName(locale)}"
275 src="/o/ir.sain.university.people/images/female.jpeg"/>
276 </#if>
277 </#if>
278 </div>
279
280 <div class="content">
281 <#if universityFaculty.getDegree() gt -1>
282 <#switch universityFaculty.getDegree()>
283 <#case 0>
284 <span class="code">${languageUtil.get(resourceBundle,"prof")}</span>
285 <#break>
286 <#case 1>
287 <span class="code">${languageUtil.get(resourceBundle,"assprof")}</span>
288 <#break>
289 <#case 2>
290 <span class="code">${languageUtil.get(resourceBundle,"assknow")}</span>
291 <#break>
292 <#case 3>
293 <span class="code">${languageUtil.get(resourceBundle,"coach")}</span>
294 <#break>
295 <#case 5>
296 <span class="code">${languageUtil.get(resourceBundle,"trainer")}</span>
297 <#break>
298 </#switch>
299 </#if>
300 <div class="title">${universityPerson.getFirstName(locale)} ${universityPerson.getLastName(locale)}</div>
301 <div class="text">
302 ${universityProgram.getName(locale)}
303 </div>
304 </div>
305 </a>
306
307 <div class="social">
308
309 <#if a?has_content>
310 <#list a as t>
311
312 <#if t?has_content>
313 <#assign
314 tm=t.getAddress()
315 lines = stringUtil.split(tm, "@")
316 email=""
317 prex=""
318 i=0
319 />
320 <#list lines as curLine>
321
322 <#if i==0>
323 <#assign email = curLine />
324 <#else>
325 <#assign prex = curLine />
326 </#if>
327 <#assign
328 i++
329 />
330 </#list>
331 <a
332 class="email"
333 data-email="${email}"
334 data-prefix="${prex}">
335 <svg>
336 <use xlink:href="#email" />
337 </svg>
338 </a>
339 </#if>
340 </#list>
341 </#if>
342 </div>
343 </div>
344 </div>
345 </#list>
346 </div>
347 </#if>
348
349 <#if currentNumberPage?has_content>
350 <div class="text-center">
351 <ul class="justify-content-center pagination">
352 <#if currentNumberPage gte 2>
353 <li class="page-item">
354 <@portlet.renderURL var="before">
355 <@liferay_portlet.param name="universityProgramId" value=curUniversityProgram?string />
356 <#if keywords?has_content>
357 <@liferay_portlet.param
358 name="keywords"
359 value="${keywords}"
360 />
361 </#if>
362 <@liferay_portlet.param
363 name="currentNumberPage"
364 value=(currentNumberPage - 1)?string
365 />
366 </@>
367 <a
368 class="page-link"
369 href="${before}"
370 >${languageUtil.get(resourceBundle,"before")}</a>
371 </li>
372
373 <#else>
374 <li class="disabled page-item">
375 <a
376 class="page-link"
377 href="#"
378 tabindex="-1"
379 aria-disabled="true">${languageUtil.get(resourceBundle,"before")}</a>
380 </li>
381 </#if>
382 <#if currentNumberPage gt 2>
383 <li class="page-item">
384 <@portlet.renderURL var="first">
385 <@liferay_portlet.param name="universityProgramId" value=curUniversityProgram?string />
386 <#if keywords?has_content>
387 <@liferay_portlet.param
388 name="keywords"
389 value="${keywords}"
390 />
391 </#if>
392 <@liferay_portlet.param
393 name="currentNumberPage"
394 value=(1)?string
395 />
396 </@>
397 <a
398 class="page-link"
399 href="${first}"
400 >1</a>
401 </li>
402 </#if>
403 <#if currentNumberPage-1 gt 2>
404 <li class="page-item">
405 <a
406 class="page-link">...</a>
407 </li>
408 </#if>
409
410 <#if (currentNumberPage - 1) gt 0>
411 <li class="page-item">
412 <@portlet.renderURL var="prePage">
413 <@liferay_portlet.param name="currentNumberPage" value=(currentNumberPage - 1)?string />
414 <@liferay_portlet.param
415 name="universityProgramId"
416 value=curUniversityProgram?string
417 />
418 </@>
419 <a
420 class="page-link"
421 href="${prePage}">${currentNumberPage - 1}</a>
422 </li>
423 </#if>
424 <li class="active page-item">
425 <a
426 class="page-link"
427 href="#">${currentNumberPage}</a>
428 </li>
429
430 <#if allPages gt currentNumberPage>
431 <#if currentNumberPage+1 lt allPages>
432 <li class="page-item">
433 <@portlet.renderURL var="nextPage">
434 <@liferay_portlet.param name="universityProgramId" value=curUniversityProgram?string />
435 <@liferay_portlet.param
436 name="currentNumberPage"
437 value=(currentNumberPage + 1)?string
438 />
439 </@>
440 <a
441 class="page-link"
442 href="${nextPage}">${currentNumberPage + 1}</a>
443 </li>
444 </#if>
445 </#if>
446 <#if allPages?has_content>
447 <#if allPages-currentNumberPage gt 2>
448 <li class="page-item">
449 <a class="page-link">...</a>
450 </li>
451 </#if>
452 </#if>
453 <#if allPages?has_content>
454 <#if allPages gt currentNumberPage>
455 <li class="page-item">
456 <@portlet.renderURL var="last">
457 <@liferay_portlet.param name="universityProgramId" value=curUniversityProgram?string />
458 <#if keywords?has_content>
459 <@liferay_portlet.param
460 name="keywords"
461 value="${keywords}"
462 />
463 </#if>
464 <@liferay_portlet.param
465 name="currentNumberPage"
466 value=(allPages)?string
467 />
468 </@>
469 <a
470 class="page-link"
471 href="${last}">${allPages}</a>
472 </li>
473 </#if>
474 </#if>
475 <#if lastPage gt currentNumberPage>
476 <li class="page-item">
477 <@portlet.renderURL var="after">
478 <@liferay_portlet.param name="universityProgramId" value=curUniversityProgram?string />
479 <#if keywords?has_content>
480 <@liferay_portlet.param
481 name="keywords"
482 value="${keywords}"
483 />
484 </#if>
485 <@liferay_portlet.param
486 name="currentNumberPage"
487 value=(currentNumberPage + 1)?string
488 />
489 </@>
490 <a
491 class="page-link"
492 href="${after}">${languageUtil.get(resourceBundle,"next")}</a>
493 </li>
494 <#else>
495 <li class="disabled page-item">
496 <a
497 class="page-link"
498 href="#"
499 tabindex="-1"
500 aria-disabled="true">${languageUtil.get(resourceBundle,"next")}</a>
501 </li>
502 </#if>
503 </ul>
504 </div>
505 </#if>
506 </div>
507</main>
508
509<!--/ End EDU List Portlet -->