論文投稿システム OpenConf のインストール&設定 2016年4月10日

背景

某団体で出版を企画しており、 複数の著者から原稿を集める予定がある。 前回の出版では、 著者のみなさんからいただいた原稿を査読した後、 出版社に手渡している。

原稿の受領と査読が容易にできるよう、 著者と編集のどちらにも負担が少なるなるようにするため、 著者も編集もどちらも慣れているであろう、 論文のオンライン投稿システムを利用したらいいのではないかと考えた。

現在のシステムでインストールができるものとしては、 OpenConfがよかったので、 これをインストール&設定したのでそのメモ。
OpenConfは Zakon Group LLC 作成の商用のシステムで、 利用したのはその無料版(Community License)です。 自サイト利用が無料版の利用条件なので、権利関係は問題ないはず。 参照:OpenConf License

はじめは GNUライセンスの Open Journal Systems (OJS) をインストールしたのだけれど、 ウェブページのルートから使うのがデフォルトで、かつ、 url偽装が複雑で、 WordPress との共存が難しい(できないことはないのだと思うけれど)ので諦めた。

インストール&設定

サーバはさくらインターネット。
mysql が利用できるが、 データベースの設定はさくらインターネットのコントロールパネルからしかできない。 この点インストラクションとインストール方法が違っている。

mysql にデータベースを作成する

さくらインターネットのサーバコントロールパネルで

次に

OpenConf のダウンロード&サーバに置く

https://www.openconf.com/ から openconf-6.50.zip をダウンロード。

サーバにアップロード 展開し、 /hogehoge/hohehohe/www/oc に置く*1

以下、 Installation に従うつもりで色々と設定をする。

data ディレクトリを書き込みOKにする

% 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 IDTopic NameShort 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」をクリック


ココマデでウェブからの設定は完了

ほか細かなものは、Chair としてサインインして設定

設定内容はここには記述していません。見ればわかる。

著者がSubmitするには

これで登録 ココまでは代行も可

ログインしてファイルのアップロードができる。

日本語への対応その1

入力のブランクのチェックがいろいろなところに入っているのだが、 そのお陰で日本語のみ入力するとブランクと解釈されてしまい、エラーとなる。

 !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'])) {

日本語への対応その2

メールの件名が文字化けする。

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:2Yesterday:0Total:1066 since 10 April 2016

*1 www がこのウェブページのルート

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 10 Apr 2016 (日) 14:44:23 (1556d)