66 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
<?php
 | 
						|
 | 
						|
namespace itguild\forms\form\inputs;
 | 
						|
 | 
						|
use itguild\forms\form\templates\Template;
 | 
						|
 | 
						|
abstract class BaseInput
 | 
						|
{
 | 
						|
    protected Template $inputTemplate;
 | 
						|
    protected bool $hasLabel = false;
 | 
						|
    protected string $html = '';
 | 
						|
    protected string|Label $label = "";
 | 
						|
    protected string $labelString = "";
 | 
						|
 | 
						|
    /**
 | 
						|
     * @return void
 | 
						|
     */
 | 
						|
    public function render(): void
 | 
						|
    {
 | 
						|
        echo $this->html;
 | 
						|
    }
 | 
						|
 | 
						|
     public function fetch(): string
 | 
						|
     {
 | 
						|
         return $this->html;
 | 
						|
     }
 | 
						|
 | 
						|
    public abstract function create();
 | 
						|
 | 
						|
    /**
 | 
						|
     * @param string|Label $title
 | 
						|
     * @return $this
 | 
						|
     */
 | 
						|
    public function setLabel(string|Label $title): self
 | 
						|
    {
 | 
						|
        $this->hasLabel = true;
 | 
						|
        $this->label= $title;
 | 
						|
 | 
						|
        return $this;
 | 
						|
    }
 | 
						|
 | 
						|
    protected function createLabel()
 | 
						|
    {
 | 
						|
        if($this->hasLabel) {
 | 
						|
            if(is_string($this->label)){
 | 
						|
                $this->labelString = "<label>$this->label</label>";
 | 
						|
            }
 | 
						|
            else {
 | 
						|
                $this->labelString= $this->label->create()->fetch();
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @param $template
 | 
						|
     * @return $this
 | 
						|
     */
 | 
						|
    public function setTemplate($template): self
 | 
						|
    {
 | 
						|
        $this->inputTemplate = new $template();
 | 
						|
 | 
						|
        return $this;
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
} |