mirror of
https://github.com/YGGverse/YGGtracker.git
synced 2026-04-01 09:35:28 +00:00
update form validation
This commit is contained in:
parent
d8f6b6d27e
commit
f3b32a713f
4 changed files with 112 additions and 110 deletions
|
|
@ -167,16 +167,6 @@ class AppModelValidator
|
|||
return $this->_config->page->keywords->required;
|
||||
}
|
||||
|
||||
public function getPageKeywordsLengthMin() : int
|
||||
{
|
||||
return $this->_config->page->keywords->length->min;
|
||||
}
|
||||
|
||||
public function getPageKeywordsLengthMax() : int
|
||||
{
|
||||
return $this->_config->page->keywords->length->max;
|
||||
}
|
||||
|
||||
public function getPageKeywordsQuantityMin() : int
|
||||
{
|
||||
return $this->_config->page->keywords->quantity->min;
|
||||
|
|
@ -187,14 +177,9 @@ class AppModelValidator
|
|||
return $this->_config->page->keywords->quantity->max;
|
||||
}
|
||||
|
||||
public function getPageKeywordsRegex() : string
|
||||
{
|
||||
return $this->_config->page->keywords->regex;
|
||||
}
|
||||
|
||||
public function pageKeywords(mixed $value, array &$error = []) : bool
|
||||
{
|
||||
if (!is_array($value))
|
||||
if (!is_string($value))
|
||||
{
|
||||
array_push(
|
||||
$error,
|
||||
|
|
@ -214,69 +199,62 @@ class AppModelValidator
|
|||
return false;
|
||||
}
|
||||
|
||||
$total = 0;
|
||||
|
||||
foreach ($value as $keywords)
|
||||
if ($this->getPageKeywordsRequired())
|
||||
{
|
||||
if (!is_string($kt))
|
||||
{
|
||||
array_push(
|
||||
$error,
|
||||
_('Invalid magnet keyword value data type')
|
||||
);
|
||||
$total = 0;
|
||||
|
||||
return false;
|
||||
foreach (explode(PHP_EOL, str_replace(['#', ',', ' '], PHP_EOL, $value)) as $keyword)
|
||||
{
|
||||
$error = [];
|
||||
|
||||
if (!$this->pageKeyword($keyword, $error))
|
||||
{
|
||||
array_push(
|
||||
$error,
|
||||
_('Invalid page keyword'),
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
$total++;
|
||||
}
|
||||
|
||||
if (!preg_match(MAGNET_KT_REGEX, $kt))
|
||||
if ($total < $this->getPageKeywordsQuantityMin() ||
|
||||
$total > $this->getPageKeywordsQuantityMax())
|
||||
{
|
||||
array_push(
|
||||
$error,
|
||||
sprintf(
|
||||
_('Magnet keyword format does not match condition "%s"'),
|
||||
MAGNET_KT_REGEX
|
||||
_('Page keywords quantity out of %s-%s range'),
|
||||
$this->getPageKeywordsQuantityMin(),
|
||||
$this->getPageKeywordsQuantityMax()
|
||||
)
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
if (mb_strlen($kt) < MAGNET_KT_MIN_LENGTH ||
|
||||
mb_strlen($kt) > MAGNET_KT_MAX_LENGTH)
|
||||
{
|
||||
array_push(
|
||||
$error,
|
||||
sprintf(
|
||||
_('Magnet keyword out of %s-%s chars range'),
|
||||
MAGNET_KT_MIN_LENGTH,
|
||||
MAGNET_KT_MAX_LENGTH
|
||||
)
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
$total++;
|
||||
}
|
||||
|
||||
if ($total < MAGNET_KT_MIN_QUANTITY ||
|
||||
$total > MAGNET_KT_MAX_QUANTITY)
|
||||
{
|
||||
array_push(
|
||||
$error,
|
||||
sprintf(
|
||||
_('Magnet keywords quantity out of %s-%s range'),
|
||||
MAGNET_KT_MIN_QUANTITY,
|
||||
MAGNET_KT_MAX_QUANTITY
|
||||
)
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/// Page keyword
|
||||
public function getPageKeywordLengthMin() : int
|
||||
{
|
||||
return $this->_config->page->keyword->length->min;
|
||||
}
|
||||
|
||||
public function getPageKeywordLengthMax() : int
|
||||
{
|
||||
return $this->_config->page->keyword->length->max;
|
||||
}
|
||||
|
||||
public function getPageKeywordRegex() : string
|
||||
{
|
||||
return $this->_config->page->keyword->regex;
|
||||
}
|
||||
|
||||
public function pageKeyword(mixed $value, array &$error = []) : bool
|
||||
{
|
||||
if (!is_string($value))
|
||||
|
|
@ -289,29 +267,28 @@ class AppModelValidator
|
|||
return false;
|
||||
}
|
||||
|
||||
if (!preg_match($this->getPageKeywordsRegex(), $value))
|
||||
if (!preg_match($this->getPageKeywordRegex(), $value))
|
||||
{
|
||||
array_push(
|
||||
$error,
|
||||
sprintf(
|
||||
_('Page keyword "%s" format does not match condition "%s"'),
|
||||
$value,
|
||||
$this->getPageKeywordsRegex()
|
||||
_('Page keyword format does not match condition "%s"'),
|
||||
$this->getPageKeywordRegex()
|
||||
)
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
if (mb_strlen($value) < $this->getPageDescriptionLengthMin() ||
|
||||
mb_strlen($value) > $this->getPageDescriptionLengthMax())
|
||||
if (mb_strlen($value) < $this->getPageKeywordLengthMin() ||
|
||||
mb_strlen($value) > $this->getPageKeywordLengthMax())
|
||||
{
|
||||
array_push(
|
||||
$error,
|
||||
sprintf(
|
||||
_('Page description out of %s-%s chars range'),
|
||||
$this->getPageDescriptionLengthMin(),
|
||||
$this->getPageDescriptionLengthMax()
|
||||
_('Page keyword out of %s-%s chars range'),
|
||||
$this->getPageKeywordLengthMin(),
|
||||
$this->getPageKeywordLengthMax()
|
||||
)
|
||||
);
|
||||
|
||||
|
|
@ -327,6 +304,11 @@ class AppModelValidator
|
|||
return $this->_config->page->torrent->required;
|
||||
}
|
||||
|
||||
public function getPageTorrentMimeTypes() : array
|
||||
{
|
||||
return $this->_config->page->torrent->mime;
|
||||
}
|
||||
|
||||
// Common
|
||||
public function host(mixed $value, array &$error = []) : bool
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue