3rd-party Application Tool

Status
Für weitere Antworten geschlossen.

QTip

Super-Moderator
Teammitglied
Mitglied seit
04. Sep 2008
Beiträge
2.341
Punkte für Reaktionen
14
Punkte
84
ach stimmt, das Init_3rdparty taucht ja nicht als 3rdparty app in der Liste auf. Das phpinfo dabei ist, wußte ich nicht, mal das SPK angucken, wo das rumliegt.

*edit*
Liegen bei dir im Verzeichnis 3rdparty application.cfg's rum oder befinden sich in irgendeiner application.cfg mehrere "name=" Einträge?
 
Zuletzt bearbeitet:

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Ich hatte den phpinfo.php seinerzeit in die Init_3rdparty.spk integriert, damit man zum einen wenigstens eine 3rdparty-apps im Menü des DS Managers sehen kann (und damit auch die Directory-Struktur kontrollieren kann), zum anderen, dass man auch den sys-Apache kontrollieren kann, ob dessen PHP aktiviert wurde und wie da die Module und Variablen sind ... schaden kann es ja nichts. Warum der nun 3x auftauchte, kann ich im Moment auch nicht nachvollziehen.

Itari
 

HarryPotter

Benutzer
Mitglied seit
24. Aug 2007
Beiträge
2.156
Punkte für Reaktionen
0
Punkte
0
Nein, es existieren weder in /usr/syno/synoman/webman/3rdparty noch in /volume1@appstore befinden sich application.cfg

Und in den 9 application.cfg steht jeweils n ur einmal "text=irgendwas" ("name=..." gibst icht...
 

HarryPotter

Benutzer
Mitglied seit
24. Aug 2007
Beiträge
2.156
Punkte für Reaktionen
0
Punkte
0
So, habe jetzt ja aus bekannten Gründen (3rd party init Probleme mit Beta FW) das System neu installiert.

Nach wie vor erscheint im 3rdparty Tool der phpinfo Eintrag 3 mal (1 mal mit icon, 2 mal ohne)
 

QTip

Super-Moderator
Teammitglied
Mitglied seit
04. Sep 2008
Beiträge
2.341
Punkte für Reaktionen
14
Punkte
84
Ich habe jetzt extra das Init_3rdparty installiert (obwohl ich es nicht brauchte ;)) und nur 1 PHPInfo Eintrag ist vorhanden. Habe auch schon diverse Spielchen mit SymbolicLink im SymbolicLink etc. durch probiert, das Ergebnis bleibt immer das Gleiche...nur 1 PHPInfo Eintrag im 3rd-party Menü.

Entweder hast du eine alte Version vom 3ptool mit bis dahin unbekanntem Bug erwischt oder aus Versehen irgendwelche krummen Verlinkungen erzeugt. Kontrolliere doch mal bitte alle Verzeichnisse in 3rdparty, ob da irgendwelche Links drin sind, die da nicht hingehören.
Im Anhang hab ich dir mal die letzte 3ptool Version mit Ausgabe aller eingelesenen Verzeichnisnamen und den Werten der application.cfg. Diese Auflistung der Verzeichnisse dann bitte hier posten. Gut wäre auch noch die Javascript Einträge der Seite. Dazu im Homebereich des DSM auf eine freie Stelle "Rechts klicken" und sich den Seitenquelltext anzeigen lassen. Den Bereich ab "var _SYNO_3RD_TREE_NODES = [" bis "is_system_crashed: false" bitte auch noch hier posten.

Danke

p.s. ist nur die PHP-Datei, einfach die Alte vorher sichern und diese hier rüberkopieren. Vorher die Endung .txt bitte entfernen.
 

Anhänge

  • 3ptool.php.txt
    11 KB · Aufrufe: 4
Zuletzt bearbeitet:

HarryPotter

