Skip to main content Link Search Menu Expand Document (external link)
  1. Dia 1
    1. Instalação
    2. Criando a primeira revista
    3. Exercício 1
  2. Dia 2
    1. Criação de um plugin do tipo Block
    2. Instalando o plugin
    3. Exercício 1 - Importação de Dados e Estatísticas no bloco do OJS

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.

Primeira parte

Na segunda parte devemos escolher a língua primária do OJS e as línguas adicionais do mesmo.

Segunda parte

Na terceira parte devemos verificar se o local onde o diretório será criado é o qual desejamos.

Terceira parte

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)

Quarta parte

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.

Primeira parte

Após isso devemos clicar em Revistas hospedadas.

Segunda parte

Agora devemos clicar em criar revista.

Terceira parte

Agora devemos:

  1. Escolher o nome de nossa revista;
  2. Escolher a sigla de nossa revista;
  3. Escolher a abreviatura de nossa revista (recomendada ser a mesma da sigla);
  4. Escrever uma descrição para nossa revista;
  5. Adicionar o final do caminho da revista (recomendado ser a mesma da sigla);
  6. Escolher os idiomas que a revista terá e o idioma principal da mesma;
  7. Permitir Acesso Livre a esta revista no portal;
  8. Por fim, somente falta salvar a nossa revista e pronto.

Quarta parte

Quinta parte

Agora podemos observar que nossa revista foi criada.

Sexta parte

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:

Terceira parte

Após isso, limpe o cache e vá em aparência na opção configurar:

Quinta parte

Em seguida, selecionar o plugin para aparecer na barra lateral:

Sexta parte

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étodo getContents() 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.csvrestwalkingrunning
Qtde linhasXXXXXXX
Média PulseXXXXXXX