* @copyright 2007-2018 PrestaShop SA * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ namespace PrestaShop\PrestaShop\Adapter; use PrestaShop\PrestaShop\Core\Configuration\DataConfigurationInterface; /** * Manages the configuration data about general options. */ class GeneralConfiguration implements DataConfigurationInterface { /** * @var Configuration */ private $configuration; public function __construct(Configuration $configuration) { $this->configuration = $configuration; } /** * {@inheritdoc} */ public function getConfiguration() { return array( 'check_modules_update' => $this->configuration->getBoolean('PRESTASTORE_LIVE'), 'check_ip_address' => $this->configuration->getBoolean('PS_COOKIE_CHECKIP'), 'front_cookie_lifetime' => $this->configuration->get('PS_COOKIE_LIFETIME_FO'), 'back_cookie_lifetime' => $this->configuration->get('PS_COOKIE_LIFETIME_BO'), ); } /** * {@inheritdoc} */ public function updateConfiguration(array $configuration) { $errors = array(); if ($this->validateConfiguration($configuration)) { $this->configuration->set('PRESTASTORE_LIVE', (bool) $configuration['check_modules_update']); $this->configuration->set('PS_COOKIE_CHECKIP', (bool) $configuration['check_ip_address']); $this->configuration->set('PS_COOKIE_LIFETIME_FO', (int) $configuration['front_cookie_lifetime']); $this->configuration->set('PS_COOKIE_LIFETIME_BO', (int) $configuration['back_cookie_lifetime']); } return $errors; } /** * {@inheritdoc} */ public function validateConfiguration(array $configuration) { return isset( $configuration['check_modules_update'], $configuration['check_ip_address'], $configuration['front_cookie_lifetime'], $configuration['back_cookie_lifetime'] ); } }