public function initPicker(PickerInterface $picker)
	{
		$attributes = parent::initPicker($picker);

		if (null === $attributes)
		{
			return null;
		}

		$this->blnFiles = isset($attributes['files']) && $attributes['files'];
		$this->blnFilesOnly = isset($attributes['filesOnly']) && $attributes['filesOnly'];

		if (isset($attributes['path']))
		{
			$strPath = (string) $attributes['path'];

			if (Validator::isInsecurePath($strPath) || !is_dir($this->strRootDir . '/' . $strPath))
			{
				throw new \RuntimeException('Invalid path ' . $strPath);
			}

			// Allow only those roots that are allowed in root nodes
			if (!empty($this->arrFilemounts))
			{
				$blnValid = false;

				foreach ($this->arrFilemounts as $strFolder)
				{
					if (0 === strpos($strPath, $strFolder))
					{
						$blnValid = true;
						break;
					}
				}

				if (!$blnValid)
				{
					$strPath = '';
				}
			}

			$this->arrFilemounts = array($strPath);
		}

		if (isset($attributes['extensions']))
		{
			$this->arrValidFileTypes = StringUtil::trimsplit(',', strtolower($attributes['extensions']));
		}

		return $attributes;
	}
public function initPicker(PickerInterface $picker)
	{
		$attributes = parent::initPicker($picker);

		if (null === $attributes)
		{
			return null;
		}

		$this->blnFiles = isset($attributes['files']) && $attributes['files'];
		$this->blnFilesOnly = isset($attributes['filesOnly']) && $attributes['filesOnly'];

		if (isset($attributes['path']))
		{
			$strPath = (string) $attributes['path'];

			if (Validator::isInsecurePath($strPath) || !is_dir($this->strRootDir . '/' . $strPath))
			{
				throw new \RuntimeException('Invalid path ' . $strPath);
			}

			
			if (!empty($this->arrFilemounts))
			{
				$blnValid = false;

				foreach ($this->arrFilemounts as $strFolder)
				{
					if (0 === strpos($strPath, $strFolder))
					{
						$blnValid = true;
						break;
					}
				}

				if (!$blnValid)
				{
					$strPath = '';
				}
			}

			$this->arrFilemounts = array($strPath);
		}

		if (isset($attributes['extensions']))
		{
			$this->arrValidFileTypes = StringUtil::trimsplit(',', strtolower($attributes['extensions']));
		}

		return $attributes;
	}
public function initPicker ( PickerInterface $ picker ) { $ attributes = parent :: initPicker ( $ picker ) ; if ( null === $ attributes ) { return null ; } $ this -> blnFiles = isset ( $ attributes [ 'files' ] ) && $ attributes [ 'files' ] ; $ this -> blnFilesOnly = isset ( $ attributes [ 'filesOnly' ] ) && $ attributes [ 'filesOnly' ] ; if ( isset ( $ attributes [ 'path' ] ) ) { $ strPath = ( string ) $ attributes [ 'path' ] ; if ( Validator :: isInsecurePath ( $ strPath ) || ! is_dir ( $ this -> strRootDir . '/' . $ strPath ) ) { throw new \ RuntimeException ( 'Invalid path ' . $ strPath ) ; } // Allow only those roots that are allowed in root nodes if ( ! empty ( $ this -> arrFilemounts ) ) { $ blnValid = false ; foreach ( $ this -> arrFilemounts as $ strFolder ) { if ( 0 === strpos ( $ strPath , $ strFolder ) ) { $ blnValid = true ; break ; } } if ( ! $ blnValid ) { $ strPath = '' ; } } $ this -> arrFilemounts = array ( $ strPath ) ; } if ( isset ( $ attributes [ 'extensions' ] ) ) { $ this -> arrValidFileTypes = StringUtil :: trimsplit ( ',' , strtolower ( $ attributes [ 'extensions' ] ) ) ; } return $ attributes ; }
{@inheritdoc}
{