Created
August 7, 2020 08:33
-
-
Save adibenc/07e82ecd9613b8bdb6ec05ae476ad2cf to your computer and use it in GitHub Desktop.
customizable (editable) static form helper
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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