Sikkepitje.nl

Sikkepitje.nl

this private cloud

PmWiki Installatie essentials

Dit is een stappenplan voor de nieuwe installatie van PmWiki, uitgaand van PmWiki v2.2.10 (18 jan 2010) uitgevoerd op www.microforth.nl en andere sites.

Verder volgt een lijst met essentiele cookbook-recepten.

PmWiki

  1. PmWiki: downloaden, uitpakken en uploaden
  2. config.php aanpassen: kopieer docs/sample-config.php naar local/config.php en pas deze aan naar wens.
  3. maak uploads mogelijk: maak een map uploads/, geef deze permissie 777 en voeg aan local/config.php toe:
    $EnableUpload = 1;
    $UploadMaxSize = 50000000;
    en vergeet de puntkomma niet! Zie ook Cookbook:SystemLimits
  4. permissies: alles in de pmwiki/ map mag 755 of 644 hebben, maar uploads en wiki.d moeten 777 hebben of webserver-gebruiker moet schrijfrechten hebben.
  5. maak map pub/images en upload headerlogo.png , voegt aan local/config.php $PageLogoUrl = "/w/pub/images/headerlogo.png"; toe.
  6. maak een index.php en plaats die in de wikidir: <?php include('pmwiki.php');. Dit zorgt ervoor dat de wiki ook benaderd wordt via alleen de mapnaam in de URL volgens: http://www.site.nl/wiki
  7. Het is veiliger om alleen gebruiker met bewerk-rechten toe te staan om de geschiedenis te mogen zien. Dit doe je door in local/config.php
    // restrict viewing the page history to people with edit permission
    $HandleAuth['diff'] = 'edit';
    toe te voegen

Samenvatting aanpassingen in local/config.php:

$ScriptUrl = 'http://www.site.nl/wiki/pmwiki.php';
$PubDirUrl = 'http://www.site.nl/wiki/pub';
$EnablePathInfo = 1;
$PageLogoUrl = "/w/pub/images/headerlogo.png";
$EnableUpload = 1;
$UploadMaxSize = 50000000;
$HandleAuth['diff'] = 'edit';

CleanUrls

Volgens de aanwijzigingen in CleanUrls is het mogelijk om de wiki te benaderen via een schone URL, bijvoorbeeld in plaats van http://www.site.nl/wiki/pmwiki.php?n=Main.HomePage nu met http://www.site.nl/wiki/Main.HomePage.

  1. vereist in config.php: $EnablePathInfo = 1;
  2. vereist in wikimap bestand index.php : <?php include('pmwiki.php');?>
  3. maak in de wikimap een .htaccess bestand.

Aanpassing .htaccess:

# Use mod_rewrite to enable "Clean URLs" for a PmWiki installation.
RewriteEngine On
# Define the rewrite base.
RewriteBase /wiki
# Send requests without parameters to pmwiki.php.
RewriteRule ^$           pmwiki.php  [L]
# Send requests for index.php to pmwiki.php.
RewriteRule ^index\.php$ pmwiki.php  [L]
# Send requests to pmwiki.php, appending the query string part.
RewriteRule ^([A-Z0-9\xa0-\xff].*)$ pmwiki.php?n=$1  [QSA,L]

UserAuth2

