Zurück zum Inhaltsverzeichnis - Lösungen und Tipps


Vorbemerkung: Nichtlateinische Texte (Hebräisch, Griechisch, Cyrillisch, Arabisch etc.) können statt in Umschrift im Editor auf eine bequeme Art und Weise im „WYSIWYG-Verfahren“ in einem Browser eingegeben und direkt in den TUSTEP-Editor abgespeichert und so weiterverarbeitet werden.
- kollatz kollatz

Browsereingabe.jpg

Es sind dazu drei Schritte nötig:

  1. Einrichten einer TUSTEP-Sitzung und Kopieren der unten beigegebenen TUSTEP-Initialisierungsdatei in das entsprechende Verzeichnis
    Hinweis: Die Datei 'browser_tustep.ini' muss zuvor in 'tustep.ini' umbenannt werden!
  2. Erstellen eines CGI-Skripts (#*CGI)
  3. Starten des TUSTEP-Servers (#*SERVER) und Erstellen eines Icons.


Der Film 'ediereImBrowser' zeigt den ganzen Ablauf.

browser_tustep.ini [14 KB]

ediereImBrowser.mov [4 MB]


Darstellung der INI-Datei mit den Segmenten INIT und EDIERE

#=  INIT
#=  EDIERE         Eingabe auch nichtlateinischer Zeichen im Browser
#=: INIT                                                       #=- 04.12.13 15:37:37
$$ MODE TUSCRIPT
IF (batch) THEN
  EXECUTE/QUIET #definiere,code=iso8859
  EXECUTE/QUIET #fehlerhalt,ein
ELSE
  EXECUTE #pr,port
  EXECUTE #wischen, aus
  EXECUTE #de,co=-std-,farben=-std-
ENDIF
#=: EDIERE         Eingabe auch nichtlateinischer Zeichen im Browser #=- 04.12.13 13:50:40
$$ MODE TUSCRIPT,{}

SECTION checkvars
queryvars = DECODE (query, cgi)
nam=GET_VALUE (queryvars, "nam")
tag=GET_VALUE (queryvars, "tag")
ein=GET_VALUE (queryvars, "ein")

IF (nam.ne."") THEN
 IF (nam.ne.'file_name') THEN
 DATA <fieldset><legend>hinweis</legend>
 DATA Der Dateiname <strong>{nam}</strong> ist ungültig</fieldset>
 STOP
 ENDIF
  STATUS = OPEN (nam, WRITE, TUSTEP_DSK)
  IF (STATUS.ne."OK") THEN
    DATA <fieldset><legend>Hinweis</legend>
    IF (STATUS .ew."belegt") THEN
     DATA Die Datei <strong>{nam}</strong> ist vom TUSTEP-Editor belegt
     DATA Bitte erst schliessen</fieldset>
     STOP
    ELSE
      STATUS = CREATE (nam,seq-p,TUSTEP_DSK)
      DATA Die Datei <strong>{nam}</strong> wurde zur Texteingabe angelegt.
    ENDIF
    DATA </fieldset>
  ELSE
    DATA <fieldset><legend>Hinweis</legend>
    DATA Die Datei <strong>{nam}</strong> wurde geöffnet</fieldset>
  ENDIF
ELSE
 DATA <fieldset><legend>Hinweis</legend>
 DATA Es wurde keine Zieldatei definiert </fieldset>
 STOP
ENDIF
IF (ein.ne."") THEN
  zeilen = SPLIT (ein, ":#\[000D\]#\[000A\]:")
  z = SIZE (zeilen)
   IF (tag.ne."") THEN
     tag_a = START_TAG (tag)
     tag_e = END_TAG (tag)
     IF (z.eq.1) THEN
       zeilen = JOIN (zeilen)
       zeilen = CONCAT (tag_a,zeilen,tag_e)
     ELSE
       zeilen=JOIN (zeilen),zl=""
       LOOP e=zeilen
         IF (zl.eq."") THEN
           zl = CONCAT (tag_a,e)
         ELSE
           zl = REPLACE (zl,0,e)
         ENDIF
       ENDLOOP
       zl = CONCAT (zl,tag_e), zeilen = SPLIT (zl)
     ENDIF
   ENDIF
  DO write
ELSE
  DATA <fieldset><legend>Hinweis</legend>
  DATA Es wurde noch kein Text eingebeben</fieldset>
ENDIF
ENDSECTION
SECTION write
FILE $nam = zeilen
DATA <fieldset><legend>Hinweis</legend>
DATA Der <strong>{z}</strong>-zeilige Eingabetext
DATA wurde in die Datei <strong>{nam}</strong> geschrieben</fieldset>
DATA <fieldset><legend>Hinweis</legend>
DATA Die Datei <strong>{nam}</strong> wurde geschlossen</fieldset>
ENDSECTION

FETCH SERVER = SERVER_NAME
FETCH SCRIPT = SCRIPT_NAME
FETCH PORT   = SERVER_PORT
SET CGISCRIPT= "http://{SERVER}:{Port}{SCRIPT}",datum = DATE_3 (), uhrzeit = TIME_3 ()
FETCH query  = -std-

MODE DATA
<html> <head> <title>EDIEREN im Browser: Eingabefeld </title>
<style>/* style-Definitionen */ </style>
</head> <body>
<h1>Browsergesteuerte Texteingabe</h1>
<p style="text-align:right"> <tt>{datum} {uhrzeit} port: {port}</tt></p>
<form action="{cgiscript}" method="post">
<h2>1. Zieldatei <input type="text" size="16" name="nam" /> </h2>
<h2>2. Rahmendes Tag <input type="text" size="4" name="tag" /> <tt>(fakultativ)</tt></h2>
<h2>3. Texteingabe</h2>
<p><textarea name="ein" rows="10" cols="50" dir="ltr" style="wrap:off"></textarea></p>
<h2>4. <input type="submit" value="Texteingabe abschliessen" /> </h2> </form>
$$ IF (query .NE. "") DO checkvars
<p style="text-align:right; text-size:small"> CC-BY Thomas Kollatz 2013-12-04<br/>kol(at)steinheim-institut.org</p>
</body> </html>



Zurück zum Inhaltsverzeichnis - Lösungen und Tipps