Wiki source code of Home
Version 10.1 by Isaac Mejia on 2025/12/05 16:57
Hide last authors
| author | version | line-number | content |
|---|---|---|---|
| |
6.1 | 1 | {{velocity}} |
| 2 | ## KB Home (Main.WebHome) | ||
| |
4.1 | 3 | |
| |
9.1 | 4 | ## ------------------------------------------------------------ |
| 5 | ## 1) Discover category pages automatically | ||
| 6 | ## - Category pages live at: Main.<CategoryLabel>.WebHome | ||
| |
10.1 | 7 | ## - We query all docs in space=Main except: |
| 8 | ## - WebHome | ||
| 9 | ## - KB-Categories (index page) | ||
| 10 | ## - KBStyles (internal style doc, not a category) | ||
| |
9.1 | 11 | ## ------------------------------------------------------------ |
| 12 | #set ($xwql = | ||
| 13 | "select doc.fullName, doc.title " + | ||
| 14 | "from XWikiDocument doc " + | ||
| 15 | "where doc.space = :space " + | ||
| |
10.1 | 16 | "and doc.name not in ('WebHome','KB-Categories','KBStyles') " + |
| |
9.1 | 17 | "and doc.hidden <> true " + |
| 18 | "order by lower(doc.title)" | ||
| 19 | ) | ||
| |
4.1 | 20 | |
| |
9.1 | 21 | #set ($query = $services.query.xwql($xwql).bindValue("space", "Main")) |
| 22 | #set ($rows = $query.execute()) | ||
| 23 | |||
| 24 | #set ($categories = []) | ||
| 25 | #foreach ($row in $rows) | ||
| |
10.1 | 26 | #set ($fullName = $row[0]) |
| |
9.1 | 27 | #set ($catDoc = $xwiki.getDocument($fullName)) |
| 28 | #set ($discard = $categories.add($catDoc)) | ||
| 29 | #end | ||
| 30 | |||
| |
10.1 | 31 | ## Optional description overrides (rest of your code stays the same) |
| |
9.1 | 32 | #set ($categoryDescriptions = { |
| 33 | "Member Management": "How to manage members, families, and profiles.", | ||
| 34 | "Configuration": "Set up locations, billing, and core system settings.", | ||
| 35 | "Billing & Payments": "Invoices, collections, and payment processing.", | ||
| 36 | "Reporting & Analytics": "Understand your numbers and performance.", | ||
| 37 | "Integrations": "Connect eFit with other tools in your stack." | ||
| 38 | }) | ||
| 39 | |||
| |
6.1 | 40 | {{html clean="false"}} |
| 41 | <div class="kb-home"> | ||
| |
1.1 | 42 | |
| |
6.1 | 43 | <!-- HERO --> |
| 44 | <div class="kb-hero"> | ||
| 45 | <h1 class="kb-hero-title">Member Solutions Knowledge Base</h1> | ||
| 46 | <p class="kb-hero-subtitle"> | ||
| 47 | Guides, walkthroughs, and best practices to help you and your team get the most out of the platform. | ||
| 48 | </p> | ||
| |
1.1 | 49 | |
| |
6.1 | 50 | <!-- Simple search box that posts to XWiki search --> |
| 51 | <div class="kb-hero-search"> | ||
| 52 | <form action="$xwiki.getURL('Main.WebHome', 'view')" method="get"> | ||
| 53 | <input | ||
| 54 | type="text" | ||
| 55 | name="text" | ||
| 56 | placeholder="Search for an article (e.g. "family membership")" | ||
| 57 | /> | ||
| 58 | </form> | ||
| 59 | </div> | ||
| 60 | </div> | ||
| |
4.1 | 61 | |
| |
6.1 | 62 | <!-- CATEGORY GRID --> |
| 63 | <div class="kb-section"> | ||
| 64 | <h2 class="kb-section-title">Browse by category</h2> | ||
| |
4.1 | 65 | |
| |
6.1 | 66 | <div class="kb-category-grid"> |
| |
9.1 | 67 | #foreach ($catDoc in $categories) |
| 68 | ## Label shown on the card | ||
| 69 | #set ($label = $catDoc.displayTitle) ## e.g. "Member Management" | ||
| |
4.1 | 70 | |
| |
9.1 | 71 | ## Space/page name used in the URL path: |
| 72 | ## uploader created category pages as Main.<Label>.WebHome, | ||
| 73 | ## so doc.name is the space segment we need (with spaces). | ||
| 74 | #set ($spaceName = $catDoc.name) ## e.g. "Member Management" | ||
| 75 | |||
| 76 | ## Description: use override map if present, else generic | ||
| 77 | #set ($desc = $categoryDescriptions.get($label)) | ||
| 78 | #if (!$desc) | ||
| 79 | #set ($desc = "Articles and guides for " + $label) | ||
| 80 | #end | ||
| 81 | |||
| |
7.2 | 82 | ## Build clean URL: /bin/view/Main/<SpaceName> (no trailing slash) |
| 83 | #set ($encoded = $escapetool.url($spaceName)) | ||
| 84 | #set ($cleanUrl = "/bin/view/Main/$encoded") | ||
| |
4.1 | 85 | |
| |
7.2 | 86 | <a class="kb-card" href="$cleanUrl"> |
| 87 | <div> | ||
| 88 | <div class="kb-card-title">$escapetool.xml($label)</div> | ||
| 89 | <div class="kb-card-body"> | ||
| 90 | $escapetool.xml($desc) | ||
| 91 | </div> | ||
| 92 | </div> | ||
| 93 | <div class="kb-card-meta">Category</div> | ||
| 94 | </a> | ||
| |
6.1 | 95 | #end |
| 96 | </div> | ||
| |
4.1 | 97 | </div> |
| 98 | |||
| |
6.1 | 99 | <!-- BOTTOM CTA --> |
| 100 | <div class="kb-cta"> | ||
| 101 | <div class="kb-cta-content"> | ||
| 102 | <h2>Still need help?</h2> | ||
| 103 | <p> | ||
| 104 | If you can’t find what you’re looking for, our support team is happy to help. | ||
| 105 | </p> | ||
| 106 | </div> | ||
| 107 | <a href="mailto:support@membersolutions.com" class="kb-cta-button"> | ||
| |
5.1 | 108 | Contact Support |
| 109 | </a> | ||
| |
4.1 | 110 | </div> |
| |
6.1 | 111 | |
| |
4.1 | 112 | </div> |
| |
2.1 | 113 | {{/html}} |
| |
6.1 | 114 | {{/velocity}} |