Files
kupshop/bundles/External/ZNZBundle/Resources/script/GenerateParameterUrlScript.php
2025-08-02 16:30:27 +02:00

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;