0 Votes

Wiki source code of Public Web Site

Version 3.17 by Alex Cotiugă on 2025/11/24 10:10

Hide last authors
Alex Cotiugă 1.2 1 {{velocity}}
Alex Cotiugă 3.5 2 #macro (displayPublicContent)
Alex Cotiugă 3.4 3 #set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome'))
4 {{html clean="false"}}
5 ## HERO
6 <section class="hero hero-centered" aria-labelledby="hero-title">
7 <div class="container hero-inner">
8 <h1 id="hero-title">Professional XWiki solutions, from setup to long-term stability</h1>
9 <p class="lead">Need your XWiki upgraded, secured, or improved? Let’s make it happen.</p>
10 <div class="hero-cta">
11 <a class="btn btn-primary" href="#contact" aria-label="Schedule a call with Agnease">
12 Request a consultation
13 </a>
Alex Cotiugă 3.15 14 #requestConsultationModal
Alex Cotiugă 3.4 15 </div>
16 <ul class="benefits">
17 <li>Smooth upgrades</li>
18 <li>Reliable support plans</li>
19 <li>Custom integrations</li>
20 <li>Secure, optimized platforms</li>
21 </ul>
Alex Cotiugă 1.2 22 </div>
Alex Cotiugă 3.4 23 </section>
24 ## WHY CHOOSE
25 #set ($whySectionData = [{
26 'title': 'Stability & security',
27 'icon': 'shield',
28 'content': 'Proven upgrade steps, rollback safety, and proactive hardening keep your wiki reliable.'
29 },{
30 'title': 'Predictable delivery',
31 'icon': 'check-square-o',
32 'content': 'Clear scope, defined steps, and documented results to avoid surprises.'
33 },{
34 'title': 'Clean integrations',
35 'icon': 'link',
36 'content': 'Maintainable SSO, API, and system connections tailored to your environment.'
37 },{
38 'title': 'Long-term support',
39 'icon': 'life-ring',
40 'content': 'Guaranteed response times, regular checks, and fast assistance when needed.'
41 }])
42 <section aria-labelledby="why-title">
43 <div class="container">
44 <h2 id="why-title">Why choose Agnease</h2>
45 <p class="lead">10+ years of XWiki expertise with structured delivery and lasting collaboration</p>
46 <div class="widgets">
47 #foreach ($entry in $whySectionData)
48 <article class="widget">
49 <div class="icon" aria-hidden="true">
50 <i class="fa fa-$entry.icon"></i>
51 <h4>$entry.title</h4>
52 </div>
53 <p>$entry.content</p>
54 </article>
55 #end
56 </div>
Alex Cotiugă 1.2 57 </div>
Alex Cotiugă 3.4 58 </section>
59 ## SERVICES
60 #set ($servicesSectionData = [{
61 'title': 'Upgrades',
62 'icon': 'refresh',
63 'content': 'Stay current with the latest XWiki LTS and keep your instance reliable.',
64 'items': [
65 'Audit setup, extensions, and configurations',
66 'Test upgrades with backups and validation',
67 'Safe production rollout with minimal downtime'
68 ]
69 },{
70 'title': 'Maintenance, Support & Recovery',
71 'icon': 'stethoscope',
72 'content': 'Ensure long-term stability and quick response when issues appear.',
73 'items': [
74 'Monitoring and performance checks',
75 'Security patching, log analysis, triage',
76 'Issue recovery, data repair, hardening'
77 ]
78 },{
79 'title': 'Development & Integrations',
80 'icon': 'cogs',
81 'content': 'Extend and connect XWiki to fit your workflow and systems.',
82 'items': [
83 'Custom apps, macros, automation',
84 'SSO, REST APIs, LDAP, CRM links',
85 'Maintainable extensions for long-term use'
86 ]
87 },{
88 'title': 'Hosting & Deployment',
89 'icon': 'cloud',
90 'content': 'Cloud-ready environments designed for reliability and performance.',
91 'items': [
92 'Containerized deployment and TLS',
93 'Backups, restore strategy, observability',
94 'Optimization and load tuning'
95 ]
96 },{
97 'title': 'Migrations to XWiki',
98 'icon': 'exchange',
99 'content': 'Move from Confluence, SharePoint, or MediaWiki to XWiki with full data integrity and structure.',
100 'items': [
101 'Preserve hierarchy, attachments, and permissions',
102 'Convert macros, categories, and metadata for XWiki',
103 'Redirect old URLs and maintain SEO consistency'
104 ]
105 }])
106 <section class="services" aria-labelledby="services-title">
107 <div class="container">
108 <h2 id="services-title">Services</h2>
109 <p class="lead">
110 All the XWiki services you need, delivered with precision and care
111 </p>
Alex Cotiugă 1.1 112
Alex Cotiugă 3.4 113 #set ($servicesSize = $servicesSectionData.size())
114 <div class="services-grid">
115 #foreach ($entry in $servicesSectionData)
116 #set ($classes = "service")
117 ## If this is the last item AND the total number is odd, center it
118 #if ($foreach.count == $servicesSize && ($servicesSize % 2) == 1)
119 #set ($classes = "service service-center")
120 #end
121
122 <article class="$classes">
123 <div class="service-icon">
124 <i class="fa fa-$entry.icon" aria-hidden="true"></i>
125 </div>
126 <div class="service-body">
127 <h4>$entry.title</h4>
128 <p>$entry.content</p>
129 <ul>
130 #foreach ($item in $entry.items)
131 <li>$item</li>
132 #end
133 </ul>
134 </div>
135 </article>
Alex Cotiugă 1.2 136 #end
Alex Cotiugă 3.4 137 </div>
Alex Cotiugă 1.2 138 </div>
Alex Cotiugă 3.4 139 </section>
140 ## CTA INLINE
141 <section id="contact" class="cta-section">
142 <div class="container">
143 <p class="text-center contact-inline">
144 Need help with your XWiki? <a href="mailto:alex@agnease.com">Contact Agnease</a>.
145 </p>
146 </div>
147 </section>
148 {{/html}}
149 #end
Alex Cotiugă 3.16 150
151 #macro(requestConsultationModal)
152 <div class="modal fade" id="requestConsultation" tabindex="-1" role="dialog">
153 <div class="modal-dialog">
154 <div class="modal-content">
155 <div class="modal-header">
156 <button type="button" class="close" data-dismiss="modal">&amp;times;</button>
157 <h4 class="modal-title">Request a consultation</h4>
158 </div>
159 <div class="modal-body">
160 <div>
161 $services.localization.render('blog.modal.checkCategorySelection.body')
162 </div>
163 </div>
164 <div class="modal-footer">
165 <input id="continueCategorySelection" type="button" class="btn btn-default" data-dismiss="modal"
166 value="$escapetool.xml($services.localization.render('yesno_1'))">
167 <input type="button" class="btn btn-danger" data-dismiss="modal"
168 value="$escapetool.xml($services.localization.render('blog.modal.checkCategorySelection.footer.no'))">
169 </div>
170 </div>
171 </div>
172 </div>
173 #end
Alex Cotiugă 1.2 174 {{/velocity}}