- Mitglied seit
- 15. Mai 2008
- Beiträge
- 21.900
- Punkte für Reaktionen
- 14
- Punkte
- 0
Die folgende Anleitung zeigt, wie man einen Web-Editor in den Disk Station Manager als 3rd-party-application einbaut.
Achtung: Wie immer erfolgen alle Änderungen mit telnet-Aufruf auf der DS und auf eigene Kappe.
Voraussetzung: Die Option HTTPS-Verbindung ist aktiv, d. h. auf den Web Station Manager wird mit https://xxx:5001 zugegriffen.
(1) Download des EditArea-Editor von Chistophe Dolivet; entzippen unter Windows und auf die DS kopieren (z.B. /volume1/tmp). Warum diesen Editor? Chistophe hat den tinyMCE-Editor zu einem guten Source-Editor umgebaut.
(2) Ein Verzeichnis anlegen: /usr/syno/synoman/phpsrc/editor und sich in das neue Verzeichnis stellen.
(3) Die Dateien unterhalb des EditArea-Verzeichnisses nun hierhin verschieben, z. B. so: mv /volume1/tmp/edit*/*.
(4) Ein ls müsste dann ungefähr folgendes zeigen:
change_log.txt license_apache.txt docs
exemple_full.html license_lgpl.txt edit_area
exemples todo.txt
(5) Erfassen eines PHP-Skripts namens editor.php mit folgendem Inhalt:
(6) testen mit einem Browser: https://syno:5001/phpsrc/editor/editor.php (statt syno entweder IP der DS oder DNS-Name oder wie auch sonst deine DS heißen mag einsetzen).
(7) Wenn bis hier alles geht, dann den Einbau in den Disk Station Manager:
Ein Verzeichnis anlegen: /usr/syno/synoman/webman/3rdparty/editor. In diesem Verzeichnis die Datei application.cfg erfassen:
text = editor
description = editor
type = embedded
protocol = https
address = Name_der_DS_wie_beim_Aufruf_des_Web_Station_Managers
port = 5001
path = /phpsrc/editor/editor.php
(8) Disk Station Manger aufrufen & testen
(9) Damit der Editor auch alle Dateien der DS editieren kann, muss noch eine kleine Änderung in der /usr/syno/etc/php.ini vorgenommen werden: Zeile mit open_basedir suchen und auskommentieren und folgende Zeile neu hinzufügen:
open_basedir = /
und nicht vergessen den sys-Apache wieder zu restarten.
Anmerkung zu Bedienung: Ich habe kein komfortables Dateibrowsing-Interface für das Öffnen bzw. Speichern von Dateien gemacht; man muss also den ganzen Pfad eintippen oder per Zwischenablage einfügen. Wer mag, kann sich ja mal umsehen, ob es hübsche Dateibrowser gibt, die mal einbauen kann.
Dran denken, erstmal kleine Gehversuche unternehmen; keine wichtigen Dateien verändern oder so.
Achtung: Wie immer erfolgen alle Änderungen mit telnet-Aufruf auf der DS und auf eigene Kappe.
Voraussetzung: Die Option HTTPS-Verbindung ist aktiv, d. h. auf den Web Station Manager wird mit https://xxx:5001 zugegriffen.
(1) Download des EditArea-Editor von Chistophe Dolivet; entzippen unter Windows und auf die DS kopieren (z.B. /volume1/tmp). Warum diesen Editor? Chistophe hat den tinyMCE-Editor zu einem guten Source-Editor umgebaut.
(2) Ein Verzeichnis anlegen: /usr/syno/synoman/phpsrc/editor und sich in das neue Verzeichnis stellen.
(3) Die Dateien unterhalb des EditArea-Verzeichnisses nun hierhin verschieben, z. B. so: mv /volume1/tmp/edit*/*.
(4) Ein ls müsste dann ungefähr folgendes zeigen:
change_log.txt license_apache.txt docs
exemple_full.html license_lgpl.txt edit_area
exemples todo.txt
(5) Erfassen eines PHP-Skripts namens editor.php mit folgendem Inhalt:
Rich (BBCode):
<?php
//var_dump($_REQUEST);
if ($_REQUEST['filename'] <> '') {
if ($_REQUEST['action'] == 'load')
$content=file_get_contents($_REQUEST['filename']);
elseif ($_REQUEST['action'] == 'save')
@file_put_contents($_REQUEST['filename'], stripslashes($_REQUEST['content']));
$_REQUEST['action'] == '';
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Editor1</title>
<script language="Javascript" type="text/javascript" src="edit_area/edit_area_full.js"></script>
<script language="Javascript" type="text/javascript">
editAreaLoader.init({
id: "content" // id of the textarea to transform
,start_highlight: true
,font_size: "8"
,font_family: "verdana, monospace"
,allow_resize: "y"
,allow_toggle: false
,language: "en"
,syntax: "html"
,toolbar: "new_document, save, load, |, charmap, |, search, go_to_line, |, undo, redo, |, select_font, |, syntax_selection,|, change_smooth_selection, highlight, reset_highlight, |, help"
,syntax_selection_allow: "css,html,js,php,python,vb,xml,c,cpp,sql,basic,pas,brainfuck"
,load_callback: "my_load"
,save_callback: "my_save"
,plugins: "charmap"
,charmap_default: "arrows"
});
// callback functions
function my_save(id, content){
document.getElementById('content').value=content;
var filename=window.prompt("Dateiname:","<?php print $_REQUEST['filename'] ?>");
if (filename == null) return;
if (filename != "") {
document.getElementById('action').value = 'save';
document.getElementById('filename').value = filename;
f.submit();
}
}
function my_load(id){
var filename=window.prompt("Dateiname:","<?php print $_REQUEST['filename'] ?>");
if (filename == null) return;
if (filename != "") {
document.getElementById('action').value = 'load';
document.getElementById('filename').value = filename;
f.submit();
}
}
</script>
</head>
<body>
<div style="font:11px verdana">Filename: <?php print $_REQUEST['filename']<>""?$_REQUEST['filename']:"no file activ" ?></div>
<form id="f" name="f" method="post" action="editor.php">
<input type="hidden" name="action" id="action" value="">
<input type="hidden" name="filename" id="filename" value="<php print $_REQUEST['filename'] ?>">
<textarea id="content" style="height: 500px; width: 100%;" name="content">
<?php print htmlspecialchars(stripslashes($content)) ?></textarea>
</form>
</body>
</html>
(6) testen mit einem Browser: https://syno:5001/phpsrc/editor/editor.php (statt syno entweder IP der DS oder DNS-Name oder wie auch sonst deine DS heißen mag einsetzen).
(7) Wenn bis hier alles geht, dann den Einbau in den Disk Station Manager:
Ein Verzeichnis anlegen: /usr/syno/synoman/webman/3rdparty/editor. In diesem Verzeichnis die Datei application.cfg erfassen:
text = editor
description = editor
type = embedded
protocol = https
address = Name_der_DS_wie_beim_Aufruf_des_Web_Station_Managers
port = 5001
path = /phpsrc/editor/editor.php
(8) Disk Station Manger aufrufen & testen
(9) Damit der Editor auch alle Dateien der DS editieren kann, muss noch eine kleine Änderung in der /usr/syno/etc/php.ini vorgenommen werden: Zeile mit open_basedir suchen und auskommentieren und folgende Zeile neu hinzufügen:
open_basedir = /
und nicht vergessen den sys-Apache wieder zu restarten.
Anmerkung zu Bedienung: Ich habe kein komfortables Dateibrowsing-Interface für das Öffnen bzw. Speichern von Dateien gemacht; man muss also den ganzen Pfad eintippen oder per Zwischenablage einfügen. Wer mag, kann sich ja mal umsehen, ob es hübsche Dateibrowser gibt, die mal einbauen kann.
Dran denken, erstmal kleine Gehversuche unternehmen; keine wichtigen Dateien verändern oder so.