1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 
<?php
/* --------------------------------------------------------------
   SharedShoppingCartConfigurationController.inc.php 2016-04-07 gm
   Gambio GmbH
   http://www.gambio.de
   Copyright (c) 2016 Gambio GmbH
   Released under the GNU General Public License (Version 2)
   [http://www.gnu.org/licenses/gpl-2.0.html]
   --------------------------------------------------------------
*/

MainFactory::load_class('HttpViewController');

/**
 * Class SharedShoppingCartConfigurationController
 *
 * @category System
 * @package HttpViewControllers
 */
class SharedShoppingCartConfigurationController extends HttpViewController
{
    /**
     * @var LanguageTextManager $languageTextManager
     */
    protected $languageTextManager;

    /**
     * @var int $defaultLifePeriod
     */
    protected $defaultLifePeriod = 365;

    /**
     * Initializes the controller
     *
     * @param HttpContextInterface $httpContext
     * @throws LogicException
     */
    public function proceed(HttpContextInterface $httpContext)
    {
        $this->contentView->set_template_dir(DIR_FS_ADMIN . 'html/content/module_center/');
        parent::proceed($httpContext); // proceed http context from parent class
    }
    
    public function actionDefault()
    {
        $this->languageTextManager = MainFactory::create('LanguageTextManager', 'shared_shopping_cart_configuration', (int)$_SESSION['languages_id']);
        $lifePeriod = $this->_getShoppingCartLifePeriod();
        
        $html = $this->_render('shared_shopping_cart_configuration.html',
            array(
                'life_period' => $lifePeriod
            ));
        
        return new AdminPageHttpControllerResponse($this->languageTextManager->get_text('shared_shopping_cart_configuration_title'), $html);
    }

    public function actionStore()
    {
        $this->_storeLifePeriod(new IntType($this->_getPostData('life_period')));
        return new RedirectHttpControllerResponse(xtc_href_link('admin.php', 'do=SharedShoppingCartConfiguration'));
    }

    protected function _getShoppingCartLifePeriod()
    {
        $lifePeriod = gm_get_conf('SHARED_SHOPPING_CART_LIFE_PERIOD');
        if($lifePeriod === null)
        {
            $lifePeriod = $this->defaultLifePeriod;
            $this->_storeLifePeriod(new IntType((int)$lifePeriod));
        }
        $lifePeriod = (int)$lifePeriod;
        
        return $lifePeriod;
    }

    protected function _storeLifePeriod(IntType $lifePeriod)
    {
        gm_set_conf('SHARED_SHOPPING_CART_LIFE_PERIOD', $lifePeriod->asInt());
    }
}