UserAuth2 downloaden, uitpakken, uploaden en instellen. Deze module is het ingewikkelds van allemaal om in te stellen. UserAuth2 is een systeem dat toegangsbeveiliging biedt en laat het toe om permissies in te stellen op basis van gebruikers en groepen. Ik gebruik het vooral om de wiki te veranderen in een Content Management Systeem, waartoe alleen ik en eventueel enkele andere mensen schrijftoegang hebben.

  1. Upload de bestanden in naar cookbook/ . Verplaats enkele bestanden in cookbook/userauth2/ volgens de readme: Site.Login naar wiki.d/ en UserAuth2.EditUserQuickReference naar wikilib.d/ . Alle mappen mogen permissie 755 (directories) of 644 (bestanden) hebben, maar de map cookbook/userauth2 moet permissies 777 krijgen of in ieder geval beschrijfbaar zijn door de webserver-user.
  2. open URL http://site.nl/pmwiki/pmwiki.php/Site.Login en login als admin, om te beginnen zonder wachtwoord.
  3. open URL http://site.nl/pmwiki/pmwiki.php?action=pwchange en verander het wachtwoord van admin.
  4. aanpassen Site.PageActions, link toevoegen voor login, logout en admintool
  5. aanpassen Site.SideBar en toevoegen link naar Site.Login en link voor bewerken van SideBar. Eventueel links naar afgeschermde groepen voor gebruikers die ze mogen zien.
  6. aanpassen local/config.php:
  7. aanpassen permissies voor guestusers; hiermee wordt bepaalde wat geregistreerde gebruikers mogen en wat anonieme bezoekers wel en niet mogen zien of doen. Login als admin, klik rechtsboven op Admintool.
    1. Bewerk de rechten van GuestUsers. Geef ze
      rd_*.*,
      -rd_SiteAdmin.*
      Dit geeft anonieme bezoekers het recht om paginas te zien behalve de wikigroep SiteAdmin.
    2. Maak de benodigde gebruikers aan en stel hun wachtwoord in. Geef de gebruiker(s) die de site beheren de permissies "*" zodat ze alle paginas mogen zien en bewerken.
    3. Tip: je kunt ook een groep maken, bijvoorbeeld BasicUsers, en deze groep specifieke permissies geven, en in de gebruikers permissies zet je dan @Basicusers. Hiermee erven ze alle rechten van de groep.

Gebruik verschillende sessionname van meerdere wikis op eenzelfde site. Wanneer je dit wijzigt, moet gebruikers in UserAuth2 opnieuw autoriseren!

session_name('lakedistrict_blog');

Aanpassing Site.PageActions:

(:Summary:Contains the '[[PmWiki/AvailableActions|action]]' links (like Browse, Edit, History, etc.), placed at the top of the page, see [[PmWiki/site page actions]]:)
(:comment This page can be somewhat complex to figure out the first time you see it. Its contents are documented at PmWiki.SitePageActions if you need help. :)
(:if loggedin:)
* %item rel=nofollow class=browse    accesskey='$[ak_view]'%      [[{*$FullName}               | $[View] ]]
* %item rel=nofollow class=edit      accesskey='$[ak_edit]'%      [[{*$FullName}?action=edit   | $[Edit] ]]
* %item rel=nofollow class=diff      accesskey='$[ak_history]'%   [[{*$FullName}?action=diff   | $[History] ]]
* %item rel=nofollow class=upload    accesskey='$[ak_attach]'%    [[{*$FullName}?action=upload | $[Attach] ]]
* %item rel=nofollow class=print     accesskey='$[ak_print]'%     [[{*$FullName}?action=print  | $[Print] ]]
* %item rel=nofollow class=backlinks accesskey='$[ak_backlinks]'% [[{*$Name}?action=search&q=link={*$FullName} | $[Backlinks] ]]
* %item rel=nofollow class=logout    accesskey='$[ak_backlinks]'% [[{*$FullName}?action=logout  | Logout ({$AuthId})]] 
(:if:)
(:if ! loggedin:) 
* %item rel=nofollow%[[Login -> {*$FullName}?action=login]] 
(:if:)
(:if auth admin :)
* %item rel=nofollow%[[{*$FullName}?action=admin | $[Admin tool] ]] 
(:if:)

Let op! Sinds PmWiki 2.2.10 wordt nu in PageActions standaard niet {$FullName] maar {*$FullName} gebruikt. Zie ook $EnableRelativePageVars

Aanpassing Site.SideBar:

(:if loggedin:) 
* [[Geheim(.)]]
* [[Prive(.)]]
(:if:)
(:if ! loggedin:) 
* %item rel=nofollow%[[Login -> {$FullName}?action=login]] 
(:if:)
(:if loggedin:) 
%right% [-[[Site.SideBar?action=edit | Bewerk Zijpaneel]]-]
(:if:)

Aanpassing local/config.php:
$HomePage  = "Main.HomePage";   // should use dots (instead of slashes) even when using
$LoginPage = "Site.Login";      // CleanUrls ($EnablePathInfo=1)
$HandleAuth['diff'] = 'history';
include("$FarmD/cookbook/userauth2.php");
Aanpassing rechten van guestusers:
rd_*.*,
-rd_SiteAdmin.*,

Uitgebreide aanpassing van rechten voor anonieme bezoekers, door permissies van guestusers als volgt in te stellen:

rd_*.*,
-rd_SiteAdmin.*,
-rd_Prive.*,
-rd_Geheim.*,
ed_Kladblok.*,
-ed_Kladblok.Kladblok,
ed_Public.*,
-ed_Public.Public,
-ed_*.PageActions,
-ed_*.NavBar

Userauth2 Wachtwoordreset

Ben je je adminwachtwoord kwijt? Je moet een nieuwe instellen. Hoe doe je dat? Via FTP...

  1. Ga via FTP naar {wikidir}/cookbook/userauth2
  2. Maak een backup van de inhoud van groupperms en userperms. Noteer de gebruikers en groepen.
  3. Verwijder inhoud van profiles

Nu zijn alle wachtwoorden verwijderd. Op de wiki, klik [login] en login als admin zonder wachtwoord.

  1. Maak de oude gebruikers en groepen opnieuw aan. Klik op link ?action=admin.

SectionEdit

Zie SectionEdit . Download 3 scripts en upload in cookbook/ . Voeg toe aan local/config.php :

 include_once("$FarmD/cookbook/sectionedit.php");

Voor mooier resultaat voeg vertaling toe aan de vertalingspagina PmWikiNl.XLPage . Voeg hier toe:

  ### Strings for SectionEdit
  '(Edit Section &#x2193;)' => 'Bewerk',
  'Page' => 'pagina',
  'of' => 'van',

DeObMail

Zie DeObMail . Download dit script en upload in cookbook/ . voeg die toe aan local/config.php:

 include_once("$FarmD/cookbook/deobmail.php");

"Mini"

Zie Mini gallery generator. Bekijk de demo. Plaats script in cookbook/ map. Plaats de directory lb/ in folder pub/. Voeg toe aan local/config.php :

 include_once("$FarmD/cookbook/mini.php");

Voeg de nodige CSS toe aan pub/css/local/css, dus niet in de skins!

aardappel broccoli aubergine johannesbroodboom paprika aardbei wortel koolrabi jeanette radijs prei

Mocht je de foutmelding Mini: PHP-GD image library not found. Exiting. krijgen, installeer dan de PHP-GD extensie door middel van: # apt-get install php5-gd en doe eventueel een reboot. Je kunt door middel van phpinfo() controleren of GD in PHP is ingeschakeld.

Nederlandse vertaling

Zie Localisatie Nederlands. Download de juiste zip, pak het uit en upload de files naar de juiste plek. Voeg XLPage('nl','PmWikiNl.XLPage'); toe aan local/config.php .

YAML skin

Zie YAMLForth. Download het zipbestand, pak het uit, upload naar een map in /pub/skins/ . Voeg $Skin = 'yaml-microforth'; toe aan local/config.php .

Javascript-Editable

Gebruik recept JavaScript-Editable om javascript toe te voegen. Wat kun je ermee? HTML invoegen zoals hier: (:html:) <br/><br/><big><big><big><big><span style="background:#c90;color:#fff"> g r o o t </span></big></big></big></big> (:htmlend:) Wat heeft dit eigenlijk met Javascript te maken? Niets maar het lijkt me handig.

Inschakelen van UTF-8 ondersteuning

Voeg in local/config.php de volgende regel toe:

 include_once($FarmD.'/scripts/xlpage-utf-8.php');

Tip van Cookbook:UTF-8

Coole tips

Enkele cookbook-recepten om in de gaten te houden

META Description en keywords

Met de volgende pagedirectives kun je Description en keywords meta-tags op een pagina toevoegen . Zie ook http://www.pmwiki.org/wiki/PmWiki/PageDirectives .

(:description text:)
Descriptive text associated with the page. (Generates a <meta name='description' content='...' /> element in the page output.)

(:keywords word1, word2, ...:)
Identifies keywords associated with the page. These are not displayed anywhere, but are useful to help search engines locate the page. (Essentially, this generates a <meta name='keywords' content='...' /> element in the output.)

Google Analytics

Volgens Cookbook:Google Analytics wordt de volgende code opgenomen in local/config.php om ervoor te zorgen dat de javascript in de footer wordt ingevoegd. Zo is het in alle skins werkzaam zonder aanpassingen aan skintemplates. Wijzig de accountcode en de domainname naar believen.