Benutzer
Mitglied seit
24. Aug 2007
Beiträge
2.156
Punkte für Reaktionen
0
Punkte
0
var _SYNO_3RD_TREE_NODES = [
{
"address" : "ds408",
"description" : "Web-Shell",
"icon_16" : "/webman/3rdparty/WebShell/ico16.ico",
"icon_32" : "/webman/3rdparty/WebShell/ico32.ico",
"name" : "WebShell",
"path" : "/webman/3rdparty/WebShell/shell.php",
"port" : "5000",
"protocol" : "http",
"text" : "WebShell",
"type" : "embedded"
},
{
"address" : "ds408",
"description" : "List Infos about PHP",
"icon_16" : "/webman/3rdparty/Init_3rdparty/ico16.ico",
"icon_32" : "/webman/3rdparty/Init_3rdparty/ico32.ico",
"name" : "Init_3rdparty",
"path" : "/webman/3rdparty/Init_3rdparty/phpinfo",
"port" : "5000",
"protocol" : "http",
"text" : "PHPInfo",
"type" : "embedded"
},
{
"address" : "ds408",
"description" : "Web-Editor",
"icon_16" : "/webman/3rdparty/WebEditor/ico16.ico",
"icon_32" : "/webman/3rdparty/WebEditor/ico32.ico",
"name" : "WebEditor",
"path" : "/webman/3rdparty/WebEditor/editor.php",
"port" : "5000",
"protocol" : "http",
"text" : "WebEditor",
"type" : "embedded"
},
{
"address" : "ds408",
"description" : "Mate for Automation some common Tasks",
"icon_16" : "/webman/3rdparty/AutoMate/ico16.ico",
"icon_32" : "/webman/3rdparty/AutoMate/ico32.ico",
"name" : "AutoMate",
"path" : "/webman/3rdparty/AutoMate/automate.php",
"port" : "5000",
"protocol" : "http",
"text" : "AutoMate",
"type" : "embedded"
},
{
"address" : "ds408",
"description" : "utility to give, or revoke, rights to webserver/php for accessing shared folders on the diskstation.",
"icon_16" : "/webman/3rdparty/webshareenable/images/icon16.png",
"icon_32" : "/webman/3rdparty/webshareenable/images/icon32.png",
"name" : "webshareenable",
"path" : "/webman/3rdparty/webshareenable/index.cgi",
"port" : "5000",
"protocol" : "http",
"text" : "WebShare Enable",
"type" : "embedded"
},
{
"address" : "ds408",
"description" : "3rd-Party Tool. Change name, description and icons of your 3rd-party applications.",
"icon_16" : "/webman/3rdparty/3ptool/3ptool16.png",
"icon_32" : "/webman/3rdparty/3ptool/3ptool32.png",
"name" : "3ptool",
"path" : "/webman/3rdparty/3ptool/3ptool.php",
"port" : "5000",
"protocol" : "http",
"text" : "3rd-Party Tool",
"type" : "embedded"
}
]
;

