From 63e6b966cc5373ff4230060efc2506154b02611e Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Sun, 25 Dec 2022 17:09:37 +0100 Subject: [PATCH] add sensmotdire --- .../dictionaries/40_sensmotdire.xml | 9 + .../extras/machine/20_sensmotdire.xml | 20 + .../manual/image/postinstall/sensmotdire.sh | 8 + .../image/postinstall/sensmotdire/about.php | 14 + .../postinstall/sensmotdire/accessibility.php | 13 + .../postinstall/sensmotdire/add_browser.php | 15 + .../postinstall/sensmotdire/autosuggest.php | 76 ++ .../sensmotdire/css/sensmotdire.css | 394 +++++++++ .../postinstall/sensmotdire/f0000112.html | 53 ++ .../image/postinstall/sensmotdire/faq.php | 13 + .../image/postinstall/sensmotdire/favicon.png | Bin 0 -> 727 bytes .../sensmotdire/images/as_pointer.gif | Bin 0 -> 67 bytes .../sensmotdire/images/hl_corner_bl.gif | Bin 0 -> 73 bytes .../sensmotdire/images/hl_corner_br.gif | Bin 0 -> 73 bytes .../sensmotdire/images/hl_corner_tl.gif | Bin 0 -> 73 bytes .../sensmotdire/images/hl_corner_tr.gif | Bin 0 -> 73 bytes .../images/sensmotdire-background-widget.png | Bin 0 -> 4147 bytes .../images/sensmotdire-background.png | Bin 0 -> 11964 bytes .../sensmotdire/images/sensmotdire-logo.png | Bin 0 -> 7067 bytes .../sensmotdire/images/sensmotdire.png | Bin 0 -> 727 bytes .../sensmotdire/images/twisty-do-down.gif | Bin 0 -> 1038 bytes .../sensmotdire/images/twisty-do-hidden.gif | Bin 0 -> 1037 bytes .../sensmotdire/images/twisty-down.gif | Bin 0 -> 834 bytes .../sensmotdire/images/twisty-hidden.gif | Bin 0 -> 837 bytes .../sensmotdire/images/widget-google-shot.jpg | Bin 0 -> 7158 bytes .../image/postinstall/sensmotdire/index.php | 123 +++ .../postinstall/sensmotdire/js/.htaccess | 4 + .../postinstall/sensmotdire/js/.htaccess.swp | Bin 0 -> 12288 bytes .../sensmotdire/js/bsn.AutoSuggest_c_2.0.js | 745 ++++++++++++++++++ .../sensmotdire/js/sensmotdire.js.php | 296 +++++++ .../postinstall/sensmotdire/js/tabber.js | 522 ++++++++++++ .../image/postinstall/sensmotdire/lang-fr.php | 173 ++++ .../image/postinstall/sensmotdire/lib.php | 551 +++++++++++++ .../image/postinstall/sensmotdire/plugin.php | 42 + .../image/postinstall/sensmotdire/rss20.xml | 67 ++ .../postinstall/sensmotdire/sensmotdire.css | 317 ++++++++ .../image/postinstall/sensmotdire/test.php | 30 + .../image/postinstall/sensmotdire/widget.php | 53 ++ .../manual/image/preinstall/sensmotdire.sh | 1 + seed/sensmotdire/templates/config.php | 12 + .../templates/sensmotdire.nginx.conf | 34 + 41 files changed, 3585 insertions(+) create mode 100644 seed/sensmotdire/dictionaries/40_sensmotdire.xml create mode 100644 seed/sensmotdire/extras/machine/20_sensmotdire.xml create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire.sh create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/about.php create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/accessibility.php create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/add_browser.php create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/autosuggest.php create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/css/sensmotdire.css create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/f0000112.html create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/faq.php create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/favicon.png create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/images/as_pointer.gif create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/images/hl_corner_bl.gif create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/images/hl_corner_br.gif create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/images/hl_corner_tl.gif create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/images/hl_corner_tr.gif create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/images/sensmotdire-background-widget.png create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/images/sensmotdire-background.png create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/images/sensmotdire-logo.png create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/images/sensmotdire.png create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/images/twisty-do-down.gif create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/images/twisty-do-hidden.gif create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/images/twisty-down.gif create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/images/twisty-hidden.gif create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/images/widget-google-shot.jpg create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/index.php create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/js/.htaccess create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/js/.htaccess.swp create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/js/bsn.AutoSuggest_c_2.0.js create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/js/sensmotdire.js.php create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/js/tabber.js create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/lang-fr.php create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/lib.php create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/plugin.php create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/rss20.xml create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/sensmotdire.css create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/test.php create mode 100644 seed/sensmotdire/manual/image/postinstall/sensmotdire/widget.php create mode 100644 seed/sensmotdire/manual/image/preinstall/sensmotdire.sh create mode 100644 seed/sensmotdire/templates/config.php create mode 100644 seed/sensmotdire/templates/sensmotdire.nginx.conf diff --git a/seed/sensmotdire/dictionaries/40_sensmotdire.xml b/seed/sensmotdire/dictionaries/40_sensmotdire.xml new file mode 100644 index 00000000..e5b01607 --- /dev/null +++ b/seed/sensmotdire/dictionaries/40_sensmotdire.xml @@ -0,0 +1,9 @@ + + + + + /etc/sensmotdire/config.php + /etc/nginx/default.d/sensmotdire.conf + + + diff --git a/seed/sensmotdire/extras/machine/20_sensmotdire.xml b/seed/sensmotdire/extras/machine/20_sensmotdire.xml new file mode 100644 index 00000000..ac4f5b31 --- /dev/null +++ b/seed/sensmotdire/extras/machine/20_sensmotdire.xml @@ -0,0 +1,20 @@ + + + + + 256 + + + False + + + False + + + False + + + 512 + + + diff --git a/seed/sensmotdire/manual/image/postinstall/sensmotdire.sh b/seed/sensmotdire/manual/image/postinstall/sensmotdire.sh new file mode 100644 index 00000000..7b442010 --- /dev/null +++ b/seed/sensmotdire/manual/image/postinstall/sensmotdire.sh @@ -0,0 +1,8 @@ +set -e + +mkdir -p "$IMAGE_NAME_RISOTTO_IMAGE_DIR_TMP/usr/local/share" +cp -a $IMAGE_DIR_RECIPIENT_IMAGE/postinstall/sensmotdire "$IMAGE_NAME_RISOTTO_IMAGE_DIR_TMP/usr/local/share" +chown -R root: "$IMAGE_NAME_RISOTTO_IMAGE_DIR_TMP/usr/local/share/sensmotdire" +ln -s /etc/sensmotdire/config.php "$IMAGE_NAME_RISOTTO_IMAGE_DIR_TMP/usr/local/share/sensmotdire/config.php" + +cd $ORIPWD diff --git a/seed/sensmotdire/manual/image/postinstall/sensmotdire/about.php b/seed/sensmotdire/manual/image/postinstall/sensmotdire/about.php new file mode 100644 index 00000000..dc9a866a --- /dev/null +++ b/seed/sensmotdire/manual/image/postinstall/sensmotdire/about.php @@ -0,0 +1,14 @@ +head(); +$content="\n\t
"; +$content.="\n\t\t

