private function _postProcess()
 {
     print_r($_POST);
     $errors = array();
     /* Process Slide status */
     if (Tools::isSubmit('changeStatus') && Tools::isSubmit('id_sizechart')) {
         $sizechart = new CategorySizeChart((int) Tools::getValue('id_sizechart'));
         if ($sizechart->active == 0) {
             $sizechart->active = 1;
         } else {
             $sizechart->active = 0;
         }
         $res = $sizechart->update();
         $this->clearCache();
         $this->_html .= $res ? $this->displayConfirmation($this->l('Configuration updated')) : $this->displayError($this->l('The configuration could not be updated.'));
     } elseif (Tools::isSubmit('submitSizechart')) {
         /* Sets ID if needed */
         if (Tools::getValue('id_sizechart')) {
             $sizechart = new CategorySizeChart((int) Tools::getValue('id_sizechart'));
             if (!Validate::isLoadedObject($sizechart)) {
                 $this->_html .= $this->displayError($this->l('Invalid id_sizechart'));
                 return;
             }
         } else {
             $sizechart = new CategorySizeChart();
         }
         /* Sets position */
         $sizechart->position = (int) Tools::getValue('position');
         /* Sets active */
         $sizechart->active = (int) Tools::getValue('active_sizechart');
         $sizechart->id_category = (int) Tools::getValue('id_category');
         /* Sets each langue fields */
         $languages = Language::getLanguages(false);
         foreach ($languages as $language) {
             //$sizechart->url[$language['id_lang']] = Tools::getValue('url_'.$language['id_lang']);
             /* Uploads image and sets sizechart */
             $type = strtolower(substr(strrchr($_FILES['image_' . $language['id_lang']]['name'], '.'), 1));
             $imagesize = array();
             $imagesize = @getimagesize($_FILES['image_' . $language['id_lang']]['tmp_name']);
             if (isset($_FILES['image_' . $language['id_lang']]) && isset($_FILES['image_' . $language['id_lang']]['tmp_name']) && !empty($_FILES['image_' . $language['id_lang']]['tmp_name']) && !empty($imagesize) && in_array(strtolower(substr(strrchr($imagesize['mime'], '/'), 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 = ImageManager::validateUpload($_FILES['image_' . $language['id_lang']])) {
                     $errors[] = $error;
                 } elseif (!$temp_name || !move_uploaded_file($_FILES['image_' . $language['id_lang']]['tmp_name'], $temp_name)) {
                     return false;
                 } elseif (!ImageManager::resize($temp_name, dirname(__FILE__) . '/images/' . Tools::encrypt($_FILES['image_' . $language['id_lang']]['name'] . $salt) . '.' . $type, null, null, $type)) {
                     $errors[] = $this->displayError($this->l('An error occurred during the image upload process.'));
                 }
                 if (isset($temp_name)) {
                     @unlink($temp_name);
                 }
                 $sizechart->image[$language['id_lang']] = Tools::encrypt($_FILES['image_' . $language['id_lang']]['name'] . $salt) . '.' . $type;
             } elseif (Tools::getValue('image_old_' . $language['id_lang']) != '') {
                 $sizechart->image[$language['id_lang']] = Tools::getValue('image_old_' . $language['id_lang']);
             }
         }
         /* Processes if no errors  */
         if (!$errors) {
             /* Adds */
             if (!Tools::getValue('id_sizechart')) {
                 if (!$sizechart->add()) {
                     $errors[] = $this->displayError($this->l('The sizechart could not be added.'));
                 }
             } elseif (!$sizechart->update()) {
                 $errors[] = $this->displayError($this->l('The sizechart could not be updated.'));
             }
             $this->clearCache();
         }
     } elseif (Tools::isSubmit('delete_id_sizechart')) {
         $sizechart = new CategorySizeChart((int) Tools::getValue('delete_id_sizechart'));
         $res = $sizechart->delete();
         $this->clearCache();
         if (!$res) {
             $this->_html .= $this->displayError('Could not delete');
         } else {
             $this->_html .= $this->displayConfirmation($this->l('Slide deleted'));
         }
     }
     /* Display errors if needed */
     if (count($errors)) {
         $this->_html .= $this->displayError(implode('<br />', $errors));
     } elseif (Tools::isSubmit('submitSizechart') && Tools::getValue('id_sizechart')) {
         $this->_html .= $this->displayConfirmation($this->l('Slide updated'));
     } elseif (Tools::isSubmit('submitSizechart')) {
         $this->_html .= $this->displayConfirmation($this->l('Slide added'));
     }
 }
Example #2
0
    public function reOrderPositions()
    {
        $id_sizechart = $this->id;
        $context = Context::getContext();
        $id_shop = $context->shop->id;
        $max = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
			SELECT MAX(csc.`position`) as position
			FROM `' . _DB_PREFIX_ . 'category_sizechart` csc, `' . _DB_PREFIX_ . 'categorysizechart_shop` cs
			WHERE csc.`id_category_sizechart` = cs.`id_category_sizechart` AND cs.`id_shop` = ' . (int) $id_shop);
        if ((int) $max == (int) $id_sizechart) {
            return true;
        }
        $rows = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
			SELECT csc.`position` as position, csc.`id_category_sizechart` as id_sizechart
			FROM `' . _DB_PREFIX_ . 'category_sizechart` csc
			LEFT JOIN `' . _DB_PREFIX_ . 'categorysizechart_shop` cs ON (csc.`id_category_sizechart` = cs.`id_category_sizechart`)
			WHERE cs.`id_shop` = ' . (int) $id_shop . ' AND csc.`position` > ' . (int) $this->position);
        foreach ($rows as $row) {
            $current_sizechart = new CategorySizeChart($row['id_sizechart']);
            --$current_sizechart->position;
            $current_sizechart->update();
            unset($current_sizechart);
        }
        return true;
    }