Dr. Leena Swaidan - دبي الصحية
800 60
حصل خطأ عند معالجة القالب.
The following has evaluated to null or missing: ==> assetRenderer.getURLViewInContext(renderRequest, renderResponse, viewURL) [in template "20096#20121#35630" at line 843, column 49] ---- 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: viewURL = assetRenderer.getURLViewInC... [in template "20096#20121#35630" at line 843, column 41] ----
1<style>
2 /* Utility Classes */
3 #content{
4 background-color: #ECF2F5;
5 }
6 .container {
7 margin: 0 auto;
8 padding: 0 15px;
9 }
10
11 .breadcrumb-section {
12 height: 39.25rem;
13 background-color: #D6EFFE !important;
14 padding-top: 1.5rem;
15 }
16
17 /* Layout */
18 .main-layout {
19 margin-top: -34.75rem;
20 padding-bottom: 3.75rem;
21 }
22
23 /* Main Wrapper */
24 .main-wrapper {
25 display: flex;
26 gap: 3.75rem;
27 }
28
29 /* Sidebar */
30 aside {
31 flex: 0 0 30%;
32 z-index: 2;
33 }
34
35 aside .aside-wrapper {
36 box-shadow: 0 25 36 0 var(--primary);
37 }
38
39 .aside-content-body {
40 padding: var(--spacer-4);
41 background-color: var(--white);
42 border-radius: 1.25rem;
43 position: sticky;
44 top: var(--spacer-3);
45 box-shadow: 0 25 36 0 var(--primary);
46 }
47
48 .hospital-centers {
49 display: flex;
50 /* gap: 1.25rem; */
51 margin: 0;
52 flex-wrap: wrap;
53 }
54
55 .header-practises {
56 color: #335C85;
57 font-weight: 500;
58 font-size: var(--spacer-3);
59 }
60
61 .hospital-centers .practices-hospital-card {
62 display: flex;
63 align-items: center;
64 justify-content: space-between;
65 gap: 20px;
66 padding: var(--spacer-3) var(--spacer-3);
67 background: var(--white);
68 border-radius: 0.75rem;
69 }
70
71 .hospital-centers li span {
72 font-size: var(--lead-font-size);
73 font-weight: var(--font-weight-bold);
74 color: #335C85;
75 }
76
77 .hospital-centers li .hospital-more-info {
78 display: flex;
79 justify-content: space-between;
80 gap: var(--spacer-2);
81 flex-wrap: wrap;
82 margin-top: var(--spacer-2);
83 font-size: var(--font-size-base);
84 }
85
86 .hospital-centers li .hospital-more-info a {
87 display: inline-flex;
88 align-items: center;
89 gap: var(--spacer-2);
90 font-size: var(--spacer-3);
91 color: var(--primary);
92 }
93
94 /* Right Side Content/Main Content */
95 .main-content {
96 z-index: 1;
97 }
98
99 /* User Avatar Image */
100 .user-avatar {
101 height: 500px;
102 width: 500px;
103 border-radius: 1.25rem;
104 object-fit: cover;
105 object-position: top center;
106 margin-bottom: var(--spacer-2);
107 }
108
109 .doctor-details {
110 margin-bottom: 2rem;
111 }
112
113 .doctor-details .doctor-name {
114 color: var(--secondary-9-blue-black);
115 margin-bottom: var(--spacer-2);
116 }
117
118 .doctor-position {
119 color: var(--primary-navy-blue-500);
120 }
121
122 .doctor-specifications {
123 display: flex;
124 gap: 2rem;
125 border-radius: var(--spacer-3);
126 margin-bottom: 2rem;
127 }
128
129 .doctor-specifications-content {
130 display: flex;
131 flex-direction: column;
132 gap: var(--spacer-1);
133 }
134
135 .doctor-lang-head {
136 font-size: var(--spacer-3);
137 color: #335C85;
138 font-weight: 500;
139 }
140
141 .doctor-lang-title {
142 color: var(--primary);
143 font-size: var(--lead-font-size);
144 font-weight: 800;
145 }
146
147 /* Timeline Scroll */
148 .timeline {
149 display: flex;
150 justify-content: space-between;
151 border-radius: 0.75rem 0.75rem 0 0;
152 position: sticky;
153 top: 0;
154 background-color: var(--white);
155 z-index: 2;
156 padding: 0;
157 }
158
159 .timeline-link {
160 flex: 1 0 25%;
161 display: inline-flex;
162 align-items: center;
163 justify-content: center;
164 text-align: center;
165 font-size: 18px;
166 font-weight: var(--font-weight-bold);
167 background-color: #335C85;
168 color: var(--white);
169 border-radius: 0;
170 padding: 24px;
171 transition: all 0.4s ease;
172 }
173
174 .timeline-link:not(:first-child) {
175 margin-left: -0.625rem;
176 }
177
178 .timeline-link:last-child {
179 border-radius: 0 0.75rem 0 0;
180 }
181
182
183 .timeline-link:first-child{
184 border-radius: 0.75rem 0 0 0;
185 }
186
187 .timeline-link.active,
188 .timeline-link:hover {
189 color: var(--primary);
190 background-color: var(--white);
191 border-radius: 0.75rem 0.75rem 0 0 !important;
192 border-color: #161515;
193 z-index: 1;
194 text-decoration: none;
195 }
196
197 /* Timeline */
198 .timeline-content-wrapper {
199 padding: var(--spacer-4) 2.5rem;
200 background-color: var(--white);
201 border-radius: 0 0 0.75rem 0.75rem;
202 box-shadow: 0 25 36 0 var(--primary);
203 }
204
205 .timeline-wrapper {
206 display: flex;
207 gap: var(--spacer-3);
208 }
209
210 .timeline-wrapper:not(:last-child) {
211 margin-bottom: var(--spacer-4);
212 }
213
214 .timeline-year {
215 position: relative;
216 flex: 0 0 8%;
217 text-align: center;
218 }
219
220 .timeline-wrapper:not(:last-child) .timeline-year::after,
221 .timeline-wrapper:last-child .timeline-year::after {
222 position: absolute;
223 top: 35px;
224 left: 50%;
225 transform: translateX(-50%);
226 content: '';
227 width: 2px;
228 height: 78%;
229 border-left: var(--hr-border-width) solid #E5EBF0;
230 }
231
232 .timeline-year .timeline-year-text {
233 font-size: var(--font-size-base);
234 font-weight: 500;
235 padding: var(--spacer-1) var(--spacer-2);
236 display: inline-block;
237 color: #8099B2;
238 }
239
240 .timeline-year .timeline-year-text:empty {
241 width: var(--spacer-3);
242 height: var(--spacer-3);
243 border: var(--hr-border-width) solid #8099B2;
244 border-radius: var(--border-radius-circle);
245 display: inline-block;
246 padding: 0;
247 position: absolute;
248 left: 50%;
249 top: 4px;
250 transform: translateX(-50%);
251 }
252
253 .timeline-year::after .timeline-year-text:empty {
254 top: 12px;
255 }
256
257 .timeline-content .experience-heading {
258 font-size: var(--web-subheading-1);
259 color: var(--primary-navy-blue-800);
260 margin-bottom: var(--spacer-1);
261 }
262
263 .timeline-content .experience-duration {
264 font-size: var(--web-buttontext-11);
265 color: var(--primary-navy-blue-700);
266 display: block;
267 margin-bottom: 0.75rem;
268 }
269
270 .timeline-content .experience-place {
271 color: var(--primary-navy-blue-400);
272 font-weight: 500;
273 }
274
275 .timeline-content-specific:not(:first-child) {
276 padding-top: 2.5rem;
277 border-top: var(--hr-border-width) solid #CCD6E0;
278 }
279
280 .specific-education,
281 .specific-experience,
282 .specific-research {
283 margin-top: 2rem;
284 }
285
286 .section-heading {
287 font-size: var(--web-heading-3);
288 color: var(--primary);
289 margin-bottom: var(--spacer-4);
290 }
291
292 .specific-research {
293 margin-bottom: var(--spacer-4);
294 }
295
296 .research-content li {
297 display: flex;
298 gap: var(--spacer-4);
299 }
300
301 .research-content li:not(:last-child) {
302 padding-bottom: var(--spacer-4);
303 margin-bottom: 1.25rem;
304 border-bottom: var(--hr-border-width) solid var(--secondary-tints-1-blue-200);
305 }
306
307 .research-content .research-heading {
308 font-weight: 500;
309 font-size: 18px;
310 color: var(--primary-navy-blue-900);
311 flex: 0 0 75%;
312 }
313
314 .research-content .research-link {
315 color: var(--secondary);
316 font-size: 18px;
317 font-weight: var(--font-weight-bold);
318 flex: 0 0 calc(25% - var(--spacer-4));
319 display: inline-block;
320 text-align: center;
321 text-decoration: none;
322 }
323
324 .breadcrumb ul li a {
325 color: var(--primary);
326 font-weight: var(--font-weight-bold);
327 }
328
329 .breadcrumb li.active {
330 color: #8099B2;
331 font-weight: var(--font-weight-light);
332 }
333
334 .breadcrumb ul {
335 display: flex;
336 align-items: center;
337 height: 37px;
338 }
339
340 .breadcrumb ul li {
341 margin-right: 15px;
342 color: var(--primary);
343 }
344
345 /* Resposive Layout */
346 @media screen and (max-width: 1200px) {
347 .container {
348 max-width: 1140px;
349 }
350 }
351
352 @media screen and (max-width: 992px) {
353 .container {
354 max-width: var(--container-max-lg);
355 }
356 }
357
358 @media screen and (max-width: 768px) {
359 .container {
360 max-width: var(--container-max-md);
361 }
362 }
363
364 @media screen and (max-width: 576px) {
365 .container {
366 max-width: var(--container-max-sm);
367 }
368 }
369
370 @media screen and (min-width: 100px) and (max-width: 480px) {
371 .container {
372 max-width: 100%;
373 }
374 }
375
376 .doctor-aptmt {
377 background-color: #062370;
378 color: var(--white);
379 text-align: center;
380 padding: 3.125rem 0;
381 margin: 6.25rem 0;
382 }
383
384 .aptmt-subtext,
385 .aptmt-text {
386 font-size: var(--spacer-3);
387 color: #3188fa;
388 margin-bottom: 0.75rem;
389 }
390
391 .aptmt-heading {
392 font-size: 2.5rem;
393 font-weight: var(--font-weight-bold);
394 margin-bottom: 0.75rem;
395 }
396
397 .aptmt-text {
398 color: var(--white);
399 }
400
401 .aptmt-inputs {
402 display: flex;
403 gap: 1.25rem;
404 margin-top: var(--spacer-5);
405 }
406
407 .aptmt-inputs .form-input,
408 .aptmt-inputs .form-select,
409 .aptmt-inputs .search-btn {
410 border-radius: 50px;
411 padding: 1.3rem var(--spacer-3);
412 background-color: var(--white);
413 color: #777777;
414 font-size: var(--spacer-3);
415 border: 0;
416 }
417
418 .aptmt-inputs .form-input {
419 flex: 0 0 60%;
420 }
421
422 .aptmt-inputs .form-select {
423 flex: 0 0 calc(25% - 1.25rem);
424 }
425
426 .aptmt-inputs select {
427 -webkit-appearance: none;
428 -moz-appearance: none;
429 appearance: none;
430 background-image: url("data:image/svg+xml;utf8,<svg enable-background='0 0 50 50' height='20px' id='Layer_1' version='1.1' viewBox='0 0 50 50' width='20px' xml:space='preserve' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><rect fill='none' height='50' width='50'/><polygon points='47.25,15 45.164,12.914 25,33.078 4.836,12.914 2.75,15 25,37.25 '/></svg>");
431 background-repeat: no-repeat;
432 background-position-x: 94%;
433 background-position-y: 50%;
434 }
435
436 .aptmt-inputs select option {
437 border-radius: 10px;
438 background-color: #929292;
439 }
440
441 .aptmt-inputs .form-select:focus-visible {
442 outline: none;
443 }
444
445 .aptmt-inputs .search-btn {
446 display: inline-flex;
447 justify-content: space-between;
448 background-color: #3188fa;
449 color: #062370;
450 flex: 0 0 calc(15% - 1.25rem);
451 transition: all 0.4s ease;
452 }
453
454 .aptmt-inputs .search-btn:hover {
455 cursor: pointer;
456 background-color: #3188fa8f;
457 }
458
459 /* Dropdown section:start */
460 .doctor-aptmt-2 {
461 padding: 3.125rem 0;
462 margin: 6.25rem 0;
463 }
464
465 .search-btn {
466 border-radius: 9px;
467 display: inline-flex;
468 align-items: center;
469 gap: var(--spacer-1);
470 justify-content: space-between;
471 color: white;
472 flex: 0 0 calc(15% - 1.25rem);
473 transition: all 0.4s ease;
474 padding: 0.8rem var(--spacer-3);
475 font-size: var(--spacer-3);
476 border: 0;
477 }
478
479 .filter-search {
480 justify-content: space-between;
481 gap: 10px;
482 }
483
484 .filter-search .form-select {
485 padding: 0.8rem var(--spacer-3);
486 font-size: var(--spacer-3);
487 width: 100%;
488 border-radius: 6px;
489 border-color: #d4d4d4;
490 color: #777777;
491 background-color: white;
492 flex: 0 0 calc(30% - 0.625rem);
493 }
494
495 .filter-search .form-select:first-child {
496 flex: 0 0 40%;
497 }
498
499 .search-type {
500 display: flex;
501 align-items: center;
502 justify-content: space-between;
503 margin-bottom: var(--spacer-3);
504 }
505
506 .doctor-filer,
507 .see-all-doctors {
508 display: inline-flex;
509 align-items: center;
510 gap: var(--spacer-2);
511 color: black;
512 margin-bottom: 0;
513 }
514
515 .see-all-doctors svg {
516 color: var(--black);
517 }
518
519 .form-input {
520 background-color: whitesmoke;
521 }
522
523 .search-inputs {
524 display: flex;
525 gap: 1.25rem;
526 margin: var(--spacer-3) 0 var(--spacer-4);
527 }
528
529 .search-inputs .form-input,
530 .search-inputs .form-select {
531 padding: 0.8rem var(--spacer-3);
532 color: #777777;
533 font-size: var(--spacer-3);
534 border: 0;
535 border-radius: 6px;
536 }
537
538 .search-inputs .form-input {
539 flex: 0 0 60%;
540 }
541
542 .search-inputs .form-select {
543 flex: 0 0 calc(25% - 1.25rem);
544 background-color: whitesmoke;
545 }
546
547 .search-inputs .form-select,
548 .filter-search .form-select {
549 -webkit-appearance: none;
550 -moz-appearance: none;
551 appearance: none;
552 background-image: url("data:image/svg+xml;utf8,<svg enable-background='0 0 50 50' height='20px' id='Layer_1' version='1.1' viewBox='0 0 50 50' width='20px' xml:space='preserve' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'><rect fill='none' height='50' width='50'/><polygon points='47.25,15 45.164,12.914 25,33.078 4.836,12.914 2.75,15 25,37.25 '/></svg>");
553 background-repeat: no-repeat;
554 background-position-x: 96%;
555 background-position-y: 50%;
556 background-size: 14px;
557 }
558
559 .search-inputs .form-select:focus-visible,
560 .filter-search .form-select:focus-visible {
561 outline: none;
562 }
563 .ltr .hospital-centers-content .hospital-read-more span {margin-right: 2px;}
564 .rtl .hospital-centers-content .hospital-read-more span {margin-right: 2px;}
565 .hospital-centers-content .hospital-read-more svg {margin-top: -4px;}
566 .icone-color-link {
567 color: var(--secondary);
568 }
569
570 /* Dropdown section:ends */
571
572 .doctor-practices-at {
573 margin-bottom: var(--spacer-5);
574 display: flex;
575 flex-direction: column;
576 gap: var(--spacer-2);
577 }
578
579 .no-details-text {
580 display: flex;
581 gap: var(--spacer-3);
582 align-items: center;
583 }
584
585 .no-details-text .circle {
586 width: 36px;
587 height: 36px;
588 border-radius: var(--border-radius-circle);
589 background-color: #E5EBF0;
590 }
591
592 .no-details-text i {
593 color: #335C85;
594 }
595
596 .no-details-text i {
597 color: #335C85;
598 font-size: var(--spacer-3);
599 }
600</style>
601<#assign
602 AssetVocabularyLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")
603 AssetVocabulary=AssetVocabularyLocalService.fetchGroupVocabulary(themeDisplay.getScopeGroupId(), "hospitals")
604 vocabularyId=AssetVocabulary.getVocabularyId() />
605
606<#assign
607 journalArticleResourceLocalService=serviceLocator.findService("com.liferay.journal.service.JournalArticleResourceLocalService")
608 assetEntryLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")
609 journalArticleId=.vars['reserved-article-id'].data
610 articleResourcePrimaryKey=journalArticleResourceLocalService.getArticleResourcePrimKey(themeDisplay.getScopeGroupId(),
611 journalArticleId) assetEntry=assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle",
612 articleResourcePrimaryKey) assetCategories=assetEntry.getCategories() />
613<#assign categoriesList=[] />
614
615
616<#assign
617 SpecialityAssetVocabulary=AssetVocabularyLocalService.fetchGroupVocabulary(themeDisplay.getScopeGroupId(), "speciality"
618 ) />
619<#assign specialityVocabularyId=SpecialityAssetVocabulary.getVocabularyId() />
620<#assign specialityCategoriesList="" />
621
622<#assign
623 LanguageAssetVocabulary=AssetVocabularyLocalService.fetchGroupVocabulary(themeDisplay.getScopeGroupId(), "language"
624 ) />
625<#assign languageVocabularyId=LanguageAssetVocabulary.getVocabularyId() />
626<#assign languageCategories="" />
627
628<#assign
629 SubSpecialityAssetVocabulary=AssetVocabularyLocalService.fetchGroupVocabulary(themeDisplay.getScopeGroupId(), "sub-speciality"
630 ) />
631<#assign subSpecialityVocabularyId=SubSpecialityAssetVocabulary.getVocabularyId() />
632<#assign subSpecialityCategories="" />
633
634<#assign
635 PrimaryLocAssetVocabulary=AssetVocabularyLocalService.fetchGroupVocabulary(themeDisplay.getScopeGroupId(), "primary-location"
636 ) />
637<#assign primaryLocationVocabularyId=PrimaryLocAssetVocabulary.getVocabularyId() />
638<#assign primaryLocationCategories=[] />
639
640<#assign
641 SecLocAssetVocabulary=AssetVocabularyLocalService.fetchGroupVocabulary(themeDisplay.getScopeGroupId(), "secondary-location"
642 ) />
643<#assign secLocationVocabularyId=SecLocAssetVocabulary.getVocabularyId() />
644<#assign secLocationCategories=[] />
645
646
647<#assign
648 ThirdLocAssetVocabulary=AssetVocabularyLocalService.fetchGroupVocabulary(themeDisplay.getScopeGroupId(), "third-location"
649 ) />
650<#assign thirdLocationVocabularyId=ThirdLocAssetVocabulary.getVocabularyId() />
651<#assign thirdLocationCategories=[] />
652
653<#list assetCategories as assetCategory>
654 <#if vocabularyId==assetCategory.getVocabularyId()>
655 <#assign categoriesList=categoriesList + [assetCategory.getCategoryId()]>
656 </#if>
657
658 <#if specialityVocabularyId==assetCategory.getVocabularyId()>
659 <#if specialityCategoriesList=="">
660 <#assign specialityCategoriesList=assetCategory.getTitle(locale)>
661 <#else>
662 <#assign specialityCategoriesList +=", " + assetCategory.getTitle(locale)>
663 </#if>
664 </#if>
665
666 <#if languageVocabularyId==assetCategory.getVocabularyId()>
667 <#if languageCategories=="">
668 <#assign languageCategories=assetCategory.getTitle(locale)>
669 <#else>
670 <#assign languageCategories +=", " + assetCategory.getTitle(locale)>
671 </#if>
672 </#if>
673
674 <#if subSpecialityVocabularyId==assetCategory.getVocabularyId()>
675 <#if subSpecialityCategories=="">
676 <#assign subSpecialityCategories=assetCategory.getTitle(locale)>
677 <#else>
678 <#assign subSpecialityCategories +=", " + assetCategory.getTitle(locale)>
679 </#if>
680
681 </#if>
682
683
684 <#if primaryLocationVocabularyId==assetCategory.getVocabularyId()>
685 <#assign primaryLocationCategories=primaryLocationCategories + [assetCategory.getCategoryId()]>
686</#if>
687
688<#if secLocationVocabularyId==assetCategory.getVocabularyId()>
689 <#assign secLocationCategories=secLocationCategories + [assetCategory.getCategoryId()]>
690</#if>
691
692<#if thirdLocationVocabularyId==assetCategory.getVocabularyId()>
693 <#assign thirdLocationCategories=thirdLocationCategories + [assetCategory.getCategoryId()]>
694</#if>
695
696
697</#list>
698
699
700
701<!-- Breadcrumb Section: Start -->
702<div class="breadcrumb-section breadcrumb d-none d-md-block">
703 <div class="container">
704 <ul class="list-unstyled">
705 <li>
706 <a href="${layout.getGroup().getDisplayURL(themeDisplay, false)}">
707 <svg
708 class="group"
709 width="18"
710 height="18"
711 viewBox="0 0 18 18"
712 fill="none"
713 xmlns="http://www.w3.org/2000/svg"
714>
715 <path
716 d="M10.3237 0.960841L10.306 0.951297C9.5704 0.571736 8.46037 0.571736 7.72474 0.951297L0.666504 4.88126L1.23767 5.90762L8.2702 1.9916C8.66224 1.79338 9.36633 1.79338 9.7591 1.9916L16.7615 5.90762L17.3349 4.88273L10.3229 0.961575L10.3237 0.960841Z"
717 fill="#002F70"
718 />
719 <path
720 d="M15.2344 6.31619C14.904 6.13119 14.4451 5.8801 13.8695 5.56955C12.8924 5.04169 11.902 4.5175 11.8881 4.51016L10.2942 3.67982C9.55709 3.29585 8.44631 3.29585 7.70921 3.67982L6.11166 4.51236C6.10211 4.5175 5.11173 5.04242 4.13383 5.56955C3.55825 5.8801 3.09941 6.13119 2.76904 6.31619C2.04662 6.72072 1.85205 6.83011 1.85205 7.20159V14.4602C1.85205 16.0446 3.13095 17.333 4.70352 17.333H13.2991C14.8717 17.333 16.1506 16.0446 16.1506 14.4602V7.20159C16.1506 6.83011 15.956 6.72145 15.2336 6.31619H15.2344ZM14.9767 14.4602C14.9767 15.3963 14.2242 16.1584 13.2998 16.1584H4.70428C3.77923 16.1584 3.02746 15.3963 3.02746 14.4602V7.52022C3.6192 7.17737 5.22113 6.31326 6.65862 5.55193L8.25248 4.7216C8.64526 4.5175 9.35958 4.5175 9.75235 4.7216L11.3426 5.54973C12.783 6.31252 14.3857 7.17737 14.9774 7.51949V14.4595L14.9767 14.4602Z"
721 fill="#002F70"
722 />
723 <path
724 d="M9.77818 10.6057H8.22397V9.01843H7.26074V13.1767H8.22397V11.4551H9.77818V13.1767H10.7414V9.01843H9.77818V10.6057Z"
725 fill="#002F70"
726 />
727</svg>
728</svg>
729 </a>
730 </li>
731 <li>
732 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#32AFFC" class="bi bi-chevron-right rotate180deg" viewBox="0 0 16 16">
733 <path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"/>
734</svg>
735</svg>
736
737 <a href="${layout.getGroup().getDisplayURL(themeDisplay, false)}/find-a-doctor">
738 ${languageUtil.get(locale,'find-a-doctor')}
739 </a>
740 </li>
741 <#list layout.getAncestors()?reverse as parent>
742 <li>
743 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#32AFFC" class="bi bi-chevron-right rotate180deg" viewBox="0 0 16 16">
744 <path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"/>
745</svg>
746
747 <a class="font-weight-normal" href="${parent.getRegularURL(request)}">${parent.getName(locale)}</a>
748 </li>
749 </#list>
750 <#if (name.getData())??>
751 <li class="active"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#32AFFC" class="bi bi-chevron-right rotate180deg" viewBox="0 0 16 16">
752 <path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"/>
753</svg>
754${name.getData()}</li>
755 </#if>
756
757 </ul>
758 </div>
759</div>
760<!-- Breadcrumb Section: Ends -->
761
762<section class="main-layout">
763 <div class="container">
764 <div class="main-wrapper">
765 <aside>
766 <div id="img-div">
767 <#if (image.getData())?? && image.getData() !="">
768 <img alt="${image.getAttribute("alt")}" data-fileentryid="${image.getAttribute("fileEntryId")}" src="${image.getData()}" alt="User Image" width="150" height="230"
769 class="user-avatar" />
770 <#else>
771 <img src="/documents/d/guest/avatar-2" alt="User Image" width="150" height="230"
772 class="user-avatar" />
773 </#if>
774
775 </div>
776
777 </aside>
778 <div class="main-content">
779
780 <div class="doctor-details">
781 <h1 class="doctor-name fs44-800">
782 <#if (name.getData())??>
783 ${name.getData()}
784 </#if>
785 </h1>
786 <span class="d-block doctor-position fs24-500">
787 <#if (jobTitle.getData())??>
788 ${jobTitle.getData()}
789 </#if>
790 <#if subSpecialityCategories !="">
791 ,${subSpecialityCategories}
792 </#if>
793 </span>
794 </div>
795
796 <!-- Doctor Specifications -->
797 <ul class="doctor-specifications list-unstyled">
798 <li>
799 <div class="doctor-specifications-content">
800 <span class="doctor-lang-head fs16-500">${languageUtil.get(locale,'languages')}</span>
801 <span class="doctor-lang-title fs20-800">
802 <#if languageCategories !="">
803 ${languageCategories}
804 </#if>
805 </span>
806 </div>
807 </li>
808 <li>
809 <div class="doctor-specifications-content">
810 <span class="doctor-lang-head fs16-500">${languageUtil.get(locale,'speciality')}</span>
811 <span class="doctor-lang-title fs20-800">
812 <#if specialityCategoriesList!="">
813 ${specialityCategoriesList}
814 </#if>
815 </span>
816 </div>
817 </li>
818 </ul>
819
820 <div class="doctor-practices-at">
821 <span class="header-practises fs16-500">${languageUtil.get(locale,'practises-at')}</span>
822 <#assign classTypeName="Hospital Details">
823 <#assign assetEntries=customAssetEntry.getAssetEntries(categoriesList,classTypeName, themeDisplay.getScopeGroupId()) />
824 <#assign
825 JournalArticleLocalService=serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
826 <ul class="hospital-centers list-unstyled">
827 <#if primaryLocationCategories?has_content>
828 <#assign classTypeName="Hospital Details">
829 <#assign assetEntries=customAssetEntry.getAssetEntries(primaryLocationCategories,classTypeName, themeDisplay.getScopeGroupId()) />
830
831 <#assign
832 JournalArticleLocalService=serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
833
834 <#list assetEntries as assetEntry>
835 <#assign
836 article=JournalArticleLocalService.fetchLatestArticle(assetEntry.getClassPK())
837 docXml=saxReaderUtil.read(article.getContentByLocale(locale)) />
838 <#assign hospitalName=docXml.valueOf("//dynamic-element[@field-reference='name'
839 ]/dynamic-content") />
840 <#assign
841 contactPhone=docXml.valueOf("//dynamic-element[@field-reference='contactPhone'
842 ]/dynamic-content") assetRenderer=assetEntry.getAssetRenderer()
843 viewURL=assetRenderer.getURLViewInContext(renderRequest, renderResponse,
844 viewURL) />
845
846 <#assign categoryURL="" />
847 <#list assetEntry.getCategories() as assetCategory>
848 <#if primaryLocationVocabularyId ==assetCategory.getVocabularyId()>
849 <#assign categoryURL="?hospital=" +assetCategory.getCategoryId() />
850 </#if>
851 </#list>
852
853 <li class=" p-0 mb-2"><div class="practices-hospital-card ${(assetEntry?index%2==0)?then('mr-2','ml-2')}">
854 <div class="hospital-centers-content">
855 <!-- <a href="${viewURL+categoryURL}" class="hospital-read-more"> -->
856 <span>${hospitalName}</span>
857 <!-- <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#32AFFC" class="bi bi-chevron-right rotate180deg" viewBox="0 0 16 16">
858 <path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"/>
859</svg> -->
860
861 </a>
862 </div>
863
864
865 </div></li>
866 </#list>
867
868
869 <#assign healthCenterClassTypeName="Health Center Details">
870 <#assign healthCenterAssetEntries=customAssetEntry.getAssetEntries(primaryLocationCategories,healthCenterClassTypeName, themeDisplay.getScopeGroupId()) />
871
872 <#list healthCenterAssetEntries as assetEntry>
873 <#assign
874 article=JournalArticleLocalService.fetchLatestArticle(assetEntry.getClassPK())
875 docXml=saxReaderUtil.read(article.getContentByLocale(locale)) />
876 <#assign healthCenterName=docXml.valueOf("//dynamic-element[@field-reference='name'
877 ]/dynamic-content") />
878
879 <#assign categoryURL="" />
880 <#list assetEntry.getCategories() as assetCategory>
881 <#if primaryLocationVocabularyId ==assetCategory.getVocabularyId()>
882 <#assign categoryURL="?hc=" +assetCategory.getCategoryId() />
883 </#if>
884 </#list>
885
886 <li class=" p-0 mb-2"><div class="practices-hospital-card ${(assetEntry?index%2==0)?then('mr-2','ml-2')}">
887 <div class="hospital-centers-content">
888 <!--<a href="${categoryURL}" class="hospital-read-more"> -->
889 <span>${healthCenterName}</span>
890 <!--<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#32AFFC" class="bi bi-chevron-right rotate180deg" viewBox="0 0 16 16">
891 <path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"/>
892</svg>
893
894 </a>-->
895 </div>
896
897
898 </div></li>
899 </#list>
900
901 <#assign medicalCenterClassTypeName="Medical Center Details">
902 <#assign medicalCenterAssetEntries=customAssetEntry.getAssetEntries(primaryLocationCategories,medicalCenterClassTypeName, themeDisplay.getScopeGroupId()) />
903
904 <#list medicalCenterAssetEntries as assetEntry>
905 <#assign
906 article=JournalArticleLocalService.fetchLatestArticle(assetEntry.getClassPK())
907 docXml=saxReaderUtil.read(article.getContentByLocale(locale)) />
908 <#assign medicalCenterName=docXml.valueOf("//dynamic-element[@field-reference='name'
909 ]/dynamic-content") />
910
911 <#assign
912 assetRenderer=assetEntry.getAssetRenderer()
913 viewURL=assetRenderer.getURLViewInContext(renderRequest, renderResponse,
914 viewURL) />
915
916 <#assign categoryURL="" />
917 <#list assetEntry.getCategories() as assetCategory>
918 <#if primaryLocationVocabularyId==assetCategory.getVocabularyId()>
919 <#assign categoryURL="?mc=" +assetCategory.getCategoryId() />
920 </#if>
921 </#list>
922
923 <li class=" p-0 mb-2"><div class="practices-hospital-card ${(assetEntry?index%2==0)?then('mr-2','ml-2')}">
924 <div class="hospital-centers-content">
925 <!-- <a href="${viewURL+categoryURL}" class="hospital-read-more"> -->
926 <span>${medicalCenterName}</span>
927 <!--<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#32AFFC" class="bi bi-chevron-right rotate180deg" viewBox="0 0 16 16">
928 <path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"/>
929</svg>
930
931 </a> -->
932 </div>
933
934 </div></li>
935 </#list>
936</#if>
937
938 <#if secLocationCategories ? has_content>
939 <#assign classTypeName="Hospital Details">
940 <#assign assetEntries=customAssetEntry.getAssetEntries(secLocationCategories,classTypeName, themeDisplay.getScopeGroupId()) />
941
942 <#assign
943 JournalArticleLocalService=serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
944
945 <#list assetEntries as assetEntry>
946 <#assign
947 article=JournalArticleLocalService.fetchLatestArticle(assetEntry.getClassPK())
948 docXml=saxReaderUtil.read(article.getContentByLocale(locale)) />
949 <#assign hospitalName=docXml.valueOf("//dynamic-element[@field-reference='name'
950 ]/dynamic-content") />
951 <#assign
952 contactPhone=docXml.valueOf("//dynamic-element[@field-reference='contactPhone'
953 ]/dynamic-content") assetRenderer=assetEntry.getAssetRenderer()
954 viewURL=assetRenderer.getURLViewInContext(renderRequest, renderResponse,
955 viewURL) />
956
957 <#assign categoryURL="" />
958 <#list assetEntry.getCategories() as assetCategory>
959 <#if secLocationVocabularyId ==assetCategory.getVocabularyId()>
960 <#assign categoryURL="?hospital=" +assetCategory.getCategoryId() />
961 </#if>
962 </#list>
963
964 <li class=" p-0 mb-2"><div class="practices-hospital-card ${(assetEntry?index%2==0)?then('mr-2','ml-2')}">
965 <div class="hospital-centers-content">
966 <!-- <a href="${viewURL+categoryURL}" class="hospital-read-more"> -->
967 <span>${hospitalName}</span>
968 <!-- <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#32AFFC" class="bi bi-chevron-right rotate180deg" viewBox="0 0 16 16">
969 <path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"/>
970</svg> -->
971
972 </a>
973 </div></li>
974 </#list>
975
976
977 <#assign healthCenterClassTypeName="Health Center Details">
978 <#assign healthCenterAssetEntries=customAssetEntry.getAssetEntries(secLocationCategories,healthCenterClassTypeName, themeDisplay.getScopeGroupId()) />
979
980 <#list healthCenterAssetEntries as assetEntry>
981 <#assign
982 article=JournalArticleLocalService.fetchLatestArticle(assetEntry.getClassPK())
983 docXml=saxReaderUtil.read(article.getContentByLocale(locale)) />
984 <#assign healthCenterName=docXml.valueOf("//dynamic-element[@field-reference='name'
985 ]/dynamic-content") />
986
987 <#assign categoryURL="" />
988 <#list assetEntry.getCategories() as assetCategory>
989 <#if secLocationVocabularyId==assetCategory.getVocabularyId()>
990 <#assign categoryURL="?hc=" +assetCategory.getCategoryId() />
991 </#if>
992 </#list>
993
994 <li class=" p-0 mb-2"><div class="practices-hospital-card ${(assetEntry?index%2==0)?then('mr-2','ml-2')}">
995 <div class="hospital-centers-content">
996 <!-- <a href="${categoryURL}" class="hospital-read-more"> -->
997 <span>${healthCenterName}</span>
998 <!-- <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#32AFFC" class="bi bi-chevron-right rotate180deg" viewBox="0 0 16 16">
999 <path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"/>
1000</svg>
1001
1002 </a>-->
1003 </div>
1004
1005
1006 </div></li>
1007 </#list>
1008
1009 <#assign medicalCenterClassTypeName="Medical Center Details">
1010 <#assign medicalCenterAssetEntries=customAssetEntry.getAssetEntries(secLocationCategories,medicalCenterClassTypeName, themeDisplay.getScopeGroupId()) />
1011
1012 <#list medicalCenterAssetEntries as assetEntry>
1013 <#assign
1014 article=JournalArticleLocalService.fetchLatestArticle(assetEntry.getClassPK())
1015 docXml=saxReaderUtil.read(article.getContentByLocale(locale)) />
1016 <#assign medicalCenterName=docXml.valueOf("//dynamic-element[@field-reference='name'
1017 ]/dynamic-content") />
1018
1019 <#assign
1020 assetRenderer=assetEntry.getAssetRenderer()
1021 viewURL=assetRenderer.getURLViewInContext(renderRequest, renderResponse,
1022 viewURL) />
1023
1024 <#assign categoryURL="" />
1025 <#list assetEntry.getCategories() as assetCategory>
1026 <#if secLocationVocabularyId==assetCategory.getVocabularyId()>
1027 <#assign categoryURL="?mc=" +assetCategory.getCategoryId() />
1028 </#if>
1029 </#list>
1030
1031 <li class=" p-0 mb-2"><div class="practices-hospital-card ${(assetEntry?index%2==0)?then('mr-2','ml-2')}">
1032 <div class="hospital-centers-content">
1033 <!--<a href="${viewURL+categoryURL}" class="hospital-read-more"> -->
1034 <span>${medicalCenterName}</span>
1035 <!-- <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#32AFFC" class="bi bi-chevron-right rotate180deg" viewBox="0 0 16 16">
1036 <path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"/>
1037</svg>
1038
1039 </a>-->
1040 </div>
1041
1042
1043 </div></li>
1044 </#list>
1045 </#if>
1046
1047 <#if thirdLocationCategories ? has_content>
1048 <#assign classTypeName="Hospital Details">
1049 <#assign assetEntries=customAssetEntry.getAssetEntries(thirdLocationCategories,classTypeName, themeDisplay.getScopeGroupId()) />
1050
1051 <#assign
1052 JournalArticleLocalService=serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
1053
1054 <#list assetEntries as assetEntry>
1055 <#assign
1056 article=JournalArticleLocalService.fetchLatestArticle(assetEntry.getClassPK())
1057 docXml=saxReaderUtil.read(article.getContentByLocale(locale)) />
1058 <#assign hospitalName=docXml.valueOf("//dynamic-element[@field-reference='name'
1059 ]/dynamic-content") />
1060 <#assign
1061 contactPhone=docXml.valueOf("//dynamic-element[@field-reference='contactPhone'
1062 ]/dynamic-content") assetRenderer=assetEntry.getAssetRenderer()
1063 viewURL=assetRenderer.getURLViewInContext(renderRequest, renderResponse,
1064 viewURL) />
1065
1066 <#assign categoryURL="" />
1067 <#list assetEntry.getCategories() as assetCategory>
1068 <#if thirdLocationVocabularyId ==assetCategory.getVocabularyId()>
1069 <#assign categoryURL="?hospital=" +assetCategory.getCategoryId() />
1070 </#if>
1071 </#list>
1072
1073 <li class=" p-0 mb-2"><div class="practices-hospital-card ${(assetEntry?index%2==0)?then('mr-2','ml-2')}">
1074 <div class="hospital-centers-content">
1075 <!-- <a href="${viewURL+categoryURL}" class="hospital-read-more"> -->
1076 <span>${hospitalName}</span>
1077 <!-- <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#32AFFC" class="bi bi-chevron-right rotate180deg" viewBox="0 0 16 16">
1078 <path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"/>
1079</svg> -->
1080
1081 </a>
1082 </div></li>
1083 </#list>
1084
1085
1086 <#assign healthCenterClassTypeName="Health Center Details">
1087 <#assign healthCenterAssetEntries=customAssetEntry.getAssetEntries(thirdLocationCategories,healthCenterClassTypeName, themeDisplay.getScopeGroupId()) />
1088
1089 <#list healthCenterAssetEntries as assetEntry>
1090 <#assign
1091 article=JournalArticleLocalService.fetchLatestArticle(assetEntry.getClassPK())
1092 docXml=saxReaderUtil.read(article.getContentByLocale(locale)) />
1093 <#assign healthCenterName=docXml.valueOf("//dynamic-element[@field-reference='name'
1094 ]/dynamic-content") />
1095
1096 <#assign categoryURL="" />
1097 <#list assetEntry.getCategories() as assetCategory>
1098 <#if thirdLocationVocabularyId==assetCategory.getVocabularyId()>
1099 <#assign categoryURL="?hc=" +assetCategory.getCategoryId() />
1100 </#if>
1101 </#list>
1102
1103 <li class=" p-0 mb-2"><div class="practices-hospital-card ${(assetEntry?index%2==0)?then('mr-2','ml-2')}">
1104 <div class="hospital-centers-content">
1105 <!--<a href="${categoryURL}" class="hospital-read-more"> -->
1106 <span>${healthCenterName}</span>
1107 <!-- <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#32AFFC" class="bi bi-chevron-right rotate180deg" viewBox="0 0 16 16">
1108 <path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"/>
1109</svg>
1110
1111 </a>-->
1112 </div>
1113
1114
1115 </div></li>
1116 </#list>
1117
1118 <#assign medicalCenterClassTypeName="Medical Center Details">
1119 <#assign medicalCenterAssetEntries=customAssetEntry.getAssetEntries(thirdLocationCategories,medicalCenterClassTypeName, themeDisplay.getScopeGroupId()) />
1120
1121 <#list medicalCenterAssetEntries as assetEntry>
1122 <#assign
1123 article=JournalArticleLocalService.fetchLatestArticle(assetEntry.getClassPK())
1124 docXml=saxReaderUtil.read(article.getContentByLocale(locale)) />
1125 <#assign medicalCenterName=docXml.valueOf("//dynamic-element[@field-reference='name'
1126 ]/dynamic-content") />
1127
1128 <#assign
1129 assetRenderer=assetEntry.getAssetRenderer()
1130 viewURL=assetRenderer.getURLViewInContext(renderRequest, renderResponse,
1131 viewURL) />
1132
1133 <#assign categoryURL="" />
1134 <#list assetEntry.getCategories() as assetCategory>
1135 <#if thirdLocationVocabularyId==assetCategory.getVocabularyId()>
1136 <#assign categoryURL="?mc=" +assetCategory.getCategoryId() />
1137 </#if>
1138 </#list>
1139
1140 <li class=" p-0 mb-2"><div class="practices-hospital-card ${(assetEntry?index%2==0)?then('mr-2','ml-2')}">
1141 <div class="hospital-centers-content">
1142 <!--<a href="${viewURL+categoryURL}" class="hospital-read-more"> -->
1143 <span>${medicalCenterName}</span>
1144 <!--<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#32AFFC" class="bi bi-chevron-right rotate180deg" viewBox="0 0 16 16">
1145 <path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"/>
1146</svg>
1147
1148 </a> -->
1149 </div>
1150
1151
1152 </div></li>
1153 </#list>
1154 </#if>
1155 </ul>
1156 </div>
1157
1158
1159
1160
1161
1162<script>
1163 $(document).ready(function () {
1164
1165 const links = document.querySelectorAll('.timeline-link');
1166
1167 // Add a click event listener to each link
1168 links.forEach(link => {
1169 link.addEventListener('click', (event) => {
1170 // Prevent the default link behavior (e.g., page scroll)
1171 event.preventDefault();
1172
1173 // Remove the "active" class from all links
1174 links.forEach(otherLink => {
1175 otherLink.classList.remove('active');
1176 });
1177
1178 // Add the "active" class to the clicked link
1179 link.classList.add('active');
1180 });
1181 });
1182
1183 $('a').on('click', function (event) {
1184 if (this.hash !== '') {
1185 event.preventDefault();
1186 const hash = this.hash;
1187 const offset = $(hash).offset().top - 95; // Scroll directly to the target section
1188 $('html, body').scrollTop(offset);
1189 }
1190 });
1191 });
1192</script>