Files
grzanieplus.pl/plugins/stEservice2Plugin/modules/stEservice2Backend/actions/actions.class.php
2025-03-12 17:06:23 +01:00

104 lines
3.1 KiB
PHP

<?php
class stEservice2BackendActions extends stActions
{
public function initializeParameters()
{
$this->config = stConfig::getInstance('stEservice2Backend');
$this->labels = $this->getLabels();
}
public function executeIndex()
{
if ($this->getRequest()->getMethod() == sfRequest::POST)
{
$modules = PaymentTypePeer::doSelectByModuleName('stEservice2');
if (!$modules)
{
$modules = PaymentTypePeer::doSelectByModuleName('stEservice');
}
/**
* @var PaymentType $module
*/
foreach ($modules as $module)
{
$module->setModuleName('stEservice2');
$module->setIsActive($this->config->get('enabled'));
$module->save();
}
if ($this->config->get('enabled'))
{
$config = stConfig::getInstance('stEserviceBackend');
$config->set('enabled', false);
$config->save();
}
$this->config->save();
$this->setFlash('notice', $this->getContext()->getI18n()->__('Twoje zmiany zostały zapisane', null, 'stAdminGeneratorPlugin'));
return $this->redirect($this->getRequest()->getReferer());
}
if ($this->config->get('enabled')!=1) {
$this->setFlash('info', '<a target="_parent" href="https://www.eservice.pl/kontakt?branza=eCommerce?utm_source=&utm_medium=Sote">'.$this->getContext()->getI18n()->__('Zarejestruj się w eService, aby utworzyć konto.').'</a>');
}
}
public function validateIndex()
{
$this->initializeParameters();
if ($this->getRequest()->getMethod() == sfRequest::POST)
{
$i18n = $this->getContext()->getI18N();
$this->config->setFromRequest('config');
$api = new stEservice2();
if (!$this->config->get('enabled'))
{
return true;
}
foreach (['client_id', 'password'] as $field)
{
if (empty($this->config->get($field)))
{
$this->getRequest()->setError('config{'.$field.'}', $i18n->__('Proszę uzupełnić pole.'));
}
}
if (!$this->getRequest()->hasErrors() && !$api->validatePaymentConfiguration())
{
$this->getRequest()->setError('api', $i18n->__('Wystąpił błąd podczas weryfikacji danych dostępowych. Sprawdź czy podane dane są prawidłowe.'));
}
}
return !$this->getRequest()->hasErrors();
}
public function handleErrorIndex()
{
$this->initializeParameters();
return sfView::SUCCESS;
}
protected function getLabels()
{
$i18n = $this->getContext()->getI18N();
return array(
'api' => 'eService',
'config{client_id}' => $i18n->__('Identyfikator sprzedawcy'),
'config{password}' => $i18n->__('Hasło')
);
}
}