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

#contents

**背景 [#he5db0b0]
[[某団体>http://www.insect-sciences.jp/]]で出版を企画しており、
複数の著者から原稿を集める予定がある。
[[前回の出版>http://www.press.tokai.ac.jp/bookdetail.jsp?isbn_code=ISBN978-4-486-02035-6]]では、
著者のみなさんからいただいた原稿を査読した後、
出版社に手渡している。

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

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

はじめは GNUライセンスの
[[Open Journal Systems (OJS)>https://pkp.sfu.ca/ojs/]]
をインストールしたのだけれど、
ウェブページのルートから使うのがデフォルトで、かつ、
url偽装が複雑で、
[[WordPress>http://www.cis.kit.ac.jp/~tomaru/pukiwiki/multilingual_site_WordPress.html]]
との共存が難しい(できないことはないのだと思うけれど)ので諦めた。

** インストール&設定 [#p7d36771]

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

***mysql にデータベースを作成する [#u5840947]

さくらインターネットのサーバコントロールパネルで
- 左側のメニューのデータベースの設定をクリック
- 右側のデータベースの新規作成をクリック
- データベース名 hogehoge_「oc」とインプット
- データベース文字コードを UTF-8 を選ぶ
- 「データベースを作成する」ボタンをクリック

次に
- 右側のデータベースと管理ツールをクリック
- mysqladmin のページが別なタブに開く
- mysqladmin の「データベース」タブをクリック
- データベースの一覧に「hogehoge_oc」があることを確認

*** OpenConf のダウンロード&サーバに置く [#j29ee78a]

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

サーバにアップロード
展開し、
/hogehoge/hohehohe/www/oc に置く((www がこのウェブページのルート))。

以下、
[[Installation>https://www.openconf.com/documentation/install.php]]
に従うつもりで色々と設定をする。

***data ディレクトリを書き込みOKにする [#pb8c956e]
 % chmod 777 oc/data/


***ウェブからの設定を行う [#za23e878]

- http://example.jp/oc/
にアクセス


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

--------------------


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

 
***ほか細かなものは、Chair としてサインインして設定 [#ka48d162]

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

著者がSubmitするには
- タイトル
- 名前(姓だけでよい)
- email
- Contact Author ← 選ばなければなりません(面倒ですけど)
- Topic(s)  ← 選ばなければなりません(面倒ですけど)

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

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


***日本語への対応その1 [#i6f73bf8]

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

  !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 [#p9b4b5b2]

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

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:&counter(today);|Yesterday:&counter(yesterday);|Total:&counter(); since 10 April 2016|




トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS