Перейти к основному содержимому

Настройки веб-сайта

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';
}


Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.