सामग्री से संबंधित परियोजनाएँ - तकनीकी
टेम्पलेट के प्रोसेसिंग के समय त्रुटि हुई है.
The following has evaluated to null or missing:
==> request.getParameter("param3") [in template "20096#20121#331516" at line 71, column 19]
----
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: #assign param1 = request.getParameter... [in template "20096#20121#331516" at line 71, column 1]
----
1<script src="https://cdnjs.cloudflare.com/ajax/libs/lightbox2/2.11.3/js/lightbox.js"></script>
2<link rel= "stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/lightbox2/2.11.3/css/lightbox.css">
3
4<style>
5
6@media screen and (max-width: 992px) {
7 h5 {
8 font-size:11px;
9 font-weight:bold;
10 }
11 }
12
13
14
15.button {
16 display: inline-block;
17 border-radius: 50px 50px 50px 50px;
18 background-color: #005ef5;
19 border: 1px;
20 color: #FFFFFF;
21 text-align: center;
22 font-size: 15px;
23 padding: 8px;
24 width: 150px;
25 transition: all 0.5s;
26 cursor: pointer;
27
28}
29.button span {
30 cursor: pointer;
31 display: inline-block;
32 position: relative;
33 transition: 0.5s;
34}
35
36
37
38.button span:after {
39 content: '\00bb';
40 position: absolute;
41 opacity: 0;
42 top: 0;
43 right: -20px;
44 transition: 0.5s;
45}
46
47.button:hover span {
48 padding-right: 25px;
49}
50.button:hover{
51background-color: #00bfff;
52 color: white;
53}
54.button:hover span:after {
55 opacity: 1;
56 right: 0;
57}
58
59.card{
60 display: inline-block;
61 box-shadow: 2px 2px 20px black;
62 border-radius: 5px;
63 margin: 2%;
64 }
65
66</style>
67
68
69<div class="container-space">
70<br>
71<#assign param1 = request.getParameter("param3")/>
72<h3 style="text-align:center;font-weight:700;">Project related to ${param1} Material</h3>
73<#assign count=0 />
74<#if entries?has_content>
75 <#list entries as entry>
76 <#assign assetRenderer = entry.getAssetRenderer()/>
77 <#assign className = assetRenderer.getClassName()/>
78 <#assign entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale))/>
79 <#assign viewURL= assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, entry,true)/>
80 <#assign viewURL = assetRenderer.getURLViewInContext(renderRequest, renderResponse, viewURL)/>
81 <#assign fields = entry.getAssetRenderer().getDDMFormValuesReader().getDDMFormValues().getDDMFormFieldValues()/>
82
83
84 <#if fields[1].getValue().getString(locale)== param1>
85
86
87
88
89 <#assign docValJSON = fields[2].getValue().getString(locale) />
90 <#assign imageUrl = jsonFactoryUtil.createJSONObject(docValJSON).getString("url")/>
91 <#if imageUrl?has_content>
92<#assign Post =""/>
93<#assign Post ="Post on"/>
94 <#if locale?contains("hi")>
95 <#assign Post ="भेजा गया दिनांक"/>
96 </#if>
97
98
99 <#assign Viewmore =""/>
100 <#assign Viewmore ="View More"/>
101 <#if locale?contains("hi")>
102 <#assign Viewmore ="अधिक देखें"/>
103 </#if>
104
105
106<#else>
107<#assign imageUrl = "/documents/676924/681064/m+%2811%29.jpg/a0c0f980-bfa5-d8df-22f4-1467ba79e9e4?t=1669215621911"/>
108</#if>
109
110<#if count%3=0 >
111 <div class="row">
112</#if>
113 <div class=" col-xl-4 col-md-6 col-sm-4">
114 <#if entry.getAssetRenderer().hasEditPermission(themeDisplay.getPermissionChecker())>
115 <#assign redirectURL = renderResponse.createRenderURL() />
116
117 ${redirectURL.setParameter("struts_action", "/asset_publisher/add_asset_redirect")}
118 ${redirectURL.setWindowState("pop_up")}
119
120 <#assign editPortletURL = entry.getAssetRenderer().getURLEdit(renderRequest, renderResponse)!"" />
121
122 <#if validator.isNotNull(editPortletURL)>
123 <#assign title1 = languageUtil.format(locale, "edit-x", entry.getTitle(locale)) />
124 <a class="content-edit-icon-home-page-sliders" href="${editPortletURL}"><i class="fas fa-edit"></i></a>
125 </#if>
126 </#if>
127 <div class="card" style="padding : 10px;">
128 <div class="image">
129 <a href="${imageUrl}" data-lightbox="roadtri"> <img src="${imageUrl}" width="100%" height="200px"></a>
130 </div>
131 <div>
132 <hr>
133 <div style="min-height:50px;">
134 <h5 style="text-align: center;">
135 ${fields[0].getValue().getString(locale)}
136 </h5>
137 </div>
138 </div>
139 <div style="text-align: center;" >
140 <a href="${viewURL}">
141 <button class="button btn btn-info" style="vertical-align:middle"><span>${Viewmore}</span></button></a>
142 <hr>
143
144 <p style="text-align: center;">
145
146 ${Post} : ${entry.getPublishDate()?date}
147
148
149
150
151 </p>
152 </div>
153 </div>
154 </div>
155
156
157<#if count%3=2 || entries?size=count >
158 </div>
159 <br>
160</#if>
161<#assign count++ />
162
163
164 </#if>
165
166
167
168</#list>
169
170</div>
171 </#if>
टेम्पलेट के प्रोसेसिंग के समय त्रुटि हुई है.
The following has evaluated to null or missing:
==> request.getParameter("param3") [in template "20096#20121#888624" at line 17, column 84]
----
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: #assign param1 = request.getParameter... [in template "20096#20121#888624" at line 17, column 66]
----
1<#assign Project_related_to =""/>
2<#assign Project_related_to ="Project related to"/>
3 <#if locale?contains("hi")>
4 <#assign Project_related_to ="प्रोजेक्ट से सम्बंधित"/>
5 </#if>
6
7<#assign Material =""/>
8<#assign Material ="Material"/>
9 <#if locale?contains("hi")>
10 <#assign Material ="सामग्री"/>
11 </#if>
12
13<section class="w-100 clearfix cpwdOurUnitsSec" id="cpwdOurUnitsSec">
14 <div class="cpwdOurUnitsInner">
15 <div class="container-fluid container-space custom-container-xxl">
16 <div class="cpwdOurUnitsCarousel">
17 <#assign param1 = request.getParameter("param3")/>
18 <div class="cpwdHeadingCommon">
19 <h2> ${Project_related_to} ${param1} ${Material}</h2>
20 </div>
21 <div class="owl-carousel owl-theme ourUnitsOwlCarousel">
22
23
24 <#if entries?has_content>
25 <#list entries as entry>
26 <#assign assetRenderer = entry.getAssetRenderer()/>
27 <#assign className = assetRenderer.getClassName()/>
28 <#assign entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale))/>
29 <#assign viewURL= assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, entry,true)/>
30 <#assign viewURL = assetRenderer.getURLViewInContext(renderRequest, renderResponse, viewURL)/>
31 <#assign fields = entry.getAssetRenderer().getDDMFormValuesReader().getDDMFormValues().getDDMFormFieldValues()/>
32
33
34 <#if fields[1].getValue().getString(locale)== param1>
35 <#assign docValJSON = fields[2].getValue().getString(locale) />
36 <#assign imageUrl = jsonFactoryUtil.createJSONObject(docValJSON).getString("url")/>
37 <#if imageUrl?has_content>
38<#assign Post =""/>
39<#assign Post ="Post on"/>
40 <#if locale?contains("hi")>
41 <#assign Post ="भेजा गया दिनांक"/>
42 </#if>
43
44
45 <#assign Viewmore =""/>
46 <#assign Viewmore ="View More"/>
47 <#if locale?contains("hi")>
48 <#assign Viewmore ="अधिक देखें"/>
49 </#if>
50
51
52<#else>
53<#assign imageUrl = "/documents/676924/681064/m+%2811%29.jpg/a0c0f980-bfa5-d8df-22f4-1467ba79e9e4?t=1669215621911"/>
54</#if>
55
56
57 <div class="item">
58 <#if entry.getAssetRenderer().hasEditPermission(themeDisplay.getPermissionChecker())>
59 <#assign redirectURL = renderResponse.createRenderURL() />
60
61 ${redirectURL.setParameter("struts_action", "/asset_publisher/add_asset_redirect")}
62 ${redirectURL.setWindowState("pop_up")}
63
64 <#assign editPortletURL = entry.getAssetRenderer().getURLEdit(renderRequest, renderResponse)!"" />
65
66 <#if validator.isNotNull(editPortletURL)>
67 <#assign title = languageUtil.format(locale, "edit-x", entry.getTitle(locale)) />
68 <a class="content-edit-icon-profile" href="${editPortletURL}"><i class="fas fa-edit"></i></a>
69 </#if>
70 </#if>
71
72
73 <div class="projectBox">
74 <a href="${viewURL}">
75 <div class="projectBoxInner">
76 <div class="projectImg">
77 <img style= "border-radius:10px; height:300px;" src="${imageUrl}" alt="img" >
78 </div>
79 <div class="projectTxt">
80 <h4>${fields[0].getValue().getString(locale)}</h4>
81 <span><@liferay.language key="read_more" /></span>
82 </div>
83 </div>
84 </a>
85 </div>
86 </div>
87 </#if>
88
89 </#list>
90 </#if>
91
92 </div>
93 </div>
94 <div class="owlControlGroup w-100 d-flex align-items-center justify-content-center">
95 <div class="owlNavBtn">
96 <div class="btn-wrap owl-nav">
97 <button class="prev-btn owl-prev"><span>‹</span></button>
98 <div id="custom-owl-dots3" class="custom-owl-dots owl-dots"></div>
99 <button class="next-btn owl-next"><span>›</span></button>
100 </div>
101 </div>
102 </div>
103
104 </section>
105
106
107
108 <script>
109 $(document).ready(function() {
110 // Function to highlight active link based on scroll position
111 function highlightActiveLink() {
112 const scrollPosition = $(window).scrollTop();
113
114 $('section').each(function() {
115 const sectionTop = $(this).offset().top - 50; // Adjust offset if needed
116 const sectionBottom = sectionTop + $(this).outerHeight();
117
118 if (scrollPosition >= sectionTop && scrollPosition < sectionBottom) {
119 const targetId = '#' + $(this).attr('id');
120 $('.scrollNav a').removeClass('active');
121 $('.scrollNav a[href="' + targetId + '"]').addClass('active');
122 }
123 });
124 }
125
126 // Function for smooth scrolling on link click
127 $('.scrollNav a').on('click', function(e) {
128 e.preventDefault();
129 const targetId = $(this).attr('href');
130 const $targetSection = $(targetId);
131
132 if ($targetSection.length) {
133 $('html, body').animate({
134 scrollTop: $targetSection.offset().top
135 }, 100, 'swing', function() {
136 highlightActiveLink(); // Highlight active link after scrolling
137 });
138 }
139 });
140
141 // Highlight active link on initial page load
142 highlightActiveLink();
143
144 // Highlight active link on scroll
145 $(window).on('scroll', function() {
146 highlightActiveLink();
147 });
148 });
149 </script>
150
151 <script>
152
153 // Get all video containers
154 var videoContainers = document.querySelectorAll('.video-container');
155
156 // Iterate through each video container
157 videoContainers.forEach(function (container) {
158 // Get video and button inside each container
159 var video = container.querySelector('.video-item');
160 var btn = container.querySelector('.video-btn');
161
162 // Function to play/pause video and change button text
163 function myFunction() {
164 if (video.paused) {
165 video.play();
166 btn.innerHTML = '<i class="fa fa-pause" aria-hidden="true"></i>';
167 } else {
168 video.pause();
169 btn.innerHTML = '<i class="fa fa-play" aria-hidden="true"></i>';
170 }
171 }
172
173 // Attach the myFunction to the button's click event
174 btn.addEventListener('click', myFunction);
175 });
176
177
178
179
180
181
182
183
184 </script>
185
186 <script>
187 // Parallax background
188 $('.jarallax').jarallax({
189 speed: 0.5,
190 })
191
192
193
194
195 $(".youtube-link").grtyoutube({
196 autoPlay: true,
197 theme: "dark",
198 });
199 $(".ourUnitsOwlCarousel").owlCarousel({
200 loop: false,
201 margin: 20,
202 dots: true,
203 // autoplay: true,
204 autoplayTimeout: 5000,
205 smartSpeed: 1000,
206 nav: true,
207 autoplayHoverPause: true,
208 dotsContainer: '#custom-owl-dots3',
209 responsive: {
210 0: {
211 items: 1,
212 dots: false,
213 },
214 600: {
215 items: 3,
216 dots: false,
217 },
218 768: {
219 items: 3,
220 },
221 1200: {
222 items: 5,
223 },
224 },
225 });
226
227 $(document).ready(function ($) {
228 var owl = $(".ourUnitsOwlCarousel");
229 owl.owlCarousel();
230 $(".next-btn").click(function () {
231 owl.trigger("next.owl.carousel");
232 });
233 $(".prev-btn").click(function () {
234 owl.trigger("prev.owl.carousel");
235 });
236 $(".prev-btn").addClass("disabled");
237 $(owl).on("translated.owl.carousel", function (event) {
238 if ($(".owl-prev").hasClass("disabled")) {
239 $(".prev-btn").addClass("disabled");
240 } else {
241 $(".prev-btn").removeClass("disabled");
242 }
243 if ($(".owl-next").hasClass("disabled")) {
244 $(".next-btn").addClass("disabled");
245 } else {
246 $(".next-btn").removeClass("disabled");
247 }
248 });
249 });
250 </script>
251 <script>
252 const element = document.querySelector(".cpwdTimeline");
253 let isDragging = false;
254 let previousX;
255 let autoplayInterval; // Variable to store autoplay interval
256
257 function handleMove(event) {
258 if (isDragging) {
259 const clientX = event.clientX || event.touches[0].clientX;
260 const deltaX = clientX - previousX;
261 element.scrollLeft -= deltaX;
262 previousX = clientX;
263 }
264 }
265
266 element.addEventListener('mousedown', (event) => {
267 isDragging = true;
268 previousX = event.clientX;
269 });
270
271 element.addEventListener('touchstart', (event) => {
272 isDragging = true;
273 previousX = event.touches[0].clientX;
274 });
275
276 element.addEventListener('mousemove', handleMove);
277 element.addEventListener('touchmove', handleMove);
278
279 window.addEventListener('mouseup', () => {
280 isDragging = false;
281 });
282
283 element.addEventListener('selectstart', () => {
284 const selection = window.getSelection();
285 if (selection.toString().length > 0 && selection.focusNode.parentElement === element) {
286 element.scrollLeft = 0;
287 }
288 });
289
290 function startAutoplay() {
291 autoplayInterval = setInterval(() => {
292 // Change the scrollLeft value here for smooth autoplay
293 element.scrollLeft += 1; // Adjust this value for the desired scrolling speed
294 }, 20); // Change the interval for smoother/faster scrolling
295 }
296
297 function stopAutoplay() {
298 clearInterval(autoplayInterval);
299 }
300
301 element.addEventListener('mouseenter', stopAutoplay); // Pause autoplay on hover
302 element.addEventListener('mouseleave', startAutoplay); // Resume autoplay on mouse leave
303
304 // Initial handling of window size on load
305 function handleResize() {
306 isDragging = false;
307 }
308
309 window.addEventListener('resize', handleResize);
310 handleResize();
311
312 $('.counting').each(function () {
313 var $this = $(this),
314 countTo = $this.attr('data-count');
315
316 $({ countNum: $this.text() }).animate({
317 countNum: countTo
318 }, {
319 duration: 3000,
320 easing: 'linear',
321 step: function () {
322 $this.text(Math.floor(this.countNum));
323 },
324 complete: function () {
325 $this.text(this.countNum);
326 }
327 });
328 });
329
330 // Start autoplay initially
331 startAutoplay();
332
333
334
335 </script>
336 <script>
337 // var $sidebar = $('#sidebar-nav');
338 // var $content = $('#content');
339 // var sidebarTop = $sidebar.position().top;
340
341 // $(window).scroll(function () {
342 // var windowScrollTop = $(window).scrollTop();
343 // var blogHeight = $content.outerHeight();
344
345 // if (windowScrollTop >= sidebarTop) {
346 // $sidebar.toggleClass('sticky', windowScrollTop < blogHeight);
347 // } else {
348 // $sidebar.removeClass('sticky');
349 // }
350 // });
351
352
353
354 </script>

