s4
changeset 83:815840076efa
Directory structure refreshed
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/.htaccess Mon Aug 03 12:16:06 2015 +0900 1.3 @@ -0,0 +1,7 @@ 1.4 +Options +ExecCGI +FollowSymLinks 1.5 +AddType "text/html; charset=utf-8" .cgi .html 1.6 +AddHandler cgi-script .cgi 1.7 +<FilesMatch "^(.*\.sh|scripts)"> 1.8 + Order Deny,Allow 1.9 + Deny from all 1.10 +</FilesMatch>
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/examples/common/default/default.css Mon Aug 03 12:16:06 2015 +0900 2.3 @@ -0,0 +1,108 @@ 2.4 +/* 2.5 + * Default CSS definitions 2.6 + */ 2.7 +body {background: #eff;} 2.8 +hr {clear: both;} 2.9 +div.topmenu { 2.10 + margin: 0; padding: 0; width: 100%; height: 2em; 2.11 +} 2.12 +div.topmenu ul {width: 100%; position: fixed; margin: 0; 2.13 + margin: 0 auto;} 2.14 +div.topmenu ul li { 2.15 + float: left; width: 18%; 2.16 + background: rgba(68,255,102,0.8); border: #3e5 2px groove; margin: 0; 2.17 + text-align: center; font-size: 80%; list-style: none; 2.18 + box-shadow: #242 2px 3px 5px; 2.19 + text-shadow: #fff 0px 0px 10px; 2.20 +} 2.21 +div.topmenu ul li:hover {background: #8fa;} 2.22 +div.topmenu ul a {text-decoration: none;} 2.23 + 2.24 +ldiv.topmenu + h1 {clear: both; margin-top: 3em;} 2.25 + 2.26 +div.dumptable {max-height: 15em; overflow: auto;} 2.27 + 2.28 +td {padding-left: 0.5ex; padding-right: 0.5ex;} 2.29 +table.td2r td:nth-child(2) {text-align: right;} 2.30 +table.td3r td:nth-child(3) {text-align: right;} 2.31 +table.form, table.b, table.b tr, table.b td, table.b th { 2.32 + border: 1px solid black; border-collapse: collapse; 2.33 +} 2.34 +td.warn {background: #fcc;} 2.35 +input[type="checkbox"][name="rm"]:checked ~ table {background: red;} 2.36 +input[type="checkbox"][name="rm"] ~ span {display: none;} 2.37 +input[type="checkbox"][name="rm"]:checked ~ span {display: inline;} 2.38 + 2.39 +input[type="radio"][value="replace"] + input.replace[type="file"] { 2.40 + visibility: hidden;} 2.41 +input[type="radio"][value="replace"]:checked + input.replace[type="file"] { 2.42 + visibility: visible; 2.43 +} 2.44 + 2.45 +/* keep/edit/rm action selector */ 2.46 +input.action ~ input:not(.action), input.action ~ textarea { 2.47 + display: none; 2.48 +} 2.49 +input.action[value="edit"]:checked ~ input {display: inline;} 2.50 +input.action[value="edit"]:checked ~ textarea {display: block;} 2.51 +input.action[value="edit"]:checked ~ span {display: none;} 2.52 +input.action[value="rm"]:checked ~ span {background: red;} 2.53 +label.confirm {display: none;} 2.54 +input.action[value="rm"]:checked ~ label.confirm { 2.55 + display: inline; 2.56 +} 2.57 + 2.58 +form.replyblog {margin-bottom: 40%;} 2.59 +div.blogcomment { 2.60 + position: fixed; bottom: 0; left: 0; 2.61 + z-index: 2; background-color: rgba(250,222,222,0.8); 2.62 +} 2.63 +div.blogcomment * {opacity: 1.0;} 2.64 +table.bloghead, .bloghead tr, .bloghead td { 2.65 + border: 1px solid black; border-collapse: collapse; 2.66 + min-width: 30em; 2.67 +} 2.68 +table.bloghead tr:nth-child(2) { 2.69 + font-size: 150%; background: yellow; text-align: center; 2.70 +} 2.71 +table.bloghead {margin-bottom: 1em;} 2.72 + 2.73 +table.blog_replies, .blog_replies tr, .blog_replies td { 2.74 + border: 1px solid black; border-collapse: collapse; 2.75 + white-space: pre; 2.76 +} 2.77 +.blog_replies td:nth-child(2) { 2.78 + vertical-align: top; min-width: 30em; height: 3em; 2.79 +} 2.80 + 2.81 +div.fold {margin-top: 1em; border-top: 1px solid black; padding-top: 1em;} 2.82 +div.fold > div { 2.83 + xxdisplay: none; max-height: 80%; overflow: auto; 2.84 + height: 0px; opacity: 0; padding: 0 1ex; 2.85 +} 2.86 +div.fold input[type="checkbox"]:checked ~ div, 2.87 +div.fold input[type="radio"]:checked ~ div { 2.88 + display: block; background: #eef; 2.89 + height: auto; opacity: 1.0; transition: 1s; 2.90 +} 2.91 + 2.92 +/********************* icon list *********************/ 2.93 +div.iconlist { 2.94 + text-align: center; float: left; margin: 1ex 1em; 2.95 + border: dotted #dfd 2px; padding: 1ex; 2.96 +} 2.97 +div.iconlist p {margin: 0; padding: 0;} 2.98 +div.iconlist p.tag {background: #ffa; border-radius: 4em;} 2.99 +div.iconlist p._temp {background: cyan;} 2.100 +div.iconlist p._lecture {background: pink;} 2.101 +div.iconlist p._admin {background: yellow;} 2.102 +div.iconlist p._friend {background: fuchsia;} 2.103 +div.iconlist p._fellows {background: #9f9;} /* light green */ 2.104 +div.iconlist p._club {background: #4bb;} /* light teal */ 2.105 +div.iconlist p._event {background: maroon; color: white;} 2.106 +div.iconlist p._misc {background: purple; color: white;} 2.107 +div.iconlist p._record {background: red; color: white;} 2.108 +div.xy120x120 {min-width: 120px; min-height: 140px;} 2.109 +div.xy96x96 {min-width: 96px; min-height: 116px;} 2.110 +div.xy50x50 {min-width: 50px; min-height: 70px;} 2.111 +div.right {clear: both; float: right;}
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 3.2 +++ b/examples/common/default/footer.m4.html Mon Aug 03 12:16:06 2015 +0900 3.3 @@ -0,0 +1,2 @@ 3.4 +</body> 3.5 +</html>
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 4.2 +++ b/examples/common/default/form+dump-whead.m4.html Mon Aug 03 12:16:06 2015 +0900 4.3 @@ -0,0 +1,5 @@ 4.4 +<h1>_TITLE_</h1> 4.5 +<h2>_FORMHEAD_</h2> 4.6 +_FORM_ 4.7 +<h2>_DUMPHEAD_</h2> 4.8 +_DUMPTABLE_
5.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 5.2 +++ b/examples/common/default/form+dump.m4.html Mon Aug 03 12:16:06 2015 +0900 5.3 @@ -0,0 +1,6 @@ 5.4 + <h1>_TITLE_</h1> 5.5 +<div class="groupman"> 5.6 +_FORM_ 5.7 +</div> 5.8 +<hr> 5.9 +_DUMPTABLE_
6.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 6.2 +++ b/examples/common/default/home.m4.html Mon Aug 03 12:16:06 2015 +0900 6.3 @@ -0,0 +1,15 @@ 6.4 +<h1>_TITLE_</h1> 6.5 +<div class="home"> 6.6 +_PROFILE_ 6.7 +</div> 6.8 + 6.9 +<div class="fold"> 6.10 +<input type="checkbox" id="sd"><label for="sd">日記一覧を見る</label> 6.11 +<div><!-- in home.m4 -->_BLOGS_</div><!-- in home.m4 --> 6.12 +</div> 6.13 + 6.14 +<div class="fold"> <!-- in home.m4.html --> 6.15 +<input type="checkbox" id="grp"><label 6.16 + for="grp">個人の参加グループ一覧を見る</label> 6.17 +_GROUPS_ 6.18 +</div> <!-- end of fold (in home.m4.html) -->
7.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 7.2 +++ b/examples/common/default/html.m4.html Mon Aug 03 12:16:06 2015 +0900 7.3 @@ -0,0 +1,16 @@ 7.4 +<html> 7.5 +<head><title>_TITLE_</title> 7.6 +<link rel="stylesheet" type="text/css" href="templ/default/default.css"> 7.7 +</head> 7.8 +<body class="_BODYCLASS_"> 7.9 +<div class="topmenu"> 7.10 +<ul> 7.11 + <li><a href="?home">ホーム</a></li> 7.12 + <!-- <li><a href="?blog">話題作成</a></li> --> 7.13 + <li><a href="?mems">参加者一覧</a></li> 7.14 + <li><a href="?grps">グループ一覧</a></li> 7.15 + <li><a href="?invite">招待</a></li> 7.16 + <li><a href="?login">再ログイン</a></li> 7.17 + <!-- <li><a href="?userconf">userconf</a></li> --> 7.18 +</ul> 7.19 +</div>
8.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 8.2 +++ b/examples/common/default/invite.m4.html Mon Aug 03 12:16:06 2015 +0900 8.3 @@ -0,0 +1,15 @@ 8.4 +<h1>招待メイル送信</h1> 8.5 +<p>_REPORT_</p> 8.6 + 8.7 +<form method="POST" action="_ACTION_"> 8.8 +<table class="invite"> 8.9 + <tr><td>送信先</td> 8.10 + <td><input name="email" size="40" maxlength="64"></td></tr> 8.11 +</table> 8.12 +<input name="submit" type="submit" value="送信"> 8.13 +<input name="reset" type="reset" value="Reset"> 8.14 +</form> 8.15 +_SUSPENDED_ 8.16 + 8.17 +</body> 8.18 +</html>
9.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 9.2 +++ b/examples/common/default/login-fail.m4.html Mon Aug 03 12:16:06 2015 +0900 9.3 @@ -0,0 +1,2 @@ 9.4 +<h2>ログイン失敗<h2> 9.5 +<p>パスワードが違っています。</p>
10.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 10.2 +++ b/examples/common/default/login.m4.html Mon Aug 03 12:16:06 2015 +0900 10.3 @@ -0,0 +1,10 @@ 10.4 +<h1>_SYSNAME_</h1> 10.5 +<form action="_MYNAME_" method="POST"> 10.6 + <table class="form"> 10.7 + <tr><th>User</th><td><input name="user" size="30" maxlength="128"></td></tr> 10.8 + <tr><th>Password</th><td><input name="pswd" type="password" size="30" 10.9 + maxlength="128"></td></tr> 10.10 + </table> 10.11 + <input type="submit" name="sub" value="OK"> 10.12 + <input type="reset" name="res" value="Reset"> 10.13 +</form>
11.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 11.2 +++ b/examples/common/default/title-only.m4.html Mon Aug 03 12:16:06 2015 +0900 11.3 @@ -0,0 +1,6 @@ 11.4 +<html> 11.5 +<head><title>_TITLE_</title> 11.6 +<link rel="stylesheet" type="text/css" href="templ/default/default.css"> 11.7 +</head> 11.8 +<body class="_BODYCLASS_"> 11.9 +<h1>_TITLE_</h1>
12.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 12.2 +++ b/examples/common/default/welcome.m4.html Mon Aug 03 12:16:06 2015 +0900 12.3 @@ -0,0 +1,12 @@ 12.4 +<h1>Welcome to _SITE_</h1> 12.5 +<ul> 12.6 + <!-- <li><a href="./s.cgi?diary">diary</a></li> --> 12.7 + <li><a href="./s.cgi?home">home</a></li> 12.8 + <li><a href="./s.cgi?mems">member list</a></li> 12.9 + <li><a href="./s.cgi?invite">invite a friend</a></li> 12.10 + <li><a href="./s.cgi?groupman">group management</a></li> 12.11 + <li><a href="./s.cgi?grps">group list</a></li> 12.12 + <li><a href="./s.cgi?gallery">gallery</a></li> 12.13 + <li><a href="./s.cgi?userconf">userconf</a></li> 12.14 + <li><a href="./s.cgi?blog">write blog</a></li> 12.15 +</ul>
13.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 13.2 +++ b/examples/common/msg/login-fail-1.m4.html Mon Aug 03 12:16:06 2015 +0900 13.3 @@ -0,0 +1,3 @@ 13.4 +<h2>パスワード再発行</h2> 13.5 +<p>登録アドレス(_USER_)に新パスワードを送付しておきました。</p> 13.6 +<p>_URL_</p>
14.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 14.2 +++ b/examples/common/msg/login-fail-2.m4.html Mon Aug 03 12:16:06 2015 +0900 14.3 @@ -0,0 +1,3 @@ 14.4 +<h2>ログイン失敗</h2> 14.5 +<p>パスワードが違います。思い出せない場合はwasureta入れてください。</p> 14.6 +<p>_URL_</p>
15.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 15.2 +++ b/examples/common/msg/login-fail-3.m4.html Mon Aug 03 12:16:06 2015 +0900 15.3 @@ -0,0 +1,3 @@ 15.4 +<h2>ログイン失敗</h2> 15.5 +<p>ユーザ登録が必要です。管理者までおしらせください。</p> 15.6 +<p>_ADMIN_</p>
16.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 16.2 +++ b/examples/common/msg/mail Mon Aug 03 12:16:06 2015 +0900 16.3 @@ -0,0 +1,8 @@ 16.4 +To: _RCPT_ 16.5 +Subject: _SUBJ_ 16.6 +Date: _DATE_ 16.7 +From: _FROM_ 16.8 +MIME-Version: 1.0 16.9 +Content-type: text/plain; charset=iso-2022-jp 16.10 + 16.11 +_BODY_
17.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 17.2 +++ b/examples/common/msg/mail-header.m4 Mon Aug 03 12:16:06 2015 +0900 17.3 @@ -0,0 +1,6 @@ 17.4 +To: _RCPT_ 17.5 +Subject: _SUBJ_ 17.6 +From: _FROM_ 17.7 +MIME-Version: 1.0 17.8 +Content-type: text/plain; charset=iso-2022-jp 17.9 +
18.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 18.2 +++ b/examples/common/msg/mail-invite.m4 Mon Aug 03 12:16:06 2015 +0900 18.3 @@ -0,0 +1,13 @@ 18.4 + 18.5 +=== _URL_ 18.6 +=== メンバー加入のお誘い 18.7 + 18.8 +_USER_ さんから 18.9 +_EMAIL_ さん宛に 18.10 +招待状が送られました。 18.11 + 18.12 +下記URLにアクセスすることで、加入登録が進みます。 18.13 +_REGIST_ 18.14 + 18.15 +もしこのURLに心当たりがない場合は以下の管理者宛に御連絡ください。 18.16 +_ADMIN_
19.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 19.2 +++ b/examples/common/msg/mail-newaccount.m4 Mon Aug 03 12:16:06 2015 +0900 19.3 @@ -0,0 +1,7 @@ 19.4 + 19.5 +_USER_ さんのアカウントを作成しました。 19.6 +初期パスワードは _PSWD_ です。 19.7 +もし、このパスワードを忘れたときは 19.8 +wasureta 19.9 +を入力してください。 19.10 +_URL_
20.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 20.2 +++ b/examples/form-text+img/default Mon Aug 03 12:16:06 2015 +0900 20.3 @@ -0,0 +1,1 @@ 20.4 +../common/default 20.5 \ No newline at end of file
21.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 21.2 +++ b/examples/form-text+img/msg Mon Aug 03 12:16:06 2015 +0900 21.3 @@ -0,0 +1,1 @@ 21.4 +../common/msg 21.5 \ No newline at end of file
22.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 22.2 +++ b/examples/sns/default Mon Aug 03 12:16:06 2015 +0900 22.3 @@ -0,0 +1,1 @@ 22.4 +../common/default 22.5 \ No newline at end of file
23.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 23.2 +++ b/examples/sns/form/article.def Mon Aug 03 12:16:06 2015 +0900 23.3 @@ -0,0 +1,9 @@ 23.4 +シリアル:id:p:serial: 23.5 +blogID:blogid:f:blog(id): 23.6 +筆者:author:s:author: 23.7 +時刻:ctime:s:stamp: 23.8 +参照元:parent:s:parent: 23.9 +パス:path:s:path: 23.10 +本文:text:s:textarea:cols="60" rows="8" 23.11 +画像:image:m:image:multiple 23.12 +stage:stage:x:hidden:value="replyblog"
24.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 24.2 +++ b/examples/sns/form/blog.def Mon Aug 03 12:16:06 2015 +0900 24.3 @@ -0,0 +1,10 @@ 24.4 +シリアル:id:p:serial: 24.5 +用途:mode:s:select:普通の掲示板=normal レポート提出用(相互に参照可能)=report-open レポート提出用(管理者のみ参照可能)=report-closed 24.6 +タイトル:title:s:text:maxlength="200" 24.7 +コメント書込通知:notify:s:select:所有者全員に通知=all 管理者のみに通知(グループの場合のみ)=admin しない=no 24.8 +所有者:owner:s:owner: 24.9 +筆者:author:s:author: 24.10 +時刻:ctime:s:stamp: 24.11 +序文:heading:s:textarea:cols="60" rows="3" 24.12 +リプライ:reply:m:*article: 24.13 +stage:stage:x:hidden:value="blog"
25.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 25.2 +++ b/examples/sns/form/diary.def Mon Aug 03 12:16:06 2015 +0900 25.3 @@ -0,0 +1,4 @@ 25.4 +タイトル:title:s:text:length="20" maxlength="40" 25.5 +曜日:wday:s:radio:日=sun 月=mon 火=tue 水=wed 木=thu 金=fri 土=sun 25.6 +本文:diary:s:textarea: rows="4" cols="30" maxlength="2048" 25.7 +stage:stage:s:hidden:value="diary"
26.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 26.2 +++ b/examples/sns/form/form-groupman.def Mon Aug 03 12:16:06 2015 +0900 26.3 @@ -0,0 +1,4 @@ 26.4 +グループ名(英数字):name:p:text:length="20" maxlength="40" 26.5 +種別:tag:s:select:講義関連=lecture 個人的リスト=friend 管理用=admin 一時的=temp 26.6 +グループの説明:gecos:s:text:length="30" maxlength="60" 26.7 +stage:stage:s:hidden:value="groupman"
27.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 27.2 +++ b/examples/sns/form/grp.def Mon Aug 03 12:16:06 2015 +0900 27.3 @@ -0,0 +1,10 @@ 27.4 +グループ名(他と区別がつく名前):gname:p:text:length="20" maxlength="40" 27.5 +一言説明:gecos:s:text:length="20" maxlength="40" 27.6 +# 27.7 +# 種別にタグを足したら default.css の div.iconlist p.* も足す 27.8 +種別:tag:s:select:講義関連=lecture 個人的リスト=friend 管理用=admin 一時的=temp 友好目的=fellows サークル等=club イベント用=event 記録目的=record 謎目的=misc 27.9 +所有者:owner:m:*grp_adm: 27.10 +# このグループの活用方法:usage:s:textarea:cols=40 27.11 +プロフィール画像:profimg:m:image: 27.12 +メンバー:member:m:*grp_mem:maxlength="4M" 27.13 +更新:mtime:s:stamp:
28.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 28.2 +++ b/examples/sns/form/grp_adm.def Mon Aug 03 12:16:06 2015 +0900 28.3 @@ -0,0 +1,3 @@ 28.4 +グループ:gname:pf:grp(gname): 28.5 +ユーザ:user:pf:user(name): 28.6 +このグループでのメイルアドレス:email:s:text:
29.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 29.2 +++ b/examples/sns/form/grp_mem.def Mon Aug 03 12:16:06 2015 +0900 29.3 @@ -0,0 +1,3 @@ 29.4 +グループ:gname:pf:grp(gname): 29.5 +ユーザ:user:pf:user(name): 29.6 +このグループでのメイルアドレス:email:s:text:
30.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 30.2 +++ b/examples/sns/form/user.def Mon Aug 03 12:16:06 2015 +0900 30.3 @@ -0,0 +1,8 @@ 30.4 +ユーザ名(英数字):name:p:user:length="20" maxlength="40" 30.5 +パスワード:pswd:s:password:length="20" maxlength="40" 30.6 +なまえ(日本語OK):gecos:s:text:length="20" maxlength="40" 30.7 +セッションキー:skey:s:session 30.8 +通知送信メイルアドレス(複数可):email:mh:text:length="20" maxlength="40" 30.9 +住所:address:m:textarea:maxlength="400" 30.10 +プロフィール画像:profimg:m:image:maxlength="400K" 30.11 +履歴書(4MBまで):profpdf:m:document:maxlength="4M"
31.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 31.2 +++ b/examples/sns/msg Mon Aug 03 12:16:06 2015 +0900 31.3 @@ -0,0 +1,1 @@ 31.4 +../common/msg 31.5 \ No newline at end of file
32.1 --- a/s4-funcs.sh Mon Aug 03 12:15:28 2015 +0900 32.2 +++ b/s4-funcs.sh Mon Aug 03 12:16:06 2015 +0900 32.3 @@ -7,14 +7,12 @@ 32.4 myname=`basename ${SCRIPT_NAME:-$0}` 32.5 mydir=`dirname ${SCRIPT_FILENAME:-$0}` 32.6 myargs="$@" 32.7 -#bindir=`(cd $mydir/bin; pwd)` 32.8 -# :$bindir 32.9 PATH=/usr/local/sqlite3/bin:/usr/local/vim7/bin:/usr/iekei/ImageMagick/bin:/usr/local/ImageMagick/bin:$PATH 32.10 tmpdir=${TMPDIR:-tmp} 32.11 dbdir=${DBDIR:-db} 32.12 tmpfiles="" 32.13 db=${DB:-$dbdir/cgi.sq3} 32.14 -admin=${ADMIN:-wwwadmin@gentei.org} 32.15 +admin=${ADMIN:-hostmaster@example.org} 32.16 templ=${TEMPL:-templ} 32.17 layout=${LAYOUT:-$templ/default} 32.18 formdir=${FORMDIR:-$templ/form} 32.19 @@ -906,7 +904,9 @@ 32.20 checkdomain() ( 32.21 # Check the validity of domain by referring DNS 32.22 item=$1 32.23 - host ${item#@*} >/dev/null 2>&1 32.24 +err checkdomain $1 32.25 +host ${item#*@} 1>&3 2>&3 32.26 + host ${item#*@} >/dev/null 2>&1 32.27 ) 32.28 pwcheck() { 32.29 # $1=passwd 32.30 @@ -920,8 +920,11 @@ 32.31 } 32.32 wasureta() { 32.33 user=$1 32.34 - if checkdomain $user; then 32.35 - echo "ユーザ名には正しいメイルアドレスが必要です。" 32.36 + if ! checkdomain $user; then 32.37 + contenttype; echo 32.38 + m4 -D_TITLE_='Invalid email' $layout/title-only.html 32.39 + echo "ユーザ名($user)には正しいメイルアドレスが必要です。" | html p 32.40 + putfooter 32.41 exit 0 32.42 fi 32.43 newpswd=`genrandom` # newsalt=`genrandom 5`
33.1 --- a/templ/default/default.css Mon Aug 03 12:15:28 2015 +0900 33.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 33.3 @@ -1,108 +0,0 @@ 33.4 -/* 33.5 - * Default CSS definitions 33.6 - */ 33.7 -body {background: #eff;} 33.8 -hr {clear: both;} 33.9 -div.topmenu { 33.10 - margin: 0; padding: 0; width: 100%; height: 2em; 33.11 -} 33.12 -div.topmenu ul {width: 100%; position: fixed; margin: 0; 33.13 - margin: 0 auto;} 33.14 -div.topmenu ul li { 33.15 - float: left; width: 18%; 33.16 - background: rgba(68,255,102,0.8); border: #3e5 2px groove; margin: 0; 33.17 - text-align: center; font-size: 80%; list-style: none; 33.18 - box-shadow: #242 2px 3px 5px; 33.19 - text-shadow: #fff 0px 0px 10px; 33.20 -} 33.21 -div.topmenu ul li:hover {background: #8fa;} 33.22 -div.topmenu ul a {text-decoration: none;} 33.23 - 33.24 -ldiv.topmenu + h1 {clear: both; margin-top: 3em;} 33.25 - 33.26 -div.dumptable {max-height: 15em; overflow: auto;} 33.27 - 33.28 -td {padding-left: 0.5ex; padding-right: 0.5ex;} 33.29 -table.td2r td:nth-child(2) {text-align: right;} 33.30 -table.td3r td:nth-child(3) {text-align: right;} 33.31 -table.form, table.b, table.b tr, table.b td, table.b th { 33.32 - border: 1px solid black; border-collapse: collapse; 33.33 -} 33.34 -td.warn {background: #fcc;} 33.35 -input[type="checkbox"][name="rm"]:checked ~ table {background: red;} 33.36 -input[type="checkbox"][name="rm"] ~ span {display: none;} 33.37 -input[type="checkbox"][name="rm"]:checked ~ span {display: inline;} 33.38 - 33.39 -input[type="radio"][value="replace"] + input.replace[type="file"] { 33.40 - visibility: hidden;} 33.41 -input[type="radio"][value="replace"]:checked + input.replace[type="file"] { 33.42 - visibility: visible; 33.43 -} 33.44 - 33.45 -/* keep/edit/rm action selector */ 33.46 -input.action ~ input:not(.action), input.action ~ textarea { 33.47 - display: none; 33.48 -} 33.49 -input.action[value="edit"]:checked ~ input {display: inline;} 33.50 -input.action[value="edit"]:checked ~ textarea {display: block;} 33.51 -input.action[value="edit"]:checked ~ span {display: none;} 33.52 -input.action[value="rm"]:checked ~ span {background: red;} 33.53 -label.confirm {display: none;} 33.54 -input.action[value="rm"]:checked ~ label.confirm { 33.55 - display: inline; 33.56 -} 33.57 - 33.58 -form.replyblog {margin-bottom: 40%;} 33.59 -div.blogcomment { 33.60 - position: fixed; bottom: 0; left: 0; 33.61 - z-index: 2; background-color: rgba(250,222,222,0.8); 33.62 -} 33.63 -div.blogcomment * {opacity: 1.0;} 33.64 -table.bloghead, .bloghead tr, .bloghead td { 33.65 - border: 1px solid black; border-collapse: collapse; 33.66 - min-width: 30em; 33.67 -} 33.68 -table.bloghead tr:nth-child(2) { 33.69 - font-size: 150%; background: yellow; text-align: center; 33.70 -} 33.71 -table.bloghead {margin-bottom: 1em;} 33.72 - 33.73 -table.blog_replies, .blog_replies tr, .blog_replies td { 33.74 - border: 1px solid black; border-collapse: collapse; 33.75 - white-space: pre; 33.76 -} 33.77 -.blog_replies td:nth-child(2) { 33.78 - vertical-align: top; min-width: 30em; height: 3em; 33.79 -} 33.80 - 33.81 -div.fold {margin-top: 1em; border-top: 1px solid black; padding-top: 1em;} 33.82 -div.fold > div { 33.83 - xxdisplay: none; max-height: 80%; overflow: auto; 33.84 - height: 0px; opacity: 0; padding: 0 1ex; 33.85 -} 33.86 -div.fold input[type="checkbox"]:checked ~ div, 33.87 -div.fold input[type="radio"]:checked ~ div { 33.88 - display: block; background: #eef; 33.89 - height: auto; opacity: 1.0; transition: 1s; 33.90 -} 33.91 - 33.92 -/********************* icon list *********************/ 33.93 -div.iconlist { 33.94 - text-align: center; float: left; margin: 1ex 1em; 33.95 - border: dotted #dfd 2px; padding: 1ex; 33.96 -} 33.97 -div.iconlist p {margin: 0; padding: 0;} 33.98 -div.iconlist p.tag {background: #ffa; border-radius: 4em;} 33.99 -div.iconlist p._temp {background: cyan;} 33.100 -div.iconlist p._lecture {background: pink;} 33.101 -div.iconlist p._admin {background: yellow;} 33.102 -div.iconlist p._friend {background: fuchsia;} 33.103 -div.iconlist p._fellows {background: #9f9;} /* light green */ 33.104 -div.iconlist p._club {background: #4bb;} /* light teal */ 33.105 -div.iconlist p._event {background: maroon; color: white;} 33.106 -div.iconlist p._misc {background: purple; color: white;} 33.107 -div.iconlist p._record {background: red; color: white;} 33.108 -div.xy120x120 {min-width: 120px; min-height: 140px;} 33.109 -div.xy96x96 {min-width: 96px; min-height: 116px;} 33.110 -div.xy50x50 {min-width: 50px; min-height: 70px;} 33.111 -div.right {clear: both; float: right;}
34.1 --- a/templ/default/footer.m4.html Mon Aug 03 12:15:28 2015 +0900 34.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 34.3 @@ -1,2 +0,0 @@ 34.4 -</body> 34.5 -</html>
35.1 --- a/templ/default/form+dump-whead.m4.html Mon Aug 03 12:15:28 2015 +0900 35.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 35.3 @@ -1,5 +0,0 @@ 35.4 -<h1>_TITLE_</h1> 35.5 -<h2>_FORMHEAD_</h2> 35.6 -_FORM_ 35.7 -<h2>_DUMPHEAD_</h2> 35.8 -_DUMPTABLE_
36.1 --- a/templ/default/form+dump.m4.html Mon Aug 03 12:15:28 2015 +0900 36.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 36.3 @@ -1,6 +0,0 @@ 36.4 - <h1>_TITLE_</h1> 36.5 -<div class="groupman"> 36.6 -_FORM_ 36.7 -</div> 36.8 -<hr> 36.9 -_DUMPTABLE_
37.1 --- a/templ/default/home.m4.html Mon Aug 03 12:15:28 2015 +0900 37.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 37.3 @@ -1,15 +0,0 @@ 37.4 -<h1>_TITLE_</h1> 37.5 -<div class="home"> 37.6 -_PROFILE_ 37.7 -</div> 37.8 - 37.9 -<div class="fold"> 37.10 -<input type="checkbox" id="sd"><label for="sd">日記一覧を見る</label> 37.11 -<div><!-- in home.m4 -->_BLOGS_</div><!-- in home.m4 --> 37.12 -</div> 37.13 - 37.14 -<div class="fold"> <!-- in home.m4.html --> 37.15 -<input type="checkbox" id="grp"><label 37.16 - for="grp">個人の参加グループ一覧を見る</label> 37.17 -_GROUPS_ 37.18 -</div> <!-- end of fold (in home.m4.html) -->
38.1 --- a/templ/default/html.m4.html Mon Aug 03 12:15:28 2015 +0900 38.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 38.3 @@ -1,16 +0,0 @@ 38.4 -<html> 38.5 -<head><title>_TITLE_</title> 38.6 -<link rel="stylesheet" type="text/css" href="templ/default/default.css"> 38.7 -</head> 38.8 -<body class="_BODYCLASS_"> 38.9 -<div class="topmenu"> 38.10 -<ul> 38.11 - <li><a href="?home">ホーム</a></li> 38.12 - <!-- <li><a href="?blog">話題作成</a></li> --> 38.13 - <li><a href="?mems">参加者一覧</a></li> 38.14 - <li><a href="?grps">グループ一覧</a></li> 38.15 - <li><a href="?invite">招待</a></li> 38.16 - <li><a href="?login">再ログイン</a></li> 38.17 - <!-- <li><a href="?userconf">userconf</a></li> --> 38.18 -</ul> 38.19 -</div>
39.1 --- a/templ/default/invite.m4.html Mon Aug 03 12:15:28 2015 +0900 39.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 39.3 @@ -1,15 +0,0 @@ 39.4 -<h1>招待メイル送信</h1> 39.5 -<p>_REPORT_</p> 39.6 - 39.7 -<form method="POST" action="_ACTION_"> 39.8 -<table class="invite"> 39.9 - <tr><td>送信先</td> 39.10 - <td><input name="email" size="40" maxlength="64"></td></tr> 39.11 -</table> 39.12 -<input name="submit" type="submit" value="送信"> 39.13 -<input name="reset" type="reset" value="Reset"> 39.14 -</form> 39.15 -_SUSPENDED_ 39.16 - 39.17 -</body> 39.18 -</html>
40.1 --- a/templ/default/login-fail.m4.html Mon Aug 03 12:15:28 2015 +0900 40.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 40.3 @@ -1,2 +0,0 @@ 40.4 -<h2>ログイン失敗<h2> 40.5 -<p>パスワードが違っています。</p>
41.1 --- a/templ/default/login.m4.html Mon Aug 03 12:15:28 2015 +0900 41.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 41.3 @@ -1,10 +0,0 @@ 41.4 -<h1>_SYSNAME_</h1> 41.5 -<form action="_MYNAME_" method="POST"> 41.6 - <table class="form"> 41.7 - <tr><th>User</th><td><input name="user" size="30" maxlength="128"></td></tr> 41.8 - <tr><th>Password</th><td><input name="pswd" type="password" size="30" 41.9 - maxlength="128"></td></tr> 41.10 - </table> 41.11 - <input type="submit" name="sub" value="OK"> 41.12 - <input type="reset" name="res" value="Reset"> 41.13 -</form>
42.1 --- a/templ/default/welcome.m4.html Mon Aug 03 12:15:28 2015 +0900 42.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 42.3 @@ -1,12 +0,0 @@ 42.4 -<h1>Welcome to _SITE_</h1> 42.5 -<ul> 42.6 - <!-- <li><a href="./s.cgi?diary">diary</a></li> --> 42.7 - <li><a href="./s.cgi?home">home</a></li> 42.8 - <li><a href="./s.cgi?mems">member list</a></li> 42.9 - <li><a href="./s.cgi?invite">invite a friend</a></li> 42.10 - <li><a href="./s.cgi?groupman">group management</a></li> 42.11 - <li><a href="./s.cgi?grps">group list</a></li> 42.12 - <li><a href="./s.cgi?gallery">gallery</a></li> 42.13 - <li><a href="./s.cgi?userconf">userconf</a></li> 42.14 - <li><a href="./s.cgi?blog">write blog</a></li> 42.15 -</ul>
43.1 --- a/templ/form/article.def Mon Aug 03 12:15:28 2015 +0900 43.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 43.3 @@ -1,9 +0,0 @@ 43.4 -シリアル:id:p:serial: 43.5 -blogID:blogid:f:blog(id): 43.6 -筆者:author:s:author: 43.7 -時刻:ctime:s:stamp: 43.8 -参照元:parent:s:parent: 43.9 -パス:path:s:path: 43.10 -本文:text:s:textarea:cols="60" rows="8" 43.11 -画像:image:m:image:multiple 43.12 -stage:stage:x:hidden:value="replyblog"
44.1 --- a/templ/form/blog.def Mon Aug 03 12:15:28 2015 +0900 44.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 44.3 @@ -1,10 +0,0 @@ 44.4 -シリアル:id:p:serial: 44.5 -用途:mode:s:select:普通の掲示板=normal レポート提出用(相互に参照可能)=report-open レポート提出用(管理者のみ参照可能)=report-closed 44.6 -タイトル:title:s:text:maxlength="200" 44.7 -コメント書込通知:notify:s:select:所有者全員に通知=all 管理者のみに通知(グループの場合のみ)=admin しない=no 44.8 -所有者:owner:s:owner: 44.9 -筆者:author:s:author: 44.10 -時刻:ctime:s:stamp: 44.11 -序文:heading:s:textarea:cols="60" rows="3" 44.12 -リプライ:reply:m:*article: 44.13 -stage:stage:x:hidden:value="blog"
45.1 --- a/templ/form/diary.def Mon Aug 03 12:15:28 2015 +0900 45.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 45.3 @@ -1,4 +0,0 @@ 45.4 -タイトル:title:s:text:length="20" maxlength="40" 45.5 -曜日:wday:s:radio:日=sun 月=mon 火=tue 水=wed 木=thu 金=fri 土=sun 45.6 -本文:diary:s:textarea: rows="4" cols="30" maxlength="2048" 45.7 -stage:stage:s:hidden:value="diary"
46.1 --- a/templ/form/form-groupman.def Mon Aug 03 12:15:28 2015 +0900 46.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 46.3 @@ -1,4 +0,0 @@ 46.4 -グループ名(英数字):name:p:text:length="20" maxlength="40" 46.5 -種別:tag:s:select:講義関連=lecture 個人的リスト=friend 管理用=admin 一時的=temp 46.6 -グループの説明:gecos:s:text:length="30" maxlength="60" 46.7 -stage:stage:s:hidden:value="groupman"
47.1 --- a/templ/form/grp.def Mon Aug 03 12:15:28 2015 +0900 47.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 47.3 @@ -1,10 +0,0 @@ 47.4 -グループ名(他と区別がつく名前):gname:p:text:length="20" maxlength="40" 47.5 -一言説明:gecos:s:text:length="20" maxlength="40" 47.6 -# 47.7 -# 種別にタグを足したら default.css の div.iconlist p.* も足す 47.8 -種別:tag:s:select:講義関連=lecture 個人的リスト=friend 管理用=admin 一時的=temp 友好目的=fellows サークル等=club イベント用=event 記録目的=record 謎目的=misc 47.9 -所有者:owner:m:*grp_adm: 47.10 -# このグループの活用方法:usage:s:textarea:cols=40 47.11 -プロフィール画像:profimg:m:image: 47.12 -メンバー:member:m:*grp_mem:maxlength="4M" 47.13 -更新:mtime:s:stamp:
48.1 --- a/templ/form/grp_adm.def Mon Aug 03 12:15:28 2015 +0900 48.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 48.3 @@ -1,3 +0,0 @@ 48.4 -グループ:gname:pf:grp(gname): 48.5 -ユーザ:user:pf:user(name): 48.6 -このグループでのメイルアドレス:email:s:text:
49.1 --- a/templ/form/grp_mem.def Mon Aug 03 12:15:28 2015 +0900 49.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 49.3 @@ -1,3 +0,0 @@ 49.4 -グループ:gname:pf:grp(gname): 49.5 -ユーザ:user:pf:user(name): 49.6 -このグループでのメイルアドレス:email:s:text:
50.1 --- a/templ/form/user.def Mon Aug 03 12:15:28 2015 +0900 50.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 50.3 @@ -1,8 +0,0 @@ 50.4 -ユーザ名(英数字):name:p:user:length="20" maxlength="40" 50.5 -パスワード:pswd:s:password:length="20" maxlength="40" 50.6 -なまえ(日本語OK):gecos:s:text:length="20" maxlength="40" 50.7 -セッションキー:skey:s:session 50.8 -通知送信メイルアドレス(複数可):email:mh:text:length="20" maxlength="40" 50.9 -住所:address:m:textarea:maxlength="400" 50.10 -プロフィール画像:profimg:m:image:maxlength="400K" 50.11 -履歴書(4MBまで):profpdf:m:document:maxlength="4M"
51.1 --- a/templ/msg/login-fail-1.m4.html Mon Aug 03 12:15:28 2015 +0900 51.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 51.3 @@ -1,3 +0,0 @@ 51.4 -<h2>パスワード再発行</h2> 51.5 -<p>登録アドレス(_USER_)に新パスワードを送付しておきました。</p> 51.6 -<p>_URL_</p>
52.1 --- a/templ/msg/login-fail-2.m4.html Mon Aug 03 12:15:28 2015 +0900 52.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 52.3 @@ -1,3 +0,0 @@ 52.4 -<h2>ログイン失敗</h2> 52.5 -<p>パスワードが違います。思い出せない場合はwasureta入れてください。</p> 52.6 -<p>_URL_</p>
53.1 --- a/templ/msg/login-fail-3.m4.html Mon Aug 03 12:15:28 2015 +0900 53.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 53.3 @@ -1,3 +0,0 @@ 53.4 -<h2>ログイン失敗</h2> 53.5 -<p>ユーザ登録が必要です。管理者までおしらせください。</p> 53.6 -<p>_ADMIN_</p>
54.1 --- a/templ/msg/mail Mon Aug 03 12:15:28 2015 +0900 54.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 54.3 @@ -1,8 +0,0 @@ 54.4 -To: _RCPT_ 54.5 -Subject: _SUBJ_ 54.6 -Date: _DATE_ 54.7 -From: _FROM_ 54.8 -MIME-Version: 1.0 54.9 -Content-type: text/plain; charset=iso-2022-jp 54.10 - 54.11 -_BODY_
55.1 --- a/templ/msg/mail-header.m4 Mon Aug 03 12:15:28 2015 +0900 55.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 55.3 @@ -1,6 +0,0 @@ 55.4 -To: _RCPT_ 55.5 -Subject: _SUBJ_ 55.6 -From: _FROM_ 55.7 -MIME-Version: 1.0 55.8 -Content-type: text/plain; charset=iso-2022-jp 55.9 -
56.1 --- a/templ/msg/mail-invite.m4 Mon Aug 03 12:15:28 2015 +0900 56.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 56.3 @@ -1,13 +0,0 @@ 56.4 - 56.5 -=== _URL_ 56.6 -=== メンバー加入のお誘い 56.7 - 56.8 -_USER_ さんから 56.9 -_EMAIL_ さん宛に 56.10 -招待状が送られました。 56.11 - 56.12 -下記URLにアクセスすることで、加入登録が進みます。 56.13 -_REGIST_ 56.14 - 56.15 -もしこのURLに心当たりがない場合は以下の管理者宛に御連絡ください。 56.16 -_ADMIN_