var _SYNO_SESSION_={configured: true, lang: 'ger', registry: {
"statusman" : {
"expand" : {
"BASIC" : true,
"HDD" : true,
"NETWORK" : true,
"TIME" : false,
"USB" : false
}
},
"webman" : {
"direct_management" : true,
"dsm_complete" : false,
"hide_search" : true,
"tree" : {
"APPLICATION" : true,
"BACKUP" : true,
"DEVICE" : true,
"FILESERV" : true,
"INFORMATION" : true,
"NETSERV" : true,
"OTHERAPPS" : true,
"PRIVILEGES" : true,
"STORAGE" : true,
"SYSTEM" : true
}
}
}
, is_system_crashed: false,
 

HarryPotter

Benutzer
Mitglied seit
24. Aug 2007
Beiträge
2.156
Punkte für Reaktionen
0
Punkte
0
Zuerst MailStation installiert, danach Webalizer.
Dann 3rdparty_Init, danach die andern und zum Schluss dein 3rdpartyTool.

Ich habe wirklich nur diese Packages drin, selber gar nichts daran gemacht und die beiden "Forum" rausgeschmissen. Du darfst auch gerne auf meine Kiste schauen, falls es dich itnressiert was da los ist. Wie gesagt, mich störts nicht, ist nur ein kleiner Schönheitsfehler.

Und die 3ptool.php habe ich ersetzt: Resultat, jetzt kommt vor der grafischen Darstellung (immer noch mit 3mal phpinfo) noch Text:

3ptool
Array ( [0] => text = 3rd-Party Tool [1] => description = 3rd-Party Tool. Change name, description and icons of your 3rd-party applications. [2] => icon_16 = 3ptool16.png [3] => icon_32 = 3ptool32.png [4] => type = embedded [5] => path = /webman/3rdparty/3ptool/3ptool.php )

AutoMate
Array ( [0] => text = AutoMate [1] => description = Mate for Automation some common Tasks [2] => icon_16 = ico16.ico [3] => icon_32 = ico32.ico [4] => type = embedded [5] => path = /webman/3rdparty/AutoMate/automate.php )

Init_3rdparty
Array ( [0] => text = PHPInfo [1] => description = List Infos about PHP [2] => icon_16 = ico16.ico [3] => icon_32 = ico32.ico [4] => type = embedded [5] => path = /webman/3rdparty/Init_3rdparty/phpinfo )

MailStation
Array ( [0] => text = PHPInfo [1] => description = List Infos about PHP [2] => icon_16 = ico16.ico [3] => icon_32 = ico32.ico [4] => type = embedded [5] => path = /webman/3rdparty/Init_3rdparty/phpinfo )

Webalizer
Array ( [0] => text = PHPInfo [1] => description = List Infos about PHP [2] => icon_16 = ico16.ico [3] => icon_32 = ico32.ico [4] => type = embedded [5] => path = /webman/3rdparty/Init_3rdparty/phpinfo )

WebEditor
Array ( [0] => text = WebEditor [1] => description = Web-Editor [2] => icon_16 = ico16.ico [3] => icon_32 = ico32.ico [4] => type = embedded [5] => path = /webman/3rdparty/WebEditor/editor.php )

webshareenable
Array ( [0] => text = WebShare Enable [1] => description=utility to give, or revoke, rights to webserver/php for accessing shared folders on the diskstation. [2] => icon_16 = images/icon16.png [3] => icon_32 = images/icon32.png [4] => type = embedded [5] => path = /webman/3rdparty/webshareenable/index.cgi )

WebShell
Array ( [0] => text = WebShell [1] => description = Web-Shell [2] => icon_16 = ico16.ico [3] => icon_32 = ico32.ico [4] => type = embedded [5] => path = /webman/3rdparty/WebShell/shell.php )
 

QTip

Super-Moderator
Teammitglied
Mitglied seit
04. Sep 2008
Beiträge
2.341
Punkte für Reaktionen
14
Punkte
84
MailStation
Array ( [0] => text = PHPInfo [1] => description = List Infos about PHP [2] => icon_16 = ico16.ico [3] => icon_32 = ico32.ico [4] => type = embedded [5] => path = /webman/3rdparty/Init_3rdparty/phpinfo )

Webalizer
Array ( [0] => text = PHPInfo [1] => description = List Infos about PHP [2] => icon_16 = ico16.ico [3] => icon_32 = ico32.ico [4] => type = embedded [5] => path = /webman/3rdparty/Init_3rdparty/phpinfo )
Ahhh, das liegt bestimmt an Mailstation und Webalizer. Die besitzen keine application.cfg, da sie direkt eingebunden werden. Und weil ich dummerweise die Variablen nicht vorher lösche, übernimmt das 3ptool das auch für Webalizer und Mailstation. Allerdings überprüfe ich das Vorhandensein einer application.cfg. Hab es grad bei mir nachgestellt und überprüft, werde ich schnellstmöglich fixen.
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0

QTip

Super-Moderator
Teammitglied
Mitglied seit
04. Sep 2008
Beiträge
2.341
Punkte für Reaktionen
14
Punkte
84
naja die erstellen dort einen Ordner, damit die Symbole für den Desktop aktiv werden. Normal haben die dort überhaupt nichts zu suchen, da es keine 3rd-party applications im ursprünglichen Sinne sind. Sie klinken sich (wie z.B. die Mailstation) direkt ins Menü ein, bzw. sind schon dafür vorbereitet.
Ich hätte nur einfach besser aufpassen müssen ;)
Besser wäre es von Synology gewesen, die hätten einen neuen Ordner z.B. desktop im webman Verzeichnis erstellt und dort ihre Abfrage vom desktop.html hingelenkt. Dann wäre auch eine korrekte Trennung zwischen 3rdparty und Desktop-Symbolen da gewesen.
Neue Version ist fertig, hab auch gleich noch ein paar Schönheitsfehler im IE behoben (ich hasse den IE).
Muss nur noch als SPK packen.
 

