s4

changeset 755:1a8291d7fa3d feature-world

Annex strategy shifted to World strategy
author HIROSE Yuuji <yuuji@gentei.org>
date Sat, 06 Jun 2020 11:21:01 +0900
parents 5bab8644024a
children a4523e15dfd6
files examples/common/default/default.css examples/common/default/html.m4.html s4-annex.sh s4-funcs.sh
diffstat 4 files changed, 42 insertions(+), 28 deletions(-) [+]
line diff
     1.1 --- a/examples/common/default/default.css	Thu Jun 04 20:31:25 2020 +0900
     1.2 +++ b/examples/common/default/default.css	Sat Jun 06 11:21:01 2020 +0900
     1.3 @@ -331,13 +331,15 @@
     1.4  input[type="reset"] {margin-left: 4em;}
     1.5  
     1.6  /*
     1.7 - * Annex
     1.8 + * World List
     1.9   */
    1.10 -li.casmenu div {display: none; position: relative; width: 10%;
    1.11 +li.casmenu div {display: none; position: relative; width: 200%;
    1.12  		min-width: 80%; margin-right: 0;}
    1.13  li.casmenu div table {
    1.14      background: white; position: absolute; top: 0em; border: 3px solid navy;
    1.15 +    max-width: 100%;
    1.16  }
    1.17 +li.casmenu div table td {text-align: left; padding: 0.5ex 1em;}
    1.18  li.casmenu:hover div, li.casmenu:active div,
    1.19  li.casmenu div:hover, li.casmenu div:active
    1.20  {display: block;}
     2.1 --- a/examples/common/default/html.m4.html	Thu Jun 04 20:31:25 2020 +0900
     2.2 +++ b/examples/common/default/html.m4.html	Sat Jun 06 11:21:01 2020 +0900
     2.3 @@ -19,7 +19,7 @@
     2.4  <div class="topmenu">
     2.5  <ul>
     2.6   <li class="casmenu"><a href="?home" accesskey="1" title="Shortcut: 1
     2.7 -Home">ホーム</a>_S4ANNEXES_</li>
     2.8 +Home">ホーム</a>_S4WORLDS_</li>
     2.9   <!-- <li><a href="?blog">話題作成</a></li> -->
    2.10   <li><a href="?mems" accesskey="2" title="Shortcut: 2
    2.11  Members">参加者一覧</a></li>
     3.1 --- a/s4-annex.sh	Thu Jun 04 20:31:25 2020 +0900
     3.2 +++ b/s4-annex.sh	Sat Jun 06 11:21:01 2020 +0900
     3.3 @@ -8,16 +8,14 @@
     3.4  fi
     3.5  
     3.6  # Now S4ANNEX mode is ACTIVE
     3.7 -S4ANNEXNAME=`dirname $mydir`
     3.8 -sessdb=`dirname $S4MASTERDB`/sess.sq3
     3.9 -S4ANNEXES="<div><table><tr><th><a
    3.10 -	 href=\"$S4MASTERURL\">本館</a></th></tr></table><div>"
    3.11 +# sessdb=`dirname $S4MASTERDB`/sess.sq3
    3.12  ## skey="skey-`basename $mydir`"
    3.13 -syncflag=$dbdir/usersynced
    3.14 +S4NAME="[$S4WORLD]$S4NAME"
    3.15 +syncflag=${db%.*}.synctime
    3.16  userupdateflag=`dirname $S4MASTERDB`/`basename $userupdateflag`
    3.17  test ! -e "$userupdateflag"		&& return
    3.18  test "$syncflag" -nt "$userupdateflag"	&& return
    3.19 -    
    3.20 +
    3.21  #  for sub.sq3
    3.22  # 
    3.23  #  main: user: 'taro', 'hanako', 'shige'
    3.24 @@ -28,7 +26,7 @@
    3.25  
    3.26  ## sqlite3 -cmd '.timer 1' -cmd '.echo 1' $db <<EOF
    3.27  err "Starting account synchronization"
    3.28 -err "db=$db mas=$S4MASTERDB sess=$sessdb"
    3.29 +err "db=$db mas=$S4MASTERDB sessdb=$sessdb"
    3.30  num=$(sqlite3 -bail -cmd 'PRAGMA FOREIGN_KEYS=on' $db <<EOF
    3.31  ATTACH DATABASE "$S4MASTERDB" AS m;
    3.32  CREATE TABLE IF NOT EXISTS user(name, primary key(name));
    3.33 @@ -38,11 +36,11 @@
    3.34         SELECT rowid, name FROM m.user
    3.35         WHERE m.user.rowid NOT IN (SELECT rowid FROM user);
    3.36  UPDATE user SET name = (SELECT name FROM m.user WHERE main.user.rowid=m.user.rowid);
    3.37 -DELETE FROM main.user_s;
    3.38 -INSERT INTO main.user_s(rowid, name, key, type, val, bin)
    3.39 +DELETE FROM main.user_s WHERE rowid NOT IN (SELECT rowid FROM m.user_s);
    3.40 +REPLACE INTO main.user_s(rowid, name, key, type, val, bin)
    3.41  	SELECT rowid,* FROM m.user_s;
    3.42 -DELETE FROM main.user_m;
    3.43 -INSERT INTO main.user_m(rowid, name, key, type, val, bin)
    3.44 +DELETE FROM main.user_m WHERE rowid NOT IN (SELECT rowid FROM m.user_m);
    3.45 +REPLACE INTO main.user_m(rowid, name, key, type, val, bin)
    3.46  	SELECT rowid,* FROM m.user_m
    3.47  	WHERE key NOT LIKE '%cache%';
    3.48  END;
     4.1 --- a/s4-funcs.sh	Thu Jun 04 20:31:25 2020 +0900
     4.2 +++ b/s4-funcs.sh	Sat Jun 06 11:21:01 2020 +0900
     4.3 @@ -2,7 +2,20 @@
     4.4  # Here's global variable table.  Do not use this names.
     4.5  # $HGid$
     4.6  
     4.7 +
     4.8 +case "$0" in
     4.9 +  *-world-*)
    4.10 +    S4WORLD=${0#*world-}
    4.11 +    S4WORLD=${S4WORLD%.*}
    4.12 +    echo S4WORLD=$S4WORLD >&2
    4.13 +    worldconf=s4-config-${S4WORLD}.sh
    4.14 +    ;;
    4.15 +esac
    4.16 +
    4.17 +echo worldconf=$worldconf >&2
    4.18  [ -f s4-config.sh ] && . ./s4-config.sh
    4.19 +[ -n "$worldconf" -a -e "$worldconf" ] && . ./$worldconf
    4.20 +echo DB=$DB >&2
    4.21  
    4.22  myname=`basename ${SCRIPT_NAME:-$0}`
    4.23  mydir=`dirname ${SCRIPT_FILENAME:-$0}`
    4.24 @@ -78,18 +91,19 @@
    4.25  if [ -n "$S4MASTERDB" -a -s "$S4MASTERDB" ]; then
    4.26    # $S4ANNEX is set after s4-annex setup
    4.27    . ./s4-annex.sh 2>> tmp/debug.out
    4.28 -  err S4ANNEXES="$S4ANNEXES" S4ANNEXNAME=$S4ANNEXNAME
    4.29 -elif [ -n "$S4ANNEXES" ]; then
    4.30 -  # Master Site mode, which has annexes
    4.31 -  v=""
    4.32 -  for i in $S4ANNEXES; do
    4.33 -    _aname=${i%:*}; _apath=${i##*:}
    4.34 -    v=${v}"<tr><td>&rArr; <a href=\"$_apath\">$_aname</a></td></tr>$nl"
    4.35 -  done
    4.36 -  if [ -n "$v" ]; then
    4.37 -    i="<tr><th title=\"Annex\">別館</a></th></tr>$nl"
    4.38 -    S4ANNEXES="${touchpanel:+ : ▼}<div><table>$i$v</table></div>"
    4.39 +fi
    4.40 +v=""
    4.41 +for i in $S4WORLDS; do
    4.42 +  _aname=${i%:*}; _apath=${i##*:}
    4.43 +  v=${v}"<tr><td>&rArr; <a href=\"$_apath\">$_aname</a></td></tr>$nl"
    4.44 +done
    4.45 +if [ -n "$v" ]; then
    4.46 +  err S4MASTERURL=$S4MASTERURL
    4.47 +  i="<tr><th>World List</th></tr>$nl"
    4.48 +  if [ -n "$S4MASTERURL" ]; then
    4.49 +    i="$i<tr><td>&rArr; <a href=\"$S4MASTERURL\">Base</a></td></tr>$nl"
    4.50    fi
    4.51 +  S4WORLDS="${touchpanel:+ : ▼}<div><table>$i$v</table></div>"
    4.52  fi
    4.53  
    4.54  
    4.55 @@ -448,7 +462,7 @@
    4.56  _m4() {
    4.57    #S4NAME=f,f,f
    4.58    m4 ${S4NAME:+"-D_S4NAME_=${S4NAME}"} ${S4CSS:+-D_S4CSS_="$S4CSS"} \
    4.59 -     -D_S4ANNEXES_="${S4ANNEXES}" "$@"
    4.60 +     -D_S4WORLDS_="${S4WORLDS}" "$@"
    4.61  }
    4.62  ismember() {
    4.63    # $1=user, $2=group
    4.64 @@ -2073,12 +2087,12 @@
    4.65    cond="gname in (select gname from grp_mem where user='$uname')"
    4.66    search_form_args=""
    4.67    if [ x"$user" = x"$uname" ]; then
    4.68 -    if [ -z "$S4ANNEXNAME" ]; then
    4.69 +    if [ -z "$S4MASTERDB" ]; then
    4.70        usermenu="<a href=\"?userconf\" accesskey=\"e\"
    4.71  	 title=\"Shortcut: E${nl}Edit Profile\">プロフィールの編集</a> / "
    4.72      elif [ -n "$S4MASTERURL" ]; then
    4.73        usermenu="<a href=\"$S4MASTERURL\" accesskey=\"e\"
    4.74 -	 title=\"Shortcut: E${nl}Main Site\">本館</a> / "
    4.75 +	 title=\"Shortcut: E${nl}Main Site\">Base World</a> / "
    4.76      fi
    4.77      usermenu="$usermenu
    4.78  	<a href=\"?blog\" accesskey=\"n\" title=\"Shortcut: N${nl}New blog\">新規話題の作成</a>"