diff --git a/classes/controller/FrontController.php b/classes/controller/FrontController.php index abe7d578f..bd1d3feab 100755 --- a/classes/controller/FrontController.php +++ b/classes/controller/FrontController.php @@ -605,12 +605,8 @@ class FrontControllerCore extends Controller if (!in_array(Tools::getRemoteAddr(), explode(',', Configuration::get('PS_MAINTENANCE_IP')))) { header('HTTP/1.1 503 temporarily overloaded'); - $this->context->smarty->assign(array( - 'favicon_url' => _PS_IMG_.Configuration::get('PS_FAVICON'), - 'logo_image_width' => Configuration::get('SHOP_LOGO_WIDTH'), - 'logo_image_height' => Configuration::get('SHOP_LOGO_HEIGHT'), - 'logo_url' => _PS_IMG_.Configuration::get('PS_LOGO').'?'.Configuration::get('PS_IMG_UPDATE_TIME') - )); + + $this->context->smarty->assign($this->initLogoAndFavicon()); $template_dir = ($this->context->getMobileDevice() == true ? _PS_THEME_MOBILE_DIR_ : _PS_THEME_DIR_); $this->smartyOutputContent($template_dir.'maintenance.tpl'); @@ -785,13 +781,11 @@ class FrontControllerCore extends Controller 'img_update_time' => Configuration::get('PS_IMG_UPDATE_TIME'), 'static_token' => Tools::getToken(false), 'token' => Tools::getToken(), - 'logo_image_width' => Configuration::get('SHOP_LOGO_WIDTH'), - 'logo_image_height' => Configuration::get('SHOP_LOGO_HEIGHT'), 'priceDisplayPrecision' => _PS_PRICE_DISPLAY_PRECISION_, 'content_only' => (int)Tools::getValue('content_only'), - 'logo_url' => _PS_IMG_.Configuration::get('PS_LOGO').'?'.Configuration::get('PS_IMG_UPDATE_TIME'), - 'favicon_url' => _PS_IMG_.Configuration::get('PS_FAVICON'), )); + + $this->context->smarty->assign($this->initLogoAndFavicon()); } public function initFooter() @@ -1141,4 +1135,21 @@ class FrontControllerCore extends Controller $this->context->smarty->assign($assign); $this->template = $template; } + + /** + * Return an array with specific logo and favicon, + * if mobile device + * + * @since 1.5 + * @return array + */ + public function initLogoAndFavicon() + { + return array( + 'favicon_url' => _PS_IMG_.Configuration::get('PS_FAVICON'), + 'logo_image_width' => ($this->context->getMobileDevice() == false ? Configuration::get('SHOP_LOGO_WIDTH') : Configuration::get('SHOP_LOGO_MOBILE_WIDTH')), + 'logo_image_height' => ($this->context->getMobileDevice() == false ? Configuration::get('SHOP_LOGO_HEIGHT') : Configuration::get('SHOP_LOGO_MOBILE_HEIGHT')), + 'logo_url' => ($this->context->getMobileDevice() == false ? _PS_IMG_.Configuration::get('PS_LOGO').'?'.Configuration::get('PS_IMG_UPDATE_TIME') : _PS_IMG_.Configuration::get('PS_LOGO_MOBILE').'?'.Configuration::get('PS_IMG_UPDATE_TIME')) + ); + } } diff --git a/controllers/admin/AdminThemesController.php b/controllers/admin/AdminThemesController.php index 029f43503..eaa87e60c 100644 --- a/controllers/admin/AdminThemesController.php +++ b/controllers/admin/AdminThemesController.php @@ -127,6 +127,14 @@ class AdminThemesControllerCore extends AdminController 'type' => 'file', 'thumb' => _PS_IMG_.Configuration::get('PS_LOGO').'?date='.time() ), + 'PS_LOGO_MOBILE' => array( + 'title' => $this->l('Mobile Header logo'), + 'desc' => + ((Configuration::get('PS_LOGO_MOBILE') === false) ? ''.$this->l('Warning: No mobile logo defined, the header logo is used instead.').'
' : ''). + $this->l('Will appear on mobile main page. If undefined, the Header logo will be used'), + 'type' => 'file', + 'thumb' => (Configuration::get('PS_LOGO_MOBILE') !== false && file_exists(_PS_IMG_DIR_.Configuration::get('PS_LOGO_MOBILE'))) ? _PS_IMG_.Configuration::get('PS_LOGO_MOBILE').'?date='.time() : _PS_IMG_.Configuration::get('PS_LOGO').'?date='.time() + ), 'PS_LOGO_MAIL' => array( 'title' => $this->l('Mail logo'), 'desc' => @@ -400,6 +408,12 @@ class AdminThemesControllerCore extends AdminController Configuration::updateValue('SHOP_LOGO_HEIGHT', (int)round($height)); Configuration::updateValue('SHOP_LOGO_WIDTH', (int)round($width)); } + if (file_exists(_PS_IMG_DIR_.'logo_mobile.jpg')) + { + list($width, $height, $type, $attr) = getimagesize(_PS_IMG_DIR_.Configuration::get('PS_LOGO_MOBILE')); + Configuration::updateValue('SHOP_LOGO_MOBILE_HEIGHT', (int)round($height)); + Configuration::updateValue('SHOP_LOGO_MOBILE_WIDTH', (int)round($width)); + } $this->content .= $content; return parent::initContent(); @@ -539,6 +553,14 @@ class AdminThemesControllerCore extends AdminController { $this->updateLogo('PS_LOGO', 'logo'); } + + /** + * Update PS_LOGO_MOBILE + */ + public function updateOptionPsLogoMobile() + { + $this->updateLogo('PS_LOGO_MOBILE', 'logo_mobile'); + } /** * Update PS_LOGO_MAIL