Conn2Flow
Navegação das docs

SDD

req-121: Mover Página de Publicação entre Tipos de Publicador no Módulo Publisher Pages

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…

  • 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/ e resources/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'] e status != '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_id de old_publisher_id para new_publisher_id para o page_id em questão.

Módulo 3: Tratamento Inteligente de Prefixos de URL (path_prefix) e Redirecionamento 301

  • Regra de Substituição de Prefixo:

    1. Obter o path_prefix do publicador de origem (ex: noticias/) e o path_prefix do publicador de destino (ex: artigos/).

    2. Inspecionar o campo caminho atual da página (ex: noticias/minha-materia/).

    3. 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 caminho na tabela paginas.

      • Registrar Redirecionamento 301: Invocar gestor_pagina_301_registrar($id_paginas, $caminhoAntigo) para registrar a rota antiga na tabela paginas_301.

      • Sincronizar Sitemap: Chamar publisher_pages_sitemap_sincronizar(false, $caminhoAntigo) para atualizar o XML de sitemap.

    4. Caso NÃO contenha o prefixo de origem (URL customizada manualmente pelo usuário via admin-paginas):

      • Manter o caminho exatamente 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 de publisher_id e de caminho (se aplicável).

  • Adicionar todas as variáveis de idioma e labels em pt-br e en no arquivo publisher-pages.json e nos recursos correspondentes.


3. Critérios de Aceite e Validação

  1. Botão de Mover: Botão visível e funcional na tela de edição do publisher-pages em pt-br e en.

  2. Seleção de Destino: Modal/Dropdown lista todos os publicadores ativos do idioma corrente.

  3. Atualização Relacional: O publisher_id é alterado com sucesso em paginas e publisher_pages.

  4. Transformação de URL com Prefixo:

    • Página com caminho padrão prefixo_antigo/slug/ passa para prefixo_novo/slug/.

    • Rota antiga é cadastrada na tabela paginas_301 e redireciona 301 para a nova rota.

  5. Preservação de URL Customizada: Página com caminho que não continha o prefixo original permanece com a mesma URL e sem 301.

  6. Integridade de Histórico: Modificação registrada no histórico de alterações do módulo.

  7. Testes: Cobertura de teste cobrindo a rotina de mover, cálculo de prefixo e redirecionamento 301.

O Futuro é Híbrido: Humano + IA.

O Conn2Flow é a ferramenta. Se você precisa do Arquiteto para desenhar a estratégia da sua empresa usando essa tecnologia...

Contrate Consultoria Especializada