$HTMLFooterFmt['google'] = '<script type="text/javascript">

 var _gaq = _gaq || [];
 _gaq.push(["_setAccount", "UA-11111111-1"]);
 _gaq.push(["_setDomainName", ".sikkepitje.nl"]);
 _gaq.push(["_trackPageview"]);

 (function() {
   var ga = document.createElement("script"); ga.type = "text/javascript"; ga.async = true;
   ga.src = ("https:" == document.location.protocol ? "https://ssl" : "http://www") + ".google-analytics.com/ga.js";
   var s = document.getElementsByTagName("script")[0];
   s.parentNode.insertBefore(ga, s);
 })();

</script>';

Alternatief: direct in template zetten

Volgens de laatste documentatie van Google Analytics wordt de javascript-code ingevoegd voor de laatste </head>-tag in de pagina. Google adviseert deze plaats voor de javascript-code boven andere plaatsen.

Overigens adviseert Google Analytics ook een andere code die nieuwer lijkt. Deze code:

<!-- Google Analytics -->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');

ga('create', 'UA-XXX-X');
ga('send', 'pageview');

</script>
<!-- End Google Analytics -->

Flipbox

Flipbox geeft je aanklikbare checkboxjes op je wikipagina voor To-do-lijstjes. De toestand van de checkboxjes worden automatisch bewaard op de pagina. Het heeft nog enkele interessante extra mogelijkheden. Zie de demopagina.

Upload de bestanden en wijzig in local/config.php:

# http://www.pmwiki.org/wiki/Cookbook/Flipbox
include_once($FarmD.'/cookbook/flipbox.php');
$FlipboxChoices = '_xq';  /* als je 3-state checkboxes wilt */

Wijzig /pub/css/local.css om je eigen kleuren te kiezen:

