# keep either login or logout parts depending on user level
global $User;
- $hideclass = $User && property_exists($User, 'login') && $User->login ? 'logout' : 'login';
- $doc = preg_replace('{\s*<([a-z]+) class="'.$hideclass.'">.*?</\1>}s', '', $doc);
+ $userexists = $User && property_exists($User, 'login') && $User->login;
+ if (! ($userexists and $User->admin("edit {$this->link}")) ) {
+ # remove matching elements until first corresponding closing tag
+ $hideclass = $userexists ? 'logout' : 'login';
+ $tagmatch = '<([a-z]+) class="'.$hideclass.'"[^>]*>';
+ $doc = preg_replace("{\s*{$tagmatch}.*?</\\1>}s", '', $doc);
+ }
return preg_replace_callback(
'{ \[\[ ([^] ]+) ([^]]*) \]\] }x',
{ name: 'Attributie', element: 'em', attributes: { 'class': 'right' } },
{ name: 'Quote', element: 'q' },
{ name: 'Gemarkeerd', element: 'span', styles: { 'background-color': 'Yellow' } },
+ { name: 'Ingelogd', element: 'span', attributes: { 'class': 'login' } },
+ { name: 'Uitgelogd', element: 'span', attributes: { 'class': 'logout' } },
{ name: 'Kadertekst', element: 'aside' },
{ name: 'Uitgelijnd', element: 'div', attributes: { 'class': 'right' } },