Changes for page Public Web Site

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

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

Summary

Details

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