[pmwiki-users-de] CondAuth und if auth
Sebastian Schneider
sesc at unibw.de
Di Jun 16 09:42:21 CDT 2009
Hallo Michael,
danke für Deine Mail. Deine Implementierung läuft bei mir bis auf eine
kleine Ausnahme ohne Probleme:
Und zwar, funktionieren Links der Art:
[[wiki.page|* +]]
nicht, wenn zwischen dem * und dem + ein Leerfeld ist. Daher habe ich
das Markup mal angepasst:
Markup('[[|*','<[[|',"/(?>\\[\\[([^|\\]]+))\\|\\s*\\*\\s*(.*?)\\s*]]/e","Keep(LockTargetLink('$1','$2'),'L')");
Ich frage mich allerdings, warum Du das mit dem * gelöst hast? Kann man
das nicht einfach so machen, dass jeder Link automatisch geprüft wird?
Hat das Nachteile?
@all: Falls mir noch jemand das Problem mit CondAuth erklären kann, wäre
ich sehr dankbar.
Viele Grüsse,
Sebastian
Michael Engelke schrieb:
> Sebastian Schneider schrieb:
>> Ich bin gestern auf ein kleines Problem im Zusammenhang mit CondAuth
>> gestoßen:
>>
>> Ich schreibe gerade ein "Rezept", welches -ähnlich wie das
>> ExternalLinks-Rezept hinter einem Link ein kleines Schloss-Symbol
>> anzeigt, wenn die Seite zum Lesen durch ein Passwort geschützt ist.
>>
>
> Klingt interessant!
>
>> Das Problem bei obiger Methode ist, dass CondAuth immer true
>> zurückliefert, unabhängig davon ob ich das Passwort auf der betreffenden
>> Seite bereits eingegeben habe.
>>
>
> Ich selber habe "CondAuth" nie genutzt. Ich nutze für sowas
> "RetrieveAuthPage" (Wird von CondAuth ebenfalls mitgenutzt)
> Doku dazu:
> http://article.gmane.org/gmane.comp.web.wiki.pmwiki.user/12493/match=retrieveauthpage
>
>> Danke schonmal für Eure Tipps,
>>
>
> Da ich deine Idee recht interessant finde, habe ich diese Funktion mal
> selber schnell für mich umgesetzt.
>
> Aufruf:
> [[page|*]] für page
> [[wiki.page|*]] für Wiki.Page
> [[wiki.page|*Name]] für Name
> [[wiki.page|*+]] für Titel (von wiki.page)
>
> ## [[target |*wiki.page]] target links
> Markup('[[|*','<[[|',"/(?>\\[\\[([^|\\]]+))\\|\\s*\\*(.*?)\\s*]]/e","Keep(LockTargetLink('$1','$2'),'L')");
> function LockTargetLink($link,$name) {
> $page =
> MakePagename("$GLOBALS[DefaultGroup].$GLOBALS[DefaultName]",$link);
> if($name == '')
> $name = (preg_match('/[.\/]/',$link)) ? $page : $link;
> elseif($name == '+')
> $name = PageVar($page,'$Title');
> $html = MakeLink($pagename,$page,$name);
> if(!RetrieveAuthPage($page, 'read', false, READPAGE_CURRENT))
> $html .= " <img src='$GLOBALS[PubDirUrl]/icons/lock.png'>";
> return Keep($html);
> }
>
> MfG Michael Engelke
> --
> eMail: PmWiki at MEngelke.de ICQ: 267544462 Homepage: wiki.MEngelke.de
>