QTip

Super-Moderator
Teammitglied
Mitglied seit
04. Sep 2008
Beiträge
2.341
Punkte für Reaktionen
14
Punkte
84
so hier ist es nun:

neue Version 1.04c

  • Bugfix: 3rd-party Applications die eigentlich Keine sind und deshalb auch keine application.cfg besitzen (Mailstation, Webalizer) wurden fälschlicher Weise aufgelistet. Das Resultat waren dann mehrere scheinbar gleiche Applications.
  • Schönheitsfehler im IE behoben.

Upgrade über den Button "Aktualisieren" im Abschnitt "Paketmanagement" möglich.

Anschließend das Script einmalig starten und wieder stoppen, damit die Sortierfunktion integriert wird. Wer die Sortierfunktion nicht benötigt, braucht diesen Schritt nicht durchzuführen.
 

Anhänge

  • 3ptool_1.04c.spk
    18 KB · Aufrufe: 1.480
Zuletzt bearbeitet:

HarryPotter

Benutzer
Mitglied seit
24. Aug 2007
Beiträge
2.156
Punkte für Reaktionen
0
Punkte
0
Et voila, die überflüssigen phpinfos sind weg :)

Danke schön!
 

QTip

Super-Moderator
Teammitglied
Mitglied seit
04. Sep 2008
Beiträge
2.341
Punkte für Reaktionen
14
Punkte
84
nix zu danken :)
 

nageniil

Benutzer
Mitglied seit
18. Aug 2009
Beiträge
208
Punkte für Reaktionen
4
Punkte
18
Kleine Erweiterung und Frage

Hi, bin erst seit 2 Wochen im Besitz einer DS209 und nun - dank Ferien :) - kräftig am Testen, was die DS so alles kann. 3rd Apps einbinden kein Problem und so bin ich auf dieses schöne 3rdPartyTool gestoßen.
Hab ne kleine Erweiterung (basiernd auf Version 1.04c) vorgenommen, um auch den Typ (embedded oder popup) ändern zu können. Funzt auch (bei mir wenigstens).
Nur bei der ebenfalls zusätzlichen Auswahl "adminonly = false" komme ich ins Grübeln. Die von mir eingefügte Checkbox zeigt den Eintrag in der application.cfg richtig an - aber beim Speichern macht die 3ptool, was sie gerade will...
3 Ansätze dazu:
  • das php-Skript ist schneller als die DS und kriegt die Änderungen in der appl..cfg noch nicht mit
  • Dein configfile-Array ist nicht initialisiert und übernimmt die Werte aus dem vorigen Datensatz (siehe Prob mit phpinfo.php)
  • ich habe einen (oder mehrere) Denkfehler gemacht :eek:
Vielleicht kannst mal drüberschauen (hab nicht viel im Skript geändert, Du erkennst es noch... ;) )
Many Thanks und Danke für das schicke Tool!
 

