-
Status do intake: implemented-pending-homologation
-
Data: 2026-08-19
-
Origem: demanda do usuário para permitir a migração de páginas de publicação (
publisher-pages) entre diferentes tipos de publicador (publisher), com tratamento inteligente de prefixo de URL (path_prefix) e registro de redirecionamento 301 (paginas_301) -
Classificação: nova funcionalidade, CRUD administrativo, roteamento & SEO, integridade de banco de dados
-
Batch candidato: BATCH-122
1. Contexto e Objetivos
No Conn2Flow, cada página criada via módulo publisher-pages é uma publicação ancorada a um registro do módulo publisher (Tipo de Publicação). Atualmente, na tela de edição de uma publicação (publisher-pages/editar), o seletor do publicador-pai é bloqueado (disabled publisherDropdown), impedindo que uma página mude de publicador após sua criação.
Esta requisição introduz a funcionalidade de Mover Página de Publicação, permitindo transferir a custódia da publicação de um tipo de publicador para outro diretamente pelo painel administrativo, mantendo a integridade referencial, o histórico de versões e as regras de URL/SEO da plataforma.
2. Escopo Técnico Requerido
Módulo 1: Interface de Usuário — Botão e Modal de Transferência de Publicador
-
Localização:
gestor/modulos/publisher-pages/resources/pt-br/pages/publisher-pages-editar/eresources/en/pages/publisher-pages-editar/. -
Comportamento Visual:
-
Inserir botão de ação "Mover Publicação" / "Move Publication" na interface de edição (junto às opções do publicador, ao lado de "Editar Publicador").
-
Ao clicar no botão, abrir modal ou painel de seleção estruturado exibindo a lista de todos os Publicadores disponíveis no idioma corrente (
language = $_GESTOR['linguagem-codigo']estatus != 'D'). -
O publicador atual deve vir pré-selecionado ou destacado, permitindo escolher o novo publicador de destino.
-
Alerta/confirmação antes da execução explicando que a página passará a pertencer ao novo tipo de publicação e que a URL poderá ser recalculada caso use o prefixo padrão.
-
Módulo 2: Backend — Processamento de Migração e Herança de Pai
-
Localização:
gestor/modulos/publisher-pages/publisher-pages.php. -
Ação de Backend (Move Action / Sub-endpoint):
-
Validar permissões de acesso e existência da página e do publicador de destino.
-
Atualizar a referência de custódia na tabela
paginas: -
publisher_id: atualizado para o ID do novo publicador alvo. -
data_modificacao:NOW()/ preservação via formato. -
versao: incremento de versão. -
user_modified:1. -
Atualizar o registro correspondente na tabela
publisher_pages: -
Atualizar a coluna
publisher_iddeold_publisher_idparanew_publisher_idpara opage_idem questão.
-
Módulo 3: Tratamento Inteligente de Prefixos de URL (path_prefix) e Redirecionamento 301
-
Regra de Substituição de Prefixo:
-
Obter o
path_prefixdo publicador de origem (ex:noticias/) e opath_prefixdo publicador de destino (ex:artigos/). -
Inspecionar o campo
caminhoatual da página (ex:noticias/minha-materia/). -
Caso contenha o prefixo de origem no início:
-
Substituir o prefixo antigo pelo novo prefixo (ex:
noticias/minha-materia/$\rightarrow$artigos/minha-materia/). -
Verificar se o novo caminho não colide com outra página existente no banco (
interface_verificar_campos). -
Gravar o novo
caminhona tabelapaginas. -
Registrar Redirecionamento 301: Invocar
gestor_pagina_301_registrar($id_paginas, $caminhoAntigo)para registrar a rota antiga na tabelapaginas_301. -
Sincronizar Sitemap: Chamar
publisher_pages_sitemap_sincronizar(false, $caminhoAntigo)para atualizar o XML de sitemap.
-
-
Caso NÃO contenha o prefixo de origem (URL customizada manualmente pelo usuário via
admin-paginas):-
Manter o
caminhoexatamente como está, sem alterações. -
Não gerar registro 301 desnecessário (pois a URL não foi alterada).
-
-
Módulo 4: Auditoria, Histórico e Internacionalização
-
Registrar a alteração no histórico (
interface_historico_incluir) documentando a mudança depublisher_ide decaminho(se aplicável). -
Adicionar todas as variáveis de idioma e labels em
pt-breenno arquivopublisher-pages.jsone nos recursos correspondentes.
3. Critérios de Aceite e Validação
-
Botão de Mover: Botão visível e funcional na tela de edição do
publisher-pagesempt-breen. -
Seleção de Destino: Modal/Dropdown lista todos os publicadores ativos do idioma corrente.
-
Atualização Relacional: O
publisher_idé alterado com sucesso empaginasepublisher_pages. -
Transformação de URL com Prefixo:
-
Página com caminho padrão
prefixo_antigo/slug/passa paraprefixo_novo/slug/. -
Rota antiga é cadastrada na tabela
paginas_301e redireciona 301 para a nova rota.
-
-
Preservação de URL Customizada: Página com caminho que não continha o prefixo original permanece com a mesma URL e sem 301.
-
Integridade de Histórico: Modificação registrada no histórico de alterações do módulo.
-
Testes: Cobertura de teste cobrindo a rotina de mover, cálculo de prefixo e redirecionamento 301.