Настройки веб-сайта
Website Settings дают вам возможность настроить параметры, относящиеся к конкретному веб-сайту, доступ к которым вы можете получить в любом контроллере и представлении.
Примеры:
- Публичный и приватный ключи ReCAPTCHA
- Настройки локали
- API-ключ Google Maps
- Значения по умолчанию
- ....
Доступ к настройкам
В контроллерах и представлениях вы можете использовать хелперы представления или аргументы для получения доступа к конфигурации. Возвращаемая конфигурация — это массив, содержащий ваши настройки.
ример конфигурации

Использование в шаблоне:
{# доступ ко всей конфигурации #}
{{ pimcore_website_config() }}
{# или только к отдельному значению #}
{{ pimcore_website_config('googleMapsKey') }}
{# можно передать значение по умолчанию на случай, если значение не настроено #}
{{ pimcore_website_config('googleMapsKey', 'NOT SET') }}
Использование в контроллере:
<?php
use Symfony\Component\HttpFoundation\Response;
class TestController
{
public function testAction(array $websiteConfig): Response
{
$recaptchaKeyPublic = $websiteConfig['recaptchaPublic'];
// ...
}
}
Манипулирование значениями в контроллере
Если вы хотите изменить значение параметра веб-сайта с помощью вашего PHP-скрипта, например, с помощью контроллера, вы можете использовать этот код.
<?php
use Symfony\Component\HttpFoundation\Response;
class TestController
{
public function testAction(): Response
{
// получить значение "somenumber" для "de"
// если свойство не существует, вы получите значение для не установленного языка
$somesetting = \Pimcore\Model\WebsiteSetting::getByName('somenumber', null, 'de');
$currentnumber = $somesetting->getData();
//Теперь сделайте что-нибудь с данными или установите новые данные
//Подсчитайте в этом случае
$newnumber = $currentnumber + 1;
$somesetting->setData($newnumber);
$somesetting->save();
// ...
}
}
События
Вы также можете прослушивать события, связанные с изменением настроек веб-сайта.
namespace Pimcore\Event;
final class WebsiteSettingEvents
{
/**
* @Event("Pimcore\Event\Model\WebsiteSettingEvent")
*
* @var string
*/
public const PRE_ADD = 'pimcore.websiteSetting.preAdd';
/**
* @Event("Pimcore\Event\Model\WebsiteSettingEvent")
*
* @var string
*/
public const POST_ADD = 'pimcore.websiteSetting.postAdd';
/**
* @Event("Pimcore\Event\Model\WebsiteSettingEvent")
*
* @var string
*/
public const PRE_UPDATE = 'pimcore.websiteSetting.preUpdate';
/**
* @Event("Pimcore\Event\Model\WebsiteSettingEvent")
*
* @var string
*/
public const POST_UPDATE = 'pimcore.websiteSetting.postUpdate';
/**
* @Event("Pimcore\Event\Model\WebsiteSettingEvent")
*
* @var string
*/
public const PRE_DELETE = 'pimcore.websiteSetting.preDelete';
/**
* @Event("Pimcore\Event\Model\WebsiteSettingEvent")
*
* @var string
*/
public const POST_DELETE = 'pimcore.websiteSetting.postDelete';
}
Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.