\"sensmotdire\"

"; +$content.="

sensmotdire

"; +$content.=display_about(); +$content.="\n\t\t" . display_close_button(); +$content.="\n\t
"; +$display->body($content, "about"); +print $display->close(); + diff --git a/seed/sensmotdire/manual/image/postinstall/sensmotdire/accessibility.php b/seed/sensmotdire/manual/image/postinstall/sensmotdire/accessibility.php new file mode 100644 index 00000000..3271f206 --- /dev/null +++ b/seed/sensmotdire/manual/image/postinstall/sensmotdire/accessibility.php @@ -0,0 +1,13 @@ +head(); +$content="\n\t
"; +$content.="\n\t\t

" . $title . "

"; +$content.=display_access(); +$content.="\n\t\t" . display_close_button(); +$content.="\n\t
"; +$display->body($content, "access"); +print $display->close(); + diff --git a/seed/sensmotdire/manual/image/postinstall/sensmotdire/add_browser.php b/seed/sensmotdire/manual/image/postinstall/sensmotdire/add_browser.php new file mode 100644 index 00000000..53d5bc68 --- /dev/null +++ b/seed/sensmotdire/manual/image/postinstall/sensmotdire/add_browser.php @@ -0,0 +1,15 @@ +head(); +$content="\n\t
"; +$content.="\n\t\t

$title

"; +$content.=display_add_browser(); +$content.="\n\t\t" . '

' . translate("Add sensmotdire to your browser") . '

