Changes for page Public Web Site

Last modified by Alex Cotiugă on 2026/05/02 12:23

From version 4.9
edited by Alex Cotiugă
on 2026/05/01 13:05
Change comment: There is no comment for this version
To version 4.7
edited by Alex Cotiugă
on 2026/05/01 13:03
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -2,57 +2,49 @@
2 2  #macro (displayPublicContent)
3 3   #set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome'))
4 4   {{html clean="false"}}
5 -
6 - ## LANDING HERO
7 - <section class="landing-hero" aria-labelledby="hero-title">
8 - <div class="container landing-hero-inner">
5 + ## HERO
6 + <section class="hero hero-centered" aria-labelledby="hero-title">
7 + <div class="container hero-inner">
9 9   <h1 id="hero-title">Keep Your XWiki Platform Secure, Stable and Up-to-Date</h1>
10 - <p class="lead">
11 - Helping organizations safely upgrade, maintain, customize, and integrate their XWiki environments.
12 - </p>
13 -
9 + <p class="lead">Helping organizations safely upgrade and maintain their XWiki environments.</p>
14 14   <ul class="benefits">
15 - <li><a href="/services/xwiki-upgrades">Smooth upgrades</a></li>
11 + <li><a href="$xwiki.getURL('services.xwiki-upgrades')">Smooth upgrades</a></li>
16 16   <li>Reliable support plans</li>
17 17   <li>Custom integrations</li>
18 18   <li>Secure, optimized platforms</li>
19 19   </ul>
20 -
21 - <div class="cta-row">
22 - <a class="btn-main" href="mailto:alex@agnease.com">Contact Agnease</a>
23 - <a class="btn-secondary" href="/services">View services</a>
16 + <div class="hero-cta">
17 + <a href="mailto:alex@agnease.com">Contact Agnease</a>
18 + #*<a class="btn btn-primary" href="#contact" aria-label="Request a consultation" data-toggle="modal" data-target="#requestConsultation">
19 + Request a consultation
20 + </a>
21 + #requestConsultationModal()*#
22 + ##data-toggle="modal" data-target="#requestConsultationModal"
24 24   </div>
25 25   </div>
26 26   </section>
27 -
28 28   ## WHY CHOOSE
29 29   #set ($whySectionData = [{
30 30   'title': 'Stability & security',
31 31   'icon': 'shield',
32 - 'content': 'Proven upgrade steps, rollback safety, and proactive hardening keep your wiki reliable.',
33 - 'url': '/services/xwiki-upgrades'
30 + 'content': 'Proven upgrade steps, rollback safety, and proactive hardening keep your wiki reliable.'
34 34   },{
35 35   'title': 'Predictable delivery',
36 36   'icon': 'check-square-o',
37 - 'content': 'Clear scope, defined steps, and documented results to avoid surprises.',
38 - 'url': ''
34 + 'content': 'Clear scope, defined steps, and documented results to avoid surprises.'
39 39   },{
40 40   'title': 'Clean integrations',
41 41   'icon': 'link',
42 - 'content': 'Maintainable SSO, API, and system connections tailored to your environment.',
43 - 'url': '/services/xwiki-integrations'
38 + 'content': 'Maintainable SSO, API, and system connections tailored to your environment.'
44 44   },{
45 45   'title': 'Long-term support',
46 46   'icon': 'life-ring',
47 - 'content': 'Guaranteed response times, regular checks, and fast assistance when needed.',
48 - 'url': '/services/xwiki-maintenance-support'
42 + 'content': 'Guaranteed response times, regular checks, and fast assistance when needed.'
49 49   }])
50 -
51 51   <section aria-labelledby="why-title">
52 52   <div class="container">
53 53   <h2 id="why-title">Why choose Agnease</h2>
54 54   <p class="lead">10+ years of XWiki expertise with structured delivery and lasting collaboration</p>
55 -
56 56   <div class="widgets">
57 57   #foreach ($entry in $whySectionData)
58 58   <article class="widget">
... ... @@ -61,21 +61,17 @@
61 61   <h4>$entry.title</h4>
62 62   </div>
63 63   <p>$entry.content</p>
64 - #if ($entry.url && $entry.url != '')
65 - <p class="card-link"><a href="$entry.url">Learn more</a></p>
66 - #end
67 67   </article>
68 68   #end
69 69   </div>
70 70   </div>
71 71   </section>
72 -
73 73   ## SERVICES
74 74   #set ($servicesSectionData = [{
75 - 'title': 'XWiki Upgrades',
63 + 'title': 'Upgrades',
64 + 'reference': 'services.xwiki-upgrades',
76 76   'icon': 'refresh',
77 - 'url': '/services/xwiki-upgrades',
78 - 'content': 'Stay current with the latest XWiki LTS and reduce security, stability, and compatibility risks.',
66 + 'content': 'Stay current with the latest XWiki LTS and keep your instance reliable.',
79 79   'items': [
80 80   'Audit setup, extensions, and configurations',
81 81   'Test upgrades with backups and validation',
... ... @@ -84,7 +84,6 @@
84 84   },{
85 85   'title': 'Maintenance, Support & Recovery',
86 86   'icon': 'stethoscope',
87 - 'url': '/services/xwiki-maintenance-support',
88 88   'content': 'Ensure long-term stability and quick response when issues appear.',
89 89   'items': [
90 90   'Monitoring and performance checks',
... ... @@ -94,7 +94,6 @@
94 94   },{
95 95   'title': 'Development & Integrations',
96 96   'icon': 'cogs',
97 - 'url': '/services/xwiki-development-integrations',
98 98   'content': 'Extend and connect XWiki to fit your workflow and systems.',
99 99   'items': [
100 100   'Custom apps, macros, automation',
... ... @@ -104,7 +104,6 @@
104 104   },{
105 105   'title': 'Hosting & Deployment',
106 106   'icon': 'cloud',
107 - 'url': '/services/xwiki-hosting-deployment',
108 108   'content': 'Cloud-ready environments designed for reliability and performance.',
109 109   'items': [
110 110   'Containerized deployment and TLS',
... ... @@ -114,7 +114,6 @@
114 114   },{
115 115   'title': 'Migrations to XWiki',
116 116   'icon': 'exchange',
117 - 'url': '/services/xwiki-migrations',
118 118   'content': 'Move from Confluence, SharePoint, or MediaWiki to XWiki with full data integrity and structure.',
119 119   'items': [
120 120   'Preserve hierarchy, attachments, and permissions',
... ... @@ -122,22 +122,30 @@
122 122   'Redirect old URLs and maintain SEO consistency'
123 123   ]
124 124   }])
125 -
126 126   <section class="services" aria-labelledby="services-title">
127 127   <div class="container">
128 128   <h2 id="services-title">Services</h2>
129 - <p class="lead">All the XWiki services you need, delivered with precision and care</p>
112 + <p class="lead">
113 + All the XWiki services you need, delivered with precision and care
114 + </p>
130 130  
116 + #set ($servicesSize = $servicesSectionData.size())
131 131   <div class="services-grid">
132 132   #foreach ($entry in $servicesSectionData)
133 - <article class="service">
119 + #set ($classes = "service")
120 + ## If this is the last item AND the total number is odd, center it
121 + #if ($foreach.count == $servicesSize && ($servicesSize % 2) == 1)
122 + #set ($classes = "service service-center")
123 + #end
124 +
125 + <article class="$classes">
134 134   <div class="service-icon">
135 135   <i class="fa fa-$entry.icon" aria-hidden="true"></i>
136 136   </div>
137 137   <div class="service-body">
138 138   <h4>
139 - #if ($entry.url && $entry.url != '')
140 - <a href="$entry.url">$entry.title</a>
131 + #if ("$!entry.reference" != '')
132 + <a href="$xwiki.getURL($entry.reference)">$entry.title</a>
141 141   #else
142 142   $entry.title
143 143   #end
... ... @@ -148,9 +148,6 @@
148 148   <li>$item</li>
149 149   #end
150 150   </ul>
151 - #if ($entry.url && $entry.url != '')
152 - <p class="service-link"><a href="$entry.url">Learn more</a></p>
153 - #end
154 154   </div>
155 155   </article>
156 156   #end
... ... @@ -157,8 +157,7 @@
157 157   </div>
158 158   </div>
159 159   </section>
160 -
161 - ## CTA
149 + ## CTA INLINE
162 162   <section id="contact" class="cta-section">
163 163   <div class="container">
164 164   <p class="text-center contact-inline">