From ed3953e9fabd59ae4a2c9501716fa508315e9fd1 Mon Sep 17 00:00:00 2001 From: bMancone Date: Wed, 21 Dec 2011 20:29:21 +0000 Subject: [PATCH] // fixed homeSlider --- modules/homeslider/HomeSlide.php | 14 +++++++------- modules/homeslider/ajax_homeslider.php | 2 +- modules/homeslider/homeslider.php | 21 +++++++++++++-------- 3 files changed, 21 insertions(+), 16 deletions(-) diff --git a/modules/homeslider/HomeSlide.php b/modules/homeslider/HomeSlide.php index 393daf4cb..b73999914 100644 --- a/modules/homeslider/HomeSlide.php +++ b/modules/homeslider/HomeSlide.php @@ -104,15 +104,17 @@ class HomeSlide extends ObjectModel public function delete() { - $res = null; + $res = true; + $images = $this->image; foreach ($images as $image) { - if (file_exists(dirname(__FILE__).'/images/'.$image)) + if ($image && file_exists(dirname(__FILE__).'/images/'.$image)) $res &= @unlink(dirname(__FILE__).'/images/'.$image); } $res &= $this->reOrderPositions(); + $res &= Db::getInstance()->execute(' DELETE FROM `'._DB_PREFIX_.'homeslider` WHERE `id_homeslider_slides` = '.(int)$this->id @@ -139,13 +141,11 @@ class HomeSlide extends ObjectModel $rows = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' SELECT hss.`position` as position, hss.`id_homeslider_slides` as id_slide - FROM `'._DB_PREFIX_.'homeslider_slides` hss, `'._DB_PREFIX_.'homeslider` hs - WHERE hss.`id_homeslider_slides` = hs.`id_homeslider_slides` AND hs.`id_shop` = '.(int)$id_shop.' AND hss.`position` > '.(int)$this->position + FROM `'._DB_PREFIX_.'homeslider_slides` hss + LEFT JOIN `'._DB_PREFIX_.'homeslider` hs ON (hss.`id_homeslider_slides` = hs.`id_homeslider_slides`) + WHERE hs.`id_shop` = '.(int)$id_shop.' AND hss.`position` > '.(int)$this->position ); - if (!$rows) - return false; - foreach ($rows as $row) { $current_slide = new HomeSlide($row['id_slide']); diff --git a/modules/homeslider/ajax_homeslider.php b/modules/homeslider/ajax_homeslider.php index 46c34ea63..bf449ea66 100644 --- a/modules/homeslider/ajax_homeslider.php +++ b/modules/homeslider/ajax_homeslider.php @@ -44,7 +44,7 @@ if (Tools::getValue('action') == 'updateSlidesPosition' && Tools::getValue('slid { $res = Db::getInstance()->execute(' UPDATE `'._DB_PREFIX_.'homeslider_slides` SET `position` = '.(int)$position.' - WHERE `id_slide` = '.(int)$id_slide + WHERE `id_homeslider_slides` = '.(int)$id_slide ); } diff --git a/modules/homeslider/homeslider.php b/modules/homeslider/homeslider.php index 4a794b51c..d6f96a7a3 100644 --- a/modules/homeslider/homeslider.php +++ b/modules/homeslider/homeslider.php @@ -258,7 +258,7 @@ class HomeSlider extends Module $defaultLanguage = (int)Configuration::get('PS_LANG_DEFAULT'); $languages = Language::getLanguages(false); $divLangName = 'image¤title¤url¤legend¤description'; - $this->_html = ''; + $this->_html .= ''; /* Form */ $this->_html .= '
'; @@ -466,7 +466,7 @@ class HomeSlider extends Module $res &= Configuration::updateValue('HOMESLIDER_PAUSE', (int)Tools::getValue('HOMESLIDER_PAUSE')); if (!$res) $errors .= $this->displayError($this->l('Configuration could not be updated')); - $this->_html = $this->displayConfirmation($this->l('Configuration updated')); + $this->_html .= $this->displayConfirmation($this->l('Configuration updated')); } /* Process Slide status */ else if (Tools::isSubmit('changeStatus') && Tools::isSubmit('id_slide')) { @@ -476,7 +476,7 @@ class HomeSlider extends Module else $slide->active = 0; $res = $slide->update(); - $this->_html = ($res ? $this->displayConfirmation($this->l('Configuration updated')) : $this->displayErro($this->l('Configuration could not be updated'))); + $this->_html .= ($res ? $this->displayConfirmation($this->l('Configuration updated')) : $this->displayErro($this->l('Configuration could not be updated'))); } /* Processes Slide */ else if (Tools::isSubmit('submitSlide')) @@ -487,7 +487,7 @@ class HomeSlider extends Module $slide = new HomeSlide((int)Tools::getValue('id_slide')); if (!Validate::isLoadedObject($slide)) { - $this->_html = $this->displayError($this->l('Invalid id_slide')); + $this->_html .= $this->displayError($this->l('Invalid id_slide')); return; } } @@ -511,20 +511,24 @@ class HomeSlider extends Module if (Tools::getValue('description_'.$language['id_lang']) != '') $slide->description[$language['id_lang']] = pSQL(Tools::getValue('description_'.$language['id_lang'])); /* Uploads image and sets slide */ + $type = strtolower(substr(strrchr($_FILES['image_'.$language['id_lang']]['name'], '.'), 1)); if (isset($_FILES['image_'.$language['id_lang']]) && isset($_FILES['image_'.$language['id_lang']]['tmp_name']) && - !empty($_FILES['image_'.$language['id_lang']]['tmp_name'])) + !empty($_FILES['image_'.$language['id_lang']]['tmp_name']) && + in_array(strtolower(substr(strrchr($_FILES['image_'.$language['id_lang']]['type'], '/'), 1)), array('jpg', 'gif', 'jpeg', 'png')) && + in_array($type, array('jpg', 'gif', 'jpeg', 'png'))) { $temp_name = tempnam(_PS_TMP_IMG_DIR_, 'PS'); + $salt = sha1(microtime()); if ($error = checkImage($_FILES['image_'.$language['id_lang']])) $errors .= $error; else if (!$temp_name || !move_uploaded_file($_FILES['image_'.$language['id_lang']]['tmp_name'], $temp_name)) return false; - else if (!imageResize($temp_name, dirname(__FILE__).'/images/'.Tools::encrypt($_FILES['image_'.$language['id_lang']]['name']).'.jpg')) + else if (!imageResize($temp_name, dirname(__FILE__).'/images/'.Tools::encrypt($_FILES['image_'.$language['id_lang']]['name'].$salt).$type)) $errors .= $this->displayError($this->l('An error occurred during the image upload.')); if (isset($temp_name)) unlink($temp_name); - $slide->image[$language['id_lang']] = pSQL(Tools::encrypt($_FILES['image_'.($language['id_lang'])]['name']).'.jpg'); + $slide->image[$language['id_lang']] = pSQL(Tools::encrypt($_FILES['image_'.($language['id_lang'])]['name'].$salt).$type); } if (Tools::getValue('image_old_'.$language['id_lang']) != '') $slide->image[$language['id_lang']] = pSQL(Tools::getValue('image_old_'.$language['id_lang'])); @@ -545,7 +549,8 @@ class HomeSlider extends Module $res = $slide->delete(); if (!$res) $this->_html .= $this->displayError('Could not delete'); - $this->_html = $this->displayConfirmation($this->l('Slide deleted')); + else + $this->_html .= $this->displayConfirmation($this->l('Slide deleted')); } /* Display errors if needed */