Changes for page Resources
Last modified by Alex Cotiuga on 2026/07/21 13:07
From version 10.17
edited by Alex Cotiuga
on 2026/05/28 08:49
on 2026/05/28 08:49
Change comment:
There is no comment for this version
To version 2.1
edited by Alex Cotiuga
on 2026/05/19 03:41
on 2026/05/19 03:41
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
-
Objects (0 modified, 0 added, 1 removed)
Details
- Page properties
-
- Title
-
... ... @@ -1,1 +1,1 @@ 1 - Resources1 +resources - Content
-
... ... @@ -1,120 +1,175 @@ 1 1 {{velocity}} 2 -#set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome')) 3 -{{html clean="false"}} 4 - ## PAGE HEADER 5 - <section class="hero hero-centered" aria-labelledby="hero-title"> 6 - <div class="container hero-inner"> 7 - <div class="hero-kicker"> 8 - <i class="fa fa-book" aria-hidden="true"></i> 9 - XWiki resources 10 - </div> 11 - <h1 id="hero-title">XWiki resources for upgrades, security and maintainability</h1> 12 - <p class="lead"> 13 - Practical articles for teams that want to keep XWiki secure, upgradeable and easier to maintain over time. 14 - </p> 15 - <div class="hero-actions"> 16 - <a class="btn btn-primary" href="https://calendly.com/alex-agnease/30min?back=1&month=2026-06"> 17 - Book a free XWiki review call 18 - </a> 19 - <a class="btn btn-secondary" href="$xwiki.getURL('services.WebHome')"> 20 - View XWiki services 21 - </a> 22 -</div> 23 - </div> 24 - </section> 25 - ## RESOURCE CARDS 26 - #set ($resourceItems = [{ 27 - 'title': 'What should an XWiki security review include', 28 - 'icon': 'shield', 29 - 'url': 'resources.xwiki-security-review', 30 - 'content': 'A practical overview of what to review in an XWiki instance: version status, access rights, authentication, extensions, custom code, infrastructure, backups and operations.', 31 - 'linkLabel': 'Read article' 32 - },{ 33 - 'title': 'Why upgrade your XWiki instance', 34 - 'icon': 'refresh', 35 - 'url': 'resources.why-upgrade-xwiki', 36 - 'content': 'A practical explanation of why regular XWiki upgrades matter for security, stability, extension compatibility and long-term maintenance.', 37 - 'linkLabel': 'Read article' 38 - },{ 39 - 'title': 'How to customize XWiki safely', 40 - 'icon': 'code', 41 - 'url': 'resources.xwiki-custom-development', 42 - 'content': 'Guidance for organizing XWiki custom code, scripts, templates and extensions so they remain easier to maintain across upgrades.', 43 - 'linkLabel': 'Read article' 44 - }]) 45 - <section id="resources-list" class="services resources-index-page" aria-labelledby="resources-title"> 46 - <div class="container"> 47 - <h2 id="resources-title">Useful XWiki resources</h2> 48 - <p class="section-intro"> 49 - Focused guidance for production XWiki platforms, covering upgrade planning, custom development, 50 - maintainability and safer long-term evolution. 51 - </p> 52 - <div class="services-grid resources-grid"> 53 - #foreach ($entry in $resourceItems) 54 - <article class="service resource-card"> 55 - <div class="service-icon" aria-hidden="true"> 56 - <i class="fa fa-$entry.icon"></i> 57 - </div> 58 - <div class="service-body"> 59 - <h4>$entry.title</h4> 60 - <p>$entry.content</p> 61 - <p class="card-link"> 62 - <a href="$xwiki.getURL($entry.url)">$entry.linkLabel</a> 63 - </p> 64 - </div> 65 - </article> 66 - #end 67 - </div> 68 - </div> 69 - </section> 70 - ## UPCOMING TOPICS 71 - #set ($upcomingTopicItems = [{ 72 - 'title': 'Upgrade planning', 73 - 'content': 'How to prepare XWiki upgrades when custom code, extensions, authentication and workflows are involved.' 74 - },{ 75 - 'title': 'Access and security', 76 - 'content': 'Practical notes on permissions, authentication options, MFA, SSO and security-aware administration.' 77 - },{ 78 - 'title': 'Maintainable customization', 79 - 'content': 'How to extend XWiki without creating unnecessary upgrade and maintenance problems.' 80 - }]) 81 - <section class="split-section" aria-labelledby="upcoming-title"> 82 - <div class="container"> 83 - <div class="split-grid"> 84 - <div class="split-copy"> 85 - <h2 id="upcoming-title">More practical XWiki topics coming soon</h2> 86 - <p> 87 - Future resources will cover XWiki access rights, authentication, migrations, security reviews, 88 - structured applications, workflows and practical administration patterns. 89 - </p> 90 - <p> 91 - The goal is to publish useful guidance that helps teams make better decisions before an upgrade, 92 - customization, migration or long-term maintenance engagement. 93 - </p> 94 - </div> 95 - <ol class="process-list"> 96 - #foreach ($entry in $upcomingTopicItems) 97 - <li> 98 - <strong>$entry.title</strong> 99 - $entry.content 100 - </li> 101 - #end 102 - </ol> 103 - </div> 104 - </div> 105 - </section> 106 - ## CTA 107 - <section class="cta-section" aria-labelledby="resource-cta-title"> 108 - <div class="container"> 109 - <div class="cta-panel"> 110 - <h2 id="resource-cta-title">Need help with an XWiki project?</h2> 111 - <p> 112 - If your XWiki instance needs an upgrade, custom development, integration work or a technical review, 113 - Agnease can help evaluate the current state and define practical next steps. 114 - </p> 115 - <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Contact Agnease</a> 116 - </div> 117 - </div> 118 - </section> 119 -{{/html}} 2 +#if ("$!xcontext.userReference" == '') 3 + #set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome')) 4 + {{html clean="false"}} 5 + 6 + <li class="dropdown agnease-services-menu"> 7 + <a class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false" 8 + href="$xwiki.getURL('services.WebHome')"> 9 + Services <span class="caret"></span> 10 + </a> 11 + 12 + <ul class="dropdown-menu agnease-services-dropdown"> 13 + <li> 14 + <a href="$xwiki.getURL('services.WebHome')"> 15 + <span class="menu-icon"><i class="fa fa-th-large" aria-hidden="true"></i></span> 16 + <span class="menu-text"> 17 + <strong>All XWiki services</strong> 18 + <small>Overview of available services</small> 19 + </span> 20 + </a> 21 + </li> 22 + 23 + <li role="separator" class="divider"></li> 24 + 25 + <li> 26 + <a href="$xwiki.getURL('services.xwiki-upgrades')"> 27 + <span class="menu-icon"><i class="fa fa-refresh" aria-hidden="true"></i></span> 28 + <span class="menu-text"> 29 + <strong>XWiki Upgrade Services</strong> 30 + <small>Safe LTS upgrades and validation</small> 31 + </span> 32 + </a> 33 + </li> 34 + 35 + <li> 36 + <a href="$xwiki.getURL('services.xwiki-maintenance-support')"> 37 + <span class="menu-icon"><i class="fa fa-life-ring" aria-hidden="true"></i></span> 38 + <span class="menu-text"> 39 + <strong>Support & Maintenance</strong> 40 + <small>Ongoing care for production instances</small> 41 + </span> 42 + </a> 43 + </li> 44 + 45 + <li> 46 + <a href="$xwiki.getURL('services.xwiki-development-integrations')"> 47 + <span class="menu-icon"><i class="fa fa-cogs" aria-hidden="true"></i></span> 48 + <span class="menu-text"> 49 + <strong>Development & Integrations</strong> 50 + <small>Applications, workflows and APIs</small> 51 + </span> 52 + </a> 53 + </li> 54 + 55 + <li> 56 + <a href="$xwiki.getURL('services.xwiki-migrations')"> 57 + <span class="menu-icon"><i class="fa fa-exchange" aria-hidden="true"></i></span> 58 + <span class="menu-text"> 59 + <strong>XWiki Migrations</strong> 60 + <small>Move knowledge into XWiki</small> 61 + </span> 62 + </a> 63 + </li> 64 + 65 + <li> 66 + <a href="$xwiki.getURL('services.xwiki-authentication-access-control')"> 67 + <span class="menu-icon"><i class="fa fa-lock" aria-hidden="true"></i></span> 68 + <span class="menu-text"> 69 + <strong>Authentication & Access Control</strong> 70 + <small>SSO, LDAP, groups and rights</small> 71 + </span> 72 + </a> 73 + </li> 74 + 75 + <li> 76 + <a href="$xwiki.getURL('services.xwiki-security-review')"> 77 + <span class="menu-icon"><i class="fa fa-shield" aria-hidden="true"></i></span> 78 + <span class="menu-text"> 79 + <strong>XWiki Security Review</strong> 80 + <small>Version, rights and configuration review</small> 81 + </span> 82 + </a> 83 + </li> 84 + </ul> 85 + </li> 86 + 87 + <li class="dropdown agnease-products-menu"> 88 + <a class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false" 89 + href="$xwiki.getURL('products.WebHome')"> 90 + Products <span class="caret"></span> 91 + </a> 92 + 93 + <ul class="dropdown-menu agnease-products-dropdown"> 94 + <li> 95 + <a href="$xwiki.getURL('products.WebHome')"> 96 + <span class="menu-icon"><i class="fa fa-cube" aria-hidden="true"></i></span> 97 + <span class="menu-text"> 98 + <strong>All products</strong> 99 + <small>XWiki applications and extensions</small> 100 + </span> 101 + </a> 102 + </li> 103 + 104 + <li role="separator" class="divider"></li> 105 + 106 + <li> 107 + <a href="$xwiki.getURL('products.xwiki-two-factor-authentication')"> 108 + <span class="menu-icon"><i class="fa fa-lock" aria-hidden="true"></i></span> 109 + <span class="menu-text"> 110 + <strong>Two-Factor Authentication</strong> 111 + <small>Second verification step for XWiki login</small> 112 + </span> 113 + </a> 114 + </li> 115 + 116 + <li> 117 + <a href="$xwiki.getURL('products.xwiki-task-flow')"> 118 + <span class="menu-icon"><i class="fa fa-check-square-o" aria-hidden="true"></i></span> 119 + <span class="menu-text"> 120 + <strong>Task Flow for XWiki</strong> 121 + <small>Lightweight tasks inside XWiki pages</small> 122 + </span> 123 + </a> 124 + </li> 125 + </ul> 126 + </li> 127 + 128 + <li class="dropdown agnease-resources-menu"> 129 + <a class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false" 130 + href="$xwiki.getURL('resources.WebHome')"> 131 + Resources <span class="caret"></span> 132 + </a> 133 + 134 + <ul class="dropdown-menu agnease-resources-dropdown"> 135 + <li> 136 + <a href="$xwiki.getURL('resources.WebHome')"> 137 + <span class="menu-icon"><i class="fa fa-book" aria-hidden="true"></i></span> 138 + <span class="menu-text"> 139 + <strong>All resources</strong> 140 + <small>Practical XWiki guidance</small> 141 + </span> 142 + </a> 143 + </li> 144 + 145 + <li role="separator" class="divider"></li> 146 + 147 + <li> 148 + <a href="$xwiki.getURL('resources.why-upgrade-xwiki')"> 149 + <span class="menu-icon"><i class="fa fa-refresh" aria-hidden="true"></i></span> 150 + <span class="menu-text"> 151 + <strong>Why upgrade XWiki regularly?</strong> 152 + <small>Security, stability and maintenance risks</small> 153 + </span> 154 + </a> 155 + </li> 156 + 157 + <li> 158 + <a href="$xwiki.getURL('resources.xwiki-custom-development')"> 159 + <span class="menu-icon"><i class="fa fa-code" aria-hidden="true"></i></span> 160 + <span class="menu-text"> 161 + <strong>Safe XWiki customization</strong> 162 + <small>Custom code without upgrade problems</small> 163 + </span> 164 + </a> 165 + </li> 166 + </ul> 167 + </li> 168 + 169 + <li> 170 + <a href="$xwiki.getURL('contact.WebHome')">Contact</a> 171 + </li> 172 + 173 + {{/html}} 174 +#end 120 120 {{/velocity}}
- Agnease.Code.SEODetailsClass[0]
-
- metaDescription
-
... ... @@ -1,1 +1,0 @@ 1 -Practical XWiki resources from Agnease covering upgrades, security, custom development, maintainability, workflows and long-term platform care. - metaTitle
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki Resources and Guides for Upgrades, Security and Development | Agnease