- Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in element_gva_column->render_content() (line 462 of themes/gavias_kunco/gva_content_builder/gva_column.php).
element_gva_column->render_content(Array, '
Accessibility
<a href="/en/universal-en" class="atraf-btn">Explore Our Projects</a>
// Simple Scripts for Interactions
const counters = document.querySelectorAll('.counter');
const options = { threshold: 0.5 };
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
const counter = entry.target;
const target = +counter.getAttribute('data-target');
let count = 0;
const increment = target / 100;
const updateCounter = () => {
count += increment;
if (count < target) {
counter.innerText = Math.ceil(count);
requestAnimationFrame(updateCounter);
} else {
counter.innerText = target;
}
};
updateCounter();
observer.unobserve(counter);
}
});
}, options);
counters.forEach(counter => observer.observe(counter));
// Reveal Animation
const reveals = document.querySelectorAll('.reveal, .reveal-left, .reveal-right');
const revealObserver = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('active');
}
})
}, { threshold: 0.1 });
reveals.forEach(el => revealObserver.observe(el));
function toggleCart() {
// Placeholder for cart toggle logic
alert('Cart toggle clicked');
}
function toggleMobileMenu() {
alert('Mobile menu clicked');
}
module.exports = {
content: ["./about.html"],
important: '.vicdan-embed-wrapper',
theme: {
extend: {
colors: {
brand: {
primary: '#6d2435',
secondary: '#b2946b',
green: '#617f67',
salmon: '#a75756',
beige: '#f2d7b4',
dark: '#282828'
}
},
fontFamily: {
sans: ['IBM Plex Sans Arabic', 'sans-serif'],
}
}
},
corePlugins: {
preflight: false,
}
}
Program Overview
This program aims to provide a range of assistive devices, including wheelchairs, walkers, crutches, hearing aids, and other supportive tools that help persons with disabilities and injured individuals improve their mobility, movement, and communication. By increasing access to these essential aids, the program enables beneficiaries to carry out their daily lives with greater dignity, independence, and ease.
Objectives
Provision assistive devices.
Enhancing independence and mobility.
Supporting community integration.
Reducing family burden.
/* COUNTER */
document.querySelectorAll('.atraf-counter').forEach(counter=>{
const update=()=>{
const target=+counter.getAttribute('data-target');
const count=+counter.innerText;
const inc=target/100;
if(count{
window.open('sites/default/files/program_access.png','_blank');
});
') (Line: 110)
gavias_content_builder_render_element('gva_column', Array, '
Accessibility
<a href="/en/universal-en" class="atraf-btn">Explore Our Projects</a>
// Simple Scripts for Interactions
const counters = document.querySelectorAll('.counter');
const options = { threshold: 0.5 };
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
const counter = entry.target;
const target = +counter.getAttribute('data-target');
let count = 0;
const increment = target / 100;
const updateCounter = () => {
count += increment;
if (count < target) {
counter.innerText = Math.ceil(count);
requestAnimationFrame(updateCounter);
} else {
counter.innerText = target;
}
};
updateCounter();
observer.unobserve(counter);
}
});
}, options);
counters.forEach(counter => observer.observe(counter));
// Reveal Animation
const reveals = document.querySelectorAll('.reveal, .reveal-left, .reveal-right');
const revealObserver = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('active');
}
})
}, { threshold: 0.1 });
reveals.forEach(el => revealObserver.observe(el));
function toggleCart() {
// Placeholder for cart toggle logic
alert('Cart toggle clicked');
}
function toggleMobileMenu() {
alert('Mobile menu clicked');
}
module.exports = {
content: ["./about.html"],
important: '.vicdan-embed-wrapper',
theme: {
extend: {
colors: {
brand: {
primary: '#6d2435',
secondary: '#b2946b',
green: '#617f67',
salmon: '#a75756',
beige: '#f2d7b4',
dark: '#282828'
}
},
fontFamily: {
sans: ['IBM Plex Sans Arabic', 'sans-serif'],
}
}
},
corePlugins: {
preflight: false,
}
}
Program Overview
This program aims to provide a range of assistive devices, including wheelchairs, walkers, crutches, hearing aids, and other supportive tools that help persons with disabilities and injured individuals improve their mobility, movement, and communication. By increasing access to these essential aids, the program enables beneficiaries to carry out their daily lives with greater dignity, independence, and ease.
Objectives
Provision assistive devices.
Enhancing independence and mobility.
Supporting community integration.
Reducing family burden.
/* COUNTER */
document.querySelectorAll('.atraf-counter').forEach(counter=>{
const update=()=>{
const target=+counter.getAttribute('data-target');
const count=+counter.innerText;
const inc=target/100;
if(count{
window.open('sites/default/files/program_access.png','_blank');
});
') (Line: 58)
gavias_content_builder_render_el(Array) (Line: 22)
gavias_content_builder_frontend('[{"settings":{"element":"gva_row","bg_particles":"off","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","style_space":"remove_margin remove_padding remove_padding_col","layout":"container-fw"},"columns":[{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n\r\n \r\n \r\n \r\n \r\n \r\n Accessibility\r\n\r\n \r\n\r\n <a>Explore Our Projects</a>\r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n // Simple Scripts for Interactions\r\n const counters = document.querySelectorAll('.counter');\r\n const options = { threshold: 0.5 };\r\n\r\n const observer = new IntersectionObserver((entries) => {\r\n entries.forEach(entry => {\r\n if (entry.isIntersecting) {\r\n const counter = entry.target;\r\n const target = +counter.getAttribute('data-target');\r\n let count = 0;\r\n const increment = target / 100;\r\n\r\n const updateCounter = () => {\r\n count += increment;\r\n if (count < target) {\r\n counter.innerText = Math.ceil(count);\r\n requestAnimationFrame(updateCounter);\r\n } else {\r\n counter.innerText = target;\r\n }\r\n };\r\n updateCounter();\r\n observer.unobserve(counter);\r\n }\r\n });\r\n }, options);\r\n\r\n counters.forEach(counter => observer.observe(counter));\r\n\r\n // Reveal Animation\r\n const reveals = document.querySelectorAll('.reveal, .reveal-left, .reveal-right');\r\n const revealObserver = new IntersectionObserver((entries) => {\r\n entries.forEach(entry => {\r\n if (entry.isIntersecting) {\r\n entry.target.classList.add('active');\r\n }\r\n })\r\n }, { threshold: 0.1 });\r\n\r\n reveals.forEach(el => revealObserver.observe(el));\r\n\r\n function toggleCart() {\r\n // Placeholder for cart toggle logic\r\n alert('Cart toggle clicked');\r\n }\r\n function toggleMobileMenu() {\r\n alert('Mobile menu clicked');\r\n }\r\n\r\n module.exports = {\r\n content: [\"./about.html\"],\r\n important: '.vicdan-embed-wrapper',\r\n theme: {\r\n extend: {\r\n colors: {\r\n brand: {\r\n primary: '#6d2435',\r\n secondary: '#b2946b',\r\n green: '#617f67',\r\n salmon: '#a75756',\r\n beige: '#f2d7b4',\r\n dark: '#282828'\r\n }\r\n },\r\n fontFamily: {\r\n sans: ['IBM Plex Sans Arabic', 'sans-serif'],\r\n }\r\n }\r\n },\r\n corePlugins: {\r\n preflight: false,\r\n }\r\n }\r\n","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"},{"settings":{"content":"\r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n Program Overview\r\n \r\n \r\n This program aims to provide a range of assistive devices, including wheelchairs, walkers, crutches, hearing aids, and other supportive tools that help persons with disabilities and injured individuals improve their mobility, movement, and communication. By increasing access to these essential aids, the program enables beneficiaries to carry out their daily lives with greater dignity, independence, and ease.\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n Objectives\r\n\r\n \r\n\r\n \r\n \r\n Provision assistive devices.\r\n\r\n\r\n\r\n \r\n Enhancing independence and mobility.\r\n\r\n\r\n\r\n \r\n Supporting community integration.\r\n\r\n\r\n\r\n \r\n Reducing family burden.\r\n\r\n \r\n\r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n /* COUNTER */\r\n document.querySelectorAll('.atraf-counter').forEach(counter=>{\r\n const update=()=>{\r\n const target=+counter.getAttribute('data-target');\r\n const count=+counter.innerText;\r\n const inc=target/100;\r\n\r\n if(count{\r\n window.open('sites/default/files/program_access.png','_blank');\r\n });\r\n\r\n","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'en') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'en') (Line: 263)
Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple(Array) (Line: 351)
Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 24)
Drupal\node\NodeViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 293)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (Line: 250)
Drupal\Core\Entity\EntityViewBuilder->build(Array)
call_user_func_array(Array, Array) (Line: 100)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. Support for this callback implementation is deprecated in 8.8.0 and will be removed in Drupal 9.0.0. See https://www.drupal.org/node/2966725', 'silenced_deprecation', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 781)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 372)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 226)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 573)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 227)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 117)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.view', Object) (Line: 156)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 68)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 708)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in element_gva_column->render_content() (line 463 of themes/gavias_kunco/gva_content_builder/gva_column.php).
element_gva_column->render_content(Array, '
Accessibility
<a href="/en/universal-en" class="atraf-btn">Explore Our Projects</a>
// Simple Scripts for Interactions
const counters = document.querySelectorAll('.counter');
const options = { threshold: 0.5 };
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
const counter = entry.target;
const target = +counter.getAttribute('data-target');
let count = 0;
const increment = target / 100;
const updateCounter = () => {
count += increment;
if (count < target) {
counter.innerText = Math.ceil(count);
requestAnimationFrame(updateCounter);
} else {
counter.innerText = target;
}
};
updateCounter();
observer.unobserve(counter);
}
});
}, options);
counters.forEach(counter => observer.observe(counter));
// Reveal Animation
const reveals = document.querySelectorAll('.reveal, .reveal-left, .reveal-right');
const revealObserver = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('active');
}
})
}, { threshold: 0.1 });
reveals.forEach(el => revealObserver.observe(el));
function toggleCart() {
// Placeholder for cart toggle logic
alert('Cart toggle clicked');
}
function toggleMobileMenu() {
alert('Mobile menu clicked');
}
module.exports = {
content: ["./about.html"],
important: '.vicdan-embed-wrapper',
theme: {
extend: {
colors: {
brand: {
primary: '#6d2435',
secondary: '#b2946b',
green: '#617f67',
salmon: '#a75756',
beige: '#f2d7b4',
dark: '#282828'
}
},
fontFamily: {
sans: ['IBM Plex Sans Arabic', 'sans-serif'],
}
}
},
corePlugins: {
preflight: false,
}
}
Program Overview
This program aims to provide a range of assistive devices, including wheelchairs, walkers, crutches, hearing aids, and other supportive tools that help persons with disabilities and injured individuals improve their mobility, movement, and communication. By increasing access to these essential aids, the program enables beneficiaries to carry out their daily lives with greater dignity, independence, and ease.
Objectives
Provision assistive devices.
Enhancing independence and mobility.
Supporting community integration.
Reducing family burden.
/* COUNTER */
document.querySelectorAll('.atraf-counter').forEach(counter=>{
const update=()=>{
const target=+counter.getAttribute('data-target');
const count=+counter.innerText;
const inc=target/100;
if(count{
window.open('sites/default/files/program_access.png','_blank');
});
') (Line: 110)
gavias_content_builder_render_element('gva_column', Array, '
Accessibility
<a href="/en/universal-en" class="atraf-btn">Explore Our Projects</a>
// Simple Scripts for Interactions
const counters = document.querySelectorAll('.counter');
const options = { threshold: 0.5 };
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
const counter = entry.target;
const target = +counter.getAttribute('data-target');
let count = 0;
const increment = target / 100;
const updateCounter = () => {
count += increment;
if (count < target) {
counter.innerText = Math.ceil(count);
requestAnimationFrame(updateCounter);
} else {
counter.innerText = target;
}
};
updateCounter();
observer.unobserve(counter);
}
});
}, options);
counters.forEach(counter => observer.observe(counter));
// Reveal Animation
const reveals = document.querySelectorAll('.reveal, .reveal-left, .reveal-right');
const revealObserver = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('active');
}
})
}, { threshold: 0.1 });
reveals.forEach(el => revealObserver.observe(el));
function toggleCart() {
// Placeholder for cart toggle logic
alert('Cart toggle clicked');
}
function toggleMobileMenu() {
alert('Mobile menu clicked');
}
module.exports = {
content: ["./about.html"],
important: '.vicdan-embed-wrapper',
theme: {
extend: {
colors: {
brand: {
primary: '#6d2435',
secondary: '#b2946b',
green: '#617f67',
salmon: '#a75756',
beige: '#f2d7b4',
dark: '#282828'
}
},
fontFamily: {
sans: ['IBM Plex Sans Arabic', 'sans-serif'],
}
}
},
corePlugins: {
preflight: false,
}
}
Program Overview
This program aims to provide a range of assistive devices, including wheelchairs, walkers, crutches, hearing aids, and other supportive tools that help persons with disabilities and injured individuals improve their mobility, movement, and communication. By increasing access to these essential aids, the program enables beneficiaries to carry out their daily lives with greater dignity, independence, and ease.
Objectives
Provision assistive devices.
Enhancing independence and mobility.
Supporting community integration.
Reducing family burden.
/* COUNTER */
document.querySelectorAll('.atraf-counter').forEach(counter=>{
const update=()=>{
const target=+counter.getAttribute('data-target');
const count=+counter.innerText;
const inc=target/100;
if(count{
window.open('sites/default/files/program_access.png','_blank');
});
') (Line: 58)
gavias_content_builder_render_el(Array) (Line: 22)
gavias_content_builder_frontend('[{"settings":{"element":"gva_row","bg_particles":"off","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","style_space":"remove_margin remove_padding remove_padding_col","layout":"container-fw"},"columns":[{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n\r\n \r\n \r\n \r\n \r\n \r\n Accessibility\r\n\r\n \r\n\r\n <a>Explore Our Projects</a>\r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n // Simple Scripts for Interactions\r\n const counters = document.querySelectorAll('.counter');\r\n const options = { threshold: 0.5 };\r\n\r\n const observer = new IntersectionObserver((entries) => {\r\n entries.forEach(entry => {\r\n if (entry.isIntersecting) {\r\n const counter = entry.target;\r\n const target = +counter.getAttribute('data-target');\r\n let count = 0;\r\n const increment = target / 100;\r\n\r\n const updateCounter = () => {\r\n count += increment;\r\n if (count < target) {\r\n counter.innerText = Math.ceil(count);\r\n requestAnimationFrame(updateCounter);\r\n } else {\r\n counter.innerText = target;\r\n }\r\n };\r\n updateCounter();\r\n observer.unobserve(counter);\r\n }\r\n });\r\n }, options);\r\n\r\n counters.forEach(counter => observer.observe(counter));\r\n\r\n // Reveal Animation\r\n const reveals = document.querySelectorAll('.reveal, .reveal-left, .reveal-right');\r\n const revealObserver = new IntersectionObserver((entries) => {\r\n entries.forEach(entry => {\r\n if (entry.isIntersecting) {\r\n entry.target.classList.add('active');\r\n }\r\n })\r\n }, { threshold: 0.1 });\r\n\r\n reveals.forEach(el => revealObserver.observe(el));\r\n\r\n function toggleCart() {\r\n // Placeholder for cart toggle logic\r\n alert('Cart toggle clicked');\r\n }\r\n function toggleMobileMenu() {\r\n alert('Mobile menu clicked');\r\n }\r\n\r\n module.exports = {\r\n content: [\"./about.html\"],\r\n important: '.vicdan-embed-wrapper',\r\n theme: {\r\n extend: {\r\n colors: {\r\n brand: {\r\n primary: '#6d2435',\r\n secondary: '#b2946b',\r\n green: '#617f67',\r\n salmon: '#a75756',\r\n beige: '#f2d7b4',\r\n dark: '#282828'\r\n }\r\n },\r\n fontFamily: {\r\n sans: ['IBM Plex Sans Arabic', 'sans-serif'],\r\n }\r\n }\r\n },\r\n corePlugins: {\r\n preflight: false,\r\n }\r\n }\r\n","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"},{"settings":{"content":"\r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n Program Overview\r\n \r\n \r\n This program aims to provide a range of assistive devices, including wheelchairs, walkers, crutches, hearing aids, and other supportive tools that help persons with disabilities and injured individuals improve their mobility, movement, and communication. By increasing access to these essential aids, the program enables beneficiaries to carry out their daily lives with greater dignity, independence, and ease.\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n Objectives\r\n\r\n \r\n\r\n \r\n \r\n Provision assistive devices.\r\n\r\n\r\n\r\n \r\n Enhancing independence and mobility.\r\n\r\n\r\n\r\n \r\n Supporting community integration.\r\n\r\n\r\n\r\n \r\n Reducing family burden.\r\n\r\n \r\n\r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n /* COUNTER */\r\n document.querySelectorAll('.atraf-counter').forEach(counter=>{\r\n const update=()=>{\r\n const target=+counter.getAttribute('data-target');\r\n const count=+counter.innerText;\r\n const inc=target/100;\r\n\r\n if(count{\r\n window.open('sites/default/files/program_access.png','_blank');\r\n });\r\n\r\n","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'en') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'en') (Line: 263)
Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple(Array) (Line: 351)
Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 24)
Drupal\node\NodeViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 293)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (Line: 250)
Drupal\Core\Entity\EntityViewBuilder->build(Array)
call_user_func_array(Array, Array) (Line: 100)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. Support for this callback implementation is deprecated in 8.8.0 and will be removed in Drupal 9.0.0. See https://www.drupal.org/node/2966725', 'silenced_deprecation', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 781)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 372)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 226)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 573)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 227)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 117)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.view', Object) (Line: 156)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 68)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 708)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in element_gva_row->render_content() (line 317 of themes/gavias_kunco/gva_content_builder/gva_row.php).
element_gva_row->render_content(Array, '
Accessibility
<a href="/en/universal-en" class="atraf-btn">Explore Our Projects</a>
// Simple Scripts for Interactions
const counters = document.querySelectorAll('.counter');
const options = { threshold: 0.5 };
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
const counter = entry.target;
const target = +counter.getAttribute('data-target');
let count = 0;
const increment = target / 100;
const updateCounter = () => {
count += increment;
if (count < target) {
counter.innerText = Math.ceil(count);
requestAnimationFrame(updateCounter);
} else {
counter.innerText = target;
}
};
updateCounter();
observer.unobserve(counter);
}
});
}, options);
counters.forEach(counter => observer.observe(counter));
// Reveal Animation
const reveals = document.querySelectorAll('.reveal, .reveal-left, .reveal-right');
const revealObserver = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('active');
}
})
}, { threshold: 0.1 });
reveals.forEach(el => revealObserver.observe(el));
function toggleCart() {
// Placeholder for cart toggle logic
alert('Cart toggle clicked');
}
function toggleMobileMenu() {
alert('Mobile menu clicked');
}
module.exports = {
content: ["./about.html"],
important: '.vicdan-embed-wrapper',
theme: {
extend: {
colors: {
brand: {
primary: '#6d2435',
secondary: '#b2946b',
green: '#617f67',
salmon: '#a75756',
beige: '#f2d7b4',
dark: '#282828'
}
},
fontFamily: {
sans: ['IBM Plex Sans Arabic', 'sans-serif'],
}
}
},
corePlugins: {
preflight: false,
}
}
Program Overview
This program aims to provide a range of assistive devices, including wheelchairs, walkers, crutches, hearing aids, and other supportive tools that help persons with disabilities and injured individuals improve their mobility, movement, and communication. By increasing access to these essential aids, the program enables beneficiaries to carry out their daily lives with greater dignity, independence, and ease.
Objectives
Provision assistive devices.
Enhancing independence and mobility.
Supporting community integration.
Reducing family burden.
/* COUNTER */
document.querySelectorAll('.atraf-counter').forEach(counter=>{
const update=()=>{
const target=+counter.getAttribute('data-target');
const count=+counter.innerText;
const inc=target/100;
if(count{
window.open('sites/default/files/program_access.png','_blank');
});
') (Line: 110)
gavias_content_builder_render_element('gva_row', Array, '
Accessibility
<a href="/en/universal-en" class="atraf-btn">Explore Our Projects</a>
// Simple Scripts for Interactions
const counters = document.querySelectorAll('.counter');
const options = { threshold: 0.5 };
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
const counter = entry.target;
const target = +counter.getAttribute('data-target');
let count = 0;
const increment = target / 100;
const updateCounter = () => {
count += increment;
if (count < target) {
counter.innerText = Math.ceil(count);
requestAnimationFrame(updateCounter);
} else {
counter.innerText = target;
}
};
updateCounter();
observer.unobserve(counter);
}
});
}, options);
counters.forEach(counter => observer.observe(counter));
// Reveal Animation
const reveals = document.querySelectorAll('.reveal, .reveal-left, .reveal-right');
const revealObserver = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('active');
}
})
}, { threshold: 0.1 });
reveals.forEach(el => revealObserver.observe(el));
function toggleCart() {
// Placeholder for cart toggle logic
alert('Cart toggle clicked');
}
function toggleMobileMenu() {
alert('Mobile menu clicked');
}
module.exports = {
content: ["./about.html"],
important: '.vicdan-embed-wrapper',
theme: {
extend: {
colors: {
brand: {
primary: '#6d2435',
secondary: '#b2946b',
green: '#617f67',
salmon: '#a75756',
beige: '#f2d7b4',
dark: '#282828'
}
},
fontFamily: {
sans: ['IBM Plex Sans Arabic', 'sans-serif'],
}
}
},
corePlugins: {
preflight: false,
}
}
Program Overview
This program aims to provide a range of assistive devices, including wheelchairs, walkers, crutches, hearing aids, and other supportive tools that help persons with disabilities and injured individuals improve their mobility, movement, and communication. By increasing access to these essential aids, the program enables beneficiaries to carry out their daily lives with greater dignity, independence, and ease.
Objectives
Provision assistive devices.
Enhancing independence and mobility.
Supporting community integration.
Reducing family burden.
/* COUNTER */
document.querySelectorAll('.atraf-counter').forEach(counter=>{
const update=()=>{
const target=+counter.getAttribute('data-target');
const count=+counter.innerText;
const inc=target/100;
if(count{
window.open('sites/default/files/program_access.png','_blank');
});
') (Line: 62)
gavias_content_builder_render_el(Array) (Line: 22)
gavias_content_builder_frontend('[{"settings":{"element":"gva_row","bg_particles":"off","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","style_space":"remove_margin remove_padding remove_padding_col","layout":"container-fw"},"columns":[{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n\r\n \r\n \r\n \r\n \r\n \r\n Accessibility\r\n\r\n \r\n\r\n <a>Explore Our Projects</a>\r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n // Simple Scripts for Interactions\r\n const counters = document.querySelectorAll('.counter');\r\n const options = { threshold: 0.5 };\r\n\r\n const observer = new IntersectionObserver((entries) => {\r\n entries.forEach(entry => {\r\n if (entry.isIntersecting) {\r\n const counter = entry.target;\r\n const target = +counter.getAttribute('data-target');\r\n let count = 0;\r\n const increment = target / 100;\r\n\r\n const updateCounter = () => {\r\n count += increment;\r\n if (count < target) {\r\n counter.innerText = Math.ceil(count);\r\n requestAnimationFrame(updateCounter);\r\n } else {\r\n counter.innerText = target;\r\n }\r\n };\r\n updateCounter();\r\n observer.unobserve(counter);\r\n }\r\n });\r\n }, options);\r\n\r\n counters.forEach(counter => observer.observe(counter));\r\n\r\n // Reveal Animation\r\n const reveals = document.querySelectorAll('.reveal, .reveal-left, .reveal-right');\r\n const revealObserver = new IntersectionObserver((entries) => {\r\n entries.forEach(entry => {\r\n if (entry.isIntersecting) {\r\n entry.target.classList.add('active');\r\n }\r\n })\r\n }, { threshold: 0.1 });\r\n\r\n reveals.forEach(el => revealObserver.observe(el));\r\n\r\n function toggleCart() {\r\n // Placeholder for cart toggle logic\r\n alert('Cart toggle clicked');\r\n }\r\n function toggleMobileMenu() {\r\n alert('Mobile menu clicked');\r\n }\r\n\r\n module.exports = {\r\n content: [\"./about.html\"],\r\n important: '.vicdan-embed-wrapper',\r\n theme: {\r\n extend: {\r\n colors: {\r\n brand: {\r\n primary: '#6d2435',\r\n secondary: '#b2946b',\r\n green: '#617f67',\r\n salmon: '#a75756',\r\n beige: '#f2d7b4',\r\n dark: '#282828'\r\n }\r\n },\r\n fontFamily: {\r\n sans: ['IBM Plex Sans Arabic', 'sans-serif'],\r\n }\r\n }\r\n },\r\n corePlugins: {\r\n preflight: false,\r\n }\r\n }\r\n","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"},{"settings":{"content":"\r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n Program Overview\r\n \r\n \r\n This program aims to provide a range of assistive devices, including wheelchairs, walkers, crutches, hearing aids, and other supportive tools that help persons with disabilities and injured individuals improve their mobility, movement, and communication. By increasing access to these essential aids, the program enables beneficiaries to carry out their daily lives with greater dignity, independence, and ease.\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n Objectives\r\n\r\n \r\n\r\n \r\n \r\n Provision assistive devices.\r\n\r\n\r\n\r\n \r\n Enhancing independence and mobility.\r\n\r\n\r\n\r\n \r\n Supporting community integration.\r\n\r\n\r\n\r\n \r\n Reducing family burden.\r\n\r\n \r\n\r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n /* COUNTER */\r\n document.querySelectorAll('.atraf-counter').forEach(counter=>{\r\n const update=()=>{\r\n const target=+counter.getAttribute('data-target');\r\n const count=+counter.innerText;\r\n const inc=target/100;\r\n\r\n if(count{\r\n window.open('sites/default/files/program_access.png','_blank');\r\n });\r\n\r\n","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'en') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'en') (Line: 263)
Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple(Array) (Line: 351)
Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 24)
Drupal\node\NodeViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 293)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (Line: 250)
Drupal\Core\Entity\EntityViewBuilder->build(Array)
call_user_func_array(Array, Array) (Line: 100)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. Support for this callback implementation is deprecated in 8.8.0 and will be removed in Drupal 9.0.0. See https://www.drupal.org/node/2966725', 'silenced_deprecation', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 781)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 372)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 226)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 573)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 227)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 117)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.view', Object) (Line: 156)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 68)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 708)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)