Data: 2026-06-22
Status: complete
Intake: sdd/human-requests/req-051.md
Escopo
-
Tornar o escape de
htmlehtml_extra_headpadrão nohtml_editor_componente()quando esses parâmetros forem informados. -
Remover a dependência do parâmetro explícito
html_specialcharsno módulo Forms. -
Permitir opções
value:labelevalue|labelno renderer público de Forms. -
Adicionar suporte público e administrativo aos tipos
radioecheckbox. -
Atualizar os 5 templates de Forms em
pt-breenpara blocostype-radioetype-checkbox.
Implementação
-
gestor/bibliotecas/html-editor.php-
#pagina-html#e#pagina-html-extra-head#agora são escapados automaticamente comhtmlspecialchars(..., ENT_QUOTES, 'UTF-8')quandohtml/html_extra_headexistem nos parâmetros.
-
-
gestor/modulos/forms/forms.php-
forms_prepare_editor_page()mantémhtmlehtml_extra_head, mas não envia maishtml_specialchars.
-
-
gestor/modulos/forms/forms.widget.php-
forms_widget_options_html()interpreta|e:para separarvaluee label. -
radioecheckboxrenderizam<input>dentro de<label>. -
checkboxusaname[]. -
forms_widget_render_field()reconhecetype-radioetype-checkboxe restringetype-inputaos tipos simples.
-
-
gestor/modulos/forms/forms.js-
Dropdown de tipos inclui
radioecheckbox. -
.forms-field-optionsaparece apenas paraselect,radioecheckbox. -
Placeholder instrutivo localizado foi adicionado à textarea de opções.
-
Leitura do tipo usa
dropdown('get value')com fallback para.val(), evitando inconsistência do Fomantic.
-
-
Templates físicos
-
Atualizados
forms-contato-basico,forms-newsletter-newsletter,forms-registro-usuario,forms-pesquisa-satisfacaoeforms-suporte-tecnicoempt-breen. -
Todos receberam blocos
type-radioetype-checkbox.
-
-
Modos IA de Forms
-
resources/pt-br/ai_modes/forms/forms.mderesources/en/ai_modes/forms/forms.mdforam expandidos usando o modo IA demenuscomo referência de contrato. -
Os prompts agora documentam entrada/saída em markdown, placeholders sem
@, blocostype-*, variáveis globais, contrato do<form>e uso correto de[[item#options]].
-
Validação
-
php -l gestor/bibliotecas/html-editor.php-> OK. -
php -l gestor/modulos/forms/forms.php-> OK. -
php -l gestor/modulos/forms/forms.widget.php-> OK. -
node --check gestor/modulos/forms/forms.js-> OK. -
Teste PHP via stdin para
forms_widget_options_html()com select, radio e checkbox -> OK. -
Validação Node dos marcadores
type-radio/type-checkboxnos 10 templates -> OK. -
Validação Node dos tokens obrigatórios nos modos IA
forms.mdpt-br/en -> OK. -
php ./gestor/controladores/agents/arquitetura/atualizacao-dados-recursos.php-> OK, 2222 recursos e nenhum problema detectado. -
composer test-> OK, 40 testes, 112 assertions, 4 skipped, 1 deprecation. -
npm run test-> falhou no sandbox porAccess is deniedao carregarvitest.config.js; reexecutado com permissão escalada -> OK, 2 arquivos e 3 testes.
Pendências runtime
-
Validar no navegador o CRUD de campo alternando entre tipos simples, select, radio e checkbox.
-
Publicar/renderizar um formulário com opções
sp:São Pauloerj|Rio de Janeiro. -
Confirmar que HTML com
<textarea>segue carregando corretamente no CodeMirror por outros módulos que passamhtmlao editor.