s4
changeset 739:c892a3633baa feature-annex
Annex-test: sessdb = main-sessdb
author | HIROSE Yuuji <yuuji@gentei.org> |
---|---|
date | Thu, 04 Jun 2020 20:31:25 +0900 |
parents | d78944aa1cd2 |
children | f2c7117f452e |
files | examples/common/default/default.css examples/common/default/html.m4.html s4-annex.sh s4-funcs.sh |
diffstat | 4 files changed, 63 insertions(+), 25 deletions(-) [+] |
line diff
1.1 --- a/examples/common/default/default.css Thu Jun 04 07:38:18 2020 +0900 1.2 +++ b/examples/common/default/default.css Thu Jun 04 20:31:25 2020 +0900 1.3 @@ -331,6 +331,20 @@ 1.4 input[type="reset"] {margin-left: 4em;} 1.5 1.6 /* 1.7 + * Annex 1.8 + */ 1.9 +li.casmenu div {display: none; position: relative; width: 10%; 1.10 + min-width: 80%; margin-right: 0;} 1.11 +li.casmenu div table { 1.12 + background: white; position: absolute; top: 0em; border: 3px solid navy; 1.13 +} 1.14 +li.casmenu:hover div, li.casmenu:active div, 1.15 +li.casmenu div:hover, li.casmenu div:active 1.16 +{display: block;} 1.17 + 1.18 + 1.19 + 1.20 +/* 1.21 * PR Web 1.22 */ 1.23 body.pr {font-size: 200%;}
2.1 --- a/examples/common/default/html.m4.html Thu Jun 04 07:38:18 2020 +0900 2.2 +++ b/examples/common/default/html.m4.html Thu Jun 04 20:31:25 2020 +0900 2.3 @@ -18,8 +18,8 @@ 2.4 <body class="_BODYCLASS_"> 2.5 <div class="topmenu"> 2.6 <ul> 2.7 - <li><a href="?home" accesskey="1" title="Shortcut: 1 2.8 -Home">ホーム</a></li> 2.9 + <li class="casmenu"><a href="?home" accesskey="1" title="Shortcut: 1 2.10 +Home">ホーム</a>_S4ANNEXES_</li> 2.11 <!-- <li><a href="?blog">話題作成</a></li> --> 2.12 <li><a href="?mems" accesskey="2" title="Shortcut: 2 2.13 Members">参加者一覧</a></li>
3.1 --- a/s4-annex.sh Thu Jun 04 07:38:18 2020 +0900 3.2 +++ b/s4-annex.sh Thu Jun 04 20:31:25 2020 +0900 3.3 @@ -7,7 +7,12 @@ 3.4 return # Points to the same file 3.5 fi 3.6 3.7 -skey="skey-`basename $mydir`" 3.8 +# Now S4ANNEX mode is ACTIVE 3.9 +S4ANNEXNAME=`dirname $mydir` 3.10 +sessdb=`dirname $S4MASTERDB`/sess.sq3 3.11 +S4ANNEXES="<div><table><tr><th><a 3.12 + href=\"$S4MASTERURL\">本館</a></th></tr></table><div>" 3.13 +## skey="skey-`basename $mydir`" 3.14 syncflag=$dbdir/usersynced 3.15 userupdateflag=`dirname $S4MASTERDB`/`basename $userupdateflag` 3.16 test ! -e "$userupdateflag" && return 3.17 @@ -21,16 +26,10 @@ 3.18 # then update 3.19 # 3.20 3.21 -judgeequal() { 3.22 - read num 3.23 - test $num -eq 0 && touch $syncflag 3.24 - return $num 3.25 -} 3.26 - 3.27 ## sqlite3 -cmd '.timer 1' -cmd '.echo 1' $db <<EOF 3.28 err "Starting account synchronization" 3.29 err "db=$db mas=$S4MASTERDB sess=$sessdb" 3.30 -sqlite3 -bail -cmd 'PRAGMA FOREIGN_KEYS=on' $db <<EOF | judgeequal 3.31 +num=$(sqlite3 -bail -cmd 'PRAGMA FOREIGN_KEYS=on' $db <<EOF 3.32 ATTACH DATABASE "$S4MASTERDB" AS m; 3.33 CREATE TABLE IF NOT EXISTS user(name, primary key(name)); 3.34 BEGIN; 3.35 @@ -68,4 +67,8 @@ 3.36 -- SELECT rowid,* FROM user WHERE rowid NOT IN (SELECT rowid FROM m.user); 3.37 DETACH DATABASE m; 3.38 EOF 3.39 -err Done 3.40 +) 3.41 +if [ $num -eq 0 ]; then 3.42 + touch $syncflag 3.43 +fi 3.44 +return $num
4.1 --- a/s4-funcs.sh Thu Jun 04 07:38:18 2020 +0900 4.2 +++ b/s4-funcs.sh Thu Jun 04 20:31:25 2020 +0900 4.3 @@ -16,7 +16,6 @@ 4.4 searchlog=${SEARCHLOG:-$tmpdir/search.log} 4.5 db=${DB:-$dbdir/cgi.sq3} 4.6 sessdb=$dbdir/sess.sq3 4.7 -skey='skey' # Changed in s4-annex, if ANNEX mode 4.8 userupdateflag=$dbdir/userupdate 4.9 sesstb=tmp.sess 4.10 workdb=$dbdir/tmpdata.sq3 4.11 @@ -72,16 +71,30 @@ 4.12 err() { 4.13 echo "[`date +%F-%T%z`] $@" 1>&3 4.14 } 4.15 -# If S4MASTERDB is set, behave as ANNEX s4 4.16 -if [ -n "$S4MASTERDB" -a -s "$S4MASTERDB" ]; then 4.17 - . ./s4-annex.sh 2>> tmp/debug.out 4.18 -fi 4.19 - 4.20 - 4.21 case "$HTTP_USER_AGENT" in 4.22 *i[Pp]hone*|*[Aa]ndroid*) touchpanel=1 ;; 4.23 *) touchpanel="" ;; 4.24 esac 4.25 + 4.26 +# If S4MASTERDB is set, behave as ANNEX s4 4.27 +if [ -n "$S4MASTERDB" -a -s "$S4MASTERDB" ]; then 4.28 + # $S4ANNEX is set after s4-annex setup 4.29 + . ./s4-annex.sh 2>> tmp/debug.out 4.30 + err S4ANNEXES="$S4ANNEXES" S4ANNEXNAME=$S4ANNEXNAME 4.31 +elif [ -n "$S4ANNEXES" ]; then 4.32 + # Master Site mode, which has annexes 4.33 + v="" 4.34 + for i in $S4ANNEXES; do 4.35 + _aname=${i%:*}; _apath=${i##*:} 4.36 + v=${v}"<tr><td>⇒ <a href=\"$_apath\">$_aname</a></td></tr>$nl" 4.37 + done 4.38 + if [ -n "$v" ]; then 4.39 + i="<tr><th title=\"Annex\">別館</a></th></tr>$nl" 4.40 + S4ANNEXES="${touchpanel:+ : ▼}<div><table>$i$v</table></div>" 4.41 + fi 4.42 +fi 4.43 + 4.44 + 4.45 [ -f ./s4-cgi.sh ] && . ./s4-cgi.sh 4.46 4.47 : <<EOF 4.48 @@ -436,7 +449,8 @@ 4.49 } 4.50 _m4() { 4.51 #S4NAME=f,f,f 4.52 - m4 ${S4NAME:+"-D_S4NAME_=${S4NAME}"} ${S4CSS:+-D_S4CSS_="$S4CSS"} "$@" 4.53 + m4 ${S4NAME:+"-D_S4NAME_=${S4NAME}"} ${S4CSS:+-D_S4CSS_="$S4CSS"} \ 4.54 + -D_S4ANNEXES_="${S4ANNEXES}" "$@" 4.55 } 4.56 ismember() { 4.57 # $1=user, $2=group 4.58 @@ -1214,9 +1228,10 @@ 4.59 for kv in `echo $HTTP_COOKIE|sed 's/[;, ]/ /g'`; do 4.60 k="${kv%%=*}" 4.61 v="`echo ${kv#*=}|nkf -Ww -mQ|sed -e 's/\"/\"\"/g'`" 4.62 +err "GetCookie: $k=[$v]" 4.63 case "$k" in 4.64 user) _user="$v" ;; 4.65 - $skey) _skey="$v" ;; 4.66 + skey) _skey="$v"; k=skey ;; 4.67 esac 4.68 query "replace into cookie values('$session', '$k', 'string', \"$v\");" 4.69 done 4.70 @@ -1341,7 +1356,7 @@ 4.71 newpswd=`genrandom` # newsalt=`genrandom 5` 4.72 #encpswd=`mycrypt "$newpswd" "$newsalt"` 4.73 encpswd=`echo $newpswd|mypwhash` 4.74 - dbsetbyid user $user pswd "$encpswd" 4.75 + dbsetbyid user $user pswd "$encpswd" && touch $userupdateflag 4.76 # Avoid $user substitution with m4, because $url comes from user input. 4.77 _m4 -D_PSWD_="$newpswd" -D_URL_="$url" -D_ADMIN_="$admin" \ 4.78 $msgdir/mail-newaccount.m4 \ 4.79 @@ -1376,8 +1391,8 @@ 4.80 newsession=`genrandom 34` 4.81 if setskey "$user" "$newsession" && 4.82 dbsetbyid user "$user" login "`date '+%F %T'`"; then 4.83 - err gencookie "user=$user" "$skey=$newsession" 4.84 - gencookie "user=$user" "$skey=$newsession" 4.85 + # err gencookie "user=$user" "skey=$newsession" 4.86 + gencookie "user=$user" "skey=$newsession" 4.87 return 0 4.88 else 4.89 return 4 # Heavy load?? 4.90 @@ -2061,8 +2076,14 @@ 4.91 cond="gname in (select gname from grp_mem where user='$uname')" 4.92 search_form_args="" 4.93 if [ x"$user" = x"$uname" ]; then 4.94 - usermenu="<a href=\"?userconf\" accesskey=\"e\" 4.95 - title=\"Shortcut: E${nl}Edit Profile\">プロフィールの編集</a> / 4.96 + if [ -z "$S4ANNEXNAME" ]; then 4.97 + usermenu="<a href=\"?userconf\" accesskey=\"e\" 4.98 + title=\"Shortcut: E${nl}Edit Profile\">プロフィールの編集</a> / " 4.99 + elif [ -n "$S4MASTERURL" ]; then 4.100 + usermenu="<a href=\"$S4MASTERURL\" accesskey=\"e\" 4.101 + title=\"Shortcut: E${nl}Main Site\">本館</a> / " 4.102 + fi 4.103 + usermenu="$usermenu 4.104 <a href=\"?blog\" accesskey=\"n\" title=\"Shortcut: N${nl}New blog\">新規話題の作成</a>" 4.105 # Display folders 4.106 sql="select count(id) from article_m where id