'; +$content.="\n\t\t" . display_close_button(); +$content.="\n\t" .'
'; +$display->body($content, "addbrowser"); +print $display->close(); +?> diff --git a/seed/sensmotdire/manual/image/postinstall/sensmotdire/autosuggest.php b/seed/sensmotdire/manual/image/postinstall/sensmotdire/autosuggest.php new file mode 100644 index 00000000..2ac326c7 --- /dev/null +++ b/seed/sensmotdire/manual/image/postinstall/sensmotdire/autosuggest.php @@ -0,0 +1,76 @@ +execRequest("SELECT infinitif FROM `verbsfr` WHERE `infinitif` REGEXP \"^" . $input . "\" LIMIT 0 , $limit"); + header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past + header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // always modified + header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 + header ("Pragma: no-cache"); // HTTP/1.0 + header("Content-Type: application/json; charset=UTF-8"); + + if (isset($firefox)) + echo "[\"$input_orig\", ["; + else + echo "{ \"results\": ["; + $id=1; + $arr=array(); + while ($row = $search->nextResult()) + { + if (isset($firefox)) + $arr[]= " \"" . $old . $row['infinitif'] . "\" "; + else + $arr[]= "{ \"id\": \"$id\", \"value\": \"" . $old . $row['infinitif'] . "\", \"info\": \"\" }"; + $id++; + } + echo implode(", ", $arr); + $search->close(); + if (isset($firefox)) + echo "] ]"; + else + echo "] }"; + } +?> diff --git a/seed/sensmotdire/manual/image/postinstall/sensmotdire/css/sensmotdire.css b/seed/sensmotdire/manual/image/postinstall/sensmotdire/css/sensmotdire.css new file mode 100644 index 00000000..a58bf470 --- /dev/null +++ b/seed/sensmotdire/manual/image/postinstall/sensmotdire/css/sensmotdire.css @@ -0,0 +1,394 @@ +body { + font-family: 'Lucida Grande', Verdana, Geneva, Lucida, Arial, Helvetica, sans-serif; + font-size: 12px; + position: relative; + margin: 0px; +} +#index { + background: white url(../images/sensmotdire-background.png) no-repeat right top; +} +#about { + text-align: center; +} +#addbrowser { + background: white url(../images/sensmotdire-background.png) no-repeat center center; +} +h1 { + padding: 1em; + clear: right; + color: #448; +} +.error { + clear: both; + text-align: center; + color: red; + font-weight: bold; + margin-bottom: 2em; +} +.wiktionary, .verbiste { + border: 1px dotted #778; + padding: .5em; + clear: both; + margin-bottom: 1em; +} + +span.combined { + color: #448; +} +strong { + color: #F00; +} +strong span.combined { + color: #F55; +} +#menu { + border-bottom: 1px dotted #778; + border-left: 1px dotted #778; + font-size: 8px; + margin: 0px; + float: right; + text-align: right; +} +p.report { + text-align: center; + background-color: #DDE; + border: 1px dotted #778; + padding: .5px; +} +#menu ul li { + padding-left: 1em; + display: inline; +} + +#menu ul li a:hover, #menu ul li a:link, #menu ul li a:visited { + color: #448; + font-weight: bold; +} +#addbrowser h2 { + color: #636363; +} +#addbrowser p { + margin-left: 3em; +} +#paddbrowser { + font-weight:bold; + text-align: center; +} +#pclose { + text-align: center; + margin-bottom: 2em; +} +div.suggest { + clear: left; +} +form { + margin: 0px; +} +fieldset { + margin: 1em; + border: 1px dotted #778; + padding: 1em; +} +a.hidden img { + border: none; +} +a.hidden { + text-decoration: none; +} + +#fieldword { + float: left; +} +h1 span { + border: 1px dotted #778; + padding: .5em; +} +fieldset legend { + color: #448; + padding: .4em .5em; + border: 1px dotted #778; + font-weight: bold; + background-color:white; +} +textarea { + margin-top: 1em; +} +div.tab { + float:left; + margin-left: 1em; +} +div.tabbertab { + clear: both; + border-bottom: 1px solid #778; + border-left: 1px solid #778; + border-right: 1px solid #778; + float:left; + min-width: 640px; +} +div.mod { + margin:1px; + margin-bottom: 1em; + float:left; + display:block; + border:1px solid #B3B3B3; + background-color:white; + min-width: 10em; +} +div.tense { + float:left; + display:block; + min-width: 10em; +} +p { + margin:0px; + padding:0px; + border:0px; + padding-top:2px; +} +div.mod h3 { + margin:0px; + padding:0px; + border:0px; + background-color:#B3B3B3; + text-align: center; +} +div.mod h4 { + margin:0px; + padding:0px; + border:0px; + background-color:#E3E3E3; + text-align: center; +} +ul { + list-style: none; + padding: 5px; + border: 0px; + margin: 0px; +} +li { + width: 100%; +} +li.impaire { + background-color:#EBEBEB; +} + +/*tabber*/ +/*-------------------------------------------------- + REQUIRED to hide the non-active tab content. + But do not hide them in the print stylesheet! + --------------------------------------------------*/ +.tabberlive .tabbertabhide { + display:none; +} + +/*-------------------------------------------------- + .tabber = before the tabber interface is set up + .tabberlive = after the tabber interface is set up + --------------------------------------------------*/ +.tabberlive { + margin-top:1em; +} + +/*-------------------------------------------------- + ul.tabbernav = the tab navigation list + li.tabberactive = the active tab + --------------------------------------------------*/ +ul.tabbernav +{ + margin:0; + padding: 3px 0; + border-bottom: 1px solid #778; + font-weight: bold ; +} + +ul.tabbernav li +{ + list-style: none; + margin: 0; + display: inline; +} +ul.tabbernav li.tabberactive a +{ + background-color: #fff; + border-bottom: 1px solid #fff; +} + +ul.tabbernav li.tabberactive a:hover +{ + color: #000; + background: white; + border-bottom: 1px solid white; +} + +ul.tabbernav li a +{ + padding: 3px 0.5em; + margin-left: 3px; + border: 1px solid #778; + border-bottom: none; + background: #DDE; + text-decoration: none; +} + +ul.tabbernav li a:link, #tabbernav li a:visited { color: #448; } + +ul.tabbernav li a:hover +{ + color: #000; + background: #AAE; + border-color: #227; +} + +ul.tabbernav li.tabberactive a +{ + background-color: #fff; + border-bottom: 1px solid #fff; +} + +ul.tabbernav li.tabberactive a:hover +{ + color: #000; + background: white; + border-bottom: 1px solid white; +} + +/*-------------------------------------------------- + .tabbertab = the tab content + Add style only after the tabber interface is set up (.tabberlive) + --------------------------------------------------*/ +.tabberlive .tabbertab { + padding:5px; + border-top:0; +} + +.tabberlive .tabbertab h2 { + display:none; +} + +/* +================================================ +autosuggest, inquisitor style +================================================ +*/ + +div.autosuggest +{ + position: absolute; + background-image: url(../images/as_pointer.gif); + background-position: top; + background-repeat: no-repeat; + padding: 10px 0 0 0; +} + +div.autosuggest ul +{ + background-color: transparent; + list-style: none; + margin: -1px 0 -4px 0; + padding: 0; + overflow: hidden; + background-color: #FFF; + border: 1px dotted #778; +} + +div.autosuggest ul li +{ + color: #448; + padding: 0; + margin: 0 0 0; + text-align: left; +} + +div.autosuggest ul li a +{ + color: #448; + display: block; + text-decoration: none; + background-color: transparent; + position: relative; + padding: 0; + width: 100%; +} +div.autosuggest ul li a:hover +{ + background-color: #FFF; +} +div.autosuggest ul li.as_highlight a:hover +{ + background-color: #778; +} + +div.autosuggest ul li a span +{ + display: block; + padding: 3px 6px; + font-weight: bold; +} + +div.autosuggest ul li a span small +{ + font-weight: normal; + color: #999; +} + +div.autosuggest ul li.as_highlight a span small +{ + color: #448; +} + +div.autosuggest ul li.as_highlight a +{ + color: #fff; + background-color: #778; + background-image: url(../images/hl_corner_br.gif); + background-position: bottom right; + background-repeat: no-repeat; +} + +div.autosuggest ul li.as_highlight a span +{ + background-image: url(../images/hl_corner_bl.gif); + background-position: bottom left; + background-repeat: no-repeat; +} + +div.autosuggest ul li a .tl, +div.autosuggest ul li a .tr +{ + width: 6px; + height: 6px; + position: absolute; + top: 0; + padding: 0; + margin: 0; +} +div.autosuggest ul li a .tr +{ + right: 0; +} + +div.autosuggest ul li.as_highlight a .tl +{ + left: 0; + background-image: url(../images/hl_corner_tl.gif); + background-position: bottom left; +} + +div.autosuggest ul li.as_highlight a .tr +{ + right: 0; + background-image: url(../images/hl_corner_tr.gif); + background-position: bottom right; +} + +div.autosuggest ul li.as_warning +{ + font-weight: bold; + text-align: center; +} + +div.autosuggest ul em +{ + font-style: normal; + color: #000; +} diff --git a/seed/sensmotdire/manual/image/postinstall/sensmotdire/f0000112.html b/seed/sensmotdire/manual/image/postinstall/sensmotdire/f0000112.html new file mode 100644 index 00000000..87d3b992 --- /dev/null +++ b/seed/sensmotdire/manual/image/postinstall/sensmotdire/f0000112.html @@ -0,0 +1,53 @@ + + + sensmotdire - conjugaison francaise libre + + + + + + + + + + + + +
+
+ Verbe à conjuguer"; }; ?> + />
+

+ +
+
+ + + \ No newline at end of file diff --git a/seed/sensmotdire/manual/image/postinstall/sensmotdire/faq.php b/seed/sensmotdire/manual/image/postinstall/sensmotdire/faq.php new file mode 100644 index 00000000..f13e1464 --- /dev/null +++ b/seed/sensmotdire/manual/image/postinstall/sensmotdire/faq.php @@ -0,0 +1,13 @@ +head(); +$content="\n\t
"; +$content.="\n\t\t

$title

"; +$content.=display_faq(); +$content.="\n\t\t" . display_close_button(); +$content.="\n\t
"; +$display->body($content, "faq"); +print $display->close(); + diff --git a/seed/sensmotdire/manual/image/postinstall/sensmotdire/favicon.png b/seed/sensmotdire/manual/image/postinstall/sensmotdire/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..68b980576511faf389ba15356ee605f2ea5d348b GIT binary patch literal 727 zcmV;|0x127P)WFU8GbZ8({Xk{QrNlj4iWF>9@00KKnL_t(I%cYZDNRwd{ z$A9m;cONY)TozO_ZDI{8`p_c1&`L7Niy}(!qMJStVh}`Kh!qsrMFkNAQBW7cNGPGY zh*Uz0E;JQ~grX+-g`jiJQRR6fV*%&g{*E)Vfg`hE@*84sth$h zXbcO;zbppQk1Cg}d7@-K`iYRMn-hTItIXEBjY)4TEH}W%PcRgOSZ;YvZ0jgujv&eF z!yj+qP-czeUWNhSx=1+D;V;-kAB%sa3Xcg=hDQ&nElVrEW&mX0M5uUn8^lEu#Yzle zHlAG4hFG>R4w%$9;Pp3HN*&0)mRrCuzLJ*p0iekm1jrtNq5$c@ejP9{iS{*^0;p^T zMc{0QWoFC-U5C>XuI+*fxYdMU+u89d1+Y5==O4hfFn9|9Q_`gg3ZNwcjO7QW%}5I5 zVGTsV={;wV$5c%NMs+~@otc+iH5JQ^ZgORDt|Ns9PU_kLF3nM!N3xf_w0Hl_InUBLu T=k&vg4@D%dJQ9pyVz34PYIYFP literal 0 HcmV?d00001 diff --git a/seed/sensmotdire/manual/image/postinstall/sensmotdire/images/hl_corner_br.gif b/seed/sensmotdire/manual/image/postinstall/sensmotdire/images/hl_corner_br.gif new file mode 100644 index 0000000000000000000000000000000000000000..11debd7fec2c4fe5442211abfead3fd107d2f4c8 GIT binary patch literal 73 zcmZ?wbhEHbWMg1sSj4~}9dlO8DMuk>gORDt|Ns9PU_kLF3nM!N3xf_w0Hl_Ina_i3 T&5=VJ4?I|r6eIY>gTWdAc$pGy literal 0 HcmV?d00001 diff --git a/seed/sensmotdire/manual/image/postinstall/sensmotdire/images/hl_corner_tl.gif b/seed/sensmotdire/manual/image/postinstall/sensmotdire/images/hl_corner_tl.gif new file mode 100644 index 0000000000000000000000000000000000000000..1c2bbaf7a7430c4a574a83f2ca27bd7df5770879 GIT binary patch literal 73 zcmZ?wbhEHbWMg1sSj4~}9dlO8DMuk>gQ1!2|Ns9PU_kLF3nM!N3xf_w0Hl_Ina@Is T>DGaR5=uKiOyVeEVz34PW|RgQ1!2|Ns9PU_kLF3nM!N3xf_w0Hl_InU6#0 T@`ppVrX95hg;u09F<1itYmX4% literal 0 HcmV?d00001 diff --git a/seed/sensmotdire/manual/image/postinstall/sensmotdire/images/sensmotdire-background-widget.png b/seed/sensmotdire/manual/image/postinstall/sensmotdire/images/sensmotdire-background-widget.png new file mode 100644 index 0000000000000000000000000000000000000000..9f391e3d1b200f1da2cff6f39e089fee3ba39cbf GIT binary patch literal 4147 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 F{6Av4Rx$tp literal 0 HcmV?d00001 diff --git a/seed/sensmotdire/manual/image/postinstall/sensmotdire/images/sensmotdire-logo.png b/seed/sensmotdire/manual/image/postinstall/sensmotdire/images/sensmotdire-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..59af04ecaefad68819bf827099f2e9aa648c559d GIT binary patch literal 7067 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 Mppb(Y4+aDPI|-MLp#T5? literal 0 HcmV?d00001 diff --git a/seed/sensmotdire/manual/image/postinstall/sensmotdire/images/twisty-hidden.gif b/seed/sensmotdire/manual/image/postinstall/sensmotdire/images/twisty-hidden.gif new file mode 100644 index 0000000000000000000000000000000000000000..4282d11c0a0f38e8dca0e2e7ded7c307ff106e03 GIT binary patch literal 837 zcmV-L1G@Z2Nk%w1VF>^U0OuqC000010RaL60s{jB1Ox;H1qB8M1_uWR2nYxX2?+`c z3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH8XFrM z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7 zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}? zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5( zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= z{r&#_{{R2~A^8LW3IP8AEC2ui00{sI000Og0RIUbNKhb{f&&2{LHG{<02v4!0uWNr PA;gLc5gufSFdzUscYKW5 literal 0 HcmV?d00001 diff --git a/seed/sensmotdire/manual/image/postinstall/sensmotdire/images/widget-google-shot.jpg b/seed/sensmotdire/manual/image/postinstall/sensmotdire/images/widget-google-shot.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5f267eb6c5521c2865ba91835300704897b140d2 GIT binary patch literal 7158 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 index.html +$uri=explode("/",$_SERVER['REQUEST_URI']); +if ( $uri[count($uri)-1] == "index.php" ) +{ + header("Location: /index.html\n\n"); + exit; +} + +//is word var : stripword +if (isset($_GET['word'])) +{ + $word=stripword($_GET['word']); + if ( $word == "" ) + $wrong_char=1; +} else + $word=""; + +//check accent var +$add_accent="no"; +if (array_key_exists('accent', $_COOKIE) && $_COOKIE['accent'] == 'yes') +{ + $add_accent="yes"; +} +if ( mb_substr($word, 0, 1) == ":" ) +{ + $word = removeaccent(mb_substr($word, 1)); + $add_accent="yes"; + setcookie("accent", $add_accent, time()+3600*24*30, "/"); +} + +//title +$title = "sensmotdire - conjugaison francaise libre"; +if (($word != "") and (!isset($wrong_char))) + $title .= " de $word"; + +//class display_html +$display_html = new display_html($title); +$display_html->head(); + +//default charset : UTF-8 +mb_internal_encoding("UTF-8"); + +//menu +$content = "\n\t
"; +$content .= "\n\t\t"; +$content .= "\n\t
"; + +//search form +$content .= "\t" . '
' . "\n\t\t
" . translate("Verb to be combined") . "\n\t\t\t" . '' . "\n\t\t\t" . '' . "\n\t\t
\n\t
"; + +//if forbidden char +if (isset($wrong_char)) + $content .= "\n\t\t\t
" . translate("Only alphabetical characters, accentuated characters, apostrophe and space are accepted.") . "
" . display_suggest("error"); +else { + +//array with all the search word (remove null word) + if ($word != "") + { + $orig_word=$word; + $word_array=is_a_conjugated_verb($word, $add_accent); + $content .= "\n\t

