Skocz do zawartości
Valantir

Wylogowywanie po wejściu do modułu

Rekomendowane odpowiedzi

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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
<?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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się



  • Podobna zawartość

    • Przez kingbooker
      Dzień dobry,

      czy ktoś z forumowiczów orientuje się, gdzie jest zlokalizowany plik/luz.stronazen.pl/, który wytropiłem, bo zaciemniał mi slider?
       
      Będę wdzięczny za pomoc.
       
      Z poważaniem

    • Przez webbay.pl
      Założenie gotowego sklepu internetowego Prestashop 1.7 bez prowizji i bez dodatkowych opłat. Jeśli nie wiesz jak założyć własny sklep internetowy to zleć to specjalistom. Nie musisz przechodzić przez zawiłą konfigurację sklepu i rejestrację usług. Otrzymasz gotowe i nowoczesne narzędzie do sprzedaży swoich produktów z unikalnym szablonem w niskiej cenie.  
      Usługa obejmuje:
      gotowy responsywny sklep bez dodatkowych opłat i prowizji, sklep zgodny z wymaganiami RODO (wersja 1.7.x), utrzymanie sklepu na hostingu przez 1 rok *, rejestracja własnej domeny .PL *,  podpięcie wykupionego certyfikatu SSL, wdrożenie obowiązkowej informacji cookies,  instalację i konfigurację sklepu na serwerze,  bezpłatną instalację wybranego szablonu z naszego katalogu (szablon o wartości 299 zł w cenie) *, wgranie własnego logo, wstawienie do pięciu przykładowych produktów, wdrożenie grafiki w oprogramowanie Prestashop (banery),  instalację i konfigurację szybkich płatności (Dotpay, Pay-u, Przelewy24), konfigurację dostawców, konfigurację wielu języków i walut, wstawienie danych kontaktowych, wstawianie przygotowanego regulaminu sklepu, strony "O Nas" i "Polityki Prywatności", zwiększenie prędkości wczytania strony (kompresja HTML, CSS i JavaScript), skompresowanie zdjęcia i włączenie pamięci podręcznej sklepu (przyśpieszenie sklepu), pomoc w obsłudze i pomoc techniczną przez pierwszy miesiąc, zmianę koloru szablonu, czcionki lub pozycji wyświetlanego modułu (na życzenie), orientacyjny czas wykonania (2-5 dni roboczych od czasu dostarczenia materiałów),
      Otrzymasz sklep, który jest intuicyjny i łatwy w obsłudze i poprowadzi klienta za rękę przez cały proces zamawiania. Twój nowy sklep będzie bezpieczny i szybki poprzez zastosowane zabiegi optymalizacyjne. Jeśli chcesz wykorzystać szablon innego autora to proszę go przesłać. 

      * Jeśli posiadasz wykupiony hosting, własną domenę lub szablon innego autora to cena za usługę nie ulega zmianie.  

      Chętnie podejmiemy się realizacji tego projektu. Wystawiamy faktury VAT i dajemy gwarancję rzetelnego wykonania usługi. Gwarantujemy szybką realizację i profesjonalne podejście do tematu!
      Zaufało nam wielu zadowolonych klientów. 

      Zapraszam na oficjalną stronę:
      https://webbay.pl/pl/strona-glowna/197-1438-zalozenie-sklepu-prestashop.html#/40-_hosting-nie/51-_instalacja_modulu-nie
    • Przez Damianos87
      Witam,
      Mam dosyć spory problem, mianowicie nie otrzymuje na skrzynkę administratora powiadomień o nowych zamówieniach.
      Posiadam Prestashop w wersji 1.7.3.0, zainstalowałem moduł Mail Alerts, skonfigurowałem pocztę SMTP, skrzynka jest na serwerowa.
      Do klienta docierają ładnie wszystkie informacje o zamówieniach czy zmianie statusów zamówienia natomiast do administratora już nie.
      Próbowałem już wszystkiego i zero rezultatów.
      Bardzo proszę o pomoc i jakieś rozwiązanie, ponieważ dla mnie te powiadomienia są dość istotne.
      Z góry bardzo dziękuję za każdą pomoc. :)
    • Przez Netteria.NET
      Firma Netteria.NET oferuje szeroki zakres usług wsparcia dla sklepów zbudowanych w oparciu o PrestaShop. Oferujemy między innymi:
      Wsparcie
      Doradztwo w wyborze rozwiązań eCommerce, serwis sklepów internetowych, (stałe wsparcie techniczne), wsparcie i gwarancje po wykonanym projekcie sklepu. Projektowanie modułów dla prestasop.
      Projektowanie nowych modułów, według ustaleń, dostosowanych do indywidualych zadań, modernizacja oraz aktualizacja działajacych modułów, moduł - niezależny skrypt. Modyfikacje kodu sklepu.
      Wszelkie modyfikacje kodu źródłowego skryptu prestashop, modyfikacje kodu szablonu sklepu internetowgo, naprawa sklepów prestashop, naprawa sklepów "po włamaniu", aktualizacja skryptu do wyższej wersji, optymalizacja (SEO) pod wyszukiwarki internetowe, optymalizacja wydajności działania sklepu. Zapraszamy do kontaktu. Chętnie odpowiemy na Twoje pytania na temat modyfikacji, rozszerzeń, wsparcia, oraz naprawy dla sklepów prestashop.
      Zainteresowanych zapraszam do kontaktu: Prestashop - naprawa i pomoc
      Oferujemy również kompleksowe  wsrożenia sklepów PrestaShop - Budowa sklepów internetowych opartych na PrestaShop
       
  • Przeglądający

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

  • Aktywni użytkownicy

    Nikt jeszcze nie otrzymał reputacji w tym tygodniu.

  • Statystyki forum

    • Tematów
      7 731
    • Postów
      36 996
×