JEMBOT MAWOT Bypass Shell

Current Path : /home/cinepatreb/billetterie/modules/selltickets/upgrade/
Upload File :
Current File : /home/cinepatreb/billetterie/modules/selltickets/upgrade/upgrade-4.0.0.php

<?php
/**
 * Sell Tickets module for Prestashop by Avellana Digital
 *
 * @author    Avellana Digital SL
 * @copyright Copyright (c) 2019 Avellana Digital - www.avellanadigital.com
 * @license   Commercial license
 * @version    4.0.0
 */

if (!defined('_PS_VERSION_')) {
    exit;
}

function upgrade_module_4_0_0()
{
    Configuration::updateValue('selltickets_token_ajax', Tools::passwdGen(32));
    Configuration::updateValue('selltickets_token_ajax_fr', Tools::passwdGen(32));

    Db::getInstance()->Execute('
        CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'selltickets_lang` (
          `id_ticket_lang` int(11) NOT NULL AUTO_INCREMENT,
          `id_ticket` int(11) NOT NULL,
          `name` varchar(255) NOT NULL,
          `date` text NOT NULL,
          `hour` text DEFAULT NULL,
          `conditions` text DEFAULT NULL,
          `venue` varchar(255) DEFAULT NULL,
          `id_lang` int(11) NOT NULL,
          PRIMARY KEY (`id_ticket_lang`),
          UNIQUE KEY `id_ticket` (`id_ticket`,`id_lang`)
        ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;');

    Db::getInstance()->Execute('
        CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'selltickets_seats_order` (
          `id_seats_order` int(11) NOT NULL AUTO_INCREMENT,
          `id_order` int(11) NOT NULL,
          `id_ticket_seats` int(11) NOT NULL,
          `seat` text NOT NULL,
          PRIMARY KEY (`id_seats_order`)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;');

    Db::getInstance()->Execute('
        CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'selltickets_seats_tickets` (
          `id` int(11) NOT NULL AUTO_INCREMENT,
          `id_ticket` int(11) NOT NULL,
          `id_ticket_seats` int(11) NOT NULL,
          `parent` tinyint(1) NOT NULL DEFAULT 0,
          PRIMARY KEY (`id`),
          UNIQUE KEY `id_ticket` (`id_ticket`,`id_ticket_seats`)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;');

    $id_shop = Shop::getContextShopID();
    if (is_null($id_shop)) {
        $id_shop = false; // Totes les botigues
    }

    $languages = Language::getLanguages(true, $id_shop);

/*

  selltickets // selltickets_lang

*/

    $tickets = Db::getInstance()->executeS('SELECT * FROM `'._DB_PREFIX_.'selltickets`;');

    if ($tickets) {
        foreach ($tickets as $ticket) {
            foreach ($languages as $lang) {
                Db::getInstance()->Execute('
                    INSERT INTO `'._DB_PREFIX_.'selltickets_lang` (
                      `id_ticket`,
                      `name`,
                      `date`,
                      `hour`,
                      `conditions`,
                      `venue`,
                      `id_lang`
                    )
                    VALUES (
                    	'.(int)$ticket['id_ticket'].',
                      \''.pSQL($ticket['name']).'\',
                      \''.pSQL($ticket['date']).'\',
                      \''.pSQL($ticket['hour']).'\',
                      \''.pSQL($ticket['conditions']).'\',
                      \''.pSQL($ticket['venue']).'\',
                    	'.(int)$lang['id_lang'].'
                    );
                ');
            }
        }
    }

    Db::getInstance()->execute('
        ALTER TABLE `'._DB_PREFIX_.'selltickets`
        DROP COLUMN `name`,
        DROP COLUMN `date`,
        DROP COLUMN `hour`,
        DROP COLUMN `conditions`,
        DROP COLUMN `venue`;
    ');

/*

  selltickets_seats_orders

*/

    $ticket_orders = Db::getInstance()->executeS('SELECT * FROM `'._DB_PREFIX_.'selltickets_orders`;');

    if ($ticket_orders) {
        foreach ($ticket_orders as $ticket_order) {
            if (!empty($ticket_order['seat'])) {
                $id_ticket_seat = Db::getInstance()->getValue('
                  SELECT `id_ticket_seats` FROM `'._DB_PREFIX_.'selltickets_seats`
                  WHERE `id_ticket` = '.(int)$ticket_order['id_ticket'].';
                ');

                if ($id_ticket_seat) {
                    Db::getInstance()->Execute('
                        INSERT INTO `'._DB_PREFIX_.'selltickets_seats_order` (
                          `id_order`,
                          `id_ticket_seats`,
                          `seat`
                        )
                        VALUES (
                          '.(int)$ticket_order['id_order'].',
                          '.(int)$id_ticket_seat.',
                          \''.pSQL($ticket_order['seat']).'\'
                        );
                    ');
                }
            }
        }
    }

    Db::getInstance()->execute('
        ALTER TABLE `'._DB_PREFIX_.'selltickets_orders`
        DROP COLUMN `seat`;
    ');

/*

  selltickets_seats // selltickets_seats_cart

*/
    $ticket_seats = Db::getInstance()->executeS('SELECT * FROM `'._DB_PREFIX_.'selltickets_seats`;');
    $aux_ticket_seat = array();
    if ($ticket_seats) {
        foreach ($ticket_seats as $ticket_seat) {
            $aux_ticket_seat[$ticket_seat['id_ticket']] = $ticket_seat['id_ticket_seats'];
        }
    }

    Db::getInstance()->execute('
        ALTER TABLE `'._DB_PREFIX_.'selltickets_seats`
        DROP COLUMN `id_ticket`;
    ');

    Db::getInstance()->execute('ALTER TABLE `'._DB_PREFIX_.'selltickets_seats_cart`
        ADD `id_ticket_seats` INT(11) NOT NULL DEFAULT \'0\' AFTER `id_selltickets_seats_cart`;
    ');

    Db::getInstance()->execute('ALTER TABLE `'._DB_PREFIX_.'selltickets_seats_cart`
        DROP INDEX `id_cart`,
        ADD UNIQUE `id_cart` (`id_cart`,`id_product`,`id_product_attribute`,`id_ticket_seats`) COMMENT \'\';
    ');

/*

  selltickets_seats_num

*/

    Db::getInstance()->execute('ALTER TABLE `'._DB_PREFIX_.'selltickets_seats_num`
        ADD `id_ticket_seats` INT(11) NOT NULL DEFAULT \'0\' AFTER `id_selltickets_seats_num`;
    ');

    Db::getInstance()->execute('ALTER TABLE `'._DB_PREFIX_.'selltickets_seats_num`
        CHANGE `seat_num` `seat_num` VARCHAR( 32 ) CHARACTER SET utf8
        COLLATE utf8_general_ci NULL DEFAULT NULL ;
    ');

    Db::getInstance()->execute('ALTER TABLE `'._DB_PREFIX_.'selltickets_seats_num`
        ADD `id_product_attribute` INT(11) NOT NULL DEFAULT \'0\' AFTER `seat_num`;
    ');

    Db::getInstance()->execute('ALTER TABLE `'._DB_PREFIX_.'selltickets_seats_num`
        DROP INDEX `id_ticket`;
    ');

    $ticket_seat_nums = Db::getInstance()->executeS('SELECT * FROM `'._DB_PREFIX_.'selltickets_seats_num`;');

    if ($ticket_seat_nums) {
        foreach ($ticket_seat_nums as $ticket_seat_num) {
            Db::getInstance()->Execute('
                UPDATE `'._DB_PREFIX_.'selltickets_seats_num` SET
                `id_ticket_seats` = '.(int)$aux_ticket_seat[(int)$ticket_seat_num['id_ticket']].',
                `id_product_attribute` = 0
                WHERE `id_ticket` = '.(int)$ticket_seat_num['id_ticket'].'
            ');
        }
    }

    Db::getInstance()->execute('
        ALTER TABLE `'._DB_PREFIX_.'selltickets_seats_num`
        DROP COLUMN `id_ticket`;
    ');

/*

  selltickets_seats_tickets

*/

    if ($aux_ticket_seat) {
        foreach ($aux_ticket_seat as $idtick => $idtickseat) {
            Db::getInstance()->Execute('
                INSERT INTO `'._DB_PREFIX_.'selltickets_seats_tickets` (
                  `id_ticket`,
                  `id_ticket_seats`,
                  `parent`
                )
                VALUES (
                  '.(int)$idtick.',
                  '.(int)$idtickseat.',
                  1
                );
            ');
        }
    }

    Tools::clearSmartyCache();
    Media::clearCache();

    return true;
}

xxxxx1.0, XXX xxxx