aboutsummaryrefslogtreecommitdiff
path: root/cgi-bin
diff options
context:
space:
mode:
Diffstat (limited to 'cgi-bin')
-rwxr-xr-xcgi-bin/dict.cgi93
1 files changed, 65 insertions, 28 deletions
diff --git a/cgi-bin/dict.cgi b/cgi-bin/dict.cgi
index 6d7457e..fc41a67 100755
--- a/cgi-bin/dict.cgi
+++ b/cgi-bin/dict.cgi
@@ -31,14 +31,15 @@
(define sql-database "ellinika")
(define sql-username "gray")
(define sql-password "Imbabura")
+(define match-list-columns 4) ;; Number of colums in fuzzy search output
;;; End of user-definable variables
;; Τα μέρη του λογου
(define part-of-speech
(list (cons "κανένα μέρος του λογου" #f)
(cons "ρήμα" "(dict.pos=\"μετ.\" OR dict.pos=\"αμετ.\" OR dict.pos=\"μετ.,αμετ.\")")
- (cons "μεταβατικό" "dict.pos=\"μετ.\"")
- (cons "αμετάβατο" "dict.pos=\"αμετ.\"")
+ (cons "μεταβατικό" "dict.pos=\"μετ.\"")
+ (cons "αμετάβατο" "dict.pos=\"αμετ.\"")
(cons "άρθρο" "dict.pos=\"άρθρο\"")
(cons "αριθμός" "dict.pos=\"αριθ.\"")
(cons "επίθετο" "dict.pos=\"επίθ.\"")
@@ -80,37 +81,63 @@
(display "
<HTML>
<HEAD>
- <TITLE>Ellinika</TITLE>
+ <TITLE>Ellinorosiko lexiko</TITLE>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">
</HEAD>
-<BODY BGCOLOR=\"#FFFFFF\" TEXT=\"#000000\" LINK=\"#1F00FF\" ALINK=\"#FF0000\" VLINK=\"#9900DD\">
-<H2>Ελληνορώσικο λέξικο</H2>
-<hr>"))
+<BODY BGCOLOR=\"#000080\" TEXT=\"#000000\" LINK=\"#1F00FF\" ALINK=\"#FF0000\" VLINK=\"#9900DD\">
+<TABLE WIDTH=\"99%\" ALIGN=\"CENTER\" CELLSPACING=\"0\" CELLPADDING=\"10%\" BORDER=\"0\" BGCOLOR=\"#FFFFFF\">
+<TR>
+ <TD VALIGN=TOP width=20%>
+ <IMG SRC=\"/graphics/iep-small.jpg\" ALIGN=\"top\" ALT=\" [IEP logo] \"><P>
+ <TABLE WIDTH=\"100%\" ALIGN=\"LEFT\" CELLSPACING=\"0\" CELLPADDING=\"10%\" BORDER=\"0\" BGCOLOR=\"#FFFFFF\">
+ <TR><TD BGCOLOR=\"#0063C1\" ALIGN=\"CENTER\">Γραμματική</TD><TR>
+ <TR><TD><A HREF=\"/ellinika/gram.html\">Γραμματική</A></TD><TR>
+ <TR><TD><A HREF=\"/ellinika/arthra.html\">Τα άρθρα</A></TD></TR>
+ <TR><TD><A HREF=\"/ellinika/oysiastika.html\">Τα ουσιαστικά</A></TD></TR>
+ <TR><TD><A HREF=\"/ellinika/epitheta.html\">Τα επίθετα</A></TD></TR>
+ <TR><TD><A HREF=\"/ellinika/antonimies.html\">Αντωνιμίες</A></TD></TR>
+ <TR><TD><A HREF=\"/ellinika/rhmata.html\">Ρήματα</A></TD></TR>
+ <TR><TD><A HREF=\"/index.html\">Αρχικύ σελίδα</A></TD></TR>
+ </TABLE>
+ </TD>
+ <TD VALIGN=top>
+ <H1 ALIGN=CENTER>Ελληνορώσικο λέξικο</H1>
+<HR>"))
(define (dict-html-end)
- (display "</BODY></HTML>"))
+ (display "
+ </TD>
+</TR>
+<TR>
+ <TD colspan=\"2\">
+ <hr>
+Για προτάσεις ή απορίες σχετικά με αυτή η σελίδα επικοινωνήστε στο
+&lt;<A HREF=\"mailto:gray@mirddin.farlep.net\">gray at mirddin.farlep.net</A>&gt;
+
+ </TD>
+</TR>
+</TABLE>
+</BODY></HTML>"))
(define (main-form)
(display "<FORM ACTION=\"")
(display dict-cgi-path)
(display "\" METHOD=POST>
-<TABLE>
+<TABLE BORDER=0>
<TR>
<TD>
- <INPUT size=64 NAME=\"key\" TABINDEX=\"1\"")
+ Εισάγετε η λέξη
+ </TD>
+ <TD>
+ <INPUT size=36 NAME=\"key\" TABINDEX=\"1\"")
(let ((value (cgi:value "key")))
(if value
(begin
- (display (string-append "GOT VALUE " value "\n")
- (current-error-port))
(display "VALUE=\"")
(display (protect value))
(display "\""))))
(display ">
</TD>
- <TD>
- <INPUT TYPE=\"submit\" NAME=\"search\" VALUE=\"Αναζήτηση\" TABINDEX=\"4\">
- </TD>
</TR>
<TR>
<TD>")
@@ -171,6 +198,11 @@
(display "
</TD>
</TR>
+<TR>
+ <TD colspan=\"2\" align=center>
+ <INPUT TYPE=\"submit\" NAME=\"search\" VALUE=\"Αναζήτηση\" TABINDEX=\"4\">
+ </TD>
+</TR>
</TABLE>
<P>"))
@@ -527,9 +559,9 @@
(define (search-failure key)
- (display "<H2>Sorry, \"")
+ (display "<H2>Συγγνώμη, η λέξη \"")
(display key)
- (display "\" was not found in the dictionary</H2>"))
+ (display "\" δεν βρέθηκε στο λέξικο.</H2>"))
(define (fuzzy-search conn key theme pos)
@@ -566,18 +598,23 @@
(string-append "AND "
(cdr pos-entry)))
"")
- " order by word"))))))
+ " ORDER BY WORD"))))))
(cond
((null? result)
(search-failure key))
(else
- (display "<TABLE>")
- (for-each
- (lambda (x)
- (display "<TR><TD>")
- (display-cross-reference (car x))
- (display "</TD></TR>"))
- result)
+ (display "<TABLE WIDTH=\"100%\">")
+ (let* ((result-length (length result))
+ (lim (1+ (inexact->exact (/ result-length match-list-columns)))))
+ (do ((i 0 (1+ i)))
+ ((= i lim) #f)
+ (display "<TR>")
+ (do ((j i (+ j lim)))
+ ((>= j result-length) #f)
+ (display "<TD>")
+ (display-cross-reference (car (list-ref result j)))
+ (display "</TD>"))
+ (display "</TR>")))
(display "</TABLE>")))))
@@ -585,8 +622,8 @@
(let ((keyval (if (cgi:value "IDENT")
(decode-string (cgi:value "IDENT"))
(cgi:value "key")))
- (theme (cgi:value "TOPIC"))
- (pos (cgi:value "POS")))
+ (theme (or (cgi:value "TOPIC") "0"))
+ (pos (or (cgi:value "POS") "0")))
(cond
((and keyval (not (string-null? keyval)))
(let ((conn (sql-connect
@@ -594,7 +631,7 @@
sql-username sql-password)))
(cond
((not conn)
- (display "<H1>ERROR: cannot connect to the dictionary</H1>\n"))
+ (display "<H1>ΣΦΆΛΜΑ: σύνδεση με το λέξικο απέτυχε.</H1>\n"))
(else
(display "<HR>")
(let* ((key (translate-input keyval))
@@ -639,7 +676,7 @@
sql-username sql-password)))
(cond
((not conn)
- (display "<H1>ERROR: cannot connect to the dictionary</H1>\n"))
+ (display "<H1>ΣΦΆΛΜΑ: σύνδεση με το λέξικο απέτυχε.</H1>\n"))
(else
(display "<HR>")
(fuzzy-search conn "" theme pos)

Return to:

Send suggestions and report system problems to the System administrator.