Wijzigen voor document Huisstijl

Laatst gewijzigd door Jeeves de Butler op 07-10-2026 01:56

Van versie 3.1
gewijzigd door Jeeves de Butler
op 05-10-2026 01:21
Opmerking bij wijziging: Er is geen opmerking bij deze versie
Naar versie 17.1
gewijzigd door Jeeves de Butler
op 05-10-2026 03:49
Opmerking bij wijziging: Er is geen opmerking bij deze versie

Samenvatting

Details

Paginaeigenschappen
Inhoud
... ... @@ -1,4 +1,4 @@
1 -Huisstijl van de Wardenburg Kennisbank. Het object //StyleSheetExtension// op deze pagina wordt op elke pagina geladen.
1 +Huisstijl van de Wardenburg Kennisbank. Het object //StyleSheetExtension// op deze pagina (de opmaak) en het object //JavaScriptExtension// (kaartenraster voor tegeltabellen, alleen presentatie) worden op elke pagina geladen.
2 2  
3 3  Kleuren en lettertypen staan in het kleurthema [[Wardenburg>>doc:FlamingoThemes.Wardenburg]]. Zie het [[register van eigen aanpassingen>>doc:Wardenburg.Code.WebHome]].
4 4  
XWiki.StyleSheetExtension[0]
Code
... ... @@ -686,6 +686,160 @@
686 686   }
687 687  }
688 688  
689 +/* ---------- Paginakop: titel en knoppen naast elkaar ---------- */
690 +
691 +@media (min-width: 992px) {
692 + #mainContentArea > .document-header {
693 + display: flex;
694 + align-items: flex-start;
695 + gap: 16px;
696 + }
697 + #mainContentArea > .document-header::before,
698 + #mainContentArea > .document-header::after {
699 + content: none;
700 + }
701 + #mainContentArea > .document-header > .document-info {
702 + flex: 1 1 auto;
703 + width: auto;
704 + min-width: 0;
705 + }
706 + #mainContentArea > .document-header > .document-menu {
707 + flex: 0 0 auto;
708 + width: auto;
709 + }
710 + #mainContentArea > .document-header #contentmenu {
711 + float: none;
712 + display: flex;
713 + flex-wrap: nowrap;
714 + }
715 +}
716 +
717 +/* ---------- Tegels (vgmtabel) als kaarten ---------- */
718 +
719 +/* Het script huisstijl.js zet een tegeltabel om in een kaartenraster en verbergt de tabel. */
720 +#xwikicontent table.vgmtabel.wb-vervangen {
721 + display: none !important;
722 +}
723 +.wb-kaarten {
724 + display: grid;
725 + grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
726 + gap: 18px;
727 + margin: 14px 0 30px;
728 + clear: none;
729 +}
730 +#body #xwikicontent a.wb-kaart,
731 +.wb-kaart {
732 + display: flex;
733 + flex-direction: column;
734 + overflow: hidden;
735 + border: 1px solid #e8eaed;
736 + border-radius: 12px;
737 + background: #ffffff;
738 + color: #202124;
739 + text-decoration: none;
740 + transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
741 +}
742 +#body #xwikicontent a.wb-kaart:hover,
743 +#body #xwikicontent a.wb-kaart:focus {
744 + border-color: #ffb447;
745 + box-shadow: 0 4px 14px rgba(31, 35, 40, .10);
746 + transform: translateY(-2px);
747 + color: #202124;
748 +}
749 +.wb-kaart-beeld {
750 + display: block;
751 + position: relative;
752 + aspect-ratio: 16 / 10;
753 + overflow: hidden;
754 + background: #f1f3f4;
755 +}
756 +.wb-kaart-beeld img {
757 + display: block;
758 + width: 100% !important;
759 + height: 100% !important;
760 + max-width: none;
761 + object-fit: cover;
762 + transition: transform .25s ease;
763 +}
764 +.wb-kaart:hover .wb-kaart-beeld img {
765 + transform: scale(1.03);
766 +}
767 +/* Geen of verdwenen afbeelding: het script zet er een boekpictogram in (geen backslash-codes in deze CSS:
768 + de CSS-verkleiner van XWiki breekt die, en dan valt de rest van het bestand weg). */
769 +.wb-kaart-icoon {
770 + position: absolute;
771 + top: 50%;
772 + left: 50%;
773 + transform: translate(-50%, -50%);
774 + font-size: 34px;
775 + color: #b86e00;
776 + opacity: .5;
777 +}
778 +.wb-kaart-titel {
779 + padding: 10px 14px 12px;
780 + font-size: 15px;
781 + font-weight: 500;
782 + line-height: 1.35;
783 +}
784 +/* Grote schermen: grote kaarten, foto's in hun oorspronkelijke 3:2-verhouding */
785 +@media (min-width: 1200px) {
786 + .wb-kaarten {
787 + grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));
788 + gap: 26px;
789 + }
790 + .wb-kaart-beeld {
791 + aspect-ratio: 3 / 2;
792 + }
793 + .wb-kaart-titel {
794 + padding: 14px 18px 16px;
795 + font-size: 17px;
796 + }
797 +}
798 +@media (min-width: 1800px) {
799 + .wb-kaarten {
800 + grid-template-columns: repeat(auto-fill, minmax(420px, 1fr));
801 + }
802 +}
803 +
804 +/* Zonder script: de tabel past in elk geval binnen het scherm */
805 +#xwikicontent table.vgmtabel {
806 + width: 100% !important;
807 + max-width: 100%;
808 + table-layout: fixed;
809 +}
810 +#xwikicontent table.vgmtabel th,
811 +#xwikicontent table.vgmtabel td {
812 + width: auto !important;
813 + position: static !important;
814 + top: auto !important;
815 + padding: 6px;
816 +}
817 +#xwikicontent table.vgmtabel img {
818 + width: 100% !important;
819 + height: auto !important;
820 + aspect-ratio: 16 / 10;
821 + object-fit: cover;
822 + border-radius: 10px;
823 +}
824 +
825 +/* ---------- Handboeken: geplakte Word-opmaak volgt de huisstijl ---------- */
826 +
827 +html[data-xwiki-space^="Main.Handboeken"] #xwikicontent [style*="font-family"] {
828 + font-family: inherit !important;
829 +}
830 +html[data-xwiki-space^="Main.Handboeken"] #xwikicontent [style*="font-size"] {
831 + font-size: inherit !important;
832 +}
833 +html[data-xwiki-space^="Main.Handboeken"] #xwikicontent [style*="line-height"] {
834 + line-height: inherit !important;
835 +}
836 +html[data-xwiki-space^="Main.Handboeken"] #xwikicontent table:not(.vgmtabel) {
837 + font-size: 14px;
838 +}
839 +html[data-xwiki-space^="Main.Handboeken"] #xwikicontent table [style*="text-indent"] {
840 + text-indent: 0 !important;
841 +}
842 +
689 689  /* ---------- Telefoon ---------- */
690 690  
691 691  @media (max-width: 767px) {
... ... @@ -713,6 +713,14 @@
713 713   #contentmenu .btn-label {
714 714   display: none;
715 715   }
870 + .wb-kaarten {
871 + grid-template-columns: repeat(2, minmax(0, 1fr));
872 + gap: 10px;
873 + }
874 + .wb-kaart-titel {
875 + padding: 8px 10px 10px;
876 + font-size: 13.5px;
877 + }
716 716   #xwikicontent #actionBox ul {
717 717   flex-wrap: nowrap;
718 718   overflow-x: auto;
... ... @@ -724,3 +724,35 @@
724 724   }
725 725  }
726 726  
889 +/* Overzichtstabellen (livetable): woorden heel laten, lange adressen afkappen met ...; bij aanwijzen het volledige adres */
890 +#xwikicontent table.xwiki-livetable {
891 + font-size: 14px;
892 +}
893 +#xwikicontent .xwiki-livetable-display-header th,
894 +#xwikicontent .xwiki-livetable-display-body td {
895 + padding: 6px 7px;
896 +}
897 +#xwikicontent table.xwiki-livetable .xwiki-livetable-display-body td {
898 + word-break: normal;
899 + overflow-wrap: break-word;
900 + hyphens: manual;
901 +}
902 +#xwikicontent table.xwiki-livetable .xwiki-livetable-display-body td.URL,
903 +#xwikicontent table.xwiki-livetable .xwiki-livetable-display-body td.DOWNLOADURL {
904 + max-width: 140px;
905 + white-space: nowrap;
906 + overflow: hidden;
907 + text-overflow: ellipsis;
908 +}
909 +#xwikicontent table.xwiki-livetable .xwiki-livetable-display-body td.URL:hover,
910 +#xwikicontent table.xwiki-livetable .xwiki-livetable-display-body td.DOWNLOADURL:hover {
911 + white-space: normal;
912 + overflow-wrap: anywhere;
913 +}
914 +/* Een brede overzichtstabel blijft binnen de pagina en schuift zo nodig opzij */
915 +#xwikicontent table.xwiki-livetable {
916 + display: block;
917 + max-width: 100%;
918 + overflow-x: auto;
919 +}
920 +
XWiki.JavaScriptExtension[0]
cache
... ... @@ -1,0 +1,1 @@
1 +long
code
... ... @@ -1,0 +1,151 @@
1 +/* Wardenburg Kennisbank; presentatie van tegeltabellen (class "vgmtabel").
2 + Een tegeltabel is een rij met titels (kopcellen) met daaronder een rij met afbeeldingen die naar een pagina linken.
3 + Dit script toont dezelfde titels, afbeeldingen en links als een rustig kaartenraster. De pagina zelf verandert niet:
4 + de tabel blijft in de pagina staan en wordt alleen verborgen. Werkt alleen in de leesweergave. */
5 +(function () {
6 + 'use strict';
7 +
8 + function cellen(rij) {
9 + return rij ? Array.prototype.slice.call(rij.cells) : [];
10 + }
11 +
12 + function isKopRij(rij) {
13 + var c = cellen(rij);
14 + return c.length > 0 && c.every(function (cel) { return cel.tagName === 'TH'; });
15 + }
16 +
17 + function kaartenUitTabel(tabel) {
18 + var rijen = Array.prototype.slice.call(tabel.rows);
19 + var kaarten = [];
20 + for (var i = 0; i < rijen.length; i++) {
21 + var kop = rijen[i];
22 + if (!isKopRij(kop)) {
23 + continue;
24 + }
25 + var beeldRij = rijen[i + 1] && !isKopRij(rijen[i + 1]) ? rijen[i + 1] : null;
26 + var beeldCellen = cellen(beeldRij);
27 + cellen(kop).forEach(function (th, j) {
28 + var td = beeldCellen[j] || null;
29 + var titel = (th.textContent || '').replace(/\s+/g, ' ').trim();
30 + var img = (td && td.querySelector('img')) || th.querySelector('img');
31 + var link = (td && td.querySelector('a[href]')) || th.querySelector('a[href]');
32 + if (!titel && !img) {
33 + return;
34 + }
35 + kaarten.push({ titel: titel || (img && img.getAttribute('alt')) || '', img: img, link: link });
36 + });
37 + if (beeldRij) {
38 + i++;
39 + }
40 + }
41 + return kaarten;
42 + }
43 +
44 + // Adres van de oorspronkelijke afbeelding: zonder de width- en height-parameters waarmee XWiki verkleint.
45 + function origineel(src) {
46 + try {
47 + var url = new URL(src, window.location.href);
48 + url.searchParams.delete('width');
49 + url.searchParams.delete('height');
50 + return url.toString();
51 + } catch (e) {
52 + return src;
53 + }
54 + }
55 +
56 + function zetIcoon(beeld) {
57 + beeld.classList.add('wb-kaart-geenbeeld');
58 + var icoon = document.createElement('span');
59 + icoon.className = 'fa fa-book wb-kaart-icoon';
60 + icoon.setAttribute('aria-hidden', 'true');
61 + beeld.appendChild(icoon);
62 + }
63 +
64 + function maakKaart(k) {
65 + var kaart = document.createElement(k.link ? 'a' : 'div');
66 + kaart.className = 'wb-kaart';
67 + if (k.link) {
68 + kaart.setAttribute('href', k.link.getAttribute('href'));
69 + if (k.link.getAttribute('target')) {
70 + kaart.setAttribute('target', k.link.getAttribute('target'));
71 + kaart.setAttribute('rel', 'noopener');
72 + }
73 + }
74 + var beeld = document.createElement('span');
75 + beeld.className = 'wb-kaart-beeld';
76 + if (k.img) {
77 + var img = document.createElement('img');
78 + // Het origineel laden in plaats van de door XWiki verkleinde versie (?width=…&height=…), zodat grote kaarten scherp zijn.
79 + img.src = origineel(k.img.currentSrc || k.img.src);
80 + img.alt = '';
81 + img.loading = 'lazy';
82 + img.decoding = 'async';
83 + var geenBeeld = function () {
84 + img.remove();
85 + zetIcoon(beeld);
86 + };
87 + img.addEventListener('error', geenBeeld);
88 + // Sommige externe sites geven bij een verdwenen afbeelding een leeg plaatje in plaats van een fout.
89 + img.addEventListener('load', function () {
90 + if (!img.naturalWidth || img.naturalWidth < 4) {
91 + geenBeeld();
92 + }
93 + });
94 + beeld.appendChild(img);
95 + } else {
96 + zetIcoon(beeld);
97 + }
98 + var titel = document.createElement('span');
99 + titel.className = 'wb-kaart-titel';
100 + titel.textContent = k.titel;
101 + kaart.appendChild(beeld);
102 + kaart.appendChild(titel);
103 + return kaart;
104 + }
105 +
106 + function verwerk(tabel) {
107 + if (tabel.classList.contains('wb-vervangen')) {
108 + return;
109 + }
110 + var kaarten = kaartenUitTabel(tabel);
111 + if (!kaarten.length) {
112 + return;
113 + }
114 + var raster = document.createElement('div');
115 + raster.className = 'wb-kaarten';
116 + kaarten.forEach(function (k) { raster.appendChild(maakKaart(k)); });
117 + tabel.parentNode.insertBefore(raster, tabel.nextSibling);
118 + tabel.classList.add('wb-vervangen');
119 + }
120 +
121 + function start() {
122 + var actie = (window.XWiki && window.XWiki.contextaction) || 'view';
123 + if (actie !== 'view') {
124 + return;
125 + }
126 + var tabellen = document.querySelectorAll('#xwikicontent table.vgmtabel');
127 + Array.prototype.forEach.call(tabellen, function (tabel) {
128 + try { verwerk(tabel); } catch (e) { /* bij een fout blijft de tabel gewoon zichtbaar */ }
129 + });
130 + }
131 +
132 + // Bij wijzigen op de pagina zelf: eerst de oorspronkelijke tabel terug, zodat de editor nooit de kaarten ziet.
133 + function herstel() {
134 + Array.prototype.forEach.call(document.querySelectorAll('#xwikicontent .wb-kaarten'), function (r) { r.remove(); });
135 + Array.prototype.forEach.call(document.querySelectorAll('#xwikicontent table.wb-vervangen'), function (t) { t.classList.remove('wb-vervangen'); });
136 + }
137 +
138 + if (typeof window.require === 'function') {
139 + window.require(['jquery'], function ($) {
140 + $(document).on('xwiki:actions:edit', herstel);
141 + $(document).on('xwiki:actions:view', function () { setTimeout(start, 0); });
142 + });
143 + }
144 +
145 + if (document.readyState === 'loading') {
146 + document.addEventListener('DOMContentLoaded', start);
147 + } else {
148 + start();
149 + }
150 +})();
151 +
name
... ... @@ -1,0 +1,1 @@
1 +Wardenburg tegels als kaarten
parse
... ... @@ -1,0 +1,1 @@
1 +Nee
use
... ... @@ -1,0 +1,1 @@
1 +always
XWiki.XWikiRights[1]
allow
... ... @@ -1,0 +1,1 @@
1 +Sta toe
groups
... ... @@ -1,0 +1,1 @@
1 +XWiki.XWikiAllGroup
levels
... ... @@ -1,0 +1,1 @@
1 +view
XWiki.XWikiRights[2]
allow
... ... @@ -1,0 +1,1 @@
1 +Sta toe
groups
... ... @@ -1,0 +1,1 @@
1 +XWiki.XWikiAdminGroup
levels
... ... @@ -1,0 +1,1 @@
1 +view,edit,comment,script