%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/modules/main/lib/numerator/generator/ |
| Current File : //home/bitrix/www/bitrix/modules/main/lib/numerator/generator/randomnumbergenerator.php |
<?
namespace Bitrix\Main\Numerator\Generator;
use Bitrix\Main\Localization\Loc;
use Bitrix\Main\Numerator\Generator\Contract\UserConfigurable;
use Bitrix\Main\Result;
Loc::loadMessages(__FILE__);
/**
* Class RandomNumberGenerator - replaces random symbol's sequence in numerator template
* @package Bitrix\Main\Numerator\Generator
*/
class RandomNumberGenerator extends NumberGenerator implements UserConfigurable
{
protected $length;
const TEMPLATE_WORD_RANDOM = 'RANDOM';
/** @inheritdoc */
public function setConfig($config)
{
$this->setFromArrayOrDefault('length', $config, 5, 'int');
}
/** @inheritdoc */
public function getConfig()
{
return ['length' => $this->length,];
}
/** @inheritdoc */
public function parseTemplate($template)
{
return str_replace(static::getPatternFor(static::TEMPLATE_WORD_RANDOM), $this->generateRandomString(), $template);
}
/** @inheritdoc */
public static function getTemplateWordsForParse()
{
return [static::getPatternFor(static::TEMPLATE_WORD_RANDOM)];
}
/**
* @return bool|string
*/
private function generateRandomString()
{
return randString($this->length, ['ABCDEFGHIJKLNMOPQRSTUVWXYZ', '0123456789']);
}
/**
* @return string
*/
public static function getAvailableForType()
{
return 'DEFAULT';
}
/** @inheritdoc */
public static function getTemplateWordsSettings()
{
return [
static::getPatternFor(static::TEMPLATE_WORD_RANDOM) =>
Loc::getMessage('BITRIX_MAIN_NUMERATOR_GENERATOR_RANDOMNUMBERGENERATOR_WORD_RANDOM'),
];
}
/** @inheritdoc */
public static function getSettingsFields()
{
return [
[
'settingName' => 'length',
'type' => 'int',
'default' => 5,
'title' => Loc::getMessage('TITLE_BITRIX_MAIN_NUMERATOR_GENERATOR_RANDOMNUMBERGENERATOR_LENGTH'),
],
];
}
/** @inheritdoc */
public function validateConfig($config)
{
$result = new Result();
return $result;
}
}