Anhänge

  • 3ptool.php.txt
    12,3 KB · Aufrufe: 18

QTip

Super-Moderator
Teammitglied
Mitglied seit
04. Sep 2008
Beiträge
2.341
Punkte für Reaktionen
14
Punkte
84
Hi,

habe mir deine Änderungen angeschaut und das Problem gelöst. Checkboxen sind ein wenig anders zu handhaben als z.B. Selectboxen. Checkboxen übermitteln nur dann einen Status, wenn sie gewählt (checked) sind. Du hast zwar soweit alles richtig gemacht, aber bei der Übermittlung kommen nur Werte für die gewählte(n) Checkbox mit. Man erhält ein Array mit einem oder mehreren Einträgen, nicht Alle. Dadurch kann man die Werte nicht zuordnen und es wird, bei nur einer gewählten Checkbox, immer die 1. 3rd-Party Application verändert. Damit die korrekten Indiezes der jeweiligen Checkbox auch richtig übermittelt wird, muss man jedem Checkbox Array explizit einen fortlaufenden Index übergeben. Zum Beispiel so:
PHP:
<input name="allusers[<?php print $i;?>]" type="checkbox" value="false"
                        ^^^^^^^^^^^^^^
Jetzt kommt auch der korrekte Index der Checkbox mit, nun kommt das nächste Problem. In meinem Script führe ich nur Änderungen an den .cfg's durch, wenn sich auch wirklich etwas zum vorherigen Stand verändert hat. Hinzu kommt, dass ich bis jetzt nur bestehende Einträge verändert habe und keine neuen hinzufügte. Da bei einem Absenden nur der Status der 'checked' Einträge beachtet wird, enthalten die anderen Einträge des $_REQUEST['allusers'] Arrays garnix, noch nicht einmal "". Sie sind einfach nicht gesetzt und würden bei der Abfrage auf Änderungen ein true erzeugen und dadurch auch die nicht markierten .cfg's der Einträge verändern. Ich habe folgendes unterhalb von get_apps() eingefügt, damit die nicht gesetzten Einträge von $_REQUEST['allusers'] einen Wert von "" haben.
PHP:
get_apps();
for ($cf = 0; $cf < count($cfgfields); $cf++) {
     if (!isset($_REQUEST['allusers'][$cf])) $_REQUEST['allusers'][$cf] = '';
}
Bei mir hat es bis jetzt soweit funktioniert, möchte aber noch ein paar Tests machen, bis ich das in ein neues Paket schnüre. Ich hoffe ich habe dein Einverständnis, dass ich deine Anpassunge so weitergeben und benutzen darf. Du wirst dann auch im Kopf der php-Datei erwähnt ;)
Im Anhang noch meine korrigierte Version der php-Datei.

Wie immer Alles auf eigenes Risiko.
 

Anhänge

  • 3ptool_104d.php.txt
    12,5 KB · Aufrufe: 74

nageniil

Benutzer
Mitglied seit
18. Aug 2009
Beiträge
208
Punkte für Reaktionen
4
Punkte
18
Ja super, das war mein Denkfehler... Danke für die Hilfestellung.

Ich hoffe ich habe dein Einverständnis, dass ich deine Anpassungen so weitergeben und benutzen darf. Du wirst dann auch im Kopf der php-Datei erwähnt ;)

Ja logisch, kann gerne jeder haben, (drum will ich ja auch beim Forum mitmachen), ist also auch unter GPL.

Jetzt mache ich mir noch Gedanken, ob man evtl. die Aufnahme der 3rd party Apps auf dem Desktop (von Blade26) und den AppManager von Tobi irgendwie verheiratet...

Liebe Grüße vom Bodensee
 

coolhot

Benutzer
Mitglied seit
01. Mrz 2009
Beiträge
926
Punkte für Reaktionen
0
Punkte
0
Ich hatte das 3ptool zuletzt mit DSM 2.3 laufen. Ist es mit 3.0/3.1 kompatibel?
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat