IPS Struktur/Scripte Dokumentation automatisch in einem Wiki

Hallo Thorsten,

nochmals vielen Dank für die WIKI-Anbindung und die beharrliche Unterstützung diese bei mir ans Laufen zu bekommen.

Ich denke zur Versionierung der IPS-Skripte gibt es derzeit nichts vergleichbares.

Auch wenn ich mit dem WIKI-Syntax noch nicht wirklich warm werde, ist anscheinend zu einfach für einen IPS´ler, bin ich gerade am Überlegen ob ich so manche Sammlung von Ideen, Links in die WIKI aufnehme. Durch die Offenheit eines WIKI´s kann man ja eigentlich alles sammeln.

Über die neue Version mit der Einstellmöglichkeit aus IPS heraus freue ich mich schon und werde jetzt versuchen die VM-WIKI ins Lifesystem zu überspielen.

Hallo Thorsten,

ich habe folgende Änderung zwischen Zeile 227-254 vorgenommen:


//				$Text .= '*Script Dateiname: [[' . $WikiScriptNamensPrefix . $ScriptDetails['ScriptFile'] .'|' . $ScriptDetails['ScriptFile'] . ']]' . $Zeilenumbruch;
				$Text .= '*Script Dateiname: ' . $WikiScriptNamensPrefix . $ScriptDetails['ScriptFile'] .'|' . $ScriptDetails['ScriptFile'] . $Zeilenumbruch;
	
				$Text .= '*Logischer Scriptname: [[' . $Object['ObjectName'] . ']]' . $Zeilenumbruch;

				if(($UnbenutzteObjekteZeigen > 0) && ((int)$ScriptDetails['LastExecute']) < $UnbenutzteObjekteZeigen)
				{
					// Dieses Script wurde mehr als x-Tage nicht mehr ausgeführt.
					$TextUnusedObjects .= '* (Script) ' . $Location . ' (Zeitpunkt letzte Ausführung: ' . date('d.m.Y G:i',(int)$ScriptDetails['LastExecute']) . ' Uhr)' . $Zeilenumbruch;
				}


				switch($ScriptDetails['ScriptType'])
				{
				   case 0: $Text .= '*Script-Typ: PHP Script' . $Zeilenumbruch; break;
				   case 1: $Text .= '*Script-Typ: IPS Makro' . $Zeilenumbruch; break;
				   case 2: $Text .= '*Script-Typ: IPS Brick' . $Zeilenumbruch; break;
				}


				// Jetzt gehts an den Inhalt der Scripte
				// So sehen sie aktuell aus

				$ScriptInhalt = file_get_contents (IPS_GetKernelDir() . 'scripts\\' . $ScriptDetails['ScriptFile']);
				$ScriptInhalt = '<syntaxhighlight lang="php" line="GESHI_NORMAL_LINE_NUMBERS">' . $Zeilenumbruch . $ScriptInhalt . $Zeilenumbruch . '</syntaxhighlight>';
//				$ScriptTitle = $WikiScriptNamensPrefix . $ScriptDetails['ScriptFile'];
				$ScriptTitle = $WikiScriptNamensPrefix . $Object['ObjectName'] ;

denke das macht Sinn, für diejenigen, die Ihre Scripte nicht benannt haben. Da machen Seiten wie ips61114.ips.php b´nicht viel Sinn.

Ist aber wieder so ein Mod von mir den man eigentlich konfigurieren sollte.

so in Richtung:

Logische Script-namen übernehmen = true
Physikalische Script-namen übernehmen false

oder so…

Bin immer noch schwer beeindruckt von deinem Script

Grüße
Frank

Von wem die Idee wohl kommt … :slight_smile:

Hi,

ich würde mal’ einen Tipp abgeben :rolleyes:.

So gefällt mir das. Raketenschnecke hat die Idee, Dapor baut’s ein und ich bekomme die Lorbeeren fürs Projekt - Teamarbeit kann so schön sein :smiley:

Ich habe die Konfiguration auch schon in Variablen konfigurierbar gemacht (war glaube ich auch eine Idee von RS ;)). Die Variablen werden automatisch bei Nichtvorhandensein angelegt und erschienen heute Morgen schon wie von „Geisterhand“ im Wiki :D.

Außerdem will ich versuchen die Logik in mehrere Module aufzuteilen.

Gruß
Thorsten

Bildschirmfoto 2011-11-15 um 18.48.16.png

oh, ich hätt’ da noch ein Paar von :D:D:D:D

Kann es sein das die neue Version noch im Validierungsprozess vom IPS-Team ist :smiley:

Konnte sie noch nicht im ersten Beitrag entdecken :rolleyes:

Nope, die ist noch im Entwicklungsprozess :rolleyes:.
Ich wollte nur schon mal’ zeigen, wie es (wahrscheinlich) aussehen wird :D.

Gruß
Thorsten

Einspruch! :slight_smile: Die Idee, die Scripte nicht 12345.ips.php zu nennen, hatte ich bei Dapor, als er mir das Wiki vorgeführt hat. Hat er sich sofort auf einen Zettel geschrieben.

:wink: Werde mir bei Zeiten mal eine Linuxmaschine als Webserver aufsetzen …

Gruß,
Christoph

Ansonsten bekommste eine von mir :slight_smile:

BTW. der Zettel liegt hier noch ^^

Werde mal ein Foto von posten :wink:

Als absoluter Wiki Laie:

Wie kommen die Seiten von Letzte Änderungen in die Hauptseite :confused:

Halllo Wupperi,

bin zwar nicht ganz sicher, ob ich die Frage richtig verstehe, aber ich sage/zeige dazu einfach mal was :D.

Du klickst oben in der Navigation (auf der Hauptseite wo Du den Eintrag rein haben willst) auf „Edit“.

Im Textfenster musst Du den Seitennamen in doppelte eckige Klammern schreiben [[Exakter Titel der Seite]] und dann hast Du einen Link auf die Seite. Möchtest Du den Eintrag unter anderem Namen anzeigen dann einfach nach dem tatsächlichen Titel eine Pipe (|) und dann den Text der angezeigt werden soll schreiben).

Hier mal ein Beispiel:

== Test ==
[[Spezial:Letzte_Änderungen|Letzte geänderte Seiten]]

[[IPS_Strukturdokumentation]]

[[IPS_Strukturdokumentation|IPS Übersicht als anderer Name im Wiki]]

Hoffe das bringt Dich weiter.

Gruß
Thorsten

Bildschirmfoto 2011-11-18 um 00.02.20.png

Bildschirmfoto 2011-11-18 um 00.02.10.png

Bildschirmfoto 2011-11-18 um 00.02.03.png

ich hab zwar nicht gefragt, aber trotzdem Danke. Genau sowas hab ich auch schon gesucht :wink:

Hi Thorsten,

ich hab da mal ein Problem für Dich :wink:

mir fällt auf das es reichlich Scripte nicht ins WIKI geschafft haben. Zumindest nicht da wo man es erwarten würde:

die Verlinkung bei „Logischer Scriptname“ greift ins Leere, hingegen zeigt der Link auf „Aktionsscript:“ das korrekte Script an.
Ich hab mal durchgescrollt, gefühlt betrifft das 50% der Scripte.
Woran kann das liegen?

Nachtrag: ich hab mal genauer hingeschaut: keines der Scripte ist unter „Logischer Scriptname“ richtig hinterlegt…

IPS WIKI fehlende Scripte.PNG

Doch, Frage richtig verstanden und gelöst. Danke hierfür.
Habe noch das Problem, dass Skripts in meinem IPS/Wiki Inhaltsverzeichnis als link angezeigt werden (Sowohl welche mit Namen => MeinSkript.ips.php, als auch solche mit Nummer => 12345.ips.php), wenn ich dann aber draufklicke wird das Skript nicht angezeigt, sondern nur die Wiki Edit Seite.

Du bist einem Link zu einer Seite gefolgt, die nicht vorhanden ist.

Die extensions habe ich installiert, weiss aber nicht, ob ich irgendwo nachschauen kann, ob die auch richtig installiert sind. (CentOS 5.5, apache). Raketenschnecke und ich sind beide auf der 2.5, ggfls. liegt das Problem hier? Ich habe nur Stichproben gemacht, aber keiner der links zeigte auf ein Skript.

das kann schon sein…bei mir hatte ich solche Probleme nicht. Vielleicht kann er bei euch die Scripte im Dateisystem nicht öffnen und legt deshalb keine Scriptseite an.

Da hat sich meines Wissens nach von 2.4 => 2.5 nichts geändert.
Liegen immer noch in …/scripts.
Vielleicht kann Thorsten mal einen debug code posten, dann kann ich nachschauen, wo es hängt.

Ist bei mir auch so unter 2.5.

denke ich nicht: unter „Actionscript“ werden die Scripte ja korrekt übertragen und die WIKI-Seiten angelegt.

Hallo,

habt ihr die Codeanpassung von Frank (http://www.ip-symcon.de/forum/f16/ip-symcon-struktur-scripte-dokumentation-automatisch-wiki-15852/index9.html#post139047) eingebaut?

Da scheint mir noch ein Mini-Bug drin zu sein (soweit ich das jetzt ohne genauere Analyse sehe).

Ich versuche mal’ einen „blinden Bugfix“ ohne ihn jetzt testen zu können.

Die Seite im Wiki wird mit dem Prefix ips_<ObjectName> angelegt.

//                $ScriptTitle = $WikiScriptNamensPrefix . $ScriptDetails['ScriptFile'];
                $ScriptTitle = $WikiScriptNamensPrefix . $Object['ObjectName'] ;

Beim logischen Scriptname wird aber das Prefix vergessen.

$Text .= '*Logischer Scriptname: [[' . $Object['ObjectName'] . ']]' . $Zeilenumbruch;

Somit lautet die Seite im Wiki beispielsweise: ips_MeinLogischerObjektname und der Link zeigt auf eine (natürlich nicht existierende Seite): MeinLogischerObjektname.
Wenn man darauf klickt, kann man die Seite neu erstellen.

Außerdem sehe ich noch ein Bug mit einer Pipe die zu viel ist (|) - siehe Screenshot.

$Text .= '*Script Dateiname: ' . $WikiScriptNamensPrefix . $ScriptDetails['ScriptFile'] .'|' . $ScriptDetails['ScriptFile'] . $Zeilenumbruch;

Hier wird einfach der Strich zwischen zwei Namen gestellt.
Das macht nur bei Links Sinn und die müssen in eckigen Klammern stehen.

Wie gesagt, das ist nur eine Ferndiagnose.
Morgen habe ich etwas Zeit und werde das genauer Untersuchen und die Namensgebung sinnvoller in meiner nächsten Version einbauen.

Gruß
Thorsten

CropperCapture[42].jpg

Hi Thorsten,

sorry, hätte ich erwähnen sollen: ja, der ist eingebaut. Dein Troubleshooting kann ich erst heute Abend ausprobieren