/** flipbox */
.fb_ { color: #800000; }
.fbx { color: #808080; text-decoration: line-through; }
.fbq { color: #ff8000; }

Voorbeeld:

  • [_] Boter
  • [q] Kaas
  • [x] Eieren

NotSavedWarning

NotsavedWarning geeft een popup-melding wanneer de pagina verlaten wordt zonder de wijzigingen op te slaan.

Upload het script naar cookbook-directory en wijzig local/config.php:

# http://www.pmwiki.org/wiki/Cookbook/NotsavedWarning
if($action=='edit'){
  #$NsPromptSum    = XL("Geef a.u.b. een samenvatting"); # Optional, read below.
  #$NsPromptAuthor = XL("Geef a.u.b. uw auteursnaam"); # Optional, read below.
  include_once("$FarmD/cookbook/notsaved.php");
}

SourceBlock

SourceBlock is een source code syntax highlighter die gebruik maakt van GeSHi. Dit werkt goed en ondersteunt een grote verzameling computertalen (behalve Forth).

  1. $prop = [ordered] @{
  2.     'ID' = $teller
  3.     'ComputerName'=$c
  4.     'OS Name' = $os.caption
  5.     'OS Build' = $os.buildnumber
  6.     'Freespace' = $Disk.freespace / 1gb -as [int]
  7. }
  8. $obj = New-Object -TypeName PSObject -Property $prop
  9. write-output $obj
  10.  

AttachTable

AttachTable is een vervanging voor de AttachList die je ziet in de upload-pagina van de wiki. Dit recept maakt het mogelijk om je attachments te hernoemen of verwijderen en te zien hoeveel referenties elke attachment heeft. Dit is handig om te zien welke bestanden wees zijn (hiernaar wordt niet gelinkt wordt, "orphans").

In je configuratie neemt je op:

switch($action) {
  case 'delattach':
  case 'renameattach':
  case 'downloaddeleted':
    include_once("$FarmD/cookbook/attachtable/attachtable-actions.php");
    break;
  case 'fileinfo':
  case 'thumbnail':
    include_once("$FarmD/cookbook/attachtable/fileinfo.php");
    break;
  case 'upload':
  default:
    include_once("$FarmD/cookbook/attachtable/attachtable.php");
    break;
}
# fix permissies voor delete
$HandleAuth['deldelattach'] = 'upload';
$HandleAuth['delattach'] = 'upload';
$HandleAuth['renameattach'] = 'upload';
$EnableUploadVersions=1;

De laatste 3 regels herstellen een fout, waarbij de gebruiker geen delete-linkje krijgt te zien, omdat AttachTable denkt dat je geen permissie hebt. Dit is het geval wanneer je UserAuth2 gebruikt en andere permissies aktief zijn.

Tenslotte moet in de pagina Site.UploadQuickReference elke vermelding van (:attachlist:) worden gewijzigd in (:attachtable:). Dat kan vanuit de wiki: roep de pagina op, bewerk hem en bewaar. In geval dat het nederlandse taalpakket aanwezig is, moet dat (ook?) gebeuren in de pagina PmWikiNl.UploadQuickReference .

Let op in combinatie met Mini-recept! Alle afbeeldingen die voorkomen in een Mini-gallery worden niet geteld als referentie!

Toggle

Toggle bevat recept voor Show/hide toggle van een tekst of div of object via een button of link. Zie ook het coole popup-boxvoorbeeld !

DoTheRightThing

Het PmWiki cookbook recipe DoTheRightThing maakt het mogelijk om via de zoekfunctie op mijn pmwiki te zoeken in diverse site: Google, Wikipedia, Youtube, Imdb, Php.net, enzovoort, door de zoekstring te laten voorafgaan door een identifier. Voorbeeld 'q' voor Google, 'w' voor Wikipedia, enz.

Het is vervolgens mogelijk om een zoekpagina op mijn wiki in te stellen als default zoekmachine in mijn browser.

Enige aanpassing is wenselijk. Via een array in het bestand cookbook/dtrt.php worden een aantal zoekmachine gegeven. Standaard zijn alleen Google en Wikipedia hierin. De zoekURL voor Google zou ik willen veranderen van

  'g'  => 'http://www.google.com/search?q=$1',

naar

  'g'  => 'https://www.google.nl/#q=$1',

En wikipedia:

  'w' => 'http://en.wikipedia.org/wiki/Special:Search?go=1&search=$1',

naar

  'w' => 'http://nl.wikipedia.org/wiki/Speciaal:Zoeken/$1',

Het recept geeft code voor de inhoud van een zoek-form op een pagina naar keuze. Deze pagina kun je instellen als default zoekmachine in de browser. Instellen in de browser was in eerste instantie alleen mogelijk als ik de (:searchbox:) verwijderde uit de template of uit pagina Site/NavBar.

PMwiki upgradepakket 2.2.35

Voor mijn gemak heb ik PMwiki 2.2.35 gebundeld met enkele cookbook-recepten voor makkelijk upgrade van oudere versies , bijv. PMwiki 2.2.23 . Hierin zitten:

  • pmwiki 2.2.35
  • Nederlandse taalpakket voor UTF-8
  • Mini 20110828 met Ultralightbox
  • Flipbox 20111008
  • DeObMail 20111024
  • NotSavedWarning 20110829
  • SectionEdit 2009-03-07 - v2.2.2 (zelfde versie als in mijn wiki 2.2.23)
  • SignalWhenMarkup 2009-02-01 (zelfde versie)
  • MarkupToUnstyled 2009-03-01 (zelfde versie)

Download : pmwiki-upgradepakket-2.2.35.zip

Configuratie wijzigingen

  • Enable UTF-8 en voeg het vertaalscript toe in config.php:
	include_once("scripts/xlpage-utf-8.php");
	XLPage('nl','PmWikiNl.XLPage');

Webfeeds (RSS / Atom)

Dit maakt het mogelijk om met een URL als http://ict.bonhoeffer.nl/kb/Site/AllRecentChanges?action=rss of http://sikkepitje.nl/pw/Site/AllRecentChanges?action=rss alle laatste gewijzigde pagina's te bekijken. Er zijn geen cookbookdingen nodig.

Voeg in local/config.php het volgende toe:

# enable WebFeeds
# http://www.pmwiki.org/wiki/PmWiki/WebFeeds
if ($action == 'rss'  ||
    $action == 'atom' ||
    $action == 'rdf'  ||
    $action == 'dc') include_once("$FarmD/scripts/feeds.php");

De Apache Gotcha

Foute configuratie van Apache omstreeks 2004 en deze configuratie steeds opnieuw kopieren naar nieuwe serverinstallaties, was de oorzaak van dat enkele wikipagina's met vertrouwelijke gegevens door geindexeerd werden en via Google vindbaar waren !!! Lees de details hier

Verbinding over SSL (via HTTPS)

Stel dat SSL-mode is ingeschakeld op de webserver. PmWiki laadt niet de CSS-bestanden via HTTPS. Het certificaaticoontje in de adresbalk is niet groen, maar geeft een waarschuwing, omdat niet alle onderdelen van de pagina worden geladen via de beveiligde verbinding.

Oorzaak: $ScriptUrl verwijst naar "http://ict.bonhoeffer.nl...." . Om alle onderdelen over dezelfde verbinding te laden van dezelfde URL te laden, is het nodig om enkele variabelen aan te passen, zodat ze vanzelf dezelfde URL en hetzelfde protocol gebruiken als de pagina. Dit is belangrijk o.a. voor de icoontjes van FlipBox.

Configuratie /w/local/config.php aangepast:

 $ScriptUrl = $UrlScheme."://".$_SERVER["HTTP_HOST"]."/kb";
 $PubDirUrl = $UrlScheme."://".$_SERVER["HTTP_HOST"]."/kb/pub";

Configuratie /w/local/farmconfig.php aangepast:

 $FarmPubDirUrl = $UrlScheme."://".$_SERVER["HTTP_HOST"]."/kb/pub";

De padvariabelen zijn zo onafhankelijk van protocol (HTTP of HTTPS) en domeinnaam.

PmWiki hacked : upgrade procedure

Zoals aanbevolen door Petko Yotov op mailing list:

If your site is/was hacked with PHP code inserted in your scripts, if I were you, I'd back up the directories local, cookbook, pub, uploads and wiki.d; wipe the whole site; install a clean PmWiki with the latest version; then add back the directories while examining every *.php file from these directories I put back on the server (if you have a skin or a recipe from the Cookbook, it is better to get the latest version of them from pmwiki.org and use them instead of the ones that were on your hacked server.)
The directories contain:
  • local: your custom configuration, there should only be files like farmconfig.php, config.php, Main.php, Group.php and/or Group.Page.php. These files should only have been modified by you so if you don't understand something, remove it.
  • cookbook: recipes/modules adding features: re-get them from the Cookbook or examine them
  • pub/css: custom styles, only *.css files only added by you
  • pub/skins: different skins, from the Cookbook or your own, there may or may not be *.php files needing examination.
  • uploaded/attached files; it should also be checked for files that are not yours.
  • wiki.d contains your wiki pages - content, history and metadata.
Otherwise, I'd also tripple check the files named .htaccess where they exist: you should know exactly what they contain and what that does to the server. The directives auto_prepend_file or auto_append_file for example are not needed by PmWiki, and if a site is hacked it may rely on those.

Weergave van aktieve categorie

Speciale opmaak in pagina Site/NavBar zorgt ervoor dat de aktieve categorie oplicht in het horizontale navigatiemenu. Door deze opmaak licht de categorie op wanneer een willekeurige pagina in de categorie is gekozen. Dit is in tegenstelling tot wanneer gebruik wordt gemaakt van de standaard "selflink" stijl, die uitsluitend de link van de pagina oplicht.

* (:if group Main:) %blue% (:ifend:) [[Main/HomePage|Voorpagina]]
* (:if group Tech:) %blue% (:ifend:) [[Tech/]]
* (:if group NonTech:) %blue% (:ifend:) [[NonTech/]]
* (:if group DevShack:) %blue% (:ifend:) [[DevShack/]]
* (:if group Recepten:) %blue% (:ifend:) [[Recepten/]]
* (:if name About:) %blue% (:ifend:) [[Main/About|About]]
(:if loggedin:)
* [[(SiteAdmin.)SiteAdmin]]
(:if:)
(:searchbox:)

Je kunt dit naar eigen inzicht aanpassen door een custom style te maken bijvoorbeeld:

%define=box block bgcolor=#ddddff border="2px dotted blue"%
* (:if group Main:) %box % (:ifend:) [[Main/HomePage|Voorpagina]]
* (:if group Tech:) %box % (:ifend:) [[Tech/]]
enz..

Zie ook http://www.pmwiki.org/wiki/PmWiki/WikiStyles

Het is mogelijk m.b.v. CSS de selflink een aangepaste stijl te geven, maar dit werkt alleen voor de link naar de huidige pagina, en niet naar de eigen groep. Dit geeft dus niet hetzelfde resultaat.

Handige links

Zie ook