Dia 1
Instalação
O Open Journal Systems (OJS) é uma plataforma de código aberto desenvolvida pelo Public Knowledge Project (PKP) que permite a gestão e publicação de periódicos científicos online. Ele oferece ferramentas para todo o fluxo editorial, desde a submissão de artigos, avaliação por pares, edição e publicação, até a indexação e visibilidade dos conteúdos.
Biblioteca mínimas para instalação no Debian 12:
sudo apt-get install php php-common php-cli php-gd php-curl php-xml php-mbstring php-zip php-sybase php-mysql php-sqlite3
sudo apt-get install mariadb-server sqlite3 git
Instalação do composer:
curl -s https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
Configuração do banco de dados
sudo mariadb
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION;
create database ojs3;
quit
Instalação do OJS. Escolher uma versão em (https://pkp.sfu.ca/software/ojs/download/)[https://pkp.sfu.ca/software/ojs/download/] e baixá-la.
wget https://pkp.sfu.ca/ojs/download/ojs-3.4.0-8.tar.gz
tar -vzxf ojs-3.4.0-8.tar.gz
cd ojs-3.4.0-8
php -S 0.0.0.0:8888
A configuração do OJS é bem intutiva, porém, ainda assim se complica em certos momentos. Assim, se faz necessário que tenhamos um passo a passo de como configurá-lo. Na primeira parte devemos escolher um nome de usuário e uma senha, além de fornecer um email para cadastro. Como estamos em um ambiente de programação e não de editorial de revista, podemos colocar usuário e senha como “admin” e o email como “admin@usp.br” como podemos observar na imagem.
Na segunda parte devemos escolher a língua primária do OJS e as línguas adicionais do mesmo.
Na terceira parte devemos verificar se o local onde o diretório será criado é o qual desejamos.
Na quarta parte devemos:
- Trocar o banco de dados para MySQLi
- Adicionar o username que criamos no mariadb (no caso admin)
- Adicionar a senha que criamos no mariadb (no caso admin)
- Adicionar o nome da database que criamos no mariadb (no caso ojs3)
Com isso, só precisaremos confirmar as configurações e o seu OJS estará configurado.
Criando a primeira revista
Assim que terminarmos a configuração do OJS, devemos criar a nossa primeira revista. Para isso, devemos entrar na área de administrador do OJS.
Após isso devemos clicar em Revistas hospedadas
.
Agora devemos clicar em criar revista
.
Agora devemos:
- Escolher o nome de nossa revista;
- Escolher a sigla de nossa revista;
- Escolher a abreviatura de nossa revista (recomendada ser a mesma da sigla);
- Escrever uma descrição para nossa revista;
- Adicionar o final do caminho da revista (recomendado ser a mesma da sigla);
- Escolher os idiomas que a revista terá e o idioma principal da mesma;
- Permitir Acesso Livre a esta revista no portal;
- Por fim, somente falta salvar a nossa revista e pronto.
Agora podemos observar que nossa revista foi criada.
Exercício 1
Como administrador, crie 10 revistas fictícias no OJS, preenchendo as informações mínimas (nome, descrição, idioma). Em seguida, acesse cada revista como autor e submeta 2 artigos utilizando o fluxo editorial completo, passando por todas as etapas: submissão, designação de avaliadores, decisão editorial, edição, produção e publicação. Após isso, utilize a opção de submissão rápida e submeta 1 artigo por revista, publicando-o diretamente. Ao final, cada revista deverá conter 3 artigos publicados: 2 pelo fluxo completo e 1 pela submissão rápida.
Dia 2
Criação de um plugin do tipo Block
No OJS, assim como em outras plataformas, há vários tipos de plugins. Na presente parte vamos explicar o passo a passo para criarmos um plugin do tipo bloco. Na pasta plugins/blocks devemos criar uma pasta com o nome de nosso novo plugin: mkdir estagiarios
. Dentro da pasta do nosso plugin, vamos criar alguns arquivos:
touch index.php
touch EstagiariosBlockPlugin.php
touch version.xml
mkdir templates
touch templates/block.tpl
O conteúdo do arquivo index.php deve retornar a instância da classe principal do plugin:
<?php
return new \APP\plugins\blocks\estagiarios\EstagiariosBlockPlugin();
Já no arquivo xml há metadados do plugin:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE version SYSTEM "../../../lib/pkp/dtd/pluginVersion.dtd">
<version>
<application>estagiarios</application>
<type>plugins.blocks</type>
<release>1.0.0.0</release>
<date>2025-01-01</date>
<lazy-load>1</lazy-load>
<class>EstagiariosBlockPlugin</class>
</version>
O arquivo block.tpl
será o arquivo renderizado com o conteúdo que vamos apresentar, no nosso plugin as lista de estagiários de TI da FFLCH-USP:
<h2>Estagiários(as) de TI da FFLCH-USP</h2>
<ul>
<li>Maria</li>
<li>João</li>
</ul>
Por fim, vamos definir nossa class EstagiariosBlockPlugin.php
que deve conter no mínimos os métodos: getDisplayName, getDescription e getContents:
<?php
namespace APP\plugins\blocks\estagiarios;
use PKP\plugins\BlockPlugin;
class EstagiariosBlockPlugin extends BlockPlugin {
public function getDisplayName() {
return 'Plugin dos Estagiários';
}
public function getDescription() {
return 'Lista de estagiários de TI da FFLCH-USP';
}
public function getContents($templateMgr, $request = null) {
return parent::getContents($templateMgr, $request);
}
public function isSitePlugin() {
return true;
}
}
Alguns plugins devem ser aplicado somente nas revistas, outros plugins devem ser aplicados de forma global, no site principal que cuida das revistas, como implementamos o método isSitePlugin
, nosso bloco estará disponível em todo portal e não apenas em uma revista específica.
Instalando o plugin
Na área de Configurações do Portal
do OJS, acesse a aba plugins e habilite o plugin:
Após isso, limpe o cache e vá em aparência na opção configurar:
Em seguida, selecionar o plugin para aparecer na barra lateral:
Pronto, seu plugin está visível em seu site.
E se quisermos passarmos um array com a lista de estagiários da classe php para o template?
<?php
$estagiarios = ['maria','pedro', 'joão'];
$templateMgr->assign('estagiarios', $estagiarios);
E no template block.tpl:
<ul>
{foreach from=$estagiarios item=estagiario}
<li>{$estagiario}</li>
{/foreach}
</ul>
Exercício 1 - Importação de Dados e Estatísticas no bloco do OJS
Objetivo: Criar um novo plugin no OJS para ler dados de um arquivo CSV e exibir estatísticas desses dados em um bloco.
https://raw.githubusercontent.com/mwaskom/seaborn-data/master/exercise.csv
- Ler o arquivo
exercise.csv
dentro do métodogetContents()
do bloco. - Calcular a média da coluna pulse para cada tipo de atividade (rest, walking, running).
- Exibir a tabela abaixo no bloco com as informações lidas e processadas do csv.
exercise.csv | rest | walking | running |
---|---|---|---|
Qtde linhas | XX | XX | XXX |
Média Pulse | XX | XX | XXX |