52 lines
1.6 KiB
PHP
52 lines
1.6 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace External\ZNZBundle\Resources\script;
|
|
|
|
use KupShop\AdminBundle\Util\Script\Script;
|
|
use Query\Operator;
|
|
|
|
class GenerateParameterUrlScript extends Script
|
|
{
|
|
protected static $name = '[ZNZ] Generování URL hodnot parametrů';
|
|
protected static $defaultParameters = [
|
|
'language' => 'en',
|
|
];
|
|
|
|
protected function run(array $arguments)
|
|
{
|
|
$language = $arguments['language'];
|
|
$this->log("Překládám URL filtru do jazyka {$language}...");
|
|
|
|
foreach ($this->getParametersForTranslation($language) as $parameter) {
|
|
$url = strtolower(preg_replace('/[^\w\s]/', '', $parameter['value']));
|
|
$url = str_replace(' ', ' ', $url);
|
|
$url = str_replace(' ', '-', $url);
|
|
|
|
sqlQueryBuilder()
|
|
->update('parameters_list_translations')
|
|
->directValues(['filter_url' => $url])
|
|
->where(Operator::equals(['id' => $parameter['id'], 'id_parameters_list' => $parameter['id_parameters_list']]))
|
|
->execute();
|
|
}
|
|
|
|
$this->log('Přeloženo');
|
|
}
|
|
|
|
protected function getParametersForTranslation(string $language): iterable
|
|
{
|
|
return sqlQueryBuilder()
|
|
->select('id, id_parameters_list, value')
|
|
->from('parameters_list_translations')
|
|
->where(Operator::equals(['id_language' => $language]))
|
|
->andWhere(Operator::andX(
|
|
Operator::isNotNull('value'),
|
|
Operator::not(Operator::equals(['value' => '']))
|
|
))
|
|
->execute();
|
|
}
|
|
}
|
|
|
|
return GenerateParameterUrlScript::class;
|