Modifikasi OJS: Masih Seputar E-Journal

Saya tidak mahir skrip PHP. Hanya bisa membuat program Hello World. Namun, ada kebutuhan memodifikasi OJS (Open Journal System), sebuah platform jurnal online (e-journal). OJS menggunakan bahasa pemrograman PHP.

Di artikel sebelumnya, e-journal JTSiskom telah dimigrasi ke portal jtsiskom.undip.ac.id dari ejournal-s1.undip.ac.id. Hal ini berarti JTSiskom mempunyai 2 rumah. Bisa saja sih, jurnal JTSiskom di ejournal-s1.undip.ac.id dihapus. Namun, jika ini dilakukan, jurnal JTSiskom tidak terdaftar di portal di ejournal-s1 Undip. JTSiskom terdaftar di Portal Ejournal S1 Undip. Link “View Journal”, “Current Issue” dan “Register” mengarah ke http://ejournal-s1.undip.ac.id/index.php/jtsiskom. jtsiskom-lama-1Link tersebut dibangkitkan oleh OJS saat administrator membuat journal baru. Dengan memasukkan path jurnal “jtsiskom”, maka alamat/URL jurnal JTSiskom menjadi http://ejournal-s1.undip.ac.id/index.php/jtsiskom. Diinginkan link-link tersebut di atas diarahkan ke domain yang baru, di jtsiskom.undip.ac.id.  Dan ini url ini tidak bisa diubah kecuali OJS-nya diedit. Tidak ada opsi di setting manajemen OJS.

Bukan perkara mudah mengedit OJS yang menggunakan PHP. Saya sekali lagi tidak mahir PHP dan platform kode program OJS tidak tahu. Duh. Tapi ini harus tetap jalan… !

Ketemu juga dengan menelusuri kode manajemen untuk menambahkan jurnal. File berikut perlu diedit (saya menggunakan variabel url1 sebagai url tujuan):

  1. classes/journal/Journal.inc.php: menambahkan 2 method di class Journal, yaitu getUrl1() dan setUrl1($url1)
  2. classes/journal/JournalDAO.inc.php (model): memanggil fungsi setUrl1 untuk mengambil data dari database dan menyimpannya ke property url1 dari journal(
  3. templates/index/site.tpl: megedit tampilan daftar jurnal

Setelah ketiga file tersebut diedit, tabel journals di database juga perlu diubah, yaitu dengan menambahkan field url1. Secara manual kemudian saya isi field url1 dengan alamat baru jurnal, yaitu http://jtsiskom.undip.ac.id/index.php/jtsiskom. Sebenarnya bisa sih, mengedit dari administrasi sites, tapi banyak yang harus diubah. Manual saja cukup.

Berikut hasil editan file-file tersebut:

  • classes/journal/Journal.inc.php
--- classes/journal/Journal.inc.php.orig	2016-08-03 23:47:05.910999865 +0700
+++ classes/journal/Journal.inc.php	2016-08-04 00:23:36.901999891 +0700
@@ -307,6 +307,19 @@
 		return $this->setData('path', $path);
 	}
+        /**
+         * Get path to journal (in URL).
+         * @return string
+         */
+        function getUrl1() {
+                return $this->getData('url1');
+        }
+
+        function setUrl1($url1) {
+                return $this->setData('url1', $url1);
+        }
+
+
 	/**
 	 * Get sequence of journal in site table of contents.
 	 * @return float
  • classes/journal/JournalDAO.inc.php
--- classes/journal/JournalDAO.inc.php.orig	2016-08-05 07:57:36.882000009 +0700
+++ classes/journal/JournalDAO.inc.php	2016-08-04 00:25:07.863000109 +0700
@@ -79,6 +81,7 @@
 		$journal->setSequence($row['seq']);
 		$journal->setEnabled($row['enabled']);
 		$journal->setPrimaryLocale($row['primary_locale']);
+		$journal->setUrl1($row['url1']);
 		HookRegistry::call('JournalDAO::_returnJournalFromRow', array(&$journal, &$row));
  • templates/index/site.tpl
--- templates/index/site.tpl.orig 2016-08-03 23:47:38.362999825 +0700
+++ templates/index/site.tpl 2016-08-04 00:36:17.887999318 +0700
@@ -43,7 +43,12 @@
 <p>{$journal->getLocalizedDescription()|nl2br}</p>
 {/if}
 {/if}
+
+ {if $journal->getUrl1()}
+ <p><a href="{$journal->getUrl1()}" class="action">{translate key="site.journalView"}</a> | <a href="{$journal->getUrl1()}/issue/current" class="action">{translate key="site.journalCurrent"}</a> | <a href="{$journal->getUrl1()}/user/register" class="action">{translate key="site.journalRegister"}</a></p>
+ {else}
 <p><a href="{url journal=$journal->getPath()}" class="action">{translate key="site.journalView"}</a> | <a href="{url journal=$journal->getPath() page="issue" op="current"}" class="action">{translate key="site.journalCurrent"}</a> | <a href="{url journal=$journal->getPath() page="user" op="register"}" class="action">{translate key="site.journalRegister"}</a></p>
+ {/if}
 {/iterate}
 {if $journals->wasEmpty()}
 {translate key="site.noJournals"}

Hasilnya adalah ketiga link di daftar jurnal JTSiskom mengarah ke alamat url yang baru (lihat alamat link Jurnal Teknologi dan Sistem Komputer). Hal ini sepertinya juga dulu pernah saya coba di http://ejournal-balitbang.kkp.go.id/ punya KKP (lihat alamat link Squalen dan JPBKP).
jtsiskom-lama-1

Leave a Reply

Your email address will not be published. Required fields are marked *


*

This blog is kept spam free by WP-SpamFree.