" . translate("Conjugation to") . " $word

\n\t
\n\t\t
"; + + if ($word != "" and mb_strlen($word) < 25 ) + { + // if array $verbs with all infinitive verb exist + if (isset($word_array)) + { + $i=0; + foreach ($word_array as $verb=>$info) + { + $i++; + $display = new display($verb, $word); + $display->display_tenses($tenses, $add_accent, $info); + $return .= $display->close(); + if ($i > $NB_VERBS) + break; + } + $error_404="no"; + } else { + // if $verbs is not set + if ( $error_404 == "unknown" ) + $error_404="yes"; +// if (is_array($add_pronouns)) +// $return .= "\n\t\t\t
' . "\n\t\t\t\t

" . translate("Unknown verb") . ': ' . $word . "

\n\t\t\t\t
" . translate("Unknown verb or wrong conjugation") . ": $orig_word
"; +// else + $return .= "\n\t\t\t
' . "\n\t\t\t\t

" . translate("Unknown verb") . ': ' . $word . "

\n\t\t\t\t
" . translate("Unknown verb") . ": $word
"; + $return .= display_suggest($word); + $return .= "\n\t\t\t
"; + } + // display all + unset($verbs); + } else + $return .= "\n\t\t\t
' . "\n\t\t\t\t

" . translate("Wrong verb") . ': ' . $word . "

\n\t\t\t\t
" . translate("Your demand is too long") . ": $orig_word
"; + } +} + +if (isset($return)) + $return .= "\n\t\t
\n\t
"; +else + $return = ""; + +if ($error_404 == "yes") + header("HTTP/1.1 404 Not Found"); + +$display_html->body($content . $return, "index"); +print $display_html->close(); diff --git a/seed/sensmotdire/manual/image/postinstall/sensmotdire/js/.htaccess b/seed/sensmotdire/manual/image/postinstall/sensmotdire/js/.htaccess new file mode 100644 index 00000000..bfa4fa51 --- /dev/null +++ b/seed/sensmotdire/manual/image/postinstall/sensmotdire/js/.htaccess @@ -0,0 +1,4 @@ + + ForceType application/x-httpd-php + + diff --git a/seed/sensmotdire/manual/image/postinstall/sensmotdire/js/.htaccess.swp b/seed/sensmotdire/manual/image/postinstall/sensmotdire/js/.htaccess.swp new file mode 100644 index 0000000000000000000000000000000000000000..e87ef0652b88e824fd83cc625935548b091e8e70 GIT binary patch literal 12288 zcmeI&F-yZh6u|LUaTP_u#U;i$N!5Z5rGrDkp<8tn;`KBsF*$k{s37`r)XmM0;NtA= zH!;D8;!vUBQ20MM9>>djB){#roVQPp2i`&0kt)_io?c#uN1Gja+Y-6V%efBxxZj?@RWK*Z3v5msS#Y$;w|Cm7;0R-j{DBVSHxFY*|yY0Gr z$KUog)=%abL<<54Ab)BK)vE9Rzs~>f)&99!k4^2qt`i6#fB*srAbthis.nInputChars && this.aSuggestions.length && this.oP.cache) + { + var arr = []; + for (var i=0;i" + val.substring(st, st+this.sInput.length) + "" + val.substring(st+this.sInput.length); + + var span = _bsn.DOM.createElement("span", {}, output, true); + if (arr[i].info != "") + { + var br = _bsn.DOM.createElement("br", {}); + span.appendChild(br); + var small = _bsn.DOM.createElement("small", {}, arr[i].info); + span.appendChild(small); + } + + var a = _bsn.DOM.createElement("a", { href:"#" }); + + var tl = _bsn.DOM.createElement("span", {className:"tl"}, " "); + var tr = _bsn.DOM.createElement("span", {className:"tr"}, " "); + a.appendChild(tl); + a.appendChild(tr); + + a.appendChild(span); + + a.name = i+1; + a.onclick = function () { pointer.setHighlightedValue(); return false; } + a.onmouseover = function () { pointer.setHighlight(this.name); } + + var li = _bsn.DOM.createElement( "li", {}, a ); + + ul.appendChild( li ); + } + + // no results + // + if (arr.length == 0) + { + var li = _bsn.DOM.createElement( "li", {className:"as_warning"}, this.oP.noresults ); + + ul.appendChild( li ); + } + + div.appendChild( ul ); + + var fcorner = _bsn.DOM.createElement("div", {className:"as_corner"}); + var fbar = _bsn.DOM.createElement("div", {className:"as_bar"}); + var footer = _bsn.DOM.createElement("div", {className:"as_footer"}); + footer.appendChild(fcorner); + footer.appendChild(fbar); + div.appendChild(footer); + + // get position of target textfield + // position holding div below it + // set width of holding div to width of field + // + var pos = _bsn.DOM.getPos(this.fld); + + div.style.left = pos.x + "px"; + div.style.top = ( pos.y + this.fld.offsetHeight + this.oP.offsety ) + "px"; + div.style.width = this.fld.offsetWidth + "px"; + + // set mouseover functions for div + // when mouse pointer leaves div, set a timeout to remove the list after an interval + // when mouse enters div, kill the timeout so the list won't be removed + // + div.onmouseover = function(){ pointer.killTimeout() } + div.onmouseout = function(){ pointer.resetTimeout() } + + // add DIV to document + // + document.getElementsByTagName("body")[0].appendChild(div); + + // currently no item is highlighted + // + this.iHighlighted = 0; + + // remove list after an interval + // + var pointer = this; + this.toID = setTimeout(function () { pointer.clearSuggestions() }, this.oP.timeout); +} + +_bsn.AutoSuggest.prototype.changeHighlight = function(key) +{ + var list = _bsn.DOM.getElement("as_ul"); + if (!list) + return false; + + var n; + + if (key == 40) + n = this.iHighlighted + 1; + else if (key == 38) + n = this.iHighlighted - 1; + + if (n > list.childNodes.length) + n = list.childNodes.length; + if (n < 1) + n = 1; + + this.setHighlight(n); +} + + + +_bsn.AutoSuggest.prototype.setHighlight = function(n) +{ + var list = _bsn.DOM.getElement("as_ul"); + if (!list) + return false; + + if (this.iHighlighted > 0) + this.clearHighlight(); + + this.iHighlighted = Number(n); + + list.childNodes[this.iHighlighted-1].className = "as_highlight"; + + this.killTimeout(); +} + + +_bsn.AutoSuggest.prototype.clearHighlight = function() +{ + var list = _bsn.DOM.getElement("as_ul"); + if (!list) + return false; + + if (this.iHighlighted > 0) + { + list.childNodes[this.iHighlighted-1].className = ""; + this.iHighlighted = 0; + } +} + + +_bsn.AutoSuggest.prototype.setHighlightedValue = function () +{ + if (this.iHighlighted) + { + this.sInput = this.fld.value = this.aSuggestions[ this.iHighlighted-1 ].value; + + // move cursor to end of input (safari) + // + this.fld.focus(); + if (this.fld.selectionStart) + this.fld.setSelectionRange(this.sInput.length, this.sInput.length); + + this.clearSuggestions(); + + // pass selected object to callback function, if exists + // + if (typeof(this.oP.callback) == "function") + this.oP.callback( this.aSuggestions[this.iHighlighted-1] ); + } else { + if (document.getElementById('conjuguer')) { + //document.formword.submit(); + document.getElementById('conjuguer').click(); + } + } +} + +_bsn.AutoSuggest.prototype.killTimeout = function() +{ + clearTimeout(this.toID); +} + +_bsn.AutoSuggest.prototype.resetTimeout = function() +{ + clearTimeout(this.toID); + var pointer = this; + this.toID = setTimeout(function () { pointer.clearSuggestions() }, 1000); +} + +_bsn.AutoSuggest.prototype.clearSuggestions = function () +{ + + this.killTimeout(); + + var ele = _bsn.DOM.getElement(this.idAs); + var pointer = this; + if (ele) + { + var fade = new _bsn.Fader(ele,1,0,250,function () { _bsn.DOM.removeElement(pointer.idAs) }); + } + this.clearHighlight(); +} + +// AJAX PROTOTYPE _____________________________________________ + +if (typeof(_bsn.Ajax) == "undefined") + _bsn.Ajax = {} + +_bsn.Ajax = function () +{ + this.req = {}; + this.isIE = false; +} + +_bsn.Ajax.prototype.makeRequest = function (url, meth, onComp, onErr) +{ + + if (meth != "POST") + meth = "GET"; + + this.onComplete = onComp; + this.onError = onErr; + + var pointer = this; + + // branch for native XMLHttpRequest object + if (window.XMLHttpRequest) + { + this.req = new XMLHttpRequest(); + this.req.onreadystatechange = function () { pointer.processReqChange() }; + this.req.open("GET", url, true); // + this.req.send(null); + // branch for IE/Windows ActiveX version + } + else if (window.ActiveXObject) + { + this.req = new ActiveXObject("Microsoft.XMLHTTP"); + if (this.req) + { + this.req.onreadystatechange = function () { pointer.processReqChange() }; + this.req.open(meth, url, true); + this.req.send(); + } + } +} + + +_bsn.Ajax.prototype.processReqChange = function() +{ + + // only if req shows "loaded" + if (this.req.readyState == 4) { + // only if "OK" + if (this.req.status == 200) + { + this.onComplete( this.req ); + } else { + this.onError( this.req.status ); + } + } +} + +// DOM PROTOTYPE _____________________________________________ + +if (typeof(_bsn.DOM) == "undefined") + _bsn.DOM = {} + +_bsn.DOM.createElement = function ( type, attr, cont, html ) +{ + var ne = document.createElement( type ); + if (!ne) + return false; + + for (var a in attr) + ne[a] = attr[a]; + + if (typeof(cont) == "string" && !html) + ne.appendChild( document.createTextNode(cont) ); + else if (typeof(cont) == "string" && html) + ne.innerHTML = cont; + else if (typeof(cont) == "object") + ne.appendChild( cont ); + + return ne; +} + +_bsn.DOM.clearElement = function ( id ) +{ + var ele = this.getElement( id ); + + if (!ele) + return false; + + while (ele.childNodes.length) + ele.removeChild( ele.childNodes[0] ); + + return true; +} + +_bsn.DOM.removeElement = function ( ele ) +{ + var e = this.getElement(ele); + + if (!e) + return false; + else if (e.parentNode.removeChild(e)) + return true; + else + return false; +} + +_bsn.DOM.replaceContent = function ( id, cont, html ) +{ + var ele = this.getElement( id ); + + if (!ele) + return false; + + this.clearElement( ele ); + + if (typeof(cont) == "string" && !html) + ele.appendChild( document.createTextNode(cont) ); + else if (typeof(cont) == "string" && html) + ele.innerHTML = cont; + else if (typeof(cont) == "object") + ele.appendChild( cont ); +} + +_bsn.DOM.getElement = function ( ele ) +{ + if (typeof(ele) == "undefined") + { + return false; + } + else if (typeof(ele) == "string") + { + var re = document.getElementById( ele ); + if (!re) + return false; + else if (typeof(re.appendChild) != "undefined" ) { + return re; + } else { + return false; + } + } + else if (typeof(ele.appendChild) != "undefined") + return ele; + else + return false; +} + +_bsn.DOM.appendChildren = function ( id, arr ) +{ + var ele = this.getElement( id ); + + if (!ele) + return false; + + + if (typeof(arr) != "object") + return false; + + for (var i=0;i + +/* Optional: Temporarily hide the "tabber" class so it does not "flash" + on the page as plain HTML. After tabber runs, the class is changed + to "tabberlive" and it will appear. */ + +document.write('