aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2011-06-20 13:05:27 +0300
committerSergey Poznyakoff <gray@gnu.org.ua>2011-06-20 13:05:27 +0300
commit2bf7460851d3d03274d1b5f979b943cb00f1813e (patch)
tree70533c308dd6e2376e72753859120ea1a8d29ae0 /src
parentb56552e3260023593a3bf80315edf0f069eebac1 (diff)
downloadellinika-2bf7460851d3d03274d1b5f979b943cb00f1813e.tar.gz
ellinika-2bf7460851d3d03274d1b5f979b943cb00f1813e.tar.bz2
Improve coupling between dict and conj.
* po/pl.po: Update * src/cgi-bin/conj.scm4: Use cgi-program-name to generate references to dict. * src/cgi-bin/dict.scm4: Add a reference to conjugator (for verbs). * src/ellinika/Makefile.am: Define SCRIP_SUFFIX * src/ellinika/cgi.scm4 (cgi-program-name): New function. * style.css: Update.
Diffstat (limited to 'src')
-rw-r--r--src/cgi-bin/conj.scm49
-rw-r--r--src/cgi-bin/dict.scm435
-rw-r--r--src/ellinika/Makefile.am21
-rw-r--r--src/ellinika/cgi.scm45
4 files changed, 40 insertions, 30 deletions
diff --git a/src/cgi-bin/conj.scm4 b/src/cgi-bin/conj.scm4
index 72da00e..fec7eca 100644
--- a/src/cgi-bin/conj.scm4
+++ b/src/cgi-bin/conj.scm4
@@ -245,11 +245,6 @@ ifelse(IFACE,[CGI],(cgi:init))
result)
(return #f))))
-(define (dict-cgi-name)
- (let* ((my-name cgi-script-name)
- (slpos (string-rindex my-name #\/)))
- (string-append (substring my-name 0 slpos) "/dict.SCRIPT_SUFFIX")))
-
(define (show-conjugation verb)
(catch #t
(lambda ()
@@ -266,7 +261,7 @@ ifelse(IFACE,[CGI],(cgi:init))
((and descr (not (null? descr)))
(format #t "<h2 class=\"verb\"><a href=\"~A\">~A - ~A</a></h2>"
(make-cgi-name
- (dict-cgi-name) "ident" (dict:encode-string verb))
+ (cgi-program-name "dict") "ident" (dict:encode-string verb))
verb (caar descr)))
(else
(format #t
@@ -328,7 +323,7 @@ ifelse(IFACE,[CGI],(cgi:init))
"SELECT DISTINCT word\
FROM dict\
WHERE sound LIKE ~Q\
- AND (pos & 1048576) = 1048576 ORDER BY 1"
+ AND (pos & 1048576) <> 0 ORDER BY 1"
(ellinika:sounds-like key))))
(cond
((null? result)
diff --git a/src/cgi-bin/dict.scm4 b/src/cgi-bin/dict.scm4
index de6b8c5..77c1b3a 100644
--- a/src/cgi-bin/dict.scm4
+++ b/src/cgi-bin/dict.scm4
@@ -233,14 +233,16 @@ ifelse(IFACE,[CGI],(cgi:init))
;;
(define (display-results rlist)
- (let ((x (car rlist)))
- (display "<table class=\"noframe\">")
- (display "<tr><td>")
- (display (car x))
+ (let* ((x (car rlist))
+ (word (car x))
+ (isverb (> (string->number (list-ref x 6)) 0)))
+ (display "<table class=\"dict-result\">")
+ (display "<tr><td class=\"dict-word\">")
+ (display word)
(display "</td>")
(cond
((list-ref x 3)
- (display "<td>")
+ (display "<td class=\"dict-word-forms\">")
(let ((href (assoc (list-ref x 2) word-forms-reference)))
(cond
(href
@@ -259,18 +261,25 @@ ifelse(IFACE,[CGI],(cgi:init))
(else
(display (list-ref x 3)))))
(display "</td>")))
- (display "<td>")
+ (display "<td class=\"dict-pos\">")
(display (list-ref x 2))
- (display "</td></tr>"))
+ (display "</td>")
+ (if isverb
+ (format #t "<td class=\"conj-ref\"><a href=\"~A\">~A</a></td>"
+ (make-cgi-name
+ (cgi-program-name "conj") "key" (dict:encode-string word))
+ (_ "κλίση")))
+ (display "</tr>"))
+ (display "</table>")
+ (newline)
+ (display "<ol class=\"dict-articles\">")
(for-each
(lambda (x)
- (display "<tr><td>")
- (display (1+ (string->number (list-ref x 4))))
- (display "</td><td>")
+ (display "<li>")
(display (replace-tilde (car x) (list-ref x 5)))
- (display ";</td></tr>"))
+ (display ";</li>"))
rlist)
- (display "</table>")
+ (display "</ol>")
(newline))
(define (display-cross-reference word)
@@ -435,7 +444,7 @@ ifelse(IFACE,[CGI],(cgi:init))
(let* ((key (ellinika:translate-input keyval))
(result (ellinika:sql-query
"SELECT dict.word,dict.ident,pos.abbr,\
-dict.forms,articles.subindex,articles.meaning\
+dict.forms,articles.subindex,articles.meaning,(dict.pos & conv(\"100000\",16,10))\
FROM dict,articles,pos WHERE dict.word=~Q\
AND dict.ident=articles.ident\
AND articles.lang=~Q\
diff --git a/src/ellinika/Makefile.am b/src/ellinika/Makefile.am
index 01534c0..12e0392 100644
--- a/src/ellinika/Makefile.am
+++ b/src/ellinika/Makefile.am
@@ -32,16 +32,17 @@ cgi.m4: Makefile
echo 'changecom([;],[' >> $@
echo '])' >> $@
echo 'undefine([format])' >> $@
- echo 'define([IFACE],$(APACHE_IFACE))' >> $@
- echo 'define([GUILE_BINDIR],$(GUILE_BINDIR))' >> $@
- echo 'define([GUILE_SITE],@GUILE_SITE@)' >> $@
- echo 'define([PACKAGE],$(PACKAGE))'>> $@
- echo 'define([PREFIX],$(prefix))' >> $@
- echo 'define([SYSCONFDIR],$(sysconfdir))' >> $@
- echo 'define([LOCALEDIR],$(datadir)/locale)' >> $@
- echo 'define([HTMLDIR],$(HTMLDIR))' >> $@
- echo 'define([VERSION],$(VERSION))' >> $@
- echo 'define([LIBDIR],$(pkglibdir))' >> $@
+ echo 'define([IFACE],[$(APACHE_IFACE)])' >> $@
+ echo 'define([SCRIPT_SUFFIX], [@SCRIPT_SUFFIX@])'>>$@
+ echo 'define([GUILE_BINDIR],[$(GUILE_BINDIR)])' >> $@
+ echo 'define([GUILE_SITE],[@GUILE_SITE@])' >> $@
+ echo 'define([PACKAGE],[$(PACKAGE)])'>> $@
+ echo 'define([PREFIX],[$(prefix)])' >> $@
+ echo 'define([SYSCONFDIR],[$(sysconfdir)])' >> $@
+ echo 'define([LOCALEDIR],[$(datadir)/locale])' >> $@
+ echo 'define([HTMLDIR],[$(HTMLDIR)])' >> $@
+ echo 'define([VERSION],[$(VERSION)])' >> $@
+ echo 'define([LIBDIR],[$(pkglibdir)])' >> $@
echo 'divert(0)dnl' >> $@
echo '@AUTOGENERATED@' >> $@
diff --git a/src/ellinika/cgi.scm4 b/src/ellinika/cgi.scm4
index d1b4a5c..8c9b54d 100644
--- a/src/ellinika/cgi.scm4
+++ b/src/ellinika/cgi.scm4
@@ -109,6 +109,11 @@ ifelse(IFACE,[CGI],,dnl
arglist
(cons "?" arglist))))))
+(define-public (cgi-program-name prog)
+ (string-append
+ (substring cgi-script-name 0 (string-rindex cgi-script-name #\/)) "/"
+ prog ".SCRIPT_SUFFIX"))
+
(define-public (expand-template explist template)
"(expand-template EXPLIST TEMPLATE)

Return to:

Send suggestions and report system problems to the System administrator.