Skip to content

Instantly share code, notes, and snippets.

@adibenc
Created August 7, 2020 08:33
Show Gist options
  • Save adibenc/07e82ecd9613b8bdb6ec05ae476ad2cf to your computer and use it in GitHub Desktop.
Save adibenc/07e82ecd9613b8bdb6ec05ae476ad2cf to your computer and use it in GitHub Desktop.
customizable (editable) static form helper
<?php
namespace App\Helpers;
/**
*
* Static form helper
*
*/
class AppForm{
// example {!! App\Helpers\AppForm::input('text', 'email','email') !!}
static function input($type="text", $label="label", $name="name", $required=false, $value="",$placeholder=null, $attr="", $footnote=""){
$required=$required ? "required":"";
$placeholder=$placeholder ? $placeholder:ucfirst($label);
$pattern = $type == "password"?"pattern=\".{8,}\"":"";
return "<div class=\"form-group row\">
<label for=\"$name\" class=\"col-sm-3 col-form-label\">".ucwords($label)."</label>
<div class=\"col-sm-9\">
<input type=\"$type\" class=\"form-control\" id=\"$name\"
name=\"$name\" placeholder=\"".$placeholder."\" $required value=\"$value\" $pattern $attr>
</div>
<div class=\"invalid-feedback\">
$footnote
</div>
</div>";
}
static function inputDisabled($type="text", $label="label", $name="name", $required=false, $value=""){
$required=$required ? "required":"";
return "<div class=\"form-group row\">
<label for=\"$name\" class=\"col-sm-3 col-form-label\">".ucwords($label)."</label>
<div class=\"col-sm-9\">
<input type=\"$type\" class=\"form-control\" id=\"$name\"
name=\"$name\" placeholder=\"".ucfirst($label)."\" $required value=\"$value\" disabled>
</div>
</div>";
}
static function select($label="label", $name="name", $data=[],$required=false, $value=""){
$required=$required ? "required":"";
$opts="";
foreach($data as $d){
$select = "";
if($value == $d){
$select = "selected";
}
$opts.="<option $select value=\"$d\">".ucwords($d)."</option>";
}
return "<div class=\"form-group row\">
<label for=\"$name\" class=\"col-sm-3 col-form-label\">$label</label>
<div class=\"col-sm-9\">
<select class=\"form-control\" name=\"$name\" id=\"$name\">
<option>-</option>
$opts
</select>
</div>
</div>";
}
static function selectNamed($label="label", $name="name", $data=[[]],$required=false, $value=""){
$required=$required ? "required":"";
$opts="";
foreach($data as $d){
$select = "";
if($value == $d[0]){
$select = "selected";
}
$opts.="<option $select value=\"$d[0]\">".ucwords($d[1])."</option>";
}
return "<div class=\"form-group row\">
<label for=\"$name\" class=\"col-sm-3 col-form-label\">$label</label>
<div class=\"col-sm-9\">
<select class=\"form-control\" name=\"$name\" id=\"$name\">
<option>-</option>
$opts
</select>
</div>
</div>";
}
static function selectModel($label="label", $name="name", $data=[], $col1, $col2,$required=false, $value=""){
$required=$required ? "required":"";
$opts="";
foreach($data as $d){
$select = "";
if($value == $d->$col1){
$select = "selected";
}
$opts.="<option $select value=\"".$d->$col1."\">".ucwords($d->$col2)."</option>";
}
return "<div class=\"form-group row\">
<label for=\"$name\" class=\"col-sm-3 col-form-label\">$label</label>
<div class=\"col-sm-9\">
<select class=\"form-control\" name=\"$name\" id=\"$name\">
<option>-</option>
$opts
</select>
</div>
</div>";
}
}
/*
example at blade view :
@php
$data = $modeldata;
@endphp
<div class="row">
<div class="col-lg-6 col-md-6">
{!! App\Helpers\AppForm::input('input', 'Nomor', 'nomor', true, $data->nomor ) !!}
</div>
<div class="col-lg-6 col-md-6">
{!! App\Helpers\AppForm::input('input', 'Bidang', 'bidang', true) !!}
</div>
<div class="col-lg-6 col-md-6">
{!! App\Helpers\AppForm::select('prioritas', 'prioritas', ["super prioritas","prioritas"], true) !!}
</div>
</div>
<div class="row">
<div class="col-lg-6 col-md-6">
{!! App\Helpers\AppForm::input('input', 'Longitude', 'long', true,0,"Isikan 0 jika belum tahu nilai pasti") !!}
</div>
<div class="col-lg-6 col-md-6">
{!! App\Helpers\AppForm::input('input', 'Latitude', 'lat', true,0,"Isikan 0 jika belum tahu nilai pasti") !!}
</div>
<div class="col-lg-6 col-md-6">
{!! App\Helpers\AppForm::selectModel('Field', 'field', App\Models\Model::all(), "slug", "jenis",true) !!}
</div>
<div class="col-lg-6 col-md-6">
{!! App\Helpers\AppForm::inputDisabled('input', 'email pengisi', '',false, $u->email) !!}
</div>
</div>
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment