diff options
Diffstat (limited to 'cgi-bin')
-rwxr-xr-x | cgi-bin/dict.cgi | 93 |
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> +Για προτάσεις ή απορίες σχετικά με αυτή η σελίδα επικοινωνήστε στο +<<A HREF=\"mailto:gray@mirddin.farlep.net\">gray at mirddin.farlep.net</A>> + + </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) |