Not logged in. · Lost password · Register
Forum: Non-English Discussion German discussion RSS
[gelöst] Formular mit (dynamischer) Wiki ID
Avatar
moz #1
Member since Jan 2014 · 191 posts · Location: Titz
Group memberships: Members
Show profile · Link to this post
Subject: [gelöst] Formular mit (dynamischer) Wiki ID
Ich möchte gerne von jeder Wikiseite aus eine spezielle Seite mit einem (bureaucrazy) Formular aufrufen können (z.B. per Link in der sidebar).
An sich kein Problem, aber in dem Formular soll ein Feld bereits mit der Wiki ID der ursprünglichen Seite vorausgefüllt sein.

Geht sowas?
This post was edited on 2019-04-25, 21:47 by moz.
Avatar
Michaelsy #2
Member since Jun 2015 · 935 posts · Location: Düsseldorf, Germany
Group memberships: Members
Show profile · Link to this post
Der folgende Link ist vielleicht ein erster Schritt in die richtige Richtung:
https://www.dokuwiki.org/plugin:bureaucracy#prefilling_fie…

Weitere Anregungen gibt es eventuell hier:
https://forum.dokuwiki.org/thread/16656

HTH - Michael Sy.
By Patreon.com a few eurons can be fed into the code phasers of
the DokuWiki engine. Besides, Andi's posts are worth reading.
This post was edited on 2019-04-13, 10:57 by Michaelsy.
Avatar
moz #3
Member since Jan 2014 · 191 posts · Location: Titz
Group memberships: Members
Show profile · Link to this post
Danke - die Prefilling URL kannte ich schon. Das Problem dabei - wie kriege ich die Wiki-ID als Parameter heinein?
Das VAR-Plugin https://www.dokuwiki.org/plugin:var ist leider keine Hilfe, weil es innerhalb von Links nicht funktioniert.

Aber dein anderer Link sieht vielversprechend aus . Das schaue ich mir nochmal genauer an, und gebe Rückmeldung falls es funktioniert.
Avatar
Michaelsy #4
Member since Jun 2015 · 935 posts · Location: Düsseldorf, Germany
Group memberships: Members
Show profile · Link to this post
Es geht letztlich immer darum, den erforderlichen Link bzw. die URL bzw. das HTML-Element <a..>...</a> selbst zu erstellen, was bei üblichen Links DokuWiki durchführt.

Soweit ich das überblicke, gibt es dafür zwei Wege:
1.) PHP-Programmierung, wie unter dem oben angegebenen Link ausgeführt.

2.) Aber dein Fall ist ein recht einfacher, so dass du wohl mit der HTML-Option des Textinsert-Plugins zurecht kommen müsstest. Ich habe im Prinzip schon einmal sowas gemacht und dies hier dokumentiert.

Dein Fall ist auch einfacher, als die Zielsetzung in meinem LiveDemo. Da du keine Parameterübergabe zum Makro hin benötigst. Denn der einzige variable Wert besteht in der aktuellen Seiten-ID, der sicherlich über einen entsprechenden Platzhalter eingefügt werden kann.

HTH - Michael Sy.
By Patreon.com a few eurons can be fed into the code phasers of
the DokuWiki engine. Besides, Andi's posts are worth reading.
This post was edited on 2019-04-15, 21:45 by Michaelsy.
Avatar
moz #5
Member since Jan 2014 · 191 posts · Location: Titz
Group memberships: Members
Show profile · Link to this post
Melde mich nach meinen Urlaub zurück und habe direkt das textinsert-Plugin getestet.

Wenn ich mir den Link selber zusammenbaue, brauche ich ja in jedem Fall die ID der aktuellen Seite. Dafür habe ich mir ein Test-Makro erstellt:

Makro: Test_HTML  Inhalt: Die aktuelle ID ist: #@ID@#

Dies rufe ich in der sidebar mit #@Test_HTML@#   inkl. ~~NOCACHE~~ auf.

Als Ergebnis wird für jede Seite als ID 'sidebar' angezeigt. Selbst eine Änderung in syntax.php, so das die ID kontextbezogen ermittelt wird, bring keinen Erfolg. Dann wird statt 'sidebar' zwar die ID der nächsten aufgerufenen Seite angezeigt (hurra), leider aber dauerhaft. Das Plugin scheint sich diesen Wert irgendwo zu merken.

Noch 'ne Idee?
This post was edited on 2019-04-24, 23:55 by moz.
Avatar
Michaelsy #6
Member since Jun 2015 · 935 posts · Location: Düsseldorf, Germany
Group memberships: Members
Show profile · Link to this post
Quote by moz:
Noch 'ne Idee?

1.) Muss das unbedingt in die Sidebar eingebaut werden? Kannst du das nicht auch direkt auf die Wiki-Seite setzen? Ggf. über ein Namespace-Template?

2.) Ich meine, irgendwo mal einen Hinweis darauf gelesen zu haben, welche Platzhalter vom Textinsert-Plugin unterstützt werden. Vielleicht wird man da noch fündig. Kann ich im Moment nicht wiederfinden. @Myron: Könntest du dazu bitte etwas sagen?

  Edit: Nun doch wieder entdeckt, unter "Standard Namespace Macros": https://www.dokuwiki.org/plugin:textinsert#standard_namesp…

3.) Du könntest PHP-Code in die Sidebar einsetzen. Über https://www.dokuwiki.org/plugin:phprestrict kannst du diese Möglichkeit auf die Sidebar einschränken, wegen der Sicherheitsproblematik. [*1]

4.) Dann gibt es da noch das PHP-Wikify-Plugin. Damit erstellst du aber nicht den HTML-Link, sondern den Wiki-Code-Link. Beispielanwendung siehe: https://forum.dokuwiki.org/post/64319 [*1]

5.) Und dann gibt es auch noch das Function Plugin: https://www.dokuwiki.org/plugin:function [*1]

[*1] Über alle diese PHP-Wege müsstest man ja wohl vollen Zugriff auf alle DokuWiki-internen Informationsquellen haben.

HTH - Michael Sy.


Edit: 6.) ... wenn du nicht gleich ein eigenes Plugin schreibst.
By Patreon.com a few eurons can be fed into the code phasers of
the DokuWiki engine. Besides, Andi's posts are worth reading.
This post was edited 2 times, last on 2019-04-26, 11:54 by Michaelsy.
Avatar
moz #7
Member since Jan 2014 · 191 posts · Location: Titz
Group memberships: Members
Show profile · Link to this post
Vielen Dank für die vielen weiteren Vorschläge. Vermutlich werde ich mir in der Tat ein kleines Plugin zusammenbauen, um dieses
'Sahnehäubchen' noch zu realisieren.

Ich würde auch gerne das Daten-Design von unserem mittlerweile hochautomatisiertem IT-Wiki öffentl. zur Verfügung stellen.
Habe allerdings noch keine konkrete Idee wo und in welcher Form. Ob als GIT-Projekt oder Demo-Wiki.

Hast du da Erfahrungen zu?

Grüße Matthias
Avatar
turnermm (Moderator) #8
Member since Oct 2009 · 4644 posts · Location: Canada
Group memberships: Global Moderators, Members, Super Mods
Show profile · Link to this post
In reply to post #6
Ich habe das gerade gesehen. In einer Seitenleiste hat Textinsert keine Möglichkeit, die ID der Hauptseite zu erfahren. Es ist etwas zum Nachdenken.
Myron Turner
github: https://github.com/turnermm
plugins, templates: http://www.mturner.org/devel
Avatar
moz #9
Member since Jan 2014 · 191 posts · Location: Titz
Group memberships: Members
Show profile · Link to this post
Quote by turnermm:
Ich habe das gerade gesehen. In einer Seitenleiste hat Textinsert keine Möglichkeit, die ID der Hauptseite zu erfahren. Es ist etwas zum Nachdenken.

Du kannst doch das globale Array $INFO verwenden. Das Elemet 'id' verweist auf die Hauptseite.
Avatar
moz #10
Member since Jan 2014 · 191 posts · Location: Titz
Group memberships: Members
Show profile · Link to this post
In reply to post #6
Quote by Michaelsy:
...
4.) Dann gibt es da noch das PHP-Wikify-Plugin. Damit erstellst du aber nicht den HTML-Link, sondern den Wiki-Code-Link..

Das war ein Volltreffer!

<phpwikify>
global $INFO;
echo "[[log/system?@log_system.object@=";
echo $INFO['id'];
echo "|Neueintrag Systemprotokoll]]\n";
</phpwikify>

Dieses Schnipsel in der sidebar erzeugt mit einen Prefill-Link auf die Seite log/system.
Dort wird das Formularfeld object des Lookup-Schemas log_system mit der aktuellen Page-ID vorausgefüllt.
Ich bin glücklich :-)

Kleine techn. Anmerkung: Das Lookupschema muss einen Unterstrich im Namen haben, weil der Link sonst als Mailadresse formatiert wird. Sehr spooky.
Avatar
Michaelsy #11
Member since Jun 2015 · 935 posts · Location: Düsseldorf, Germany
Group memberships: Members
Show profile · Link to this post
Es freut mich, dass du zu deinem gewünschten Ergebnis gekommen bist.

BTW: Deine blau markierten Wörter irritieren ein bisschen, da sie genauso aussehen wie Verlinkungen: sidebar versus sidebar
By Patreon.com a few eurons can be fed into the code phasers of
the DokuWiki engine. Besides, Andi's posts are worth reading.
Avatar
turnermm (Moderator) #12
Member since Oct 2009 · 4644 posts · Location: Canada
Group memberships: Global Moderators, Members, Super Mods
Show profile · Link to this post
In reply to post #9
Ich habe ein Pseudo-Namensraum-Makro _ID_ hinzugefügt. Es ist zur Verwendung in Seitenleisten.
Myron Turner
github: https://github.com/turnermm
plugins, templates: http://www.mturner.org/devel
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please enter the word from the image into the text field below. (Type the letters only, lower case is okay.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters:
Go to forum
Imprint
This board is powered by the Unclassified NewsBoard software, 20150713-dev, © 2003-2015 by Yves Goergen
Current time: 2019-06-24, 11:10:18 (UTC +02:00)