Skocz do zawartości

Valantir

Members
  • Zawartość

    3
  • Rejestracja

  • Ostatnia wizyta

  1. Wylogowywanie po wejściu do modułu

    Dzisiaj zauważyłem, że taka sama akcja dzieje się po wejściu z Firefoxa na listę modułów. Problem ewidentnie jest z sesją i cookie, bo jak usunąłem ciastka, to wszystko wraca do normy. Wszystko stoi na home.pl
  2. Wylogowywanie po wejściu do modułu

    <?php if (!defined('_CAN_LOAD_FILES_')) exit; class collection extends Module { public $existingFiles = array(); public $count = NULL; public $collectionDir; public $thumbnailCollectionDir; /** * {@inheritdoc} */ function __construct() { $this->name = 'collection'; $this->tab = 'other'; $this->version = '1.0.0'; $this->author = 'Autor'; parent::__construct(); $this->displayName = $this->l('collection'); $this->description = $this->l('collection'); $this->webPath = '/img/collection/'; $this->collectionDir = getcwd() . '/../collection'; $this->thumbnailCollectionDir = getcwd() . '/../collection/thumbnails'; } /** * @return boolean */ public function install() { parent::install(); if (!$this->registerHook('Header')) { return false; } /* Create table */ $res = $this->createTable(); if (!$res) { return false; } if (!mkdir($this->collectionDir) || !mkdir($this->thumbnailCollectionDir)) { return false; } return true; } /** * @return boolean */ public function uninstall() { if (!parent::uninstall() || !Configuration::deleteByName('collection')) { return false; } /* delete table */ $res = $this->deleteTable(); if (!$res) { return false; } if (file_exists($this->collectionDir) && is_dir($this->collectionDir)) { return $this->removeFile($this->collectionDir); } return true; } /** * @param string $path * * @return boolean */ protected function removeFile($path) { if (is_dir($path) === true) { $files = array_diff(scandir($path), array('.', '..')); foreach ($files as $file) { $this->removeFile(realpath($path) . '/' . $file); } return rmdir($path); } else if (is_file($path) === true) { return unlink($path); } return false; } /** * Create table */ protected function createTable() { /* Category Photo */ $res = (bool) Db::getInstance()->execute(' CREATE TABLE IF NOT EXISTS `' . _DB_PREFIX_ . 'collection` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `photo_path` varchar(255) NOT NULL, `thumbnail_path` varchar(255) NOT NULL, `position` int(10) unsigned NOT NULL, PRIMARY KEY (`id`) ) ENGINE=' . _MYSQL_ENGINE_ . ' DEFAULT CHARSET=UTF8; '); return $res; } /** * delete table */ protected function deleteTable() { return Db::getInstance()->execute(' DROP TABLE IF EXISTS `' . _DB_PREFIX_ . 'collection`; '); } /** * Displays panel to build grid system in backend * * @return string */ public function getContent() { var_dump($this->context->link->getModuleLink('collection','collection'));die; $this->addCss(); $this->addJsScripts(); $error = null; $file = $_FILES['collection_photo']; $allFiles = $this->countAllFiles(); if ($allFiles >= 30) { $error = 'Limit zdjęć - przekroczyłeś/aś limit 30 zdjęć. Usuń jakieś zdjęcia aby dodać nowe'; } else { if (Tools::isSubmit('submit') && !empty($file)) { $allowedExts = array("jpg", "jpeg"); $allowedTypes = array('image/jpeg', 'image/jpg'); if (!in_array($file['type'], $allowedTypes)) { $error = 'Niewłaściwy typ pliku. Dozwolonymi typami plików są: ' . implode(', ', $allowedTypes); } $ext = pathinfo($file['name'], PATHINFO_EXTENSION); if (!in_array($ext, $allowedExts)) { $error = 'Niewłaściwe rozszerzenie pliku. Dozwolonymi rozszerzeniami plików są: ' . implode(', ', $allowedExts); } $fileName = uniqid() . '.' . $ext; $thumbnailFile = $this->resizeImage($file['tmp_name'], $fileName); if (!$thumbnailFile) { $error = 'Błąd podczas generowania miniatury.'; } if (!$error) { $newPath = $this->collectionDir . '/' . $fileName; $result = $this->fileCopy($file['tmp_name'], $newPath); if ($result) { $lastPosition = Db::getInstance()->executeS('SELECT position FROM `' . _DB_PREFIX_ . 'collection` ORDER BY position DESC LIMIT 1'); if (empty($lastPosition)) { $lastPosition = 1; } else { $lastPosition = $lastPosition[0]['position'] + 1; } $upload = Db::getInstance()->executeS("INSERT INTO `" . _DB_PREFIX_ . "collection` " . "(photo_path, thumbnail_path, position) " . "VALUES ('" . _PS_BASE_URL_ . "/collection/" . $fileName . "', '" . _PS_BASE_URL_ . "/collection/thumbnails/" . $fileName . "', '" . $lastPosition . "')") ; if (!$upload && file_exists($newPath)) { unlink($newPath); } Tools::redirectAdmin(AdminController::$currentIndex.'&configure='.$this->name.'&token='.Tools::getAdminTokenLite('AdminModules')); } } else { Tools::redirectAdmin(AdminController::$currentIndex.'&configure='.$this->name.'&token='.Tools::getAdminTokenLite('AdminModules') . '&error=' . $error); } } } $allFiles = Db::getInstance()->executeS('SELECT id, photo_path, thumbnail_path, position FROM `' . _DB_PREFIX_ . 'collection` ORDER BY position ASC'); $this->context->smarty->assign(array( 'error' => ($error) ? $error : Tools::getValue('error'), 'allFiles' => $allFiles, )); return $this->display(__FILE__, 'views/templates/admin/collection.tpl'); } /** * Zlicza ilosc zdjec w kolekcji * * @return string */ protected function countAllFiles() { $countAllFiles = Db::getInstance()->executeS('SELECT COUNT(*) AS how_many FROM `' . _DB_PREFIX_ . 'collection`'); return $countAllFiles[0]['how_many']; } /** * Dodaje wymagane pliki js */ protected function addJsScripts() { $this->context->controller->addJs('https://code.jquery.com/ui/1.12.1/jquery-ui.js', 'all'); $this->context->controller->addJs($this->_path . 'assets/js/collection-module.js', 'all'); } /** * Dodaje wymagane pliki css */ protected function addCss() { $this->context->controller->addCss($this->_path . 'assets/css/collection-module.css', 'all'); } /** * Uploads files * * @param string $file * @param string $path * * @return boolean */ protected function fileCopy($file, $path) { return move_uploaded_file($file, $path); } protected function resizeImage($file, $newName) { $width = 87; $height = 130; list($widthOrig, $heightOrig) = getimagesize($file); $newImage = imagecreatetruecolor($width, $height); if (exif_imagetype($file) == IMAGETYPE_PNG) { $originalImage = imagecreatefrompng($file); } else { $originalImage = imagecreatefromjpeg($file); } if (!is_resource($originalImage)) { return false; } if (imagecopyresampled($newImage, $originalImage, 0, 0, 0, 0, $width, $height, $widthOrig, $heightOrig)) { return imagejpeg($newImage, $this->thumbnailCollectionDir . '/' . $newName, 100); } return false; } } Wersja presty to 1.6.1.7
  3. Witam, Napisałem ostatnio własny moduł do Prestashop w wersji 1.6.1.7, który służy do tworzenia karuzeli na podstronie stronie. Problem w tym, że od czasu do czasu gdy kliknie się w przycisk na liście "Konfiguruj", to użytkownik jest przenoszony na podstronę z logowaniem. Ponowne zalogowanie powoduje wejście do panelu administratora ale kliknięcie na przycisk "Konfiguruj" powoduje znów przejście na stronę z logowaniem. Problem dotyczy chyba tylko mojego modułu, bo inne jakoś potrafią współpracować. Bardzo proszę o jakieś wskazówki jak się za to zabrać... Pozdrawiam
×