某団体で出版を企画しており、 複数の著者から原稿を集める予定がある。 前回の出版では、 著者のみなさんからいただいた原稿を査読した後、 出版社に手渡している。
原稿の受領と査読が容易にできるよう、 著者と編集のどちらにも負担が少なるなるようにするため、 著者も編集もどちらも慣れているであろう、 論文のオンライン投稿システムを利用したらいいのではないかと考えた。
現在のシステムでインストールができるものとしては、
OpenConfがよかったので、
これをインストール&設定したのでそのメモ。
OpenConfは Zakon Group LLC 作成の商用のシステムで、
利用したのはその無料版(Community License)です。
自サイト利用が無料版の利用条件なので、権利関係は問題ないはず。
参照:OpenConf License
はじめは GNUライセンスの Open Journal Systems (OJS) をインストールしたのだけれど、 ウェブページのルートから使うのがデフォルトで、かつ、 url偽装が複雑で、 WordPress との共存が難しい(できないことはないのだと思うけれど)ので諦めた。
サーバはさくらインターネット。
mysql が利用できるが、
データベースの設定はさくらインターネットのコントロールパネルからしかできない。
この点インストラクションとインストール方法が違っている。
さくらインターネットのサーバコントロールパネルで
次に
https://www.openconf.com/ から openconf-6.50.zip をダウンロード。
サーバにアップロード 展開し、 /hogehoge/hohehohe/www/oc に置く*1。
以下、 Installation に従うつもりで色々と設定をする。
% chmod 777 oc/data/
Step 1 of 5: Enter Database Settings
Database User: 適切なものをインプット Database Password: 適切なものをインプット Database Hostname: さくらのものをインプット Database Port: 3306 ← 元からこうなっていた、そのまま Database Name: hogehoge_oc ← さくらのコントロールパネルで作ったもの Table Prefix: ← ブランクでよいとあったのでブランク ○Create Database and load schema ●Load Schema only ← こちらを選ぶ(デフォルトは上)
Save Info をクリック
Step 2 of 5: Create Chair Account
Username: chair ← 元からこうなっていた Password: 適切なものをインプット Confirm Pwd: 適切なものをインプット
Step 3 of 5: Tailor Configuration Settings
Event Full Name: 適切なものをインプット Event Short Name: 適切なものをインプット Event Web Address: 適切なものをインプット Header Image: ブランクのまま
※ 「Event Full Name」と「Event Short Name」は後から日本語に修正した
Home Page Notice: 適切なものをインプット
※ この Notice も後から修正した
Email & Notification Chair Email: 適切なものをインプット Notification Email: 適切なものをインプット Notify when: [デフォルトのまま] チェック Author makes a submission チェック Author updates (edits) submission Author requests own submission list emailed チェック Author uploads a file Author requests password reset チェック Author withdraws submission チェック Committee member signs up for account Committee member updates profile Committee member resets password Committee member requests username emailed Include IP address in notifications? Yes ● No [デフォルトのまま]
これ以下の Reviewer へのNotification などは後回しにして 「Save Settings」ボタンをクリック
Step 4 of 5: Set Topics
Topic ID | Topic Name | Short Name (^20 chars) |
1 | 適切なものをインプット | 適切なものをインプット |
まずはひつとだけ
Allow authors to select multiple submission topics? Yes ●No Allow committee members to select multiple submission topics? Yes ●No Display topics alphabetically? Yes ●No
「Set Topics」をクリック
Step 5 of 5: Open Submissions & Sign-Up/In
いまひとつよくわからないけれど、すべて Open にしておいた
Make desired changes, then click Set Status button General (collapse) New Submission: ●Open Closed Edit Submission: ●Open Closed Withdraw Submission: ●Open Closed Upload File: ●Open Closed View File: ●Open Closed Check Status: ●Open Closed Review Cmt. Sign Up: ●Open Closed Review Cmt. Sign In: ●Open Closed Reviewing: ●Open Closed Program Cmt. Sign Up: ●Open Closed Program Cmt. Sign In: ●Open Closed Advocating: ●Open Closed
「Set Status」をクリック
ココマデでウェブからの設定は完了
設定内容はここには記述していません。見ればわかる。
著者がSubmitするには
これで登録 ココまでは代行も可
ログインしてファイルのアップロードができる。
入力のブランクのチェックがいろいろなところに入っているのだが、 そのお陰で日本語のみ入力するとブランクと解釈されてしまい、エラーとなる。
!preg_match("/\w/", $_POST['name'])
などのようなチェックのためと判明。
\w は
単語構成文字 (word character)
を意味するのだけれど、これは、 英字または数字またはアンダースコア文字であり (http://php.net/manual/ja/regexp.reference.escape.php)、 日本語など2バイト文字は含まれない。
そこで、\w を \pL に替えて対応する。
\p は
\p{xx} で、xx プロパティを持つ文字を表わす。
http://php.net/manual/ja/regexp.reference.unicode.php
\p の後に、一文字だけを記述するとその文字で始まるすべてのプロパティが 指定される。\p{L} と \pL は等価。
ということで、
L アルファベット (Letter) Ll、 Lm、Lo、Lt および Lu を含む
を指定。
Ll 小文字アルファベット (Lower case letter) Lm 擬似文字 (Modifier letter) Lo その他の文字 (Other letter) Lt タイトル文字 (Title case letter) Lu 大文字アルファベット (Upper case letter)
で、文字ならだいたいおっけい。 日本語もおっけいだった。
grep -r preg_match | grep '\\w' で調べ、いくつか修正(\w を \pL に変更)。修正した箇所は以下。
author/contact.php:
if (!isset($_POST['name']) || preg_match("/\w/", $_POST['name']) || preg_match("/[\r\n]/", $_POST['name'])) { if (!isset($_POST['subject']) || !preg_match("/\w/", $_POST['subject']) || preg_match("/[\r\n]/", $_POST['subject'])) { if (!isset($_POST['message']) || !preg_match("/\w/", $_POST['message'])) {
chair/create_sub.php:
if (!isset($_POST['title']) || !preg_match("/\w/", $_POST['title'])) { if (!isset($_POST['name_last']) || !preg_match("/\w/", $_POST['name_last'])) {
chair/set_config.php:
if (!isset($_POST['OC_confName']) || !preg_match("/\w/", $_POST['OC_confName'])) { if (!isset($_POST['OC_confNameFull']) || !preg_match("/\w/", $_POST['OC_confNameFull'])) {
メールの件名が文字化けする。
include.php では、UTF-8 でないときには、subject を printed-quotable に しているとコメントがある。
// Sends out optionally utf-8 enabled email // Note: headers are not converted except for subject // We are defaulting to QP so bounced messages can be more easily read (for non-CJK)
しかし、これでは化けてしまった。そこで、UTF-8であろうとなかろうと、 base64 エンコードして、UTF-8 で囲む
// Encode if UTF-8 email enabled
のときの、subject の変換を適用した。
$subject = "=?UTF-8?B?" . base64_encode($subject) . "?="; // 10 April 2016 tomaru // $subject = "=?UTF-8?Q?" . rtrim(preg_replace(array("/[\r\n].*$/", "/\s+/", "/\?/"), array("", "_", "=3f"), oc_qpencode($subject)), '= ') . "?="; // only use first line for subject and replace spaces/?s
これで件名は化けなくなった。
Today:1 | Yesterday:4 | Total:3117 since 10 April 2016 |