بهبود سیستم روشنائی و نور پردازی تابلوهای تبلیغاتی سطح شهر - شهرداري يزد
در حین انجام عملیات خطایی رخ داده است.
The following has evaluated to null or missing: ==> cur_images.getAttribute("alt") [in template "20097#20123#37303" at line 121, 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: ${cur_images.getAttribute("alt")} [in template "20097#20123#37303" at line 121, column 35] ----
1<#-- Retrieve the published date meta data field of the web content -->
2<#assign displaydate = .vars['reserved-article-display-date'].data>
3<#-- Save the original page locale for later -->
4<#assign originalLocale = .locale>
5
6<#-- Set the page locale to the portals default locale -->
7<#setting locale = localeUtil.getDefault()>
8
9<#-- Parse the date to a date object -->
10<#assign displaydate = displaydate?datetime("EEE, d MMM yyyy HH:mm:ss Z")>
11
12<#-- Set the page locale back to the original page locale -->
13<#--#assign locale = ''-->
14<#assign dateFormat = "dd MM yyyy" />
15<#assign publishDate=dateUtil.getDate(displaydate,dateFormat,locale)/>
16
17
18<!--publish view Count-->
19<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
20 <#assign assetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService" )>
21 <#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService" )>
22 <#assign getterUtil = staticUtil["com.liferay.portal.kernel.util.GetterUtil"] />
23 <#assign currentArticle = JournalArticleLocalService.getArticle(getterUtil.getLong(groupId),.vars['reserved-article-id'].data)>
24 <#assign currentArticleResourcePrimKey = currentArticle.getResourcePrimKey()>
25 <#assign currentArticleAssetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", currentArticleResourcePrimKey)/>
26 <#assign viewCount = currentArticleAssetEntry.viewCount/>
27
28<div class="main-new-content">
29 <div class="header">
30 <div class="date--view">
31 <div class="date">
32 <span class="icon-calander"><span class="path1"></span><span class="path2"></span></span>
33 <span class="main-c" id="id-12-${.vars['reserved-article-id'].data}"></span>
34 <script>
35 //date
36 var lang = document.getElementsByTagName("html")[0].getAttribute("lang");
37 var date_element = document.getElementById("id-12-${.vars['reserved-article-id'].data}");
38 if( lang == "fa-IR"){
39 date_element.innerHTML =
40 moment('${publishDate}', 'DD MM YYYY')
41 .locale('fa')
42 .format('dddd DD MMMM YYYY');
43 }else if (lang == "ar-SA") {
44 date_element.innerHTML =
45 moment('${publishDate}', 'DD MM YYYY')
46 .locale('ar')
47 .format('dddd DD / MM / YYYY');
48 }else if (lang == "en-US") {
49 date_element.innerHTML =
50 moment('${publishDate}', 'DD MM YYYY')
51 .locale('en')
52 .format('dddd DD MMMM YYYY');
53 }
54 date_element.setAttribute("id", "");
55 </script>
56 </div>
57 <div class="view hide">
58 <span class="icon-view"><span class="path1"></span><span class="path2"></span></span>
59 <span class="main-c"></span>
60 </div>
61 </div>
62 <#if lead?? && lead.getData() !="">
63 <h5 class="lead">
64 ${lead.getData()}
65 </h5>
66 </#if>
67 <a href="${friendlyURLs[themeDisplay.getLanguageId()]!""}">
68 <h3 class="title" id="title-sharing">
69 ${.vars['reserved-article-title'].data}
70 </h3>
71 </a>
72 </div>
73</div>
74<div>
75${lead.getData()}
76</div><div>
77${author.getData()}
78</div><div>${content.getData()}
79</div>
80<div class="col">
81<#if innerVideo??>
82<#if innerVideo.getSiblings()?has_content>
83 <link href="/o/shahrdari-yazd-theme/css/video-js.min.css" rel="stylesheet" />
84
85 <#list innerVideo.getSiblings() as cur_innerVideo>
86
87 <video controls class="video-js">
88 <source src="${cur_innerVideo.getData()}" type="video/mp4">
89 </video>
90 </#list>
91 <script src="/o/shahrdari-yazd-theme/js/video.min.js"></script>
92 <script>
93 videojs(
94 document.querySelector('.video-js'), {
95 autoplay: false,
96 controls: true,
97 fluid: true
98 });
99 </script>
100</#if>
101<div>
102${innerVideo.innerContent.getData()}
103</div>
104</#if>
105</div>
106
107
108<div>
109<#if simpeImages?? && simpeImages.getSiblings()?has_content>
110 <#list simpeImages.getSiblings() as cur_simpeImages>
111 <#if (cur_simpeImages.getData())?? && cur_simpeImages.getData() != "">
112 <img alt="${cur_simpeImages.getAttribute("alt")}" data-fileentryid="${cur_simpeImages.getAttribute("fileEntryId")}" src="${cur_simpeImages.getData()}" />
113 </#if>
114 </#list>
115</#if>
116</div>
117<div>
118<#if images?? && images.getSiblings()?has_content>
119 <#list images.getSiblings() as cur_images>
120 <#if (cur_images.getData())?? && cur_images.getData() != "">
121 <img alt="${cur_images.getAttribute("alt")}" data-fileentryid="${cur_images.getAttribute("fileEntryId")}" src="${cur_images.getData()}" />
122 </#if>
123 </#list>
124</#if>
125</div>
126<style>
127.main-new-content {
128 /*max-width: 925px;*/
129 margin: auto;
130}
131.video-js .vjs-big-play-button {
132 left: 50%;
133 right: auto;
134 margin-left: -1.5em;
135 margin-top: -0.81666em;
136 top: 50%;
137}
138.video-js .vjs-big-play-button .vjs-icon-placeholder:before,.video-js .vjs-play-control .vjs-icon-placeholder:before,.vjs-icon-play:before {
139 content: "\f04b ";
140 font-family: 'FontAwesome';
141}
142/* url */
143.main-new-content .url-box {
144 margin: 1.5em 0 2em;
145}
146
147.main-new-content .url-box input {
148 position: absolute;
149 visibility: hidden;
150 opacity: 0;
151}
152
153.main-new-content .url-box .btn-box button{
154 background: #2356ae;
155 color: #FFF;
156 padding: 0.55em 1.6em;
157 border: 0;
158 border-radius: 0.5em;
159}
160
161.main-new-content .url-box .btn-box {
162 position: relative;
163 display: inline-block;
164}
165
166.main-new-content .url-box .btn-box .tooltiptext {
167 visibility: hidden;
168 width: 140px;
169 background-color: #555;
170 color: #ffffff;
171 text-align: center;
172 border-radius: 6px;
173 padding: 5px;
174 position: absolute;
175 z-index: 1;
176 bottom: 150%;
177 left: 50%;
178 margin-left: -75px;
179 opacity: 0;
180 transition: opacity 0.3s;
181}
182
183.main-new-content .url-box .btn-box .tooltiptext::after {
184 content: "";
185 position: absolute;
186 top: 100%;
187 left: 50%;
188 margin-left: -5px;
189 border-width: 5px;
190 border-style: solid;
191 border-color: #555 transparent transparent transparent;
192}
193
194.main-new-content .url-box .btn-box:hover .tooltiptext {
195 visibility: visible;
196 opacity: 1;
197}
198/* url */
199
200
201.main-new-content .tags {
202 margin: 1.5em 0 1em 0;
203}
204
205.main-new-content .tags h4 {
206 color: #223a70;
207}
208
209.main-new-content .header {
210 width: 100%;
211 display: flex;
212 flex-direction: column;
213}
214.main-new-content .header .img-header {
215 position: relative;
216}
217.main-new-content .header .img-header:before {
218 content: "";
219 position: absolute;
220 background: linear-gradient(0deg, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2));
221 border-radius: 10px;
222 left: 0;
223 right: 0;
224 height: 100%;
225 width: 100%;
226}
227.main-new-content .header .img-header img {
228 width: 100%;
229 border-radius: 0.5em;
230 /*box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.15);*/
231}
232.main-new-content .header .date--view {
233 display: flex;
234 justify-content: flex-end;
235 margin-top: 0.5em;
236 //margin-top: -2.7em;
237 color: #223A70;
238}
239.main-new-content .header .date--view .date,
240.main-new-content .header .date--view .view {
241 font-size: 0.8em;
242
243}
244.main-new-content .header .date--view .date .main-c {
245 position: relative;
246 top: -0.2em;
247}
248.main-new-content .header .tools {
249 display: flex;
250 margin-bottom: 0.7em;
251 justify-content: flex-end;
252}
253.main-new-content .header .tools > div {
254 cursor: pointer;
255}
256html.ltr .main-new-content .header .tools > div + div {
257 margin-left: 1.5em;
258}
259html.rtl .main-new-content .header .tools > div + div {
260 margin-right: 1.5em;
261}
262.main-new-content .header .tools > div:hover::before {
263 color: #1b51b0;
264}
265.main-new-content .header .tools > div::before {
266 font-size: 1.3em;
267 transition: all ease-in-out 0.2s;
268}
269.main-new-content .header .tools .razi-icon-share {
270 position: relative;
271 padding-bottom: 0.8em;
272}
273.main-new-content .header .tools .razi-icon-print:before {
274 color: #223A70;
275}
276.main-new-content .header .tools .razi-icon-share:hover .share-box {
277 opacity: 1;
278 visibility: visible;
279}
280.main-new-content .header .tools .razi-icon-share .share-box {
281 display: flex;
282 align-items: center;
283 position: absolute;
284 right: 0;
285 top: calc(100%);
286 border-radius: 0.5em;
287 box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
288 padding: 0.5em;
289 z-index: 1;
290 background: white;
291 opacity: 0;
292 visibility: collapse;
293 transition: all ease-in-out 0.2s;
294}
295html.rtl .main-new-content .header .tools .razi-icon-share .share-box {
296 right: unset;
297 left: 0;
298}
299.main-new-content .header .tools .razi-icon-share .share-box a:hover img {
300 transform: scale(1.1);
301}
302html.ltr .main-new-content .header .tools .razi-icon-share .share-box a + a {
303 margin-left: 0.7em;
304}
305html.rtl .main-new-content .header .tools .razi-icon-share .share-box a + a {
306 margin-right: 0.7em;
307}
308.main-new-content .header .tools .razi-icon-share .share-box a img {
309 transition: all ease-in-out 0.2s;
310 width: 1.8em;
311 height: 1.8em;
312}
313.main-new-content .header h3 {
314 font-size: 1.2em;
315 margin: 0 0 1.93em 0;
316 margin-bottom: 0.5em;
317 color: #223A70;
318 line-height: 1.8em;
319}
320.main-new-content .header .lead {
321 font-size: 1.1em;
322 margin: 1em 0 0 0;
323 color: #726E6E;
324 line-height: 1.8em;
325}
326.main-new-content .body p {
327 margin: 1em 0;
328 color: #726E6E;
329 font-size: 1em;
330 line-height: 2.18em;
331}
332.rtl .main-new-content .body p * {
333 font-family: 'IRANSansFaNum' !important;
334}
335html.rtl .main-new-content .body .bold-img {
336 float:left;
337 margin-right:1.5em;
338}
339html.ltr .main-new-content .body .bold-img {
340 float:right;
341 margin-left:1.5em;
342}
343.main-new-content .body .bold-img {
344 width: 25em;
345 border-radius: 0.5em;
346 //border: 2px solid #223a70;
347}
348.main-new-content .body img:not(.bold-img) {
349 margin: 1em 0;
350 border-radius: 0.5em;
351 max-width: 100%;
352}
353.main-new-content .body .parent-video {
354 text-align:center;
355}
356.main-new-content .body .parent-video video {
357 max-width:100%;
358 margin: 1em 0;
359}
360
361.main-new-content .body .slide-show {
362 max-width:100%;
363 margin: 1em 0;
364}
365.main-new-content .body .slide-show .secondary-slider {
366 margin-top: 0.7em;
367}
368.main-new-content .body .slide-show .secondary-slider .splide__slide {
369 border-radius: 0.5em;
370 border: 2px solid #FFF;
371}
372.main-new-content .body .slide-show .secondary-slider .splide__slide.is-active {
373 border-color: #1b51b0;
374}
375.main-new-content .body .slide-show .secondary-slider .splide__slide img {
376 width:100%;
377 height:3.75em;
378 object-fit: cover;
379}
380.main-new-content .body .slide-show .primary-slider .splide__track {
381 padding: 2px 0;
382}
383.main-new-content .body .slide-show .primary-slider .splide__track .splide__slide {
384 border-radius: 0.5em;
385 border: 2px solid #1b51b0;
386}
387.main-new-content .body .slide-show .secondary-slider .splide__arrow {
388 background: transparent;
389 opacity: 1;
390}
391.main-new-content .body .slide-show .secondary-slider .splide__arrow > span {
392 font-size: 1.7em;
393}
394
395@media print {
396 .footer,
397 .razi-navbar,
398 .main-new-content .header .tools,
399 .dispaly-page-news,
400 .parent-portlet-page-comments,
401 .parent-breadcrumb {
402 display: none !important;
403 }
404}
405@media only screen and (max-width: 768px) {
406 .main-new-content {
407 font-size: 14px;
408 }
409 .main-new-content .header {
410 flex-direction: row;
411 flex-wrap: wrap;
412 }
413 .main-new-content .header > img {
414 order: 1;
415 width: 100%;
416 margin-top: 1.8em;
417 }
418 .main-new-content .header > h3 {
419 order: 4;
420 margin-top: 0.7em;
421 }
422 .main-new-content .header .date--view {
423 order: 1;
424 flex-grow: 1;
425 margin-top: 1.6em;
426 font-size: 16px;
427 }
428 /*html.ltr .main-new-content .header .date--view {
429 margin-right: 5em;
430 }
431 html.rtl .main-new-content .header .date--view {
432 margin-left: 5em;
433 }*/
434 .main-new-content .header .tools {
435 order: 2;
436 margin-top: 1.6em;
437 }
438 .main-new-content .header .tools .razi-icon-print {
439 display: none;
440 }
441 .main-new-content .header .lead {
442 width: 100%;
443 order: 3;
444 }
445}
446@media only screen and (max-width: 576px) {
447 .main-new-content {
448 font-size: 13px;
449 }
450 .main-new-content .header > img {
451 min-height: 176px;
452 }
453 .main-new-content .header .date--view {
454 font-size: 14px;
455 /*margin-right: 2em;*/
456 }
457
458 .main-new-content .body p {
459 margin: 1em 0;
460 font-size: 1em;
461 }
462 .main-new-content .body img {
463 width: 100%;
464 }
465}
466div#ShortURL-bottom {
467 display: flex !important;
468 padding: 40px 0 10px;
469 justify-content: flex-end;
470 align-items: center;
471 clear: both;
472 position: relative;
473}
474div#ShortURL-bottom svg {
475 background-color: #285EFF;
476 border-top-left-radius: 0;
477 border-bottom-left-radius: 0;
478 margin-top: 0;
479 height: 40px;
480 width: 40px;
481 padding: 10px;
482 fill: #fff;
483 border-radius: 0 5px 5px 0;
484}
485div#ShortURL-bottom input {
486 text-align: left;
487 direction: ltr;
488 background-color: #f1f2f5;
489 border-color: #f1f2f5;
490 color: #a7a9bc !important;
491 font-size: 0.7em !important;
492 opacity: 1;
493 outline: none;
494 background-color: #f1f2f5;
495 border-color: #e7e7ed;
496 border-style: solid;
497 border-width: 0.0625rem;
498 border-bottom-width: 0.0625rem;
499 border-right-width: 0.0625rem;
500 border-left-width: 0.0625rem;
501 border-top-width: 0.0625rem;
502 border-radius: 0.25rem;
503 box-shadow: none;
504 color: #272833;
505 display: block;
506 font-size: 1rem;
507 font-weight: 400;
508 height: 2.5rem;
509 line-height: 1.5;
510 min-width: 0;
511 padding-bottom: 0.4375rem;
512 padding-right: 1rem;
513 padding-left: 1rem;
514 padding-top: 0.4375rem;
515 transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out;
516}
517div#ShortURL-bottom:before {
518 content: 'کپی شد';
519 position: absolute;
520 width: 217px;
521 text-align: center;
522 background: #003778;
523 color: #fff;
524 font-size: 0.75em;
525 padding: 11px;
526 border-radius: 5px;
527 opacity: 0;
528 visibility: hidden;
529 transition: 300ms;
530}
531div#ShortURL-bottom.copy:before {
532 opacity: 1;
533 visibility: visible;
534}
535</style>
536<script>
537function selectAndCopy(element){
538 var copy=document.getElementById('ShortURL-bottom');
539 copy.classList.add('copy');
540 element.select();
541 navigator.clipboard.writeText(element.value);
542 setTimeout(function() { copy.classList.remove('copy') }, 3000);
543}
544</script>
A