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