Wiki source code of Public Web Site

Version 11.2 by Agnease on 2026/05/22 08:21

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