WP Manifestindependent plugin directory
manifest / editor / onlyoffice-footnote-fixer

OnlyOffice Footnote Fixer

Plugin para WordPress que corrige automaticamente os hyperlinks de notas de rodapé gerados pelo OnlyOffice ao colar conteúdo no editor Gutenberg.

by Seu Nome · github.com/43nr1qv3/onlyoffice-footnote-fixer · website

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/43nr1qv3/onlyoffice-footnote-fixer/archive/refs/heads/main.zip

Plugin para WordPress que corrige automaticamente os hyperlinks de notas de rodapé gerados pelo OnlyOffice ao colar conteúdo no editor Gutenberg.


🧩 O Problema

Ao criar um documento no OnlyOffice com notas de rodapé e colar o conteúdo no editor Gutenberg, os hyperlinks são gerados de forma incorreta:

Âncora no corpo do texto

<!-- ❌ OnlyOffice gera -->
<a href="about:blank#_ftn1"><sup>[1]</sup></a>

<!-- ✅ Correto -->
<a href="#_ftn1" id="_ftnref1"><sup>[1]</sup></a>

Link de retorno no rodapé

<!-- ❌ OnlyOffice gera -->
<a href="about:blank#_ftnref1">[1]</a>

<!-- ✅ Correto -->
<a href="#_ftnref1" id="_ftn1">[1]</a>

Outros problemas gerados

Problema Errado Correto
href com about:blank href="about:blank#_ftn1" href="#_ftn1"
id com # no valor id="#_ftnref1" id="_ftnref1"
Atributo inválido type="internal" removido
id ausente na âncora sem id id="_ftnref1"
id ausente no rodapé sem id id="_ftn1"

✅ A Solução

O plugin intercepta o conteúdo antes de salvar no banco de dados e corrige todos os padrões problemáticos automaticamente, sem nenhuma ação manual.

Também é possível corrigir posts já publicados através da correção em massa no painel administrativo.


📋 Requisitos

Requisito Versão mínima
WordPress 5.0
PHP 7.4
Editor Gutenberg (editor de blocos)

📦 Instalação

Via painel do WordPress (recomendado)

  1. Baixe o arquivo onlyoffice-footnote-fixer.zip
  2. No painel do WordPress, acesse Plugins → Adicionar Novo
  3. Clique em Enviar Plugin
  4. Selecione o arquivo .zip e clique em Instalar Agora
  5. Após a instalação, clique em Ativar Plugin

Via FTP / terminal

# Extraia o zip dentro da pasta de plugins
unzip onlyoffice-footnote-fixer.zip -d /seu-site/wp-content/plugins/

# Ative pelo painel ou via WP-CLI
wp plugin activate onlyoffice-footnote-fixer

⚙️ Configurações

Acesse Configurações → Footnote Fixer no painel do WordPress.

Opções disponíveis

Correção automática ao salvar

Corrige os hyperlinks automaticamente toda vez que um post é salvo no Gutenberg. Ativado por padrão.

Recomendado manter ativado. A correção ocorre antes de gravar no banco de dados, garantindo que o conteúdo seja sempre salvo corretamente.

Log de correções

Registra cada correção realizada em um arquivo de log localizado em wp-content/off-fixer.log.

Útil para auditoria. Desativado por padrão.

Tipos de post

Define quais tipos de post serão processados na correção em massa. Por padrão: post e page.


🔧 Correção em Massa

Processa todos os posts já publicados e corrige as notas de rodapé que foram salvas antes da ativação do plugin.

Como usar:

  1. Acesse Configurações → Footnote Fixer
  2. Selecione os tipos de post desejados
  3. Clique em Iniciar Correção em Massa
  4. Acompanhe o progresso no log em tempo real

⚠️ Faça um backup do banco de dados antes de executar a correção em massa.

O processamento ocorre em lotes de 10 posts para evitar timeout e sobrecarga do servidor.


🔍 Ferramenta de Preview

Permite testar a correção antes de aplicar nos posts.

Como usar:

  1. Acesse Configurações → Footnote Fixer
  2. Cole um trecho de HTML copiado do OnlyOffice
  3. Clique em Testar
  4. Veja o HTML original e o corrigido lado a lado

🗂️ Estrutura do Plugin

onlyoffice-footnote-fixer/
│
├── onlyoffice-footnote-fixer.php   # Ponto de entrada, metadados e ciclo de vida
│
├── includes/
│   └── footnote-fixer.php          # Lógica de detecção e correção do HTML
│
└── admin/
    ├── settings-page.php           # Interface do painel administrativo
    └── js/
        └── admin.js                # Preview e correção em massa via AJAX

🔄 Como Funciona

Usuário cola conteúdo do OnlyOffice no Gutenberg
        │
        ▼
Clica em "Salvar" → WordPress dispara content_save_pre
        │
        ▼
Plugin verifica se há padrões do OnlyOffice no conteúdo
        │
        ├── NÃO → conteúdo salvo sem alteração
        │
        └── SIM → aplica as correções:
                │
                ├── about:blank#_ftn1   →  href="#_ftn1" id="_ftnref1"
                ├── about:blank#_ftnref →  href="#_ftnref1" id="_ftn1"
                ├── id="#_ftn1"         →  id="_ftn1"
                └── type="internal"     →  removido
                │
                ▼
        HTML corrigido salvo no banco de dados

🪝 Hooks Utilizados

Hook Tipo Descrição
content_save_pre filter Corrige antes de salvar no banco
the_content filter Corrige na exibição (fallback para posts antigos)
wp_ajax_off_fixer_bulk_fix action Endpoint AJAX da correção em massa
wp_ajax_off_fixer_preview action Endpoint AJAX do preview
admin_menu action Registra a página de configurações
admin_init action Registra as opções na Settings API
admin_enqueue_scripts action Carrega o JS apenas na página do plugin
plugin_action_links_* filter Adiciona link "Configurações" na lista de plugins
plugins_loaded action Inicializa o plugin com segurança

🗄️ Dados Armazenados

O plugin armazena apenas uma opção no banco de dados:

Opção Tipo Descrição
off_fixer_options array Configurações do plugin
off_fixer_version string Versão instalada

Ao desinstalar o plugin, todas as opções e o arquivo de log são removidos automaticamente.


🏗️ Geração do ZIP

Linux / macOS

cd wp-content/plugins/

zip -r onlyoffice-footnote-fixer.zip onlyoffice-footnote-fixer/ \
    --exclude "*.git*" \
    --exclude "*.DS_Store" \
    --exclude "*.zip"

Windows (PowerShell)

Compress-Archive -Path .\onlyoffice-footnote-fixer\ `
                 -DestinationPath .\onlyoffice-footnote-fixer.zip

Script de build

# Dentro da pasta do plugin
chmod +x build.sh
./build.sh

📝 Changelog

1.0.0

  • Lançamento inicial
  • Correção de href="about:blank#_ftn*"
  • Correção de id="#_ftn*" com hash no valor
  • Remoção do atributo type="internal"
  • Adição de id ausente nas âncoras
  • Correção em massa com progresso em tempo real
  • Ferramenta de preview no painel
  • Log de correções opcional

📄 Licença

Distribuído sob a licença GPLv2 or later. Consulte https://www.gnu.org/licenses/gpl-2.0.html para mais detalhes.