PlayerHUD Filter

Filtro de shortcodes do ecossistema PlayerHUD — documentação completa.

English | Português

View on GitHub Download .zip

Moodle License Status Latest Release PlayerGames Ecosystem Role Author

Moodle Plugin CI Last Commit Open Issues

O Filtro PlayerHUD é um plugin complementar obrigatório do Bloco PlayerHUD. Ele permite inserir drops de itens colecionáveis, ofertas de troca e o widget compacto do HUD diretamente no conteúdo do curso Moodle por meio de shortcodes.

Esse filtro possibilita que o professor incorpore elementos interativos dentro de páginas, rótulos, livros e outras atividades que suportem HTML, integrando-se ao sistema de gamificação PlayerHUD.

👈 Use a barra lateral para ir a qualquer seção desta página.


✨ Funcionalidades

🕹️ Ecossistema PlayerGames

Este plugin faz parte do ecossistema de gamificação PlayerGames. Juntos, esses plugins transformam o Moodle em uma experiência imersiva:

📦 Requisitos

Componente Versão
Moodle 4.5+
PHP Compatível com a versão do Moodle
Dependência obrigatória Bloco PlayerHUD

🛠️ Instalação

  1. Certifique-se de que o Bloco PlayerHUD esteja instalado primeiro — o filtro depende do bloco e não será instalado sem ele.

    👉 https://github.com/jeanlucio/moodle-block_playerhud

  2. Baixe o arquivo .zip ou clone este repositório.
  3. Extraia a pasta para o diretório filter/ do seu Moodle.
  4. Renomeie para playerhud (se necessário). Caminho final: seu-moodle/filter/playerhud/
  5. Acesse Administração do site > Notificações para concluir a instalação.
  6. Ative o filtro em: Administração do site > Plugins > Filtros > Gerenciar filtros.

📖 Como Usar

  1. Certifique-se de que o Bloco PlayerHUD esteja adicionado e configurado no curso.
  2. Ative o Filtro PlayerHUD (veja Instalação).
  3. Insira um dos shortcodes abaixo em qualquer área de conteúdo que passe pelos filtros do Moodle — páginas, rótulos, capítulos de livro, posts de fórum, etc.
  4. Os drops de itens e os widgets de troca são renderizados dinamicamente dentro do curso; os estudantes coletam/trocam conforme as regras definidas no Painel de Gerenciamento do Bloco PlayerHUD.

Os shortcodes são removidos (renderizados como vazio) para convidados, na página inicial do site, para um usuário cuja capability block/playerhud:view esteja proibida, e para um estudante que tenha pausado sua própria gamificação — em todos esses casos nada sobre o item ou a troca subjacente é enviado ao navegador.

Referência de Shortcodes

[PLAYERHUD_WIDGET]

Renderiza o widget compacto do PlayerHUD: avatar, XP/nível, estoque de itens recentes, badge de ranking e (quando o modo RPG está ativado) a barra de karma e o retrato da classe. Não recebe atributos.

[PLAYERHUD_WIDGET]

[PLAYERHUD_DROP code=... mode=... text=... button_text=... button_emoji=...]

Renderiza um gatilho de coleta de item.

Atributo Obrigatório Valores Padrão Descrição
code Sim Alfanumérico O código único de coleta do drop, gerado ao criar o drop no Painel de Gerenciamento.
mode Não card, text, image card Apresentação visual: um card autocontido com ícone e botão, um link de texto embutido, ou uma imagem clicável apenas com ícone.
text Não Qualquer texto O nome do item Rótulo customizado exibido junto ao gatilho (ignorado para itens secretos até serem coletados).
button_text Não Qualquer texto “Take” Sobrescreve o texto do botão de coleta (modos card/text).
button_emoji Não Qualquer emoji 🖐 Sobrescreve o emoji do botão de coleta (modo card).
[PLAYERHUD_DROP code=XPTO123]
[PLAYERHUD_DROP code=XPTO123 mode=text text="Pegue a espada"]
[PLAYERHUD_DROP code=XPTO123 mode=image]
[PLAYERHUD_DROP code=XPTO123 button_text="Coletar!" button_emoji="⚔️"]

Um item secreto (marcado como tal no Painel de Gerenciamento) sempre renderiza como um placeholder de mistério genérico — nome, descrição e XP ocultos — até que o estudante realmente o colete, mesmo que um atributo text customizado seja fornecido.

Um item pode opcionalmente ser restrito a classes RPG específicas; um estudante fora das classes permitidas nunca vê a saída do shortcode (nem mesmo um placeholder).

[PLAYERHUD_TRADE code=...]

Renderiza um card de troca da loja NPC embutido no conteúdo, com verificação de saldo em tempo real contra o inventário atual do usuário.

Atributo Obrigatório Valores Descrição
code Sim Código de 6 caracteres exibido na entrada da troca no Painel de Gerenciamento Identifica a troca a ser renderizada.
[PLAYERHUD_TRADE code=A1B2C3]

O code da troca é uma conveniência de consulta curta, não uma barreira de segurança — o acesso à troca em si é sempre revalidado no servidor (sesskey, capability e checagem de grupo) no momento em que o estudante efetivamente a realiza.

Observações

🧪 Testes Automatizados

O filtro inclui testes unitários/integração (PHPUnit) e de aceitação em navegador (Behat), executados a cada push de CI contra a matriz completa (Moodle 4.5 → 5.2, PostgreSQL & MariaDB).

PHPUnit — Testes Unitários e de Integração

Arquivo de teste Casos
filter_test.php 28
Total 28
vendor/bin/phpunit --testsuite filter_playerhud

Cobertura de linhas total (PHPUnit + Xdebug): 79%.

Behat — Testes de Aceitação

Arquivo de feature Cenários
filter_playerhud_modals.feature 6
Total 6
php admin/tool/behat/cli/init.php
vendor/bin/behat --tags=@filter_playerhud --profile=chrome

Detalhamento completo dos testes e tabela de cobertura →

🔐 Segurança e Conformidade

Provedor de Privacidade

O Filtro PlayerHUD implementa o null_provider do Moodle — ele apenas exibe dados pertencentes e armazenados pelo Bloco PlayerHUD (itens, drops, trocas, inventário); nunca persiste nenhum dado pessoal próprio. Veja a documentação do próprio bloco para a cobertura completa de exportação/exclusão GDPR.

📄 Licença

Este projeto é licenciado sob a GNU General Public License v3 (GPLv3).

Copyright: 2026 Jean Lúcio