utilising extension instead of php class. implemented select in BulmaFormHelper. This is to be extended further

This commit is contained in:
tp_dhu 2025-03-24 02:39:20 +00:00
parent 5565d92e1e
commit 2a3465fff8
4 changed files with 20 additions and 88 deletions

View File

@ -67,6 +67,17 @@ class BulmaFormHelper extends \Prefab {
}
static function build_h_field_select($label, $name, $options, $selected){
$opts = json_decode(str_replace("'", '"', $options));
$opts_string = "";
foreach($opts as $k => $v){
if($v == $selected){
$selected_str = " selected";
} else {
$selected_str = "";
}
$opts_string .= '<option'.$selected_str.'>'.$v.'</option>';
}
$string =
'<div class="field is-horizontal">
<div class="field-label is-normal">
@ -75,7 +86,9 @@ class BulmaFormHelper extends \Prefab {
<div class="field-body">
<div class="field">
<div class="select">
$options
<select id="'.$name.'" name="'.$name.'">
'.$opts_string.'
</select>
</div>
</div>
</div>

View File

@ -1,83 +0,0 @@
<?php
// this isn't the way to do it, but nevermind!
class BulmaForm {
public static function horizontal_field_input($label = "%label%", $name = "%name%", $value=""){
$string = '
<div class="field is-horizontal">
<div class="field-label is-normal">
<label class="label">%label%</label>
</div>
<div class="field-body">
<div class="field">
<div class="control">
<input class="input" type="text" name="%name%" value="%value%">
</div>
</div>
</div>
</div>
';
$string = str_replace('%label%', $label, $string);
$string = str_replace('%name%', $name, $string);
$string = str_replace('%value%', $value, $string);
return $string;
}
public static function horizontal_field_textarea($label = "%label%", $name = "%name%", $value=""){
$string = '
<div class="field is-horizontal">
<div class="field-label is-normal">
<label class="label">%label%</label>
</div>
<div class="field-body">
<div class="field">
<div class="control">
<textarea class="textarea" type="text" name="%name%">%value%</textarea>
</div>
</div>
</div>
</div>
';
$string = str_replace('%label%', $label, $string);
$string = str_replace('%name%', $name, $string);
$string = str_replace('%value%', $value, $string);
return $string;
}
public static function horizontal_field_select($label="%label%", $name="%name%", $options=[], $selected=0){
$string = '
<div class="field is-horizontal">
<div class="field-label is-normal">
<label class="label">%label%</label>
</div>
<div class="field-body">
<div class="field">
<div class="select">
<select name="%name%">
%options%
</select>
</div>
</div>
</div>
</div>
';
$string = str_replace('%label%', $label, $string);
$string = str_replace('%name%', $name, $string);
$opts_str = ''; $i=0;
foreach($options as $v){
$opts_str .= '<option'.($i==$selected ? ' selected="selected" ' : '').'>'.$v.'</option>';
$i++;
}
$string = str_replace('%options%', $opts_str, $string);
return $string;
}
}

View File

@ -6,8 +6,9 @@
<bulma type="H_FIELD_INPUT" label="Title:" name="title" value=""></bulma>
<bulma type="H_FIELD_TEXTAREA" label="Description:" name="description" value=""></bulma>
{{ BulmaForm::horizontal_field_select('Priority:', 'priority', ['Low', 'Medium', 'High'])}}
{{ BulmaForm::horizontal_field_select('Status:', 'status', ['New', 'In Progress', 'On Hold', 'Completed'])}}
<bulma type="H_FIELD_SELECT" label="Priority:" name="priority" options="['Low', 'Medium', 'High']" selected="Medium"></bulma>
<bulma type="H_FIELD_SELECT" label="Status:" name="status" options="['New', 'In Progress', 'On Hold', 'Completed']" selected="New"></bulma>
<!-- custom fields -->
<hr>

View File

@ -5,8 +5,9 @@
<bulma type="H_FIELD_INPUT" label="Title:" name="title" value="{{@ticket.title}}"></bulma>
<bulma type="H_FIELD_TEXTAREA" label="Description:" name="description" value="{{@ticket.description}}"></bulma>
{{ BulmaForm::horizontal_field_select('Priority:', 'priority', ['Low', 'Medium', 'High'])}}
{{ BulmaForm::horizontal_field_select('Status:', 'status', ['New', 'In Progress', 'On Hold', 'Completed'])}}
<bulma type="H_FIELD_SELECT" label="Priority:" name="priority" options="['Low', 'Medium', 'High']" selected="{{@ticket.priority}}"></bulma>
<bulma type="H_FIELD_SELECT" label="Status:" name="status" options="['New', 'In Progress', 'On Hold', 'Completed']" selected="{{@ticket.status}}"></bulma>
<div class="block">