Origem
Intake humano req-004.md - Correções e melhorias identificadas nos testes visuais/fluxo do módulo publisher-highlights entregue em BATCH-002.
Escopo do Lote
Slice corretivo do módulo publisher-highlights sem mudar o requisito normativo de 03-wrapped-widgets-and-publisher-highlights.md. Adiciona uma extensão pequena ao fields_schema (order_by) e expande a integração com html-editor para variáveis [[item#...]].
Checklist de Implementação
1. Formulário Completo em Adicionar/Clonar
-
[x] Alinhar
publisher-highlights-adicionar.htmlcompublisher-highlights-editar.html(regra de curadoria, modelo visual, mapeamento, editor HTML/CSS). -
[x] Alinhar
publisher-highlights-clonar.htmlcompublisher-highlights-editar.htmlmantendo os hiddenhtml-original/css-originalpara clonagem fiel. -
[x] Em
publisher-highlights.php, gravarfields_schema,htmlecsstambém em_adicionar()e_clonar()(não apenas em_editar()). -
[x] Garantir que
html_editor_componente()é renderizado em adicionar/clonar via placeholder#html-editor#.
2. Placeholder #template_placeholder_option#
-
[x] Em
publisher-highlights.php, substituir#template_placeholder_option#pela traduçãogestor_variaveis(['modulo' => 'admin-templates', 'id' => 'form-name-placeholder'])nas três rotas (adicionar/editar/clonar).
3. Dropdown template_id Dinâmico
-
[x] Criar função
publisher_highlights_template_options($selected_id)listando templates ativos comtarget='publisher-highlights'na linguagem corrente, ordenados pornome. -
[x] Preencher placeholder
#template_id_options#no HTML e marcarselectedo template ativo (apenas na edição/clonagem). -
[x] Chamar a função nas três rotas.
4. Visibilidade Dinâmica template-options-wrapper
-
[x] Aplicar
style="display:none;"no segmento.template-options-wrapperpor padrão. -
[x] Em
publisher-highlights.js, monitorarselect[name="template_id"]e exibir/ocultar o bloco conforme valor.
5. Ordenação na Regra "Automática"
-
[x] Adicionar campo
order_bynofields_schema(defaultdate_desc). -
[x] Adicionar dropdown
#order_byno formulário visível apenas quandorule === 'latest'. -
[x] Opções suportadas:
title_asc,title_desc,date_asc,date_desc. -
[x] Em
publisher-highlights.widget.php, mapearorder_by-> SQL na funçãopublisher_highlights_widget_buscar_publicacoes.
6. Autocomplete Múltiplo Fomantic (Regra "Manual")
-
[x] Substituir
<textarea name="selected_items">por<select multiple class="ui multiple search selection dropdown">. -
[x] Adicionar endpoint AJAX
publisher-pages-searchque retornapaginasativas filtradas porpublisher_id(e busca opcional por nome). -
[x] No JS, configurar
apiSettingsdo dropdown para consultar o endpoint usando opublisher_idselecionado. -
[x] Pré-hidratar opções no carregamento (editar/clonar) a partir de
schema.selected_items(resolvendo nomes via AJAXpublisher-pages-fetch). -
[x] Limpar seleção quando
publisher_idmuda. -
[x] Preservar a ordem da seleção do dropdown ao serializar
selected_itemsno submit.
7. Variáveis [[item#...]] no Editor HTML/CSS
-
[x] Em
html-editor.php, quando$alvo === 'publisher-highlights', passar umatarget_variables(variáveisitem#Xextraídas do template ou dovariable_mapping) para a interface JS viagestor_js_variavel_incluir. -
[x] Em
html-editor-interface.js, detectar o alvopublisher-highlightse:-
usar regex
/\[\[item#([a-zA-Z0-9_\-]+)\]\]/gempublisherGetAllVariables,publisherVariablesSearche funções de adicionar/remover variáveis. -
renderizar a coluna "variável" como
[[item#NOME]]em vez de[[publisher#TIPO#ID]].
-
-
[x] No
publisher-highlights.js, alimentar a lista de variáveis via callback do AJAXtemplate-loadquando o alvo forpublisher-highlights.
Itens fora do escopo deste batch
-
Migração de schema de banco de dados (a tabela
publisher_highlightsmantém estrutura atual;template_idcontinua sendo um auxiliar de UI, não persistido). -
Redesenho da camada de abstração do
html-editor. O suporte apublisher-highlightsé incremental sobre a camada existente.