Wiki source code of Public Web Site

Version 10.14 by Agnease on 2026/05/19 06:16

Hide last authors
Agnease 1.2 1 {{velocity}}
Agnease 3.5 2 #macro (displayPublicContent)
Agnease 3.4 3 #set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome'))
4 {{html clean="false"}}
Agnease 6.27 5
Agnease 5.1 6 <section class="hero hero-centered" aria-labelledby="hero-title">
7 <div class="container hero-inner">
Agnease 6.27 8 <div class="hero-kicker">
9 <i class="fa fa-shield" aria-hidden="true"></i>
Agnease 6.34 10 Your trusted partner for professional XWiki services
Agnease 6.27 11 </div>
12
13 <h1 id="hero-title">Reliable XWiki engineering for organizations that depend on their knowledge platform</h1>
14
15 <p class="lead">
16 Agnease helps companies keep XWiki secure, stable, up-to-date and adapted to real business processes.
17 </p>
18
19 <p class="hero-support">
20 From LTS upgrades and maintenance to custom applications, integrations, workflows and migrations,
21 Agnease provides focused XWiki expertise with practical delivery and long-term care.
22 </p>
23
Agnease 3.89 24 <ul class="benefits">
Agnease 6.27 25 <li>Safe LTS upgrades</li>
26 <li>Support and recovery</li>
27 <li>Custom XWiki applications</li>
28 <li>Integrations and migrations</li>
Agnease 3.89 29 </ul>
Agnease 6.27 30
31 <div class="hero-actions">
32 <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Request a consultation</a>
33 <a class="btn btn-secondary" href="$xwiki.getURL('services.WebHome')">View XWiki services</a>
Agnease 3.4 34 </div>
Agnease 1.2 35 </div>
Agnease 3.4 36 </section>
Agnease 6.27 37
38 <section class="trust-strip" aria-label="Agnease experience">
Agnease 3.4 39 <div class="container">
Agnease 6.27 40 <ul>
41 <li><i class="fa fa-check-circle" aria-hidden="true"></i> 11+ years of XWiki experience</li>
42 <li><i class="fa fa-check-circle" aria-hidden="true"></i> Upgrades, support and custom development</li>
43 <li><i class="fa fa-check-circle" aria-hidden="true"></i> Security-aware maintenance</li>
44 <li><i class="fa fa-check-circle" aria-hidden="true"></i> Practical long-term collaboration</li>
45 </ul>
Agnease 1.2 46 </div>
Agnease 3.4 47 </section>
Agnease 6.27 48
49 <section aria-labelledby="platform-title">
Agnease 3.4 50 <div class="container">
Agnease 6.27 51 <h2 id="platform-title">When XWiki becomes business-critical, it needs professional care</h2>
52 <p class="section-intro">
53 Many organizations start with XWiki as a documentation platform. Over time, it becomes a knowledge base,
54 intranet, SOP portal, workflow system, audit trail or integration hub. At that point, upgrades, security,
55 performance, permissions and maintainability are no longer optional technical details.
Agnease 5.1 56 </p>
Agnease 1.1 57
Agnease 6.27 58 <div class="pathways">
59 <article class="pathway-card">
60 <div class="pathway-icon">
61 <i class="fa fa-refresh" aria-hidden="true"></i>
62 </div>
63 <h3>Keep XWiki current</h3>
64 <p>
65 Plan and execute safe upgrades to supported XWiki versions, with compatibility checks and rollback planning.
66 </p>
67 <ul>
68 <li>LTS upgrade planning</li>
69 <li>Extension and custom code review</li>
70 <li>Production rollout validation</li>
71 </ul>
72 <p class="card-link">
Agnease 6.32 73 <a href="$xwiki.getURL('services.xwiki-upgrades')">View upgrade services</a>
Agnease 6.27 74 </p>
75 </article>
Agnease 5.1 76
Agnease 6.27 77 <article class="pathway-card">
78 <div class="pathway-icon">
79 <i class="fa fa-life-ring" aria-hidden="true"></i>
80 </div>
81 <h3>Keep XWiki reliable</h3>
82 <p>
83 Get long-term technical care for instances that need to stay stable, secure and recoverable.
84 </p>
85 <ul>
86 <li>Troubleshooting and recovery</li>
87 <li>Performance and log analysis</li>
88 <li>Security-aware maintenance</li>
89 </ul>
90 <p class="card-link">
Agnease 6.32 91 <a href="$xwiki.getURL('services.xwiki-maintenance-support')">View support services</a>
Agnease 6.27 92 </p>
93 </article>
94
95 <article class="pathway-card">
96 <div class="pathway-icon">
97 <i class="fa fa-cogs" aria-hidden="true"></i>
98 </div>
99 <h3>Adapt XWiki to your business</h3>
100 <p>
101 Build workflows, custom applications, dashboards, integrations and automation around your processes.
102 </p>
103 <ul>
104 <li>Custom XWiki applications</li>
105 <li>Workflows and approvals</li>
106 <li>SSO, LDAP, APIs and integrations</li>
107 </ul>
108 <p class="card-link">
Agnease 6.32 109 <a href="$xwiki.getURL('services.xwiki-development-integrations')">View development services</a>
Agnease 6.27 110 </p>
111 </article>
Agnease 3.4 112 </div>
Agnease 1.2 113 </div>
Agnease 3.4 114 </section>
Agnease 6.27 115
116 <section class="split-section" aria-labelledby="why-title">
Agnease 3.4 117 <div class="container">
Agnease 6.27 118 <div class="split-grid">
119 <div class="split-copy">
120 <h2 id="why-title">Why choose Agnease</h2>
121 <p>
122 Agnease brings more than 11 years of hands-on XWiki expertise to organizations that need reliable
123 knowledge platforms, secure upgrades, custom applications, integrations, migrations and long-term support.
124 </p>
125 <p>
126 The approach is practical and engineering-focused: understand the current system, reduce risk,
127 document the work and leave your XWiki easier to maintain.
128 </p>
129 </div>
130
131 <ol class="process-list">
132 <li>
133 <strong>Review the current situation</strong>
134 Version, extensions, infrastructure, authentication, custom code and business-critical features.
135 </li>
136 <li>
137 <strong>Define a safe path forward</strong>
138 Clear scope, expected effort, risks, rollback options and recommended next steps.
139 </li>
140 <li>
141 <strong>Deliver and document the work</strong>
142 Practical implementation, validation and documentation for future maintenance.
143 </li>
144 </ol>
145 </div>
146 </div>
147 </section>
148
149 <section class="resource-strip" aria-labelledby="resources-title">
150 <div class="container">
151 <h2 id="resources-title">Useful XWiki resources</h2>
152 <p class="section-intro">
153 Practical guidance for organizations running XWiki in production.
Agnease 3.4 154 </p>
Agnease 6.27 155
156 <div class="resource-grid">
157 <article class="resource-card">
158 <h4>Why upgrade your XWiki instance?</h4>
159 <p>
160 A business-focused explanation of why regular LTS upgrades reduce security, compatibility and maintenance risk.
161 </p>
Agnease 7.7 162 <a href="$xwiki.getURL('resources.why-upgrade-xwiki')">Read the resource</a>
Agnease 6.27 163 </article>
164
165 <article class="resource-card">
166 <h4>XWiki upgrade services</h4>
167 <p>
168 How Agnease approaches safe XWiki upgrades for real production environments with customizations and integrations.
169 </p>
Agnease 7.9 170 <a href="$xwiki.getURL('services.xwiki-upgrades')">View the service</a>
Agnease 6.27 171 </article>
172 </div>
Agnease 3.4 173 </div>
174 </section>
Agnease 3.16 175
Agnease 6.27 176 <section class="cta-section" aria-labelledby="contact-title">
177 <div class="container">
178 <div class="cta-panel">
179 <h2 id="contact-title">Need help with XWiki?</h2>
180 <p>
181 Send your current XWiki version, the problem you are facing, or the type of project you want to build.
182 A short description is enough to start the conversation.
183 </p>
184 <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Contact Agnease</a>
Agnease 3.16 185 </div>
186 </div>
Agnease 6.27 187 </section>
188
189 {{/html}}
Agnease 3.16 190 #end
Agnease 3.55 191
Agnease 3.66 192 #macro (stripHTMLMacro $displayOutput)
Agnease 3.77 193 $stringtool.removeEnd($stringtool.removeStart($displayOutput, '{{html clean="false" wiki="false"}}'), '{{/html}}').replace('Agnease.Code.Lead.LeadClass_0_', 'acl-')
Agnease 3.66 194 #end
195
Agnease 3.55 196 #macro (displayFormFromSheetCode)
Agnease 3.61 197 #set ($editing = true)
Agnease 3.55 198 ## The object to display.
Agnease 3.65 199 #set ($xobject = $doc.newObject('Agnease.Code.Lead.LeadClass'))
Agnease 3.55 200 ## The class that describes the object properties.
Agnease 3.60 201 #set ($xclass = $xwiki.getClass('Agnease.Code.Lead.LeadClass'))
Agnease 3.55 202 ## Make sure the following display* method calls use the right object.
203 #set ($discard = $doc.use($xobject))
204 ## Using the xform vertical form layout.
Agnease 3.70 205 <div class="xform">
Agnease 3.55 206 <dl>
207 #foreach ($property in $xclass.properties)
Agnease 3.84 208 #if ($property.name != 'status')
209 <dt #if (!$editing)
210 class="editableProperty"
211 #set ($xobjectPropertyReference = $xobject.getPropertyReference($property.name))
212 data-property="$escapetool.xml($services.model.serialize($xobjectPropertyReference))"
213 data-property-type="object"#end>
214 ## This must match the id generated by the $doc.display() method below.
215 #set ($propertyId = "acl-$property.name")
216 <label#if ($editing) for="$escapetool.xml($propertyId)"#end>
217 $escapetool.xml($property.translatedPrettyName)
218 </label>
219 ## Support for specifying a translation key as hint in the property definition.
220 <span class="xHint">$!escapetool.xml($services.localization.render($property.hint))</span>
221 </dt>
222 #set ($displayOutput = $doc.display($property.name, 'edit'))
223 <dd>#stripHTMLMacro($displayOutput)</dd>
224 #end
Agnease 3.55 225 #end
226 #if (!$xclass.properties || $xclass.properties.size() == 0)
227 ## Keep the empty definition term in order to have valid HTML.
228 <dt></dt>
229 <dd>$escapetool.xml($services.localization.render('xclass.defaultObjectSheet.noProperties'))</dd>
230 #end
231 </dl>
232 </div>
233 #end
Agnease 1.2 234 {{/velocity}}