39 lines
1.6 KiB
PHP
39 lines
1.6 KiB
PHP
<?php
|
|
if (! function_exists('render_field_form')) {
|
|
/**
|
|
* 폼 필드를 렌더링하고 유효성 검사 오류를 포함합니다.
|
|
* ServiceService에서 가져오던 로직을 여기로 옮깁니다.
|
|
*/
|
|
function render_field_form(string $field, $value, array $viewDatas): string
|
|
{
|
|
$service = $viewDatas['service'] ?? null;
|
|
if ($service === null) {
|
|
return __FUNCTION__ . "에서 오류발생: ViewDatas에 'service'가 정의되지 않았습니다.";
|
|
}
|
|
$formHelper = $service->getFormService();
|
|
$html = $formHelper->getSpecificFieldHtml($field, $value, $viewDatas);
|
|
$error = validation_show_error($field);
|
|
return $html . "<span>{$error}</span>";
|
|
}
|
|
|
|
if (! function_exists('render_field_label')) {
|
|
function render_field_label(string $field, array $viewDatas): string
|
|
{
|
|
$classPath = $viewDatas['class_path'];
|
|
$baseLabel = lang("{$classPath}.label.{$field}");
|
|
// 1. ServiceForm에서 동적 처리(예: 도움말 아이콘, 별도 클래스)를 가져옵니다.
|
|
$service = $viewDatas['service'] ?? null;
|
|
if ($service === null) {
|
|
return __FUNCTION__ . "에서 오류발생: ViewDatas에 'service'가 정의되지 않았습니다.";
|
|
}
|
|
$formHelper = $service->getFormHelper();
|
|
$dynamicHtml = $formHelper->getSpecificLabelAdornment($field);
|
|
// 2. 공통 로직: 필수 필드 표시 (*)
|
|
// (ServiceForm이 해당 필드가 필수인지 알려줘야 함)
|
|
$isRequired = $formHelper->isFieldRequired($field);
|
|
$requiredStar = $isRequired ? '<span class="text-danger">*</span>' : '';
|
|
return "{$baseLabel}{$requiredStar}{$dynamicHtml}";
|
|
}
|
|
}
|
|
}
|