// fixed homeslider
git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@11534 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
@@ -1663,27 +1663,27 @@ CREATE TABLE IF NOT EXISTS `PREFIX_newsletter` (
|
|||||||
) ENGINE=ENGINE_TYPE default CHARSET=utf8;
|
) ENGINE=ENGINE_TYPE default CHARSET=utf8;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `PREFIX_homeslider` (
|
CREATE TABLE IF NOT EXISTS `PREFIX_homeslider` (
|
||||||
`id_slide` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
`id_homeslider_slides` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
`id_shop` int(10) unsigned NOT NULL,
|
`id_shop` int(10) unsigned NOT NULL,
|
||||||
PRIMARY KEY (`id_slide`, `id_shop`)
|
PRIMARY KEY (`id_homeslider_slides`, `id_shop`)
|
||||||
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=UTF8;
|
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=UTF8;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `PREFIX_homeslider_slides` (
|
CREATE TABLE IF NOT EXISTS `PREFIX_homeslider_slides` (
|
||||||
`id_slide` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
`id_homeslider_slides` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
`position` int(10) unsigned NOT NULL DEFAULT '0',
|
`position` int(10) unsigned NOT NULL DEFAULT '0',
|
||||||
`active` tinyint(1) unsigned NOT NULL DEFAULT '0',
|
`active` tinyint(1) unsigned NOT NULL DEFAULT '0',
|
||||||
PRIMARY KEY (`id_slide`)
|
PRIMARY KEY (`id_homeslider_slides`)
|
||||||
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=UTF8;
|
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=UTF8;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `PREFIX_homeslider_slides_lang` (
|
CREATE TABLE IF NOT EXISTS `PREFIX_homeslider_slides_lang` (
|
||||||
`id_slide` int(10) unsigned NOT NULL,
|
`id_homeslider_slides` int(10) unsigned NOT NULL,
|
||||||
`id_lang` int(10) unsigned NOT NULL,
|
`id_lang` int(10) unsigned NOT NULL,
|
||||||
`title` varchar(255) NOT NULL,
|
`title` varchar(255) NOT NULL,
|
||||||
`description` text NOT NULL,
|
`description` text NOT NULL,
|
||||||
`legend` varchar(255) NOT NULL,
|
`legend` varchar(255) NOT NULL,
|
||||||
`url` varchar(255) NOT NULL,
|
`url` varchar(255) NOT NULL,
|
||||||
`image` varchar(255) NOT NULL,
|
`image` varchar(255) NOT NULL,
|
||||||
PRIMARY KEY (`id_slide`,`id_lang`)
|
PRIMARY KEY (`id_homeslider_slides`,`id_lang`)
|
||||||
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=UTF8;
|
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=UTF8;
|
||||||
|
|
||||||
INSERT INTO `PREFIX_configuration` (name, value)
|
INSERT INTO `PREFIX_configuration` (name, value)
|
||||||
@@ -1693,12 +1693,12 @@ VALUES
|
|||||||
("HOMESLIDER_SPEED", "1300"),
|
("HOMESLIDER_SPEED", "1300"),
|
||||||
("HOMESLIDER_PAUSE", "7700");
|
("HOMESLIDER_PAUSE", "7700");
|
||||||
|
|
||||||
INSERT INTO `PREFIX_homeslider` (id_slide, id_shop) VALUES (1, 1),(2, 1), (3, 1), (4, 1), (5, 1);
|
INSERT INTO `PREFIX_homeslider` (id_homeslider_slides, id_shop) VALUES (1, 1),(2, 1), (3, 1), (4, 1), (5, 1);
|
||||||
|
|
||||||
INSERT INTO `PREFIX_homeslider_slides` (id_slide, position, active)
|
INSERT INTO `PREFIX_homeslider_slides` (id_homeslider_slides, position, active)
|
||||||
VALUES (1, 1, 1), (2, 2, 1), (3, 3, 1), (4, 4, 1), (5, 5, 1);
|
VALUES (1, 1, 1), (2, 2, 1), (3, 3, 1), (4, 4, 1), (5, 5, 1);
|
||||||
|
|
||||||
INSERT INTO `PREFIX_homeslider_slides_lang` (id_slide, id_lang, title, description, legend, url, image) VALUES
|
INSERT INTO `PREFIX_homeslider_slides_lang` (id_homeslider_slides, id_lang, title, description, legend, url, image) VALUES
|
||||||
(1, 1, "Add Ons", "improve your e-commerce site by adding new features", "addons", "http://addons.prestashop.com", "sample-1.jpg"),
|
(1, 1, "Add Ons", "improve your e-commerce site by adding new features", "addons", "http://addons.prestashop.com", "sample-1.jpg"),
|
||||||
(2, 1, "PrestaBox", "Your e-shop ready to use open in 10 minutes", "prestabox", "http://www.prestabox.com", "sample-2.jpg"),
|
(2, 1, "PrestaBox", "Your e-shop ready to use open in 10 minutes", "prestabox", "http://www.prestabox.com", "sample-2.jpg"),
|
||||||
(3, 1, "Support", "contact PrestaShop Support team to help you in installing or configuring your software", "support", "http://support.prestashop.com", "sample-3.jpg"),
|
(3, 1, "Support", "contact PrestaShop Support team to help you in installing or configuring your software", "support", "http://support.prestashop.com", "sample-3.jpg"),
|
||||||
|
|||||||
@@ -61,12 +61,12 @@ class HomeSlide extends ObjectModel
|
|||||||
|
|
||||||
protected $tables = array('homeslider_slides, homeslider_slides_lang');
|
protected $tables = array('homeslider_slides, homeslider_slides_lang');
|
||||||
protected $table = 'homeslider_slides';
|
protected $table = 'homeslider_slides';
|
||||||
protected $identifier = 'id_slide';
|
protected $identifier = 'id_homeslider_slides';
|
||||||
|
|
||||||
public function getFields()
|
public function getFields()
|
||||||
{
|
{
|
||||||
$this->validateFields();
|
$this->validateFields();
|
||||||
$fields['id_slide'] = (int)$this->id;
|
$fields['id_homeslider_slides'] = (int)$this->id;
|
||||||
$fields['active'] = (int)$this->active;
|
$fields['active'] = (int)$this->active;
|
||||||
$fields['position'] = (int)$this->position;
|
$fields['position'] = (int)$this->position;
|
||||||
return $fields;
|
return $fields;
|
||||||
@@ -96,7 +96,7 @@ class HomeSlide extends ObjectModel
|
|||||||
|
|
||||||
$res = parent::add($autodate, $null_values);
|
$res = parent::add($autodate, $null_values);
|
||||||
$res &= Db::getInstance()->execute('
|
$res &= Db::getInstance()->execute('
|
||||||
INSERT INTO `'._DB_PREFIX_.'homeslider` (`id_shop`, `id_slide`)
|
INSERT INTO `'._DB_PREFIX_.'homeslider` (`id_shop`, `id_homeslider_slides`)
|
||||||
VALUES('.(int)$id_shop.', '.(int)$this->id.')'
|
VALUES('.(int)$id_shop.', '.(int)$this->id.')'
|
||||||
);
|
);
|
||||||
return $res;
|
return $res;
|
||||||
@@ -115,7 +115,7 @@ class HomeSlide extends ObjectModel
|
|||||||
$res &= $this->reOrderPositions();
|
$res &= $this->reOrderPositions();
|
||||||
$res &= Db::getInstance()->execute('
|
$res &= Db::getInstance()->execute('
|
||||||
DELETE FROM `'._DB_PREFIX_.'homeslider`
|
DELETE FROM `'._DB_PREFIX_.'homeslider`
|
||||||
WHERE `id_slide` = '.(int)$this->id
|
WHERE `id_homeslider_slides` = '.(int)$this->id
|
||||||
);
|
);
|
||||||
|
|
||||||
$res &= parent::delete();
|
$res &= parent::delete();
|
||||||
@@ -131,16 +131,16 @@ class HomeSlide extends ObjectModel
|
|||||||
$max = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
|
$max = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
|
||||||
SELECT MAX(hss.`position`) as position
|
SELECT MAX(hss.`position`) as position
|
||||||
FROM `'._DB_PREFIX_.'homeslider_slides` hss, `'._DB_PREFIX_.'homeslider` hs
|
FROM `'._DB_PREFIX_.'homeslider_slides` hss, `'._DB_PREFIX_.'homeslider` hs
|
||||||
WHERE hss.`id_slide` = hs.`id_slide` AND hs.`id_shop` = '.(int)$id_shop
|
WHERE hss.`id_homeslider_slides` = hs.`id_homeslider_slides` AND hs.`id_shop` = '.(int)$id_shop
|
||||||
);
|
);
|
||||||
|
|
||||||
if ((int)$max == (int)$id_slide)
|
if ((int)$max == (int)$id_slide)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
$rows = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
|
$rows = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
|
||||||
SELECT hss.`position` as position, hss.`id_slide` as id_slide
|
SELECT hss.`position` as position, hss.`id_homeslider_slides` as id_slide
|
||||||
FROM `'._DB_PREFIX_.'homeslider_slides` hss, `'._DB_PREFIX_.'homeslider` hs
|
FROM `'._DB_PREFIX_.'homeslider_slides` hss, `'._DB_PREFIX_.'homeslider` hs
|
||||||
WHERE hss.`id_slide` = hs.`id_slide` AND hs.`id_shop` = '.(int)$id_shop.' AND hss.`position` > '.(int)$this->position
|
WHERE hss.`id_homeslider_slides` = hs.`id_homeslider_slides` AND hs.`id_shop` = '.(int)$id_shop.' AND hss.`position` > '.(int)$this->position
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!$rows)
|
if (!$rows)
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ $context = Context::getContext();
|
|||||||
$homeSlider = new HomeSlider();
|
$homeSlider = new HomeSlider();
|
||||||
$slides = array();
|
$slides = array();
|
||||||
|
|
||||||
if (!Tools::isSubmit('secure_key') OR Tools::getValue('secure_key') != $homeSlider->secure_key OR !Tools::getValue('action'))
|
if (!Tools::isSubmit('secure_key') || Tools::getValue('secure_key') != $homeSlider->secure_key || !Tools::getValue('action'))
|
||||||
die(1);
|
die(1);
|
||||||
|
|
||||||
if (Tools::getValue('action') == 'updateSlidesPosition' && Tools::getValue('slides'))
|
if (Tools::getValue('action') == 'updateSlidesPosition' && Tools::getValue('slides'))
|
||||||
@@ -43,8 +43,8 @@ if (Tools::getValue('action') == 'updateSlidesPosition' && Tools::getValue('slid
|
|||||||
foreach ($slides as $position => $id_slide)
|
foreach ($slides as $position => $id_slide)
|
||||||
{
|
{
|
||||||
$res = Db::getInstance()->execute('
|
$res = Db::getInstance()->execute('
|
||||||
UPDATE `'._DB_PREFIX_.'homeslider_slides` SET `position` = '.(int)($position).'
|
UPDATE `'._DB_PREFIX_.'homeslider_slides` SET `position` = '.(int)$position.'
|
||||||
WHERE `id_slide` = '.(int)($id_slide)
|
WHERE `id_slide` = '.(int)$id_slide
|
||||||
);
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ class HomeSlider extends Module
|
|||||||
public function install()
|
public function install()
|
||||||
{
|
{
|
||||||
/* Adds Module */
|
/* Adds Module */
|
||||||
if (parent::install() && $this->registerHook('displayHome') && $this->registerHook('backOfficeTop') && $this->registerHook('displayHeader'))
|
if (parent::install() && $this->registerHook('displayHome') && $this->registerHook('displayHeader'))
|
||||||
{
|
{
|
||||||
/* Sets up configuration */
|
/* Sets up configuration */
|
||||||
$res = Configuration::updateValue('HOMESLIDER_WIDTH', '535');
|
$res = Configuration::updateValue('HOMESLIDER_WIDTH', '535');
|
||||||
@@ -73,7 +73,7 @@ class HomeSlider extends Module
|
|||||||
public function uninstall()
|
public function uninstall()
|
||||||
{
|
{
|
||||||
/* Deletes Module */
|
/* Deletes Module */
|
||||||
if (parent::uninstall() && $this->unregisterHook('home') && $this->unregisterHook('backOfficeTop') && $this->unregisterHook('header'))
|
if (parent::uninstall() && $this->unregisterHook('home') && $this->unregisterHook('header'))
|
||||||
{
|
{
|
||||||
/* Deletes tables */
|
/* Deletes tables */
|
||||||
$res = $this->deleteTables();
|
$res = $this->deleteTables();
|
||||||
@@ -92,33 +92,33 @@ class HomeSlider extends Module
|
|||||||
/* Slides */
|
/* Slides */
|
||||||
$res = (bool)Db::getInstance()->execute('
|
$res = (bool)Db::getInstance()->execute('
|
||||||
CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'homeslider` (
|
CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'homeslider` (
|
||||||
`id_slide` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
`id_homeslider_slides` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
`id_shop` int(10) unsigned NOT NULL,
|
`id_shop` int(10) unsigned NOT NULL,
|
||||||
PRIMARY KEY (`id_slide`, `id_shop`)
|
PRIMARY KEY (`id_homeslider_slides`, `id_shop`)
|
||||||
) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=UTF8;
|
) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=UTF8;
|
||||||
');
|
');
|
||||||
|
|
||||||
/* Slides configuration */
|
/* Slides configuration */
|
||||||
$res &= Db::getInstance()->execute('
|
$res &= Db::getInstance()->execute('
|
||||||
CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'homeslider_slides` (
|
CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'homeslider_slides` (
|
||||||
`id_slide` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
`id_homeslider_slides` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
`position` int(10) unsigned NOT NULL DEFAULT \'0\',
|
`position` int(10) unsigned NOT NULL DEFAULT \'0\',
|
||||||
`active` tinyint(1) unsigned NOT NULL DEFAULT \'0\',
|
`active` tinyint(1) unsigned NOT NULL DEFAULT \'0\',
|
||||||
PRIMARY KEY (`id_slide`)
|
PRIMARY KEY (`id_homeslider_slides`)
|
||||||
) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=UTF8;
|
) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=UTF8;
|
||||||
');
|
');
|
||||||
|
|
||||||
/* Slides lang configuration */
|
/* Slides lang configuration */
|
||||||
$res &= Db::getInstance()->execute('
|
$res &= Db::getInstance()->execute('
|
||||||
CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'homeslider_slides_lang` (
|
CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'homeslider_slides_lang` (
|
||||||
`id_slide` int(10) unsigned NOT NULL,
|
`id_homeslider_slides` int(10) unsigned NOT NULL,
|
||||||
`id_lang` int(10) unsigned NOT NULL,
|
`id_lang` int(10) unsigned NOT NULL,
|
||||||
`title` varchar(255) NOT NULL,
|
`title` varchar(255) NOT NULL,
|
||||||
`description` text NOT NULL,
|
`description` text NOT NULL,
|
||||||
`legend` varchar(255) NOT NULL,
|
`legend` varchar(255) NOT NULL,
|
||||||
`url` varchar(255) NOT NULL,
|
`url` varchar(255) NOT NULL,
|
||||||
`image` varchar(255) NOT NULL,
|
`image` varchar(255) NOT NULL,
|
||||||
PRIMARY KEY (`id_slide`,`id_lang`)
|
PRIMARY KEY (`id_homeslider_slides`,`id_lang`)
|
||||||
) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=UTF8;
|
) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=UTF8;
|
||||||
');
|
');
|
||||||
|
|
||||||
@@ -140,6 +140,7 @@ class HomeSlider extends Module
|
|||||||
|
|
||||||
public function getContent()
|
public function getContent()
|
||||||
{
|
{
|
||||||
|
$this->_html .= $this->headerHTML();
|
||||||
$this->_html .= '<h2>'.$this->displayName.'.</h2>';
|
$this->_html .= '<h2>'.$this->displayName.'.</h2>';
|
||||||
|
|
||||||
/* Validate & process */
|
/* Validate & process */
|
||||||
@@ -579,17 +580,18 @@ class HomeSlider extends Module
|
|||||||
{
|
{
|
||||||
if (!$this->getSlides(true))
|
if (!$this->getSlides(true))
|
||||||
return;
|
return;
|
||||||
$this->context->controller->addJqueryUI('ui.sortable');
|
|
||||||
$this->context->controller->addJS($this->_path.'js/jquery.bxSlider.min.js');
|
$this->context->controller->addJS($this->_path.'js/jquery.bxSlider.min.js');
|
||||||
$this->context->controller->addCSS($this->_path.'bx_styles.css');
|
$this->context->controller->addCSS($this->_path.'bx_styles.css');
|
||||||
$this->context->controller->addJS($this->_path.'js/homeslider.js');
|
$this->context->controller->addJS($this->_path.'js/homeslider.js');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function hookBackOfficeTop()
|
public function headerHTML()
|
||||||
{
|
{
|
||||||
if (Tools::getValue('controller') != 'AdminModules' && Tools::getValue('configure') != $this->name)
|
if (Tools::getValue('controller') != 'AdminModules' && Tools::getValue('configure') != $this->name)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
$this->context->controller->addJqueryUI('ui.sortable');
|
||||||
/* Style & js for fieldset 'slides configuration' */
|
/* Style & js for fieldset 'slides configuration' */
|
||||||
$html = '
|
$html = '
|
||||||
<style>
|
<style>
|
||||||
@@ -631,7 +633,7 @@ class HomeSlider extends Module
|
|||||||
$row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
|
$row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
|
||||||
SELECT MAX(hss.`position`) AS `next_position`
|
SELECT MAX(hss.`position`) AS `next_position`
|
||||||
FROM `'._DB_PREFIX_.'homeslider_slides` hss, `'._DB_PREFIX_.'homeslider` hs
|
FROM `'._DB_PREFIX_.'homeslider_slides` hss, `'._DB_PREFIX_.'homeslider` hs
|
||||||
WHERE hss.`id_slide` = hs.`id_slide` AND hs.`id_shop` = '.(int)$this->context->shop->getId()
|
WHERE hss.`id_homeslider_slides` = hs.`id_homeslider_slides` AND hs.`id_shop` = '.(int)$this->context->shop->getId()
|
||||||
);
|
);
|
||||||
|
|
||||||
return (++$row['next_position']);
|
return (++$row['next_position']);
|
||||||
@@ -644,7 +646,7 @@ class HomeSlider extends Module
|
|||||||
$id_lang = $this->context->language->id;
|
$id_lang = $this->context->language->id;
|
||||||
|
|
||||||
return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
|
return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
|
||||||
SELECT hs.`id_slide`,
|
SELECT hs.`id_homeslider_slides` as id_slide,
|
||||||
hssl.`image`,
|
hssl.`image`,
|
||||||
hss.`position`,
|
hss.`position`,
|
||||||
hss.`active`,
|
hss.`active`,
|
||||||
@@ -653,8 +655,8 @@ class HomeSlider extends Module
|
|||||||
hssl.`legend`,
|
hssl.`legend`,
|
||||||
hssl.`description`
|
hssl.`description`
|
||||||
FROM '._DB_PREFIX_.'homeslider hs
|
FROM '._DB_PREFIX_.'homeslider hs
|
||||||
LEFT JOIN '._DB_PREFIX_.'homeslider_slides hss ON (hs.id_slide = hss.id_slide)
|
LEFT JOIN '._DB_PREFIX_.'homeslider_slides hss ON (hs.id_homeslider_slides = hss.id_homeslider_slides)
|
||||||
LEFT JOIN '._DB_PREFIX_.'homeslider_slides_lang hssl ON (hssl.id_slide = hs.id_slide)
|
LEFT JOIN '._DB_PREFIX_.'homeslider_slides_lang hssl ON (hss.id_homeslider_slides = hssl.id_homeslider_slides)
|
||||||
WHERE (id_shop = '.(int)$id_shop.' OR id_shop = 1)
|
WHERE (id_shop = '.(int)$id_shop.' OR id_shop = 1)
|
||||||
AND hssl.id_lang = '.(int)$id_lang.
|
AND hssl.id_lang = '.(int)$id_lang.
|
||||||
($active ? ' AND hss.`active` = 1' : ' ').'
|
($active ? ' AND hss.`active` = 1' : ' ').'
|
||||||
@@ -674,9 +676,9 @@ class HomeSlider extends Module
|
|||||||
|
|
||||||
public function slideExists($id_slide)
|
public function slideExists($id_slide)
|
||||||
{
|
{
|
||||||
$req = 'SELECT hs.`id_slide`
|
$req = 'SELECT hs.`id_homeslider_slides` as id_slide
|
||||||
FROM `'._DB_PREFIX_.'homeslider` hs
|
FROM `'._DB_PREFIX_.'homeslider` hs
|
||||||
WHERE hs.`id_slide` = '.(int)$id_slide;
|
WHERE hs.`id_homeslider_slides` = '.(int)$id_slide;
|
||||||
$row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($req);
|
$row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($req);
|
||||||
return ($row);
|
return ($row);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user