Compare commits
46 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c0e2193d03 | |||
| 85d5b6daed | |||
| 1c28cdd8e7 | |||
| f361b2fcbe | |||
| 0e0200e71c | |||
| a55ec5c242 | |||
| e317c9d636 | |||
| e2aa783688 | |||
| 9b2e9586c3 | |||
| 272365cbe0 | |||
| d25689d00f | |||
| 9670a02a11 | |||
| 2cde72d5a4 | |||
| 9a0e3ca81e | |||
| d7c6516c32 | |||
| 244830d505 | |||
| 3ea0c1ed24 | |||
| bfa1294df9 | |||
| 810120aeb9 | |||
| eaa9ae95bf | |||
| b41c724e97 | |||
| 22f1cd70f1 | |||
| ee038c868c | |||
| 67ec90fae9 | |||
| 25e0390128 | |||
| f6f2552f38 | |||
| de4cb8a096 | |||
| 274b49bd81 | |||
| 3914b7db1b | |||
| db42e9c642 | |||
| 52c117e02c | |||
| ad0743ebc8 | |||
| 278ffa1720 | |||
| d0a35b242f | |||
| dbfa7d63ef | |||
| 1fa36e5464 | |||
| f72b6fb9fc | |||
| cc8270761a | |||
| ec15c8c8db | |||
| 9d838b9a54 | |||
| 9cfcb98c71 | |||
| cdd2842500 | |||
| 471206c909 | |||
| 18a6e7839e | |||
| 943eacdf75 | |||
| 9eeaf524c5 |
+79
-160
@@ -1,161 +1,80 @@
|
|||||||
- adonis karavokyros
|
- (d)oekia
|
||||||
- aFolletete
|
- Alexander Otchenashev
|
||||||
- Agence CINS
|
- Benjamin PONGY
|
||||||
- aKorczak
|
- Burhan
|
||||||
- Alexander Otchenashev
|
- Caleydon Media
|
||||||
- anat
|
- Damien Metzger
|
||||||
- Andrew
|
- DamienMetzger
|
||||||
- aNiassy
|
- Damon Skelhorn
|
||||||
- antoniofr
|
- Daniel
|
||||||
- AntonLejon
|
- David Gasperoni
|
||||||
- Arnaud Lemercier
|
- DrySs
|
||||||
- Axome
|
- DrÿSs'
|
||||||
- Benjamin PONGY
|
- François Gaillard
|
||||||
- BigZ
|
- Gabriel Schwardy
|
||||||
- bLeveque
|
- Gregory Roussac
|
||||||
- bMancone
|
- Ha!*!*y
|
||||||
- bumbu
|
- Jonathan Danse
|
||||||
- Burhan
|
- Krystian Podemski
|
||||||
- Caleydon Media
|
- Marco Cervellin
|
||||||
- cam.lafit
|
- Michel Courtade
|
||||||
- Captain FLAM
|
- Milow
|
||||||
- Captain-FLAM
|
- Patanock
|
||||||
- ccauw
|
- Pierre
|
||||||
- Cédric Mouleyre
|
- PrestaEdit
|
||||||
- ChristopheBoucaut
|
- Raphaël Malié
|
||||||
- CINS
|
- Rémi Gaillard
|
||||||
- cippest
|
- Samy Rabih
|
||||||
- cmouleyre
|
- Sarah Lorenzini
|
||||||
- Corentin Delcourt
|
- Shagshag
|
||||||
- Cosmin Hutanu
|
- Vincent Augagneur
|
||||||
- Damien Metzger
|
- Xavier POITAU
|
||||||
- DamienMetzger
|
- aFolletete
|
||||||
- Damon Skelhorn
|
- aKorczak
|
||||||
- Daniel
|
- aNiassy
|
||||||
- David Gasperoni
|
- adonis karavokyros
|
||||||
- Davy Rolink
|
- anat
|
||||||
- djfm
|
- bLeveque
|
||||||
- dlage
|
- bMancone
|
||||||
- dMetzger
|
- bumbu
|
||||||
- (d)oekia
|
- cmouleyre
|
||||||
- Dragan Skrbic
|
- dMetzger
|
||||||
- dreammeup
|
- dSevere
|
||||||
- DrySs
|
- djfm
|
||||||
- DrÿSs
|
- fBrignoli
|
||||||
- DrÿSs'
|
- fSerny
|
||||||
- dSevere
|
- fram
|
||||||
- Edouard Gaulué
|
- gBrunier
|
||||||
- emily-d
|
- gCharmes
|
||||||
- Fabio Chelly
|
- gPoulain
|
||||||
- fBrignoli
|
- gRoussac
|
||||||
- fram
|
- hAitmansour
|
||||||
- Francois Gaillard
|
- ivancasasempere
|
||||||
- François Gaillard
|
- jBreux
|
||||||
- Fran?s Gaillard
|
- jObregon
|
||||||
- fSerny
|
- jessylenne
|
||||||
- Gabriel Schwardy
|
- jmCollin
|
||||||
- gBrunier
|
- kpodemski
|
||||||
- gCharmes
|
- lBrieu
|
||||||
- gPoulain
|
- lCherifi
|
||||||
- gr4devel
|
- lLefevre
|
||||||
- Grégoire Bélorgey
|
- mBertholino
|
||||||
- Gregory Roussac
|
- mDeflotte
|
||||||
- gRoussac
|
- mMarinetti
|
||||||
- Guillaume DELOINCE
|
- marcinsz101
|
||||||
- ha99y
|
- montes
|
||||||
- hAitmansour
|
- nPellicari
|
||||||
- Ha!*!*y
|
- nezenmoins
|
||||||
- indesign47
|
- oleacorner
|
||||||
- inem0o
|
- rGaillard
|
||||||
- ivancasasempere
|
- rMalie
|
||||||
- jBreux
|
- rMontagne
|
||||||
- jeckyl
|
- root
|
||||||
- jeromenadaud
|
- sLorenzini
|
||||||
- Jerome Nadaud
|
- sThiebaut
|
||||||
- Jérôme Nadaud
|
- tDidierjean
|
||||||
- jessylenne
|
- vAugagneur
|
||||||
- jmCollin
|
- vChabot
|
||||||
- jObregon
|
- vKham
|
||||||
- Jonathan Danse
|
- vSchoener
|
||||||
- joseantgv
|
|
||||||
- Julien
|
|
||||||
- Kevin Granger
|
|
||||||
- kpodemski
|
|
||||||
- Krystian Podemski
|
|
||||||
- lBrieu
|
|
||||||
- lCherifi
|
|
||||||
- ldecoker
|
|
||||||
- lLefevre
|
|
||||||
- LOIC ROSSET ltd
|
|
||||||
- makk1ntosh
|
|
||||||
- marcinsz101
|
|
||||||
- Marco Cervellin
|
|
||||||
- matiasiglesias
|
|
||||||
- Mats Rynge
|
|
||||||
- MatthieuB
|
|
||||||
- Maxence
|
|
||||||
- mBertholino
|
|
||||||
- mDeflotte
|
|
||||||
- Michel Courtade
|
|
||||||
- Milow
|
|
||||||
- minic studio
|
|
||||||
- misthero
|
|
||||||
- mMarinetti
|
|
||||||
- montes
|
|
||||||
- nezenmoins
|
|
||||||
- Nicolas Sorosac
|
|
||||||
- Nils-Helge Garli Hegvik
|
|
||||||
- nPellicari
|
|
||||||
- nturato
|
|
||||||
- oleacorner
|
|
||||||
- Otto Nascarella
|
|
||||||
- Patanock
|
|
||||||
- PhpMadman
|
|
||||||
- Pierre
|
|
||||||
- Piotr Kaczor
|
|
||||||
- Piotr Mocko
|
|
||||||
- PrestaEdit
|
|
||||||
- prestarocket
|
|
||||||
- Prestaspirit
|
|
||||||
- pxls
|
|
||||||
- Raphaël Malié
|
|
||||||
- raulgundin
|
|
||||||
- Rémi Gaillard
|
|
||||||
- rGaillard
|
|
||||||
- Rimas Kudelis
|
|
||||||
- rMalie
|
|
||||||
- rMontagne
|
|
||||||
- romainberger
|
|
||||||
- root
|
|
||||||
- runningz
|
|
||||||
- sagaradonis
|
|
||||||
- Samy Rabih
|
|
||||||
- Sarah Lorenzini
|
|
||||||
- Seb
|
|
||||||
- Sébastien
|
|
||||||
- Sébastien Bocahu
|
|
||||||
- Seynaeve
|
|
||||||
- Shagshag
|
|
||||||
- sjousse
|
|
||||||
- sLorenzini
|
|
||||||
- smartdatasoft
|
|
||||||
- soufyan
|
|
||||||
- soware
|
|
||||||
- Staging
|
|
||||||
- sThiebaut
|
|
||||||
- Sylvain WITMEYER
|
|
||||||
- tDidierjean
|
|
||||||
- unknown
|
|
||||||
- vAugagneur
|
|
||||||
- vChabot
|
|
||||||
- Vincent Augagneur
|
|
||||||
- Vincent Schoener
|
|
||||||
- Vincent Terenti
|
|
||||||
- vinvin27
|
|
||||||
- vKham
|
|
||||||
- vSchoener
|
|
||||||
- Xavier
|
|
||||||
- Xavier POITAU
|
|
||||||
- Yoozio
|
|
||||||
- zimmi1
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,48 +2,47 @@ README
|
|||||||
======
|
======
|
||||||

|

|
||||||
|
|
||||||
ABOUT
|
PREPARATION
|
||||||
--------
|
--------
|
||||||
|
|
||||||
PrestaShop is a free and open-source e-commerce web application, committed to providing the best shopping cart experience for both merchants and consumers.
|
To install PrestaShop, you need a remote web server or on your computer (MAMP), with access to a database like MySQL.
|
||||||
|
You'll need access to phpMyAdmin to create a database and to indicate the information in the database in the installer.
|
||||||
|
|
||||||
SERVER CONFIGURATION
|
|
||||||
--------
|
|
||||||
|
|
||||||
To install PrestaShop, you need a web server running PHP5 and any flavor of MySQL5 (MySQL, MariaDB, Percona Server...).
|
|
||||||
You will also need a database administration tool, such as phpMyAdmin, in order to create a database for PrestaShop.
|
|
||||||
We recommend the Apache or Nginx web servers.
|
|
||||||
|
|
||||||
If your host does not offer PHP5 by default, here are a few [explanations][2] about PHP5 or the .htaccess file for certain hosting services (1&1, Free, Lycos, OVH, Infomaniak, Amen, GoDaddy, etc).
|
|
||||||
|
|
||||||
If you want your online store ready to go, visit [http://www.prestabox.com][1]: it lets you create your online store in less than 10 minutes without any technical knowledge.
|
|
||||||
|
|
||||||
|
If you do not host and unable to create your store, we offer a turnkey store, which lets you create your online store in less than 10 minutes without any technical knowledge.
|
||||||
|
We invite you to visit: [http://www.prestabox.com][1]
|
||||||
|
|
||||||
INSTALLATION
|
INSTALLATION
|
||||||
--------
|
--------
|
||||||
|
|
||||||
With your web browser, go to the root of your PrestaShop directory, and the installer will start. Follow the instructions until PrestaShop is installed.
|
Simply go to your PrestaShop web directory and use installer :-)
|
||||||
|
|
||||||
If you have any PHP error, perhaps you don't have PHP5 or you need to activate it on your web host. See the page linked above.
|
If you have any PHP error, perhaps you don't have PHP5 or you need to activate it on your web host.
|
||||||
If you don't find any solution to start the installer, please post on [the PrestaShop forums][3].
|
Please go to our forum to find pre-installation settings (PHP 5, htaccess) for certain hosting services (1&1, Free, Lycos, OVH, Infomaniak, Amen, GoDaddy, etc).
|
||||||
|
|
||||||
|
English webhost [specifics settings][2]
|
||||||
|
|
||||||
|
|
||||||
|
If you don't find any solution to launch installer, please post on [our forum][3]
|
||||||
|
|
||||||
|
|
||||||
|
There are always solutions for your issues ;-)
|
||||||
|
|
||||||
DOCUMENTATION
|
DOCUMENTATION
|
||||||
--------
|
--------
|
||||||
|
|
||||||
The official PrestaShop documentation is available online [on its own website][4].
|
For any extra documentation (how-to), please read our [Online documentation][4]
|
||||||
|
|
||||||
|
|
||||||
FORUMS
|
FORUMS
|
||||||
--------
|
--------
|
||||||
|
|
||||||
You can discuss, help and contribute with PrestaShop community on [the PrestaShop forums][5].
|
You can also discuss, help and contribute with PrestaShop community on [our forums][5]
|
||||||
|
|
||||||
Thank you for downloading and using PrestaShop e-commerce Open-source solution!
|
|
||||||
|
Thanks for downloading and using PrestaShop e-commerce Open-source solution!
|
||||||
|
|
||||||
[1]: http://www.prestabox.com
|
[1]: http://www.prestabox.com
|
||||||
[2]: http://www.prestashop.com/forums/topic/2946-pre-installation-settings-php-5-htaccess-for-certain-hosting-services/
|
[2]: http://www.prestashop.com/forums/topic/2946-pre-installation-settings-php-5-htaccess-for-certain-hosting-services/
|
||||||
[3]: http://www.prestashop.com/forums/forum/7-installing-prestashop/
|
[3]: http://www.prestashop.com/forums/forum/7-installing-prestashop/
|
||||||
[4]: http://doc.prestashop.com
|
[4]: http://doc.prestashop.com
|
||||||
[5]: http://www.prestashop.com/forums/
|
[5]: http://www.prestashop.com/forums/
|
||||||
+92
-1
@@ -26,12 +26,45 @@
|
|||||||
|
|
||||||
define('_PS_ADMIN_DIR_', getcwd());
|
define('_PS_ADMIN_DIR_', getcwd());
|
||||||
include(_PS_ADMIN_DIR_.'/../config/config.inc.php');
|
include(_PS_ADMIN_DIR_.'/../config/config.inc.php');
|
||||||
|
|
||||||
/* Getting cookie or logout */
|
/* Getting cookie or logout */
|
||||||
require_once(_PS_ADMIN_DIR_.'/init.php');
|
require_once(_PS_ADMIN_DIR_.'/init.php');
|
||||||
|
|
||||||
$context = Context::getContext();
|
$context = Context::getContext();
|
||||||
|
|
||||||
|
if (Tools::isSubmit('changeParentUrl'))
|
||||||
|
echo '<script type="text/javascript">parent.parent.document.location.href = "'.addslashes(urldecode(Tools::getValue('changeParentUrl'))).'";</script>';
|
||||||
|
if (Tools::isSubmit('installBoughtModule'))
|
||||||
|
{
|
||||||
|
$file = false;
|
||||||
|
while ($file === false OR file_exists(_PS_MODULE_DIR_.$file))
|
||||||
|
$file = uniqid();
|
||||||
|
$file = _PS_MODULE_DIR_.$file.'.zip';
|
||||||
|
$sourceFile = 'http://addons.prestashop.com/iframe/getboughtfile.php?id_order_detail='.Tools::getValue('id_order_detail').'&token='.Tools::getValue('token');
|
||||||
|
if (!copy($sourceFile, $file))
|
||||||
|
{
|
||||||
|
if (!($content = file_get_contents($sourceFile)))
|
||||||
|
die(displayJavascriptAlert('Access denied: Please download your module directly from PrestaShop Addons website'));
|
||||||
|
elseif (!file_put_contents($file, $content))
|
||||||
|
die(displayJavascriptAlert('Local error: your module directory is not writable'));
|
||||||
|
}
|
||||||
|
$first6 = fread($fd = fopen($file, 'r'), 6);
|
||||||
|
if (!strncmp($first6, 'Error:', 6))
|
||||||
|
{
|
||||||
|
$displayJavascriptAlert = displayJavascriptAlert(fread($fd, 1024));
|
||||||
|
fclose($fd);
|
||||||
|
unlink($file);
|
||||||
|
die($displayJavascriptAlert);
|
||||||
|
}
|
||||||
|
fclose($fd);
|
||||||
|
if (!Tools::ZipExtract($file, _PS_MODULE_DIR_))
|
||||||
|
{
|
||||||
|
unlink($file);
|
||||||
|
die(displayJavascriptAlert('Cannot unzip file'));
|
||||||
|
}
|
||||||
|
unlink($file);
|
||||||
|
die(displayJavascriptAlert('Module copied to disk'));
|
||||||
|
}
|
||||||
|
|
||||||
if (Tools::isSubmit('ajaxReferrers'))
|
if (Tools::isSubmit('ajaxReferrers'))
|
||||||
{
|
{
|
||||||
require(_PS_CONTROLLER_DIR_.'admin/AdminReferrersController.php');
|
require(_PS_CONTROLLER_DIR_.'admin/AdminReferrersController.php');
|
||||||
@@ -68,6 +101,39 @@ if (Tools::isSubmit('ajaxProductPackItems'))
|
|||||||
die('['.implode(',', $jsonArray).']');
|
die('['.implode(',', $jsonArray).']');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Tools::isSubmit('ajaxStates') AND Tools::isSubmit('id_country'))
|
||||||
|
{
|
||||||
|
$states = Db::getInstance()->executeS('
|
||||||
|
SELECT s.id_state, s.name
|
||||||
|
FROM '._DB_PREFIX_.'state s
|
||||||
|
LEFT JOIN '._DB_PREFIX_.'country c ON (s.`id_country` = c.`id_country`)
|
||||||
|
WHERE s.id_country = '.(int)(Tools::getValue('id_country')).' AND s.active = 1 AND c.`contains_states` = 1
|
||||||
|
ORDER BY s.`name` ASC');
|
||||||
|
|
||||||
|
if (is_array($states) AND !empty($states))
|
||||||
|
{
|
||||||
|
$list = '';
|
||||||
|
if (Tools::getValue('no_empty') != true)
|
||||||
|
{
|
||||||
|
$empty_value = (Tools::isSubmit('empty_value')) ? Tools::getValue('empty_value') : '----------';
|
||||||
|
$list = '<option value="0">'.Tools::htmlentitiesUTF8($empty_value).'</option>'."\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($states AS $state)
|
||||||
|
$list .= '<option value="'.(int)($state['id_state']).'"'.((isset($_GET['id_state']) AND $_GET['id_state'] == $state['id_state']) ? ' selected="selected"' : '').'>'.$state['name'].'</option>'."\n";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$list = 'false';
|
||||||
|
|
||||||
|
die($list);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Tools::getValue('form_language_id'))
|
||||||
|
{
|
||||||
|
if (!($context->cookie->employee_form_lang = (int)(Tools::getValue('form_language_id'))))
|
||||||
|
die ('Error while updating cookie.');
|
||||||
|
die ('Form language updated.');
|
||||||
|
}
|
||||||
|
|
||||||
if (Tools::isSubmit('submitTrackClickOnHelp'))
|
if (Tools::isSubmit('submitTrackClickOnHelp'))
|
||||||
{
|
{
|
||||||
@@ -78,6 +144,15 @@ if (Tools::isSubmit('submitTrackClickOnHelp'))
|
|||||||
HelpAccess::trackClick($label, $version);
|
HelpAccess::trackClick($label, $version);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Tools::isSubmit('toggleScreencast'))
|
||||||
|
{
|
||||||
|
if (Validate::isLoadedObject($context->employee))
|
||||||
|
{
|
||||||
|
$context->employee->bo_show_screencast = !$context->employee->bo_show_screencast;
|
||||||
|
$context->employee->update();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (Tools::isSubmit('getChildrenCategories') && Tools::isSubmit('id_category_parent'))
|
if (Tools::isSubmit('getChildrenCategories') && Tools::isSubmit('id_category_parent'))
|
||||||
{
|
{
|
||||||
$children_categories = Category::getChildrenWithNbSelectedSubCat(Tools::getValue('id_category_parent'), Tools::getValue('selectedCat'), Context::getContext()->language->id, null, Tools::getValue('use_shop_context'));
|
$children_categories = Category::getChildrenWithNbSelectedSubCat(Tools::getValue('id_category_parent'), Tools::getValue('selectedCat'), Context::getContext()->language->id, null, Tools::getValue('use_shop_context'));
|
||||||
@@ -125,6 +200,17 @@ if (Tools::isSubmit('getParentCategoriesId') && $id_category = Tools::getValue('
|
|||||||
die(Tools::jsonEncode($output));
|
die(Tools::jsonEncode($output));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Update attribute */
|
||||||
|
if (Tools::isSubmit('ajaxUpdateTaxRule'))
|
||||||
|
{
|
||||||
|
$id_tax_rule = Tools::getValue('id_tax_rule');
|
||||||
|
$tax_rules = new TaxRule((int)$id_tax_rule);
|
||||||
|
$output = array();
|
||||||
|
foreach ($tax_rules as $key => $result)
|
||||||
|
$output[$key] = $result;
|
||||||
|
die(Tools::jsonEncode($output));
|
||||||
|
}
|
||||||
|
|
||||||
if (Tools::isSubmit('getZones'))
|
if (Tools::isSubmit('getZones'))
|
||||||
{
|
{
|
||||||
$zones = Zone::getZones();
|
$zones = Zone::getZones();
|
||||||
@@ -137,3 +223,8 @@ if (Tools::isSubmit('getZones'))
|
|||||||
$array = array('hasError' => false, 'errors' => '', 'data' => $html);
|
$array = array('hasError' => false, 'errors' => '', 'data' => $html);
|
||||||
die(Tools::jsonEncode($html));
|
die(Tools::jsonEncode($html));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function displayJavascriptAlert($s)
|
||||||
|
{
|
||||||
|
echo '<script type="text/javascript">alert(\''.addslashes($s).'\');</script>';
|
||||||
|
}
|
||||||
|
|||||||
@@ -22,18 +22,26 @@
|
|||||||
|
|
||||||
$upload->setInvalidFileExt(explode(",", CONFIG_UPLOAD_INVALID_EXTS));
|
$upload->setInvalidFileExt(explode(",", CONFIG_UPLOAD_INVALID_EXTS));
|
||||||
if(CONFIG_SYS_VIEW_ONLY || !CONFIG_OPTIONS_UPLOAD)
|
if(CONFIG_SYS_VIEW_ONLY || !CONFIG_OPTIONS_UPLOAD)
|
||||||
|
{
|
||||||
$error = SYS_DISABLED;
|
$error = SYS_DISABLED;
|
||||||
|
}
|
||||||
elseif(empty($_GET['folder']) || !isUnderRoot($_GET['folder']))
|
elseif(empty($_GET['folder']) || !isUnderRoot($_GET['folder']))
|
||||||
|
{
|
||||||
$error = ERR_FOLDER_PATH_NOT_ALLOWED;
|
$error = ERR_FOLDER_PATH_NOT_ALLOWED;
|
||||||
elseif (!$upload->isFileUploaded('file'))
|
}else if(!$upload->isFileUploaded('file'))
|
||||||
|
{
|
||||||
$error = ERR_FILE_NOT_UPLOADED;
|
$error = ERR_FILE_NOT_UPLOADED;
|
||||||
elseif (!$upload->isPermittedFileExt(explode(",", CONFIG_UPLOAD_VALID_EXTS)))
|
}else if(!$upload->moveUploadedFile($_GET['folder']))
|
||||||
$error = ERR_FILE_TYPE_NOT_ALLOWED;
|
{
|
||||||
elseif (defined('CONFIG_UPLOAD_MAXSIZE') && CONFIG_UPLOAD_MAXSIZE && $upload->isSizeTooBig(CONFIG_UPLOAD_MAXSIZE))
|
|
||||||
$error = sprintf(ERROR_FILE_TOO_BID, transformFileSize(CONFIG_UPLOAD_MAXSIZE));
|
|
||||||
elseif (!$upload->moveUploadedFile($_GET['folder']))
|
|
||||||
$error = ERR_FILE_MOVE_FAILED;
|
$error = ERR_FILE_MOVE_FAILED;
|
||||||
else
|
}
|
||||||
|
elseif(!$upload->isPermittedFileExt(explode(",", CONFIG_UPLOAD_VALID_EXTS)))
|
||||||
|
{
|
||||||
|
$error = ERR_FILE_TYPE_NOT_ALLOWED;
|
||||||
|
}elseif(defined('CONFIG_UPLOAD_MAXSIZE') && CONFIG_UPLOAD_MAXSIZE && $upload->isSizeTooBig(CONFIG_UPLOAD_MAXSIZE))
|
||||||
|
{
|
||||||
|
$error = sprintf(ERROR_FILE_TOO_BID, transformFileSize(CONFIG_UPLOAD_MAXSIZE));
|
||||||
|
}else
|
||||||
{
|
{
|
||||||
include_once(CLASS_FILE);
|
include_once(CLASS_FILE);
|
||||||
$path = $upload->getFilePath();
|
$path = $upload->getFilePath();
|
||||||
|
|||||||
@@ -24,8 +24,7 @@
|
|||||||
if(!empty($_GET['search']))
|
if(!empty($_GET['search']))
|
||||||
{
|
{
|
||||||
include_once(CLASS_SEARCH);
|
include_once(CLASS_SEARCH);
|
||||||
if (!preg_match('/^'.Tools::pRegexp(realpath(dirname(__FILE__).'/'.$_GET['search_folder']), '/').'/i', _PS_ROOT_DIR_.'/img/cms'))
|
|
||||||
exit;
|
|
||||||
$search = new Search($_GET['search_folder']);
|
$search = new Search($_GET['search_folder']);
|
||||||
$search->addSearchKeyword('recursive', @$_GET['search_recursively']);
|
$search->addSearchKeyword('recursive', @$_GET['search_recursively']);
|
||||||
$search->addSearchKeyword('mtime_from', @$_GET['search_mtime_from']);
|
$search->addSearchKeyword('mtime_from', @$_GET['search_mtime_from']);
|
||||||
|
|||||||
@@ -78,9 +78,9 @@
|
|||||||
define('CONFIG_EDITABLE_VALID_EXTS', 'txt,htm,html,xml,js,css'); //make you include all these extension in CONFIG_UPLOAD_VALID_EXTS if you want all valid
|
define('CONFIG_EDITABLE_VALID_EXTS', 'txt,htm,html,xml,js,css'); //make you include all these extension in CONFIG_UPLOAD_VALID_EXTS if you want all valid
|
||||||
|
|
||||||
define('CONFIG_OVERWRITTEN', false); //overwirte when processing paste
|
define('CONFIG_OVERWRITTEN', false); //overwirte when processing paste
|
||||||
define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,jpeg,png');// //
|
define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,png');// //
|
||||||
//define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,png,bmp,tif,zip,sit,rar,gz,tar,htm,html,mov,mpg,avi,asf,mpeg,wmv,aif,aiff,wav,mp3,swf,ppt,rtf,doc,pdf,xls,txt,xml,xsl,dtd');//
|
//define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,png,bmp,tif,zip,sit,rar,gz,tar,htm,html,mov,mpg,avi,asf,mpeg,wmv,aif,aiff,wav,mp3,swf,ppt,rtf,doc,pdf,xls,txt,xml,xsl,dtd');//
|
||||||
define("CONFIG_VIEWABLE_VALID_EXTS", 'gif,jpg,jpeg,jpeg,png');
|
define("CONFIG_VIEWABLE_VALID_EXTS", 'gif,jpg,png');
|
||||||
//define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,png,txt'); //
|
//define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,png,txt'); //
|
||||||
define('CONFIG_UPLOAD_INVALID_EXTS', '');
|
define('CONFIG_UPLOAD_INVALID_EXTS', '');
|
||||||
|
|
||||||
|
|||||||
@@ -10,9 +10,6 @@
|
|||||||
|
|
||||||
//FILESYSTEM CONFIG <br>
|
//FILESYSTEM CONFIG <br>
|
||||||
require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . "class.auth.php");
|
require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . "class.auth.php");
|
||||||
if (_PS_MODE_DEMO_)
|
|
||||||
die('This functionality has been disabled.');
|
|
||||||
|
|
||||||
define('CONFIG_QUERY_STRING_ENABLE', true); //Enable passed query string to setting the system configuration
|
define('CONFIG_QUERY_STRING_ENABLE', true); //Enable passed query string to setting the system configuration
|
||||||
if(!isset($_SESSION))
|
if(!isset($_SESSION))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -73,9 +73,9 @@
|
|||||||
define('CONFIG_EDITABLE_VALID_EXTS', 'txt,htm,html,xml,js,css'); //make you include all these extension in CONFIG_UPLOAD_VALID_EXTS if you want all valid
|
define('CONFIG_EDITABLE_VALID_EXTS', 'txt,htm,html,xml,js,css'); //make you include all these extension in CONFIG_UPLOAD_VALID_EXTS if you want all valid
|
||||||
|
|
||||||
define('CONFIG_OVERWRITTEN', false); //overwirte when processing paste
|
define('CONFIG_OVERWRITTEN', false); //overwirte when processing paste
|
||||||
define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,jpeg,png,txt'); //
|
define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,png,txt'); //
|
||||||
//define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,png,bmp,tif,zip,sit,rar,gz,tar,htm,html,mov,mpg,avi,asf,mpeg,wmv,aif,aiff,wav,mp3,swf,ppt,rtf,doc,pdf,xls,txt,xml,xsl,dtd');//
|
//define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,png,bmp,tif,zip,sit,rar,gz,tar,htm,html,mov,mpg,avi,asf,mpeg,wmv,aif,aiff,wav,mp3,swf,ppt,rtf,doc,pdf,xls,txt,xml,xsl,dtd');//
|
||||||
define("CONFIG_VIEWABLE_VALID_EXTS", 'gif,bmp,txt,jpg,jpeg,png,tif,html,htm,js,css,xml,xsl,dtd,mp3,wav,wmv,wma,rm,rmvb,mov,swf');
|
define("CONFIG_VIEWABLE_VALID_EXTS", 'gif,bmp,txt,jpg,png,tif,html,htm,js,css,xml,xsl,dtd,mp3,wav,wmv,wma,rm,rmvb,mov,swf');
|
||||||
//define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,png,txt'); //
|
//define('CONFIG_UPLOAD_VALID_EXTS', 'gif,jpg,png,txt'); //
|
||||||
define('CONFIG_UPLOAD_INVALID_EXTS', '');
|
define('CONFIG_UPLOAD_INVALID_EXTS', '');
|
||||||
|
|
||||||
|
|||||||
+2
-45
@@ -37,6 +37,7 @@ $height = Tools::getValue('height');
|
|||||||
$id_employee = Tools::getValue('id_employee');
|
$id_employee = Tools::getValue('id_employee');
|
||||||
$id_lang = Tools::getValue('id_lang');
|
$id_lang = Tools::getValue('id_lang');
|
||||||
|
|
||||||
|
|
||||||
if (!isset($cookie->id_employee) || !$cookie->id_employee || $cookie->id_employee != $id_employee)
|
if (!isset($cookie->id_employee) || !$cookie->id_employee || $cookie->id_employee != $id_employee)
|
||||||
die(Tools::displayError());
|
die(Tools::displayError());
|
||||||
|
|
||||||
@@ -46,51 +47,6 @@ if (!Validate::isModuleName($module))
|
|||||||
if (!Tools::file_exists_cache($module_path = dirname(__FILE__).'/../modules/'.$module.'/'.$module.'.php'))
|
if (!Tools::file_exists_cache($module_path = dirname(__FILE__).'/../modules/'.$module.'/'.$module.'.php'))
|
||||||
die(Tools::displayError());
|
die(Tools::displayError());
|
||||||
|
|
||||||
$shop_id = '';
|
|
||||||
Shop::setContext(Shop::CONTEXT_ALL);
|
|
||||||
if (Context::getContext()->cookie->shopContext)
|
|
||||||
{
|
|
||||||
$split = explode('-', Context::getContext()->cookie->shopContext);
|
|
||||||
if (count($split) == 2)
|
|
||||||
{
|
|
||||||
if ($split[0] == 'g')
|
|
||||||
{
|
|
||||||
if (Context::getContext()->employee->hasAuthOnShopGroup($split[1]))
|
|
||||||
Shop::setContext(Shop::CONTEXT_GROUP, $split[1]);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$shop_id = Context::getContext()->employee->getDefaultShopID();
|
|
||||||
Shop::setContext(Shop::CONTEXT_SHOP, $shop_id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (Shop::getShop($split[1]) && Context::getContext()->employee->hasAuthOnShop($split[1]))
|
|
||||||
{
|
|
||||||
$shop_id = $split[1];
|
|
||||||
Shop::setContext(Shop::CONTEXT_SHOP, $shop_id);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$shop_id = Context::getContext()->employee->getDefaultShopID();
|
|
||||||
Shop::setContext(Shop::CONTEXT_SHOP, $shop_id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check multishop context and set right context if need
|
|
||||||
if (Shop::getContext())
|
|
||||||
{
|
|
||||||
if (Shop::getContext() == Shop::CONTEXT_SHOP && !Shop::CONTEXT_SHOP)
|
|
||||||
Shop::setContext(Shop::CONTEXT_GROUP, Shop::getContextShopGroupID());
|
|
||||||
if (Shop::getContext() == Shop::CONTEXT_GROUP && !Shop::CONTEXT_GROUP)
|
|
||||||
Shop::setContext(Shop::CONTEXT_ALL);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Replace existing shop if necessary
|
|
||||||
if (!$shop_id)
|
|
||||||
Context::getContext()->shop = new Shop(Configuration::get('PS_SHOP_DEFAULT'));
|
|
||||||
elseif (Context::getContext()->shop->id != $shop_id)
|
|
||||||
Context::getContext()->shop = new Shop($shop_id);
|
|
||||||
|
|
||||||
require_once($module_path);
|
require_once($module_path);
|
||||||
|
|
||||||
$graph = new $module();
|
$graph = new $module();
|
||||||
@@ -101,3 +57,4 @@ if ($option)
|
|||||||
|
|
||||||
$graph->create($render, $type, $width, $height, $layers);
|
$graph->create($render, $type, $width, $height, $layers);
|
||||||
$graph->draw();
|
$graph->draw();
|
||||||
|
|
||||||
|
|||||||
@@ -30,14 +30,14 @@ echo ' </div>
|
|||||||
<div id="footer">
|
<div id="footer">
|
||||||
<div style="float:left;margin-left:10px;padding-top:6px">
|
<div style="float:left;margin-left:10px;padding-top:6px">
|
||||||
<a href="http://www.prestashop.com/" target="_blank" style="font-weight:700;color:#666666">PrestaShop™ '._PS_VERSION_.'</a><br />
|
<a href="http://www.prestashop.com/" target="_blank" style="font-weight:700;color:#666666">PrestaShop™ '._PS_VERSION_.'</a><br />
|
||||||
<span style="font-size:10px">'.Translate::getAdminTranslation('Load time:').' '.number_format(microtime(true) - $timerStart, 3, '.', '').'s</span>
|
<span style="font-size:10px">'.translate('Load time:').' '.number_format(microtime(true) - $timerStart, 3, '.', '').'s</span>
|
||||||
</div>
|
</div>
|
||||||
<div style="float:right;height:40px;margin-right:10px;line-height:38px;vertical-align:middle">';
|
<div style="float:right;height:40px;margin-right:10px;line-height:38px;vertical-align:middle">';
|
||||||
if (strtoupper(Context::getContext()->language->iso_code) == 'FR') echo '<span style="color: #812143; font-weight: bold;">Questions / Renseignements / Formations :</span> <strong>+33 (0)1.40.18.30.04</strong> de 09h à 18h ';
|
if (strtoupper(Context::getContext()->language->iso_code) == 'FR') echo '<span style="color: #812143; font-weight: bold;">Questions / Renseignements / Formations :</span> <strong>+33 (0)1.40.18.30.04</strong> de 09h à 18h ';
|
||||||
|
|
||||||
echo ' | <a href="http://www.prestashop.com/en/contact_us/" target="_blank" class="footer_link">'.Translate::getAdminTranslation('Contact').'</a>
|
echo ' | <a href="http://www.prestashop.com/en/contact_us/" target="_blank" class="footer_link">'.translate('Contact').'</a>
|
||||||
| <a href="http://forge.prestashop.com" target="_blank" class="footer_link">'.Translate::getAdminTranslation('Bug Tracker').'</a>
|
| <a href="http://forge.prestashop.com" target="_blank" class="footer_link">'.translate('Bug Tracker').'</a>
|
||||||
| <a href="http://www.prestashop.com/forums/" target="_blank" class="footer_link">'.Translate::getAdminTranslation('Forum').'</a>
|
| <a href="http://www.prestashop.com/forums/" target="_blank" class="footer_link">'.translate('Forum').'</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+9
-16
@@ -223,16 +223,8 @@ function checkPSVersion()
|
|||||||
return $upgrader->checkPSVersion();
|
return $upgrader->checkPSVersion();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Deprecated since > 1.5.4.1
|
|
||||||
* Use Translate::getAdminTranslation($string) instead
|
|
||||||
*
|
|
||||||
* @param string $string
|
|
||||||
*/
|
|
||||||
function translate($string)
|
function translate($string)
|
||||||
{
|
{
|
||||||
Tools::displayAsDeprecated();
|
|
||||||
|
|
||||||
global $_LANGADM;
|
global $_LANGADM;
|
||||||
if (!is_array($_LANGADM))
|
if (!is_array($_LANGADM))
|
||||||
return str_replace('"', '"', $string);
|
return str_replace('"', '"', $string);
|
||||||
@@ -241,6 +233,7 @@ function translate($string)
|
|||||||
return str_replace('"', '"', stripslashes($str));
|
return str_replace('"', '"', stripslashes($str));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a new Tab object
|
* Returns a new Tab object
|
||||||
*
|
*
|
||||||
@@ -468,7 +461,7 @@ function runAdminTab($tab, $ajaxMode = false)
|
|||||||
echo '<div class="path_bar">
|
echo '<div class="path_bar">
|
||||||
<div id="help-button" class="floatr" style="display: none; font-family: Verdana; font-size: 10px; margin-right: 4px; margin-top: 4px;">
|
<div id="help-button" class="floatr" style="display: none; font-family: Verdana; font-size: 10px; margin-right: 4px; margin-top: 4px;">
|
||||||
</div>
|
</div>
|
||||||
<a href="?token='.Tools::getAdminToken($tab.intval(Tab::getIdFromClassName($tab)).(int)Context::getContext()->employee->id).'">'.Translate::getAdminTranslation('Back Office').'</a>
|
<a href="?token='.Tools::getAdminToken($tab.intval(Tab::getIdFromClassName($tab)).(int)Context::getContext()->employee->id).'">'.translate('Back Office').'</a>
|
||||||
'.$bread.'</div>';
|
'.$bread.'</div>';
|
||||||
|
|
||||||
if (!$ajaxMode && Shop::isFeatureActive() && Shop::getContext() != Shop::CONTEXT_ALL && Context::getContext()->controller->multishop_context != Shop::CONTEXT_ALL)
|
if (!$ajaxMode && Shop::isFeatureActive() && Shop::getContext() != Shop::CONTEXT_ALL && Context::getContext()->controller->multishop_context != Shop::CONTEXT_ALL)
|
||||||
@@ -477,10 +470,10 @@ function runAdminTab($tab, $ajaxMode = false)
|
|||||||
if (Shop::getContext() == Shop::CONTEXT_GROUP)
|
if (Shop::getContext() == Shop::CONTEXT_GROUP)
|
||||||
{
|
{
|
||||||
$shop_group = new ShopGroup((int)Shop::getContextShopGroupID());
|
$shop_group = new ShopGroup((int)Shop::getContextShopGroupID());
|
||||||
printf(Translate::getAdminTranslation('You are configuring your store for group shop %s'), '<b>'.$shop_group->name.'</b>');
|
printf(translate('You are configuring your store for group shop %s'), '<b>'.$shop_group->name.'</b>');
|
||||||
}
|
}
|
||||||
elseif (Shop::getContext() == Shop::CONTEXT_SHOP)
|
elseif (Shop::getContext() == Shop::CONTEXT_SHOP)
|
||||||
printf(Translate::getAdminTranslation('You are configuring your store for shop %s'), '<b>'.Context::getContext()->shop->name.'</b>');
|
printf(translate('You are configuring your store for shop %s'), '<b>'.Context::getContext()->shop->name.'</b>');
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
}
|
}
|
||||||
if (Validate::isLoadedObject($adminObj))
|
if (Validate::isLoadedObject($adminObj))
|
||||||
@@ -553,8 +546,8 @@ function runAdminTab($tab, $ajaxMode = false)
|
|||||||
|
|
||||||
|
|
||||||
// we can display the correct url
|
// we can display the correct url
|
||||||
// die(Tools::jsonEncode(array(Translate::getAdminTranslation('Invalid security token'),$url)));
|
// die(Tools::jsonEncode(array(translate('Invalid security token'),$url)));
|
||||||
die(Tools::jsonEncode(Translate::getAdminTranslation('Invalid security token')));
|
die(Tools::jsonEncode(translate('Invalid security token')));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -566,17 +559,17 @@ function runAdminTab($tab, $ajaxMode = false)
|
|||||||
if (false === strpos($url, '?token=') AND false === strpos($url, '&token='))
|
if (false === strpos($url, '?token=') AND false === strpos($url, '&token='))
|
||||||
$url .= '&token='.$adminObj->token;
|
$url .= '&token='.$adminObj->token;
|
||||||
|
|
||||||
$message = Translate::getAdminTranslation('Invalid security token');
|
$message = translate('Invalid security token');
|
||||||
echo '<html><head><title>'.$message.'</title></head><body style="font-family:Arial,Verdana,Helvetica,sans-serif;background-color:#EC8686">
|
echo '<html><head><title>'.$message.'</title></head><body style="font-family:Arial,Verdana,Helvetica,sans-serif;background-color:#EC8686">
|
||||||
<div style="background-color:#FAE2E3;border:1px solid #000000;color:#383838;font-weight:700;line-height:20px;margin:0 0 10px;padding:10px 15px;width:500px">
|
<div style="background-color:#FAE2E3;border:1px solid #000000;color:#383838;font-weight:700;line-height:20px;margin:0 0 10px;padding:10px 15px;width:500px">
|
||||||
<img src="../img/admin/error2.png" style="margin:-4px 5px 0 0;vertical-align:middle">
|
<img src="../img/admin/error2.png" style="margin:-4px 5px 0 0;vertical-align:middle">
|
||||||
'.$message.'
|
'.$message.'
|
||||||
</div>';
|
</div>';
|
||||||
echo '<a href="'.htmlentities($url).'" method="get" style="float:left;margin:10px">
|
echo '<a href="'.htmlentities($url).'" method="get" style="float:left;margin:10px">
|
||||||
<input type="button" value="'.Tools::htmlentitiesUTF8(Translate::getAdminTranslation('I understand the risks and I really want to display this page')).'" style="height:30px;margin-top:5px" />
|
<input type="button" value="'.Tools::htmlentitiesUTF8(translate('I understand the risks and I really want to display this page')).'" style="height:30px;margin-top:5px" />
|
||||||
</a>
|
</a>
|
||||||
<a href="index.php" method="get" style="float:left;margin:10px">
|
<a href="index.php" method="get" style="float:left;margin:10px">
|
||||||
<input type="button" value="'.Tools::htmlentitiesUTF8(Translate::getAdminTranslation('Take me out of here!')).'" style="height:40px" />
|
<input type="button" value="'.Tools::htmlentitiesUTF8(translate('Take me out of here!')).'" style="height:40px" />
|
||||||
</a>
|
</a>
|
||||||
</body></html>';
|
</body></html>';
|
||||||
die;
|
die;
|
||||||
|
|||||||
@@ -50,53 +50,6 @@ if (!Validate::isModuleName($module))
|
|||||||
if (!Tools::file_exists_cache($module_path = dirname(__FILE__).'/../modules/'.$module.'/'.$module.'.php'))
|
if (!Tools::file_exists_cache($module_path = dirname(__FILE__).'/../modules/'.$module.'/'.$module.'.php'))
|
||||||
die(Tools::displayError());
|
die(Tools::displayError());
|
||||||
|
|
||||||
|
|
||||||
$shop_id = '';
|
|
||||||
Shop::setContext(Shop::CONTEXT_ALL);
|
|
||||||
if (Context::getContext()->cookie->shopContext)
|
|
||||||
{
|
|
||||||
$split = explode('-', Context::getContext()->cookie->shopContext);
|
|
||||||
if (count($split) == 2)
|
|
||||||
{
|
|
||||||
if ($split[0] == 'g')
|
|
||||||
{
|
|
||||||
if (Context::getContext()->employee->hasAuthOnShopGroup($split[1]))
|
|
||||||
Shop::setContext(Shop::CONTEXT_GROUP, $split[1]);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$shop_id = Context::getContext()->employee->getDefaultShopID();
|
|
||||||
Shop::setContext(Shop::CONTEXT_SHOP, $shop_id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (Shop::getShop($split[1]) && Context::getContext()->employee->hasAuthOnShop($split[1]))
|
|
||||||
{
|
|
||||||
$shop_id = $split[1];
|
|
||||||
Shop::setContext(Shop::CONTEXT_SHOP, $shop_id);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$shop_id = Context::getContext()->employee->getDefaultShopID();
|
|
||||||
Shop::setContext(Shop::CONTEXT_SHOP, $shop_id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check multishop context and set right context if need
|
|
||||||
if (Shop::getContext())
|
|
||||||
{
|
|
||||||
if (Shop::getContext() == Shop::CONTEXT_SHOP && !Shop::CONTEXT_SHOP)
|
|
||||||
Shop::setContext(Shop::CONTEXT_GROUP, Shop::getContextShopGroupID());
|
|
||||||
if (Shop::getContext() == Shop::CONTEXT_GROUP && !Shop::CONTEXT_GROUP)
|
|
||||||
Shop::setContext(Shop::CONTEXT_ALL);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Replace existing shop if necessary
|
|
||||||
if (!$shop_id)
|
|
||||||
Context::getContext()->shop = new Shop(Configuration::get('PS_SHOP_DEFAULT'));
|
|
||||||
elseif (Context::getContext()->shop->id != $shop_id)
|
|
||||||
Context::getContext()->shop = new Shop($shop_id);
|
|
||||||
|
|
||||||
|
|
||||||
require_once($module_path);
|
require_once($module_path);
|
||||||
|
|
||||||
$grid = new $module();
|
$grid = new $module();
|
||||||
|
|||||||
+35
-35
@@ -41,7 +41,7 @@ echo '
|
|||||||
<link type="text/css" rel="stylesheet" href="'._PS_JS_DIR_.'jquery/plugins/cluetip/jquery.cluetip.css" />
|
<link type="text/css" rel="stylesheet" href="'._PS_JS_DIR_.'jquery/plugins/cluetip/jquery.cluetip.css" />
|
||||||
<link type="text/css" rel="stylesheet" href="themes/'.Context::getContext()->employee->bo_theme.'/css/admin.css" />
|
<link type="text/css" rel="stylesheet" href="themes/'.Context::getContext()->employee->bo_theme.'/css/admin.css" />
|
||||||
<link type="text/css" rel="stylesheet" href="'._PS_JS_DIR_.'jquery/plugins/chosen/jquery.chosen.css" />
|
<link type="text/css" rel="stylesheet" href="'._PS_JS_DIR_.'jquery/plugins/chosen/jquery.chosen.css" />
|
||||||
<title>PrestaShop™ - '.Translate::getAdminTranslation('Administration panel').'</title>
|
<title>PrestaShop™ - '.translate('Administration panel').'</title>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var helpboxes = '.Configuration::get('PS_HELPBOX').';
|
var helpboxes = '.Configuration::get('PS_HELPBOX').';
|
||||||
var roundMode = '.Configuration::get('PS_PRICE_ROUND_MODE').';
|
var roundMode = '.Configuration::get('PS_PRICE_ROUND_MODE').';
|
||||||
@@ -78,7 +78,7 @@ echo '
|
|||||||
html = "";
|
html = "";
|
||||||
nb_notifs = 0;
|
nb_notifs = 0;
|
||||||
$.each(json.order, function(property, value) {
|
$.each(json.order, function(property, value) {
|
||||||
html += "<li>'.Translate::getAdminTranslation('A new order has been made on your shop.').'<br />'.Translate::getAdminTranslation('Order number : ').'<strong>#" + parseInt(value.id_order) + "</strong><br />'.Translate::getAdminTranslation('Total : ').'<strong>" + value.total_paid_real + "</strong><br />'.Translate::getAdminTranslation('From : ').'<strong>" + value.customer_name + "</strong><br /><a href=\"index.php?tab=AdminOrders&token='.Tools::getAdminTokenLite('AdminOrders').'&vieworder&id_order=" + parseInt(value.id_order) + "\">'.Translate::getAdminTranslation('Click here to see that order').'</a></li>";
|
html += "<li>'.translate('A new order has been made on your shop.').'<br />'.translate('Order number : ').'<strong>#" + parseInt(value.id_order) + "</strong><br />'.translate('Total : ').'<strong>" + value.total_paid_real + "</strong><br />'.translate('From : ').'<strong>" + value.customer_name + "</strong><br /><a href=\"index.php?tab=AdminOrders&token='.Tools::getAdminTokenLite('AdminOrders').'&vieworder&id_order=" + parseInt(value.id_order) + "\">'.translate('Click here to see that order').'</a></li>";
|
||||||
});
|
});
|
||||||
|
|
||||||
if (html != "")
|
if (html != "")
|
||||||
@@ -99,7 +99,7 @@ echo '
|
|||||||
html = "";
|
html = "";
|
||||||
nb_notifs = 0;
|
nb_notifs = 0;
|
||||||
$.each(json.customer, function(property, value) {
|
$.each(json.customer, function(property, value) {
|
||||||
html += "<li>'.Translate::getAdminTranslation('A new customer registered on your shop.').'<br />'.Translate::getAdminTranslation('Customer name : ').'<strong>" + value.customer_name + "</strong><br /><a href=\"index.php?tab=AdminCustomers&token='.Tools::getAdminTokenLite('AdminCustomers').'&viewcustomer&id_customer=" + parseInt(value.id_customer) + "\">'.Translate::getAdminTranslation('Click here to see that customer').'</a></li>";
|
html += "<li>'.translate('A new customer registered on your shop.').'<br />'.translate('Customer name : ').'<strong>" + value.customer_name + "</strong><br /><a href=\"index.php?tab=AdminCustomers&token='.Tools::getAdminTokenLite('AdminCustomers').'&viewcustomer&id_customer=" + parseInt(value.id_customer) + "\">'.translate('Click here to see that customer').'</a></li>";
|
||||||
});
|
});
|
||||||
if (html != "")
|
if (html != "")
|
||||||
{
|
{
|
||||||
@@ -121,7 +121,7 @@ echo '
|
|||||||
html = "";
|
html = "";
|
||||||
nb_notifs = 0;
|
nb_notifs = 0;
|
||||||
$.each(json.customer_message, function(property, value) {
|
$.each(json.customer_message, function(property, value) {
|
||||||
html += "<li>'.Translate::getAdminTranslation('A new message posted on your shop.').'<br />'.Translate::getAdminTranslation('From : ').'<strong>" + value.customer_name + "</strong><br /><a href=\"index.php?tab=AdminCustomerThreads&token='.Tools::getAdminTokenLite('AdminCustomerThreads').'&viewcustomer_thread&id_customer_thread=" + parseInt(value.id_customer_thread) + "\">'.Translate::getAdminTranslation('Click here to see that message').'</a></li>";
|
html += "<li>'.translate('A new message posted on your shop.').'<br />'.translate('From : ').'<strong>" + value.customer_name + "</strong><br /><a href=\"index.php?tab=AdminCustomerThreads&token='.Tools::getAdminTokenLite('AdminCustomerThreads').'&viewcustomer_thread&id_customer_thread=" + parseInt(value.id_customer_thread) + "\">'.translate('Click here to see that message').'</a></li>";
|
||||||
});
|
});
|
||||||
|
|
||||||
if (html != "")
|
if (html != "")
|
||||||
@@ -149,14 +149,14 @@ echo '
|
|||||||
if (Shop::isFeatureActive())
|
if (Shop::isFeatureActive())
|
||||||
{
|
{
|
||||||
if (Shop::getContext() == Shop::CONTEXT_ALL)
|
if (Shop::getContext() == Shop::CONTEXT_ALL)
|
||||||
$youEditFieldFor = Translate::getAdminTranslation('A modification of this field will be applied for all shops');
|
$youEditFieldFor = translate('A modification of this field will be applied for all shops');
|
||||||
elseif (Shop::getContext() == Shop::CONTEXT_GROUP)
|
elseif (Shop::getContext() == Shop::CONTEXT_GROUP)
|
||||||
{
|
{
|
||||||
$shop_group = new ShopGroup((int)Shop::getContextShopGroupID());
|
$shop_group = new ShopGroup((int)Shop::getContextShopGroupID());
|
||||||
$youEditFieldFor = sprintf(Translate::getAdminTranslation('A modification of this field will be applied for all shops of group %s'), '<b>'.$shop_group->name.'</b>');
|
$youEditFieldFor = sprintf(translate('A modification of this field will be applied for all shops of group %s'), '<b>'.$shop_group->name.'</b>');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
$youEditFieldFor = sprintf(Translate::getAdminTranslation('A modification of this field will be applied for the shop %s'), '<b>'.Context::getContext()->shop->name.'</b>');
|
$youEditFieldFor = sprintf(translate('A modification of this field will be applied for the shop %s'), '<b>'.Context::getContext()->shop->name.'</b>');
|
||||||
echo 'hints.html(hints.html()+\'<br /><span class="red">'.addslashes($youEditFieldFor).'</span>\');';
|
echo 'hints.html(hints.html()+\'<br /><span class="red">'.addslashes($youEditFieldFor).'</span>\');';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -202,10 +202,10 @@ echo ' var html = "";
|
|||||||
{
|
{
|
||||||
echo '<div id="orders_notif" class="notifs"><span id="orders_notif_number_wrapper" class="number_wrapper"><span id="orders_notif_value">0</span></span>
|
echo '<div id="orders_notif" class="notifs"><span id="orders_notif_number_wrapper" class="number_wrapper"><span id="orders_notif_value">0</span></span>
|
||||||
<div id="orders_notif_wrapper" class="notifs_wrapper">
|
<div id="orders_notif_wrapper" class="notifs_wrapper">
|
||||||
<h3>'.Translate::getAdminTranslation('Last orders').'</h3>
|
<h3>'.translate('Last orders').'</h3>
|
||||||
<p class="no_notifs">'.Translate::getAdminTranslation('No new orders has been made on your shop').'</p>
|
<p class="no_notifs">'.translate('No new orders has been made on your shop').'</p>
|
||||||
<ul id="list_orders_notif"></ul>
|
<ul id="list_orders_notif"></ul>
|
||||||
<p><a href="index.php?tab=AdminOrders&token='.Tools::getAdminTokenLite('AdminOrders').'">'.Translate::getAdminTranslation('Show all orders').'</a></p>
|
<p><a href="index.php?tab=AdminOrders&token='.Tools::getAdminTokenLite('AdminOrders').'">'.translate('Show all orders').'</a></p>
|
||||||
</div>
|
</div>
|
||||||
</div>';
|
</div>';
|
||||||
}
|
}
|
||||||
@@ -213,10 +213,10 @@ echo ' var html = "";
|
|||||||
{
|
{
|
||||||
echo '<div id="customers_notif" class="notifs notifs_alternate"><span id="customers_notif_number_wrapper" class="number_wrapper"><span id="customers_notif_value">0</span></span>
|
echo '<div id="customers_notif" class="notifs notifs_alternate"><span id="customers_notif_number_wrapper" class="number_wrapper"><span id="customers_notif_value">0</span></span>
|
||||||
<div id="customers_notif_wrapper" class="notifs_wrapper">
|
<div id="customers_notif_wrapper" class="notifs_wrapper">
|
||||||
<h3>'.Translate::getAdminTranslation('Last customers').'</h3>
|
<h3>'.translate('Last customers').'</h3>
|
||||||
<p class="no_notifs">'.Translate::getAdminTranslation('No new customers registered on your shop').'</p>
|
<p class="no_notifs">'.translate('No new customers registered on your shop').'</p>
|
||||||
<ul id="list_customers_notif"></ul>
|
<ul id="list_customers_notif"></ul>
|
||||||
<p><a href="index.php?tab=AdminCustomers&token='.Tools::getAdminTokenLite('AdminCustomers').'">'.Translate::getAdminTranslation('Show all customers').'</a></p>
|
<p><a href="index.php?tab=AdminCustomers&token='.Tools::getAdminTokenLite('AdminCustomers').'">'.translate('Show all customers').'</a></p>
|
||||||
</div>
|
</div>
|
||||||
</div>';
|
</div>';
|
||||||
}
|
}
|
||||||
@@ -224,26 +224,26 @@ echo ' var html = "";
|
|||||||
{
|
{
|
||||||
echo '<div id="customer_messages_notif" class="notifs"><span id="customer_messages_notif_number_wrapper" class="number_wrapper"><span id="customer_messages_notif_value">0</span></span>
|
echo '<div id="customer_messages_notif" class="notifs"><span id="customer_messages_notif_number_wrapper" class="number_wrapper"><span id="customer_messages_notif_value">0</span></span>
|
||||||
<div id="customer_messages_notif_wrapper" class="notifs_wrapper">
|
<div id="customer_messages_notif_wrapper" class="notifs_wrapper">
|
||||||
<h3>'.Translate::getAdminTranslation('Last messages').'</h3>
|
<h3>'.translate('Last messages').'</h3>
|
||||||
<p class="no_notifs">'.Translate::getAdminTranslation('No new messages posted on your shop').'</p>
|
<p class="no_notifs">'.translate('No new messages posted on your shop').'</p>
|
||||||
<ul id="list_customer_messages_notif"></ul>
|
<ul id="list_customer_messages_notif"></ul>
|
||||||
<p><a href="index.php?tab=AdminCustomerThreads&token='.Tools::getAdminTokenLite('AdminCustomerThreads').'">'.Translate::getAdminTranslation('Show all messages').'</a></p>
|
<p><a href="index.php?tab=AdminCustomerThreads&token='.Tools::getAdminTokenLite('AdminCustomerThreads').'">'.translate('Show all messages').'</a></p>
|
||||||
</div>
|
</div>
|
||||||
</div>';
|
</div>';
|
||||||
}
|
}
|
||||||
echo '</div>
|
echo '</div>
|
||||||
|
|
||||||
<div id="employee_box">
|
<div id="employee_box">
|
||||||
<div id="employee_infos">
|
<div id="employee_infos">
|
||||||
<div class="employee_name">'.Translate::getAdminTranslation('Welcome,').' <strong>'.Context::getContext()->employee->firstname.' '.Context::getContext()->employee->lastname.'</strong></div>
|
<div class="employee_name">'.translate('Welcome,').' <strong>'.Context::getContext()->employee->firstname.' '.Context::getContext()->employee->lastname.'</strong></div>
|
||||||
<div class="clear"></div>
|
<div class="clear"></div>
|
||||||
<ul id="employee_links">
|
<ul id="employee_links">
|
||||||
<li><a href="'.htmlentities(Context::getContext()->link->getAdminLink('AdminEmployees'), ENT_COMPAT, 'UTF-8').'&id_employee={$employee->id}&updateemployee">'.Translate::getAdminTranslation('My preferences').'</a></li>
|
<li><a href="'.htmlentities(Context::getContext()->link->getAdminLink('AdminEmployees'), ENT_COMPAT, 'UTF-8').'&id_employee={$employee->id}&updateemployee">'.translate('My preferences').'</a></li>
|
||||||
<li class="separator"> </li>
|
<li class="separator"> </li>
|
||||||
<li><a id="header_logout" href="index.php?logout">'.Translate::getAdminTranslation('logout').'</a></li>
|
<li><a id="header_logout" href="index.php?logout">'.translate('logout').'</a></li>
|
||||||
</ul>';
|
</ul>';
|
||||||
if (defined(_PS_BASE_URL_))
|
if (defined(_PS_BASE_URL_))
|
||||||
echo '<a href="'._PS_BASE_URL_.'" id="header_foaccess" target="_blank" title="'.Translate::getAdminTranslation('View my shop').'">'.Translate::getAdminTranslation('View my shop').'</a>';
|
echo '<a href="'._PS_BASE_URL_.'" id="header_foaccess" target="_blank" title="'.translate('View my shop').'">'.translate('View my shop').'</a>';
|
||||||
echo '</div>
|
echo '</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -252,18 +252,18 @@ echo ' var html = "";
|
|||||||
<form method="post" action="index.php?controller=AdminSearch&token='.Tools::getAdminTokenLite('AdminSearch').'">
|
<form method="post" action="index.php?controller=AdminSearch&token='.Tools::getAdminTokenLite('AdminSearch').'">
|
||||||
<input type="text" name="bo_query" id="bo_query" value="'.Tools::safeOutput(Tools::stripslashes(Tools::getValue('bo_query'))).'" />
|
<input type="text" name="bo_query" id="bo_query" value="'.Tools::safeOutput(Tools::stripslashes(Tools::getValue('bo_query'))).'" />
|
||||||
<select name="bo_search_type" id="bo_search_type" class="chosen no-search">
|
<select name="bo_search_type" id="bo_search_type" class="chosen no-search">
|
||||||
<option value="0">'.Translate::getAdminTranslation('everywhere').'</option>
|
<option value="0">'.translate('everywhere').'</option>
|
||||||
<option value="1" '.(Tools::getValue('bo_search_type') == 1 ? 'selected="selected"' : '').'>'.Translate::getAdminTranslation('catalog').'</option>
|
<option value="1" '.(Tools::getValue('bo_search_type') == 1 ? 'selected="selected"' : '').'>'.translate('catalog').'</option>
|
||||||
<optgroup label="'.Translate::getAdminTranslation('customers').':">
|
<optgroup label="'.translate('customers').':">
|
||||||
<option value="2" '.(Tools::getValue('bo_search_type') == 2 ? 'selected="selected"' : '').'>'.Translate::getAdminTranslation('by name').'</option>
|
<option value="2" '.(Tools::getValue('bo_search_type') == 2 ? 'selected="selected"' : '').'>'.translate('by name').'</option>
|
||||||
<option value="6" '.(Tools::getValue('bo_search_type') == 6 ? 'selected="selected"' : '').'>'.Translate::getAdminTranslation('by ip address').'</option>
|
<option value="6" '.(Tools::getValue('bo_search_type') == 6 ? 'selected="selected"' : '').'>'.translate('by ip address').'</option>
|
||||||
</optgroup>
|
</optgroup>
|
||||||
<option value="3" '.(Tools::getValue('bo_search_type') == 3 ? 'selected="selected"' : '').'>'.Translate::getAdminTranslation('orders').'</option>
|
<option value="3" '.(Tools::getValue('bo_search_type') == 3 ? 'selected="selected"' : '').'>'.translate('orders').'</option>
|
||||||
<option value="4" '.(Tools::getValue('bo_search_type') == 4 ? 'selected="selected"' : '').'>'.Translate::getAdminTranslation('invoices').'</option>
|
<option value="4" '.(Tools::getValue('bo_search_type') == 4 ? 'selected="selected"' : '').'>'.translate('invoices').'</option>
|
||||||
<option value="5" '.(Tools::getValue('bo_search_type') == 5 ? 'selected="selected"' : '').'>'.Translate::getAdminTranslation('carts').'</option>
|
<option value="5" '.(Tools::getValue('bo_search_type') == 5 ? 'selected="selected"' : '').'>'.translate('carts').'</option>
|
||||||
<option value="7" '.(Tools::getValue('bo_search_type') == 7 ? 'selected="selected"' : '').'>'.Translate::getAdminTranslation('modules').'</option>
|
<option value="7" '.(Tools::getValue('bo_search_type') == 7 ? 'selected="selected"' : '').'>'.translate('modules').'</option>
|
||||||
</select>
|
</select>
|
||||||
<input type="submit" id="bo_search_submit" class="button" value="'.Translate::getAdminTranslation('Search').'"/>
|
<input type="submit" id="bo_search_submit" class="button" value="'.translate('Search').'"/>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<div id="header_quick">
|
<div id="header_quick">
|
||||||
@@ -277,7 +277,7 @@ echo ' var html = "";
|
|||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<select onchange="quickSelect(this);" id="quick_select">
|
<select onchange="quickSelect(this);" id="quick_select">
|
||||||
<option value="0">'.Translate::getAdminTranslation('Quick Access').'</option>';
|
<option value="0">'.translate('Quick Access').'</option>';
|
||||||
foreach (QuickAccess::getQuickAccesses(Context::getContext()->language->id) AS $quick)
|
foreach (QuickAccess::getQuickAccesses(Context::getContext()->language->id) AS $quick)
|
||||||
{
|
{
|
||||||
preg_match('/controller=(.+)(&.+)?$/', $quick['link'], $adminTab);
|
preg_match('/controller=(.+)(&.+)?$/', $quick['link'], $adminTab);
|
||||||
@@ -342,8 +342,8 @@ echo '
|
|||||||
<div id="main">
|
<div id="main">
|
||||||
<div id="content">'
|
<div id="content">'
|
||||||
.(file_exists(_PS_ADMIN_DIR_.'/../install') ? '<div style="background-color: #FFEBCC;border: 1px solid #F90;line-height: 20px;margin: 0px 0px 10px;padding: 10px 20px;">'
|
.(file_exists(_PS_ADMIN_DIR_.'/../install') ? '<div style="background-color: #FFEBCC;border: 1px solid #F90;line-height: 20px;margin: 0px 0px 10px;padding: 10px 20px;">'
|
||||||
.Translate::getAdminTranslation('For security reasons, you must also:').' '.
|
.translate('For security reasons, you must also:').' '.
|
||||||
Translate::getAdminTranslation('delete the /install folder').
|
translate('delete the /install folder').
|
||||||
'</div>' : '').'
|
'</div>' : '').'
|
||||||
';
|
';
|
||||||
if(defined('_PS_MODE_DEV_') && _PS_MODE_DEV_)
|
if(defined('_PS_MODE_DEV_') && _PS_MODE_DEV_)
|
||||||
@@ -352,7 +352,7 @@ echo '
|
|||||||
if (Shop::isFeatureActive() && Context::getContext()->controller->multishop_context != Shop::CONTEXT_ALL)
|
if (Shop::isFeatureActive() && Context::getContext()->controller->multishop_context != Shop::CONTEXT_ALL)
|
||||||
{
|
{
|
||||||
echo '<div class="multishop_toolbar">
|
echo '<div class="multishop_toolbar">
|
||||||
<span class="text_multishop">'.Translate::getAdminTranslation('Multistore configuration for').'</span>'.
|
<span class="text_multishop">'.translate('Multistore configuration for').'</span>'.
|
||||||
Helper::renderShopList();
|
Helper::renderShopList();
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,9 +27,6 @@
|
|||||||
$timer_start = microtime(true);
|
$timer_start = microtime(true);
|
||||||
define('_PS_ADMIN_DIR_', getcwd());
|
define('_PS_ADMIN_DIR_', getcwd());
|
||||||
|
|
||||||
if (!defined('PS_ADMIN_DIR'))
|
|
||||||
define('PS_ADMIN_DIR', _PS_ADMIN_DIR_);
|
|
||||||
|
|
||||||
require(_PS_ADMIN_DIR_.'/../config/config.inc.php');
|
require(_PS_ADMIN_DIR_.'/../config/config.inc.php');
|
||||||
require(_PS_ADMIN_DIR_.'/functions.php');
|
require(_PS_ADMIN_DIR_.'/functions.php');
|
||||||
|
|
||||||
|
|||||||
+3
-6
@@ -49,12 +49,9 @@ try
|
|||||||
AdminTab::$currentIndex = $currentIndex;
|
AdminTab::$currentIndex = $currentIndex;
|
||||||
|
|
||||||
$iso = $context->language->iso_code;
|
$iso = $context->language->iso_code;
|
||||||
if (file_exists(_PS_TRANSLATIONS_DIR_.$iso.'/errors.php'))
|
include(_PS_TRANSLATIONS_DIR_.$iso.'/errors.php');
|
||||||
include(_PS_TRANSLATIONS_DIR_.$iso.'/errors.php');
|
include(_PS_TRANSLATIONS_DIR_.$iso.'/fields.php');
|
||||||
if (file_exists(_PS_TRANSLATIONS_DIR_.$iso.'/fields.php'))
|
include(_PS_TRANSLATIONS_DIR_.$iso.'/admin.php');
|
||||||
include(_PS_TRANSLATIONS_DIR_.$iso.'/fields.php');
|
|
||||||
if (file_exists(_PS_TRANSLATIONS_DIR_.$iso.'/admin.php'))
|
|
||||||
include(_PS_TRANSLATIONS_DIR_.$iso.'/admin.php');
|
|
||||||
|
|
||||||
/* Server Params */
|
/* Server Params */
|
||||||
$protocol_link = (Configuration::get('PS_SSL_ENABLED')) ? 'https://' : 'http://';
|
$protocol_link = (Configuration::get('PS_SSL_ENABLED')) ? 'https://' : 'http://';
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ select[disabled="disabled"], input[disabled="disabled"],textarea[disabled="disab
|
|||||||
|
|
||||||
/*BUTTON*/
|
/*BUTTON*/
|
||||||
.button{
|
.button{
|
||||||
cursor: pointer;
|
|
||||||
background: #e3e3e3 url('../img/bg-button-degrade.png') repeat-x scroll left top;
|
background: #e3e3e3 url('../img/bg-button-degrade.png') repeat-x scroll left top;
|
||||||
background: -moz-linear-gradient(center top , #F9F9F9, #E3E3E3) repeat scroll 0 0 transparent;
|
background: -moz-linear-gradient(center top , #F9F9F9, #E3E3E3) repeat scroll 0 0 transparent;
|
||||||
background: -webkit-gradient(linear, center top ,center bottom, from(#F9F9F9), to(#E3E3E3)) repeat scroll 0 0 transparent;
|
background: -webkit-gradient(linear, center top ,center bottom, from(#F9F9F9), to(#E3E3E3)) repeat scroll 0 0 transparent;
|
||||||
@@ -674,4 +673,4 @@ ul.listForm li {padding-bottom:3px;}
|
|||||||
|
|
||||||
/************** SCENE *****************/
|
/************** SCENE *****************/
|
||||||
|
|
||||||
#large_scene_image{clear:both;border:1px solid transparent;}
|
#large_scene_image{clear:both;border:1px solid transparent;}
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
.toolbarBox .process-icon-new-module { background-image: url('../img/process-icon-new-module.png')}
|
.toolbarBox .process-icon-new-module { background-image: url('../img/process-icon-new-module.png')}
|
||||||
.toolbarBox .process-icon-new-module-addon { background-image: url('../img/process-icon-new-module-addon.png')}
|
.toolbarBox .process-icon-new-module-addon { background-image: url('../img/process-icon-new-module-addon.png')}
|
||||||
|
|
||||||
div.fix-toolbar {border-bottom: 1px solid #E0E0E0;position:fixed;top:0;opacity:0.9;z-index:11}
|
div.fix-toolbar {border-bottom: 1px solid #E0E0E0;position:fixed;top:0;opacity:0.9;z-index:1}
|
||||||
|
|
||||||
|
|
||||||
/*FILTER MODULE*/
|
/*FILTER MODULE*/
|
||||||
|
|||||||
@@ -27,7 +27,13 @@
|
|||||||
|
|
||||||
{block name="label"}
|
{block name="label"}
|
||||||
{if $input.name == 'vat_number'}
|
{if $input.name == 'vat_number'}
|
||||||
<div id="vat_area" style="display: visible">
|
{if $vat == 'is_applicable'}
|
||||||
|
<div id="vat_area" style="display: visible">
|
||||||
|
{else if $vat == 'management'}
|
||||||
|
<div id="vat_area" style="display: hidden">
|
||||||
|
{else}
|
||||||
|
<div style="display: none;">
|
||||||
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{if $input.type == 'text_customer' && !isset($customer)}
|
{if $input.type == 'text_customer' && !isset($customer)}
|
||||||
@@ -66,8 +72,7 @@
|
|||||||
{
|
{
|
||||||
if (msg)
|
if (msg)
|
||||||
{
|
{
|
||||||
var infos = msg.infos.replace("\\'", "'").split('_');
|
var infos = msg.infos.split('_');
|
||||||
|
|
||||||
$('input[name=firstname]').val(infos[0]);
|
$('input[name=firstname]').val(infos[0]);
|
||||||
$('input[name=lastname]').val(infos[1]);
|
$('input[name=lastname]').val(infos[1]);
|
||||||
$('input[name=company]').val(infos[2]);
|
$('input[name=company]').val(infos[2]);
|
||||||
|
|||||||
@@ -29,9 +29,6 @@
|
|||||||
{if $input.type == 'color'}
|
{if $input.type == 'color'}
|
||||||
<div id="colorAttributeProperties" style="display:{if $colorAttributeProperties}block{else}none{/if};">
|
<div id="colorAttributeProperties" style="display:{if $colorAttributeProperties}block{else}none{/if};">
|
||||||
{/if}
|
{/if}
|
||||||
{if $input.type == 'closediv'}
|
|
||||||
</div>
|
|
||||||
{/if}
|
|
||||||
{$smarty.block.parent}
|
{$smarty.block.parent}
|
||||||
{/block}
|
{/block}
|
||||||
|
|
||||||
|
|||||||
@@ -24,34 +24,15 @@
|
|||||||
*}
|
*}
|
||||||
{extends file="helpers/form/form.tpl"}
|
{extends file="helpers/form/form.tpl"}
|
||||||
{block name="script"}
|
{block name="script"}
|
||||||
var string_price = '{l s='Will be applied when the price is' js=1}';
|
var string_price = '{l s="Will be applied when the price will be:" js=1}';
|
||||||
var string_weight = '{l s='Will be applied when the weight is' js=1}';
|
var string_weight = '{l s="Will be applied when the weight will be:" js=1}';
|
||||||
{/block}
|
{/block}
|
||||||
|
|
||||||
{block name="field"}
|
{block name="field"}
|
||||||
{if $input.name == 'zones'}
|
{if $input.name == 'zones'}
|
||||||
<div class="ranges_not_follow warn" style="display:none">
|
|
||||||
<label>{l s="Ranges are not correctly ordered:"}</label>
|
|
||||||
<a href="#" onclick="checkRangeContinuity(true); return false;" class="button" style="text-decoration:none">{l s="Reordering"}</a>
|
|
||||||
</div>
|
|
||||||
{include file='controllers/carrier_wizard/helpers/form/form_ranges.tpl'}
|
{include file='controllers/carrier_wizard/helpers/form/form_ranges.tpl'}
|
||||||
<!--
|
|
||||||
<div class="validate_range" style="display:none">
|
|
||||||
<a href="#" class="button" id="validate_range_button">{l s="Validate"}</a>
|
|
||||||
</div>
|
|
||||||
-->
|
|
||||||
<div class="new_range">
|
<div class="new_range">
|
||||||
<a href="#" onclick="add_new_range();return false;" class="button" id="add_new_range">{l s='Add new range'}</a>
|
<a href="#" onclick="add_new_range();return false;" class="button" id="add_new_range">{l s="Add new range"}<img src="../img/admin/add.gif"/></a>
|
||||||
</div>
|
|
||||||
{/if}
|
|
||||||
{if $input.name == 'logo'}
|
|
||||||
<div class="margin-form">
|
|
||||||
<input id="carrier_logo_input" type="file" onchange="uploadCarrierLogo();" name="carrier_logo_input" />
|
|
||||||
<input type="hidden" id="logo" name="logo" value="" />
|
|
||||||
<p class="preference_description">
|
|
||||||
{l s='Format:'} JPG, GIF, PNG. {l s='Filesize:'} {$max_image_size|string_format:"%.2f"} {l s='MB max.'}
|
|
||||||
<br />{l s='Current size:'} <span id="carrier_logo_size">{l s='undefined'}</span>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
{$smarty.block.parent}
|
{$smarty.block.parent}
|
||||||
|
|||||||
+15
-20
@@ -1,48 +1,43 @@
|
|||||||
<script>var zones_nbr = {$zones|count +3} ; /*corresponds to the third input text (max, min and all)*/</script>
|
|
||||||
<div style="float:left" id="zone_ranges">
|
<div style="float:left" id="zone_ranges">
|
||||||
<table cellpadding="5" cellspacing="0" id="zones_table">
|
<table cellpadding="5" cellspacing="0" id="zones_table">
|
||||||
<tr class="range_inf">
|
<tr class="range_inf">
|
||||||
<td class="range_type"></td>
|
<td class="range_type"></td>
|
||||||
<td class="border_left border_bottom range_sign">>=</td>
|
<td class="border_left border_bottom">>=</td>
|
||||||
{foreach from=$ranges key=r item=range}
|
{foreach from=$ranges key=r item=range}
|
||||||
<td class="border_bottom center"><input name="range_inf[{$range.id_range|intval}]" type="text" value="{$range.delimiter1|string_format:"%.6f"}" /><sup>*</sup><span class="weight_unit"> {$PS_WEIGHT_UNIT}</span><span class="price_unit"> {$currency_sign}</span></td>
|
<td class="border_bottom center"><input name="range_inf[{$range.id_range|intval}]" type="text" value="{$range.delimiter1|string_format:"%.6f"}" /></td>
|
||||||
{foreachelse}
|
{foreachelse}
|
||||||
<td class="border_bottom center"><input name="range_inf[{$range.id_range|intval}]" type="text" /><sup>*</sup><span class="weight_unit"> {$PS_WEIGHT_UNIT}</span><span class="price_unit"> {$currency_sign}</span></td>
|
<td class="border_bottom center"><input name="range_inf[{$range.id_range|intval}]" type="text" /></td>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="range_sup">
|
<tr class="range_sup">
|
||||||
<td class="center range_type"></td>
|
<td class="center range_type"></td>
|
||||||
<td class="border_left range_sign"><</td>
|
<td class="border_left "><</td>
|
||||||
{foreach from=$ranges key=r item=range}
|
{foreach from=$ranges key=r item=range}
|
||||||
<td class="center"><input name="range_sup[{$range.id_range|intval}]" type="text" {if isset($form_id) && !$form_id} value="" {else} value="{if isset($change_ranges) && $range.id_range == 0} {else}{$range.delimiter2|string_format:"%.6f"}{/if}" {/if}/><sup>*</sup><span class="weight_unit"> {$PS_WEIGHT_UNIT}</span><span class="price_unit"> {$currency_sign}</span></td>
|
<td class="center"><input name="range_sup[{$range.id_range|intval}]" type="text" value="{$range.delimiter2|string_format:"%.6f"}" /></td>
|
||||||
{foreachelse}
|
{foreachelse}
|
||||||
<td class="center"><input name="range_sup[{$range.id_range|intval}]" type="text" /><sup>*</sup><span class="weight_unit"> {$PS_WEIGHT_UNIT}</span><span class="price_unit"> {$currency_sign}</span></td>
|
<td class="center"><input name="range_sup[{$range.id_range|intval}]" type="text" /></td>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="fees_all">
|
<tr class="fees_all">
|
||||||
<td class="border_top border_bottom border_bold"><span class="fees_all" {if $ranges|count == 0}style="display:none" {/if}>All</span></td>
|
<td class="border_top border_bottom border_bold"><span class="fees_all" {if $ranges|count == 0}style="display:none" {/if}>All</span></td>
|
||||||
<td><input type="checkbox" onclick="checkAllZones(this);" ></td>
|
<td></td>
|
||||||
{foreach from=$ranges key=r item=range}
|
{foreach from=$ranges key=r item=range}
|
||||||
<td class="center border_top border_bottom {if $range.id_range != 0} validated {/if}" >
|
<td class="center border_top border_bottom">
|
||||||
<input type="text" {if isset($form_id) && !$form_id} disabled="disabled"{/if} {if $range.id_range == 0} style="display:none"{/if} /><span class="currency_sign" {if $range.id_range == 0} style="display:none" {/if}> {$currency_sign}</span>
|
<input type="text" />
|
||||||
</td>
|
</td>
|
||||||
{foreachelse}
|
{foreachelse}
|
||||||
<td class="center border_top border_bottom">
|
<td class="center border_top border_bottom">
|
||||||
<input style="display:none" type="text" /><span class="currency_sign" style="display:none"> {$currency_sign}</span>
|
<input style="display:none" type="text" />
|
||||||
|
<button class="button">{l s="Validate"}</button>
|
||||||
</td>
|
</td>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
</tr>
|
</tr>
|
||||||
{foreach from=$zones key=i item=zone}
|
{foreach from=$zones key=i item=zone}
|
||||||
<tr class="fees {if $i is odd}alt_row{/if}" data-zoneid="{$zone.id_zone}">
|
<tr class="fees {if $i is odd}alt_row{/if}" data-zoneid="{$zone.id_zone}">
|
||||||
<td><label for="zone_{$zone.id_zone}">{$zone.name}</label></td>
|
<td>{$zone.name}</td>
|
||||||
<td class="zone">
|
<td class="zone"><input class="input_zone" name="zone_{$zone.id_zone}" value="1" type="checkbox" {if isset($fields_value[$input.name][$zone.id_zone])} checked="checked"{/if}/></td>
|
||||||
<input class="input_zone" id="zone_{$zone.id_zone}" name="zone_{$zone.id_zone}" value="1" type="checkbox" {if isset($fields_value['zones'][$zone.id_zone]) && $fields_value['zones'][$zone.id_zone]} checked="checked"{/if}/>
|
|
||||||
</td>
|
|
||||||
{foreach from=$ranges key=r item=range}
|
{foreach from=$ranges key=r item=range}
|
||||||
<td class="center">
|
<td class="center"><input name="fees[{$zone.id_zone|intval}][{$range.id_range|intval}]" type="text" value="{if isset($price_by_range[$range.id_range][$zone.id_zone])} {$price_by_range[$range.id_range][$zone.id_zone]|string_format:"%.6f"} {/if}" /></td>
|
||||||
<input name="fees[{$zone.id_zone|intval}][{$range.id_range|intval}]" type="text"
|
|
||||||
{if !isset($fields_value['zones'][$zone.id_zone]) || (isset($fields_value['zones'][$zone.id_zone]) && !$fields_value['zones'][$zone.id_zone])} disabled="disabled"{/if} {if isset($price_by_range[$range.id_range][$zone.id_zone]) && $price_by_range[$range.id_range][$zone.id_zone] && isset($fields_value['zones'][$zone.id_zone]) && $fields_value['zones'][$zone.id_zone]} value="{$price_by_range[$range.id_range][$zone.id_zone]|string_format:'%.6f'}" {else} value="" {/if} /> {$currency_sign}
|
|
||||||
</td>
|
|
||||||
{/foreach}
|
{/foreach}
|
||||||
</tr>
|
</tr>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
@@ -53,7 +48,7 @@
|
|||||||
{if $smarty.foreach.ranges.first}
|
{if $smarty.foreach.ranges.first}
|
||||||
<td class="center"> </td>
|
<td class="center"> </td>
|
||||||
{else}
|
{else}
|
||||||
<td class="center"><button class="button">{l s='Delete'}</button></td>
|
<td class="center"><button class="button">{l s="Delete"}</button</td>
|
||||||
{/if}
|
{/if}
|
||||||
{/foreach}
|
{/foreach}
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -29,19 +29,12 @@
|
|||||||
var labelNext = '{$labels.next|addslashes}';
|
var labelNext = '{$labels.next|addslashes}';
|
||||||
var labelPrevious = '{$labels.previous|addslashes}';
|
var labelPrevious = '{$labels.previous|addslashes}';
|
||||||
var labelFinish = '{$labels.finish|addslashes}';
|
var labelFinish = '{$labels.finish|addslashes}';
|
||||||
var labelDelete = '{l s='Delete' js=1}';
|
var labelDelete = '{l s="Delete" js=1}';
|
||||||
var labelValidate = '{l s='Validate' js=1}';
|
var labelValidate = '{l s="Validate" js=1}';
|
||||||
var validate_url = '{$validate_url|addslashes}';
|
var validate_url = '{$validate_url|addslashes}';
|
||||||
var carrierlist_url = '{$carrierlist_url|addslashes}';
|
var carrierlist_url = '{$carrierlist_url|addslashes}';
|
||||||
var nbr_steps = {$wizard_steps.steps|count};
|
var nbr_steps = {$wizard_steps.steps|count};
|
||||||
var enableAllSteps = {if $enableAllSteps|intval == 1}true{else}false{/if};
|
var enableAllSteps = {if $enableAllSteps|intval == 1}true{else}false{/if};
|
||||||
var need_to_validate = '{l s='Please validate the last range before create a new one.' js=1}';
|
|
||||||
var delete_range_confirm = '{l s='Are you sure to delete this range ?' js=1}';
|
|
||||||
var currency_sign = '{$currency_sign}';
|
|
||||||
var PS_WEIGHT_UNIT = '{$PS_WEIGHT_UNIT}';
|
|
||||||
var invalid_range = '{l s='This range is not valid' js=1}';
|
|
||||||
var range_is_overlapping = '{l s='Ranges are overlapping' js=1}';
|
|
||||||
var multistore_enable = '{$multistore_enable}';
|
|
||||||
</script>
|
</script>
|
||||||
<div id="carrier_wizard" class="swMain">
|
<div id="carrier_wizard" class="swMain">
|
||||||
<ul class="nbr_steps_{$wizard_steps.steps|count}">
|
<ul class="nbr_steps_{$wizard_steps.steps|count}">
|
||||||
@@ -58,7 +51,7 @@
|
|||||||
{/foreach}
|
{/foreach}
|
||||||
</ul>
|
</ul>
|
||||||
{foreach from=$wizard_contents.contents key=step_nbr item=content}
|
{foreach from=$wizard_contents.contents key=step_nbr item=content}
|
||||||
<div id="step-{$step_nbr + 1}" class="step_container">
|
<div id="step-{$step_nbr + 1}" style="padding-bottom:10px">
|
||||||
{$content}
|
{$content}
|
||||||
</div>
|
</div>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
|
|||||||
@@ -23,18 +23,25 @@
|
|||||||
* International Registered Trademark & Property of PrestaShop SA
|
* International Registered Trademark & Property of PrestaShop SA
|
||||||
*}
|
*}
|
||||||
|
|
||||||
<div id="carrier_logo_block">
|
<div id="carrier_logo_block" style="position:absolute;top:15px;right:15px">
|
||||||
<img id="carrier_logo_img" src="{if $carrier_logo}{$carrier_logo}{else}../img/admin/carrier-default.jpg{/if}" />
|
<img id="carrier_logo_img" src="{if $carrier_logo}{$carrier_logo}{else}../img/404.gif{/if}" />
|
||||||
<br/>
|
<p>
|
||||||
|
<input id="carrier_logo_input" type="file" onchange="uploadCarrierLogo();" name="carrier_logo_input" />
|
||||||
|
<input type="hidden" id="logo" name="logo" value="" />
|
||||||
|
</p>
|
||||||
<a id="carrier_logo_remove" {if !$carrier_logo}style="display:none"{/if} href="javascript:removeCarrierLogo();"><img src="../img/admin/disabled.gif" /> {l s='Remove the logo'}</a>
|
<a id="carrier_logo_remove" {if !$carrier_logo}style="display:none"{/if} href="javascript:removeCarrierLogo();"><img src="../img/admin/disabled.gif" /> {l s='Remove the logo'}</a>
|
||||||
|
<p>
|
||||||
|
{l s='Format:'} JPG, GIF, PNG. {l s='Filesize:'} {$max_image_size|string_format:"%.2f"} {l s='MB max.'}
|
||||||
|
<br />{l s='Current size:'} <span id="carrier_logo_size">{l s='undefined'}</span>.
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var carrier_translation_undefined = '{l s='undefined' js=1}';
|
var carrier_translation_undefined = '{l s='undefined' js='1'}';
|
||||||
|
|
||||||
function removeCarrierLogo()
|
function removeCarrierLogo()
|
||||||
{
|
{
|
||||||
$('#carrier_logo_img').attr('src', '../img/admin/carrier-default.jpg');
|
$('#carrier_logo_img').attr('src', '../img/404.gif');
|
||||||
$('#logo').val('null');
|
$('#logo').val('null');
|
||||||
fixCarrierLogoDisplay();
|
fixCarrierLogoDisplay();
|
||||||
$('#carrier_logo_remove').hide();
|
$('#carrier_logo_remove').hide();
|
||||||
|
|||||||
@@ -24,45 +24,40 @@
|
|||||||
*}
|
*}
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var summary_translation_undefined = '{l s='[undefined]' js=1}';
|
var summary_translation_undefined = '{l s='[undefined]' js='1'}';
|
||||||
var summary_translation_meta_informations = '{l s='This carrier is @s1 and the delivery announced is: @s2.' js=1}';
|
|
||||||
var summary_translation_free = '<strong>{l s='free' js=1}</strong>';
|
var summary_translation_meta_informations = '{l s='This carrier is @s1 and display to the customers the following delay: @s2.' js='1'}';
|
||||||
var summary_translation_paid = '<strong>{l s='not free' js=1}</strong>';
|
var summary_translation_free = '<strong>{l s='free' js='1'}</strong>';
|
||||||
var summary_translation_range = '<span class="is_free">{l s='This carrier can deliver orders from @s1 to @s2.' js=1}</span>';
|
var summary_translation_paid = '<strong>{l s='paid' js='1'}</strong>';
|
||||||
var summary_translation_range_limit = '{l s='If the order is out of range, the behavior is to @s3.' js=1}';
|
|
||||||
var summary_translation_shipping_cost = '{l s='The shipping cost is calculated @s1 and the tax rule @s2 will be applied.' js=1}';
|
var summary_translation_range = '{l s='This carrier can deliver orders from @s1 to @s2. If the order is out of range, the behavior is to @s3.' js='1'}';
|
||||||
var summary_translation_price = '<strong>{l s='according to the price' js=1}</strong>';
|
|
||||||
var summary_translation_weight = '<strong>{l s='according to the weight' js=1}</strong>';
|
var summary_translation_shipping_cost = '{l s='The shipping cost is calculated @s1 and the tax rule @s2 is applied.' js='1'}';
|
||||||
|
var summary_translation_price = '<strong>{l s='according to the price' js='1'}</strong>';
|
||||||
|
var summary_translation_weight = '<strong>{l s='according to the weight' js='1'}</strong>';
|
||||||
</script>
|
</script>
|
||||||
<div class="defaultForm">
|
|
||||||
<fieldset>
|
|
||||||
{l s='Carrier name:'} <strong id="summary_name"></strong>
|
|
||||||
<div class="clear"> </div>
|
|
||||||
<div id="summary_meta_informations"></div>
|
|
||||||
<div class="clear"> </div>
|
|
||||||
<div id="summary_shipping_cost"></div>
|
|
||||||
<div class="clear"> </div>
|
|
||||||
<div id="summary_range"></div>
|
|
||||||
<div class="clear"> </div>
|
|
||||||
<div>
|
|
||||||
{l s='This carrier will be proposed for those delivery zones:'}
|
|
||||||
<ul id="summary_zones"></ul>
|
|
||||||
</div>
|
|
||||||
<div class="clear"> </div>
|
|
||||||
<div>
|
|
||||||
{l s='And it will be proposed for those client groups:'}
|
|
||||||
<ul id="summary_groups"></ul>
|
|
||||||
</div>
|
|
||||||
{if $is_multishop}
|
|
||||||
<div class="clear"> </div>
|
|
||||||
<div>
|
|
||||||
{l s='Finally, this carrier will be proposed in those shops:'}
|
|
||||||
<ul id="summary_shops"></ul>
|
|
||||||
</div>
|
|
||||||
{/if}
|
|
||||||
<div class="clear"> </div>
|
|
||||||
{$active_form}
|
|
||||||
</fieldset>
|
|
||||||
</div>
|
|
||||||
<div class="clear"> </div>
|
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
{l s='Carrier name:'} <strong id="summary_name"></strong>
|
||||||
|
<div class="clear"> </div>
|
||||||
|
<div id="summary_meta_informations"></div>
|
||||||
|
<div class="clear"> </div>
|
||||||
|
<div id="summary_shipping_cost"></div>
|
||||||
|
<div class="clear"> </div>
|
||||||
|
<div id="summary_range"></div>
|
||||||
|
<div class="clear"> </div>
|
||||||
|
<div>
|
||||||
|
{l s='It will be displayed only for the following zones:'}
|
||||||
|
<ul id="summary_zones"></ul>
|
||||||
|
</div>
|
||||||
|
<div class="clear"> </div>
|
||||||
|
<div>
|
||||||
|
{l s='It will be displayed only for the following groups:'}
|
||||||
|
<ul id="summary_groups"></ul>
|
||||||
|
</div>
|
||||||
|
<div class="clear"> </div>
|
||||||
|
<div>
|
||||||
|
{l s='It will be displayed only for the following shops:'}
|
||||||
|
<ul id="summary_shops"></ul>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
|||||||
@@ -50,7 +50,7 @@
|
|||||||
<h2><img src="../img/admin/cart.gif" /> {l s='Order information'}</h2>
|
<h2><img src="../img/admin/cart.gif" /> {l s='Order information'}</h2>
|
||||||
<span>
|
<span>
|
||||||
{if $order->id}
|
{if $order->id}
|
||||||
<a href="{$link->getAdminLink('AdminOrders')|escape:'htmlall':'UTF-8'}&id_order={$order->id}&vieworder"> {l s='Order #%s' sprintf=$order->reference}</a></span>
|
<a href="{$link->getAdminLink('AdminOrders')|escape:'htmlall':'UTF-8'}&id_order={$order->id}&vieworder"> {l s='Order #%d' sprintf=$order->id|string_format:"%06d"}</a></span>
|
||||||
<br /><br />
|
<br /><br />
|
||||||
{l s='Made on:'} {dateFormat date=$order->date_add}<br /><br /><br /><br />
|
{l s='Made on:'} {dateFormat date=$order->date_add}<br /><br /><br /><br />
|
||||||
{else}
|
{else}
|
||||||
@@ -187,4 +187,4 @@
|
|||||||
<div class="clear" style="height:20px;"> </div>
|
<div class="clear" style="height:20px;"> </div>
|
||||||
{/block}
|
{/block}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
{if $shared_category}
|
{if $shared_category}
|
||||||
<p class="warn">{l s='If you delete this picture, it will be deleted in all of your shared shops!'}</p>
|
<p class="warn">{l s='If you delete this picture, it will be deleted in all of your shared shops!'}</p>
|
||||||
{/if}
|
{/if}
|
||||||
<br />
|
<br>
|
||||||
<a href="{$current}&{$identifier}={$form_id}&token={$token}&{if $shared_category}forcedeleteImage=1{else}deleteImage=1{/if}">
|
<a href="{$current}&{$identifier}={$form_id}&token={$token}&{if $shared_category}forcedeleteImage=1{else}deleteImage=1{/if}">
|
||||||
<img src="../img/admin/delete.gif" alt="{l s='Delete'}" /> {l s='Delete'}
|
<img src="../img/admin/delete.gif" alt="{l s='Delete'}" /> {l s='Delete'}
|
||||||
</a>
|
</a>
|
||||||
@@ -71,4 +71,4 @@
|
|||||||
<span>{$input.customer}</span><br />
|
<span>{$input.customer}</span><br />
|
||||||
</p>
|
</p>
|
||||||
{/if}
|
{/if}
|
||||||
{/block}
|
{/block}
|
||||||
|
|||||||
@@ -57,14 +57,14 @@
|
|||||||
|
|
||||||
<dl>
|
<dl>
|
||||||
<dt>{l s='Sent on:'}</dt>
|
<dt>{l s='Sent on:'}</dt>
|
||||||
<dd>{$message.date_add} </dd>
|
<dd>{$message.date_add}</dd>
|
||||||
|
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
{if empty($message.id_employee)}
|
{if empty($message.id_employee)}
|
||||||
<dl>
|
<dl>
|
||||||
<dt>{l s='Browser:'}</dt>
|
<dt>{l s='Browser:'}</dt>
|
||||||
<dd>{$message.user_agent} </dd>
|
<dd>{$message.user_agent}</dd>
|
||||||
</dl>
|
</dl>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
@@ -79,35 +79,34 @@
|
|||||||
</dl>
|
</dl>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{if !empty($message.id_order) && $is_valid_order_id && empty($message.id_employee)}
|
{if !empty($message.id_order) && empty($message.id_employee)}
|
||||||
<dl>
|
<dl>
|
||||||
<dt>{l s='Order #'}</dt>
|
<dt>{l s='Order #'}</dt>
|
||||||
<dd><a href="index.php?tab=AdminOrders&id_order={$message.id_order}&vieworder&token={getAdminToken tab='AdminOrders'}" title="{l s='View order'}">{$message.id_order} <img src="../img/admin/search.gif" alt="{l s='View'}" /></a>
|
<dd><a href="index.php?tab=AdminOrders&id_order={$message.id_order}&vieworder&token={getAdminToken tab='AdminOrders'}" title="{l s='View order'}">
|
||||||
</dd>
|
{$message.id_order} <img src="../img/admin/search.gif" alt="{l s='View'}" />
|
||||||
|
</a></dd>
|
||||||
</dl>
|
</dl>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{if !empty($message.id_product) && empty($message.id_employee)}
|
{if !empty($message.id_product) && empty($message.id_employee)}
|
||||||
<dl>
|
<dl>
|
||||||
<dt>{l s='Product #'}</dt>
|
<dt>{l s='Product #'}</dt>
|
||||||
<dd><a href="index.php?tab=AdminProducts&id_product={$message.id_product}&updateproduct&token={getAdminToken tab='AdminProducts'}" title="{l s='View order'}">{$message.id_product} <img src="../img/admin/search.gif" alt="{l s='View'}" /></a></dd>
|
<dd><a href="index.php?tab=AdminProducts&id_product={$message.id_product}&updateproduct&token={getAdminToken tab='AdminProducts'}" title="{l s='View order'}">
|
||||||
|
{$message.id_product} <img src="../img/admin/search.gif" alt="{l s='View'}" />
|
||||||
|
</a></dd>
|
||||||
</dl>
|
</dl>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<form action="{$current}&token={$token}&id_customer_thread={$message.id_customer_thread}&viewcustomer_thread" method="post">
|
<form action="{$current}&token={$token}&id_customer_thread={$message.id_customer_thread}&viewcustomer_thread" method="post">
|
||||||
|
<b>{l s='Subject:'}</b>
|
||||||
<input type="hidden" name="id_customer_message" value="{$message.id_customer_message}" />
|
<input type="hidden" name="id_customer_message" value="{$message.id_customer_message}" />
|
||||||
<dl>
|
<select name="id_contact" onchange="this.form.submit();">
|
||||||
<dt>{l s='Subject:'}</dt>
|
{foreach $contacts as $contact}
|
||||||
<dd>
|
<option value="{$contact.id_contact}" {if $contact.id_contact == $message.id_contact}selected="selected"{/if}>
|
||||||
<select name="id_contact" onchange="this.form.submit();">
|
{$contact.name}
|
||||||
{foreach $contacts as $contact}
|
</option>
|
||||||
<option value="{$contact.id_contact}" {if $contact.id_contact == $message.id_contact}selected="selected"{/if}>
|
{/foreach}
|
||||||
{$contact.name}
|
</select>
|
||||||
</option>
|
|
||||||
{/foreach}
|
|
||||||
</select>
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -35,7 +35,7 @@
|
|||||||
{/block}
|
{/block}
|
||||||
{block name=leadin}
|
{block name=leadin}
|
||||||
{if isset($delete_customer) && $delete_customer}
|
{if isset($delete_customer) && $delete_customer}
|
||||||
<form action="{$REQUEST_URI|escape:'htmlall':'UTF-8'}" method="post">
|
<form action="{$REQUEST_URI}" method="post">
|
||||||
<div class="warn">
|
<div class="warn">
|
||||||
<h2>{l s='How do you want to delete these customer(s)?'}</h2>
|
<h2>{l s='How do you want to delete these customer(s)?'}</h2>
|
||||||
<p>{l s='There are two ways of deleting a customer. Please choose your preferred method.'}</p>
|
<p>{l s='There are two ways of deleting a customer. Please choose your preferred method.'}</p>
|
||||||
@@ -52,10 +52,10 @@
|
|||||||
{foreach $POST as $key => $value}
|
{foreach $POST as $key => $value}
|
||||||
{if is_array($value)}
|
{if is_array($value)}
|
||||||
{foreach $value as $val}
|
{foreach $value as $val}
|
||||||
<input type="hidden" name="{$key|escape:'htmlall':'UTF-8'}[]" value="{$val|escape:'htmlall':'UTF-8'}" />
|
<input type="hidden" name="{$key}[]" value="{$val}" />
|
||||||
{/foreach}
|
{/foreach}
|
||||||
{else}
|
{else}
|
||||||
<input type="hidden" name="{$key|escape:'htmlall':'UTF-8'}" value="{$value|escape:'htmlall':'UTF-8'}" />
|
<input type="hidden" name="{$key}" value="{$value}" />
|
||||||
{/if}
|
{/if}
|
||||||
{/foreach}
|
{/foreach}
|
||||||
<br /><input type="submit" class="button" value="{l s='Delete'}" />
|
<br /><input type="submit" class="button" value="{l s='Delete'}" />
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
$.ajax({
|
$.ajax({
|
||||||
type: "POST",
|
type: "POST",
|
||||||
url: "index.php",
|
url: "index.php",
|
||||||
data: "token={getAdminToken tab='AdminCustomers'}&tab=AdminCustomers&ajax=1&action=updateCustomerNote&id_customer={$customer->id}¬e="+encodeURIComponent(noteContent),
|
data: "token={getAdminToken tab='AdminCustomers'}&tab=AdminCustomers&ajax=1&action=updateCustomerNote&id_customer={$customer->id}¬e="+noteContent,
|
||||||
async : true,
|
async : true,
|
||||||
success: function(r) {
|
success: function(r) {
|
||||||
$('#note_feedback').html('').hide();
|
$('#note_feedback').html('').hide();
|
||||||
@@ -149,7 +149,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div style="width:50%;float:left;">
|
<div style="width:50%;float:left;">
|
||||||
<div style="margin-left:15px;">
|
<div style="margin-left:15px;"
|
||||||
<h2>{l s='Vouchers'} ({count($discounts)})</h2>
|
<h2>{l s='Vouchers'} ({count($discounts)})</h2>
|
||||||
{if count($discounts)}
|
{if count($discounts)}
|
||||||
<table cellspacing="0" cellpadding="0" class="table">
|
<table cellspacing="0" cellpadding="0" class="table">
|
||||||
@@ -488,4 +488,4 @@
|
|||||||
</div>
|
</div>
|
||||||
{/block}
|
{/block}
|
||||||
</div>
|
</div>
|
||||||
<div class="clear"> </div>
|
<div class="clear"> </div>
|
||||||
@@ -48,11 +48,11 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
$("#group_discount_category").fancybox({
|
$("#group_discount_category").fancybox({
|
||||||
beforeLoad: function () {
|
onStart: function () {
|
||||||
$('#group_discount_category_fancybox').show();
|
$('#group_discount_category_fancybox').show();
|
||||||
initFancyBox();
|
initFancyBox();
|
||||||
},
|
},
|
||||||
beforeClose: function () {
|
onClosed: function () {
|
||||||
$('#group_discount_category_fancybox').hide();
|
$('#group_discount_category_fancybox').hide();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -106,7 +106,7 @@
|
|||||||
if ($(this).attr('name') == 'category_reduction['+$('[name="id_category"]:checked').val()+']')
|
if ($(this).attr('name') == 'category_reduction['+$('[name="id_category"]:checked').val()+']')
|
||||||
{
|
{
|
||||||
exist = true;
|
exist = true;
|
||||||
jAlert('{l s='This category already exists for this group.' js=1}');
|
jAlert('{l s='This category already exists for this group.' js='1'}');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -138,7 +138,7 @@
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$('#group_discount_category_table').append('<tr class="alt_row" id="'+jsonData.id_category+'"><td>'+jsonData.catPath+'</td><td>{l s='Discount:'}' + ' ' + jsonData.discount+'{l s='%'}</td><td><a href="#" onclick="deleteCategoryReduction('+jsonData.id_category+');"><img src="../img/admin/delete.gif"></a></td></tr>');
|
$('#group_discount_category_table').append('<tr class="alt_row" id="'+jsonData.id_category+'"><td>'+jsonData.catPath+'</td><td>{l s='Discount:'}'+jsonData.discount+'{l s='%'}</td><td><a href="#" onclick="deleteCategoryReduction('+jsonData.id_category+');"><img src="../img/admin/delete.gif"></a></td></tr>');
|
||||||
|
|
||||||
var input_hidden = document.createElement("input");
|
var input_hidden = document.createElement("input");
|
||||||
input_hidden.setAttribute('type', 'hidden');
|
input_hidden.setAttribute('type', 'hidden');
|
||||||
@@ -168,7 +168,7 @@
|
|||||||
{foreach $input['values'] key=key item=category }
|
{foreach $input['values'] key=key item=category }
|
||||||
<tr class="alt_row" id="{$category.id_category}">
|
<tr class="alt_row" id="{$category.id_category}">
|
||||||
<td>{$category.path}</td>
|
<td>{$category.path}</td>
|
||||||
<td>{l s='Discount: %.2f%%' sprintf=$category.reduction}</td>
|
<td>{l s='Discount: %d%%' sprintf=$category.reduction}</td>
|
||||||
<td>
|
<td>
|
||||||
<a href="#" onclick="deleteCategoryReduction({$category.id_category});"><img src="../img/admin/delete.gif"></a>
|
<a href="#" onclick="deleteCategoryReduction({$category.id_category});"><img src="../img/admin/delete.gif"></a>
|
||||||
<input type="hidden" class="category_reduction" name="category_reduction[{$category.id_category}]" value="{$category.reduction}">
|
<input type="hidden" class="category_reduction" name="category_reduction[{$category.id_category}]" value="{$category.reduction}">
|
||||||
@@ -268,4 +268,4 @@
|
|||||||
{else}
|
{else}
|
||||||
{$smarty.block.parent}
|
{$smarty.block.parent}
|
||||||
{/if}
|
{/if}
|
||||||
{/block}
|
{/block}
|
||||||
@@ -30,7 +30,7 @@
|
|||||||
<fieldset>
|
<fieldset>
|
||||||
<ul>
|
<ul>
|
||||||
<li><span style="font-weight: bold; font-size: 13px; color:#000;">{l s='Name:'}</span> {$group->name[$language->id]}</li>
|
<li><span style="font-weight: bold; font-size: 13px; color:#000;">{l s='Name:'}</span> {$group->name[$language->id]}</li>
|
||||||
<li><span style="font-weight: bold; font-size: 13px; color:#000;">{l s='Discount: %.2f%%' sprintf=$group->reduction}</span></li>
|
<li><span style="font-weight: bold; font-size: 13px; color:#000;">{l s='Discount: %d%%' sprintf=$group->reduction}</span></li>
|
||||||
<li><span style="font-weight: bold; font-size: 13px; color:#000;">{l s='Current category discount:'}</span>
|
<li><span style="font-weight: bold; font-size: 13px; color:#000;">{l s='Current category discount:'}</span>
|
||||||
{if !$categorieReductions}
|
{if !$categorieReductions}
|
||||||
{l s='None'}
|
{l s='None'}
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
{foreach $categorieReductions key=key item=category }
|
{foreach $categorieReductions key=key item=category }
|
||||||
<tr class="alt_row">
|
<tr class="alt_row">
|
||||||
<td>{$category.path}</td>
|
<td>{$category.path}</td>
|
||||||
<td>{l s='Discount: %.2f%%' sprintf=$category.reduction}</td>
|
<td>{l s='Discount: %d%%' sprintf=$category.reduction}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
</table>
|
</table>
|
||||||
@@ -58,7 +58,6 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<h2>{l s='Members of this customer group'}</h2>
|
<h2>{l s='Members of this customer group'}</h2>
|
||||||
<p>{l s='Limited to the first 100 customers.'} {l s='Please use filters to narrow your search.'}</p>
|
|
||||||
{$customerList}
|
{$customerList}
|
||||||
|
|
||||||
{/block}
|
{/block}
|
||||||
@@ -110,14 +110,14 @@ $(document).ready(function() {
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div id="partner_preactivation">
|
<div id="partner_preactivation">
|
||||||
<p class="center"><img src="../img/loader.gif" alt="" /> {l s='Loading...'}</p>
|
<p class="center"><img src="../img/loader.gif" alt="" /></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="separation"></div>
|
<div class="separation"></div>
|
||||||
|
|
||||||
|
|
||||||
{$tips_optimization}
|
{$tips_optimization}
|
||||||
<div id="discover_prestashop"><p class="center"><img src="../img/loader.gif" alt="" /> {l s='Loading...'}</p></div>
|
<div id="discover_prestashop"><p class="center"><img src="../img/loader.gif" alt="" />{l s='Loading...'}</p></div>
|
||||||
|
|
||||||
{hook h="displayAdminHomeInfos"}
|
{hook h="displayAdminHomeInfos"}
|
||||||
{hook h="displayBackOfficeHome"} {*old name of the hook*}
|
{hook h="displayBackOfficeHome"} {*old name of the hook*}
|
||||||
@@ -212,7 +212,7 @@ $(document).ready(function() {
|
|||||||
{
|
{
|
||||||
// don't show/hide screencast if it's deactivated
|
// don't show/hide screencast if it's deactivated
|
||||||
{if $employee->bo_show_screencast}
|
{if $employee->bo_show_screencast}
|
||||||
$('#adminpresentation').fadeOut('slow');
|
$('#adminpresentation').fadeOut('slow');
|
||||||
{/if}
|
{/if}
|
||||||
$('#partner_preactivation').fadeOut('slow');
|
$('#partner_preactivation').fadeOut('slow');
|
||||||
$('#discover_prestashop').fadeOut('slow');
|
$('#discover_prestashop').fadeOut('slow');
|
||||||
@@ -223,7 +223,7 @@ $(document).ready(function() {
|
|||||||
$.fancybox(
|
$.fancybox(
|
||||||
this.href,
|
this.href,
|
||||||
{
|
{
|
||||||
'width' : 920,
|
'width' : 660,
|
||||||
'height' : 384,
|
'height' : 384,
|
||||||
'transitionIn' : 'none',
|
'transitionIn' : 'none',
|
||||||
'transitionOut' : 'none',
|
'transitionOut' : 'none',
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
{*
|
{*
|
||||||
* 2007-2013 PrestaShop
|
* 2007-2013 PrestaShop
|
||||||
**
|
*
|
||||||
* NOTICE OF LICENSE
|
* NOTICE OF LICENSE
|
||||||
**
|
*
|
||||||
* This source file is subject to the Academic Free License (AFL 3.0)
|
* This source file is subject to the Academic Free License (AFL 3.0)
|
||||||
* that is bundled with this package in the file LICENSE.txt.
|
* that is bundled with this package in the file LICENSE.txt.
|
||||||
* It is also available through the world-wide-web at this URL:
|
* It is also available through the world-wide-web at this URL:
|
||||||
@@ -10,25 +10,72 @@
|
|||||||
* If you did not receive a copy of the license and are unable to
|
* If you did not receive a copy of the license and are unable to
|
||||||
* obtain it through the world-wide-web, please send an email
|
* obtain it through the world-wide-web, please send an email
|
||||||
* to license@prestashop.com so we can send you a copy immediately.
|
* to license@prestashop.com so we can send you a copy immediately.
|
||||||
**
|
*
|
||||||
* DISCLAIMER
|
* DISCLAIMER
|
||||||
**
|
*
|
||||||
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
|
||||||
* versions in the future. If you wish to customize PrestaShop for your
|
* versions in the future. If you wish to customize PrestaShop for your
|
||||||
* needs please refer to http://www.prestashop.com for more information.
|
* needs please refer to http://www.prestashop.com for more information.
|
||||||
**
|
*
|
||||||
* @author PrestaShop SA <contact@prestashop.com>
|
* @author PrestaShop SA <contact@prestashop.com>
|
||||||
* @copyright 2007-2013 PrestaShop SA
|
* @copyright 2007-2013 PrestaShop SA
|
||||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||||
* International Registered Trademark & Property of PrestaShop SA
|
* International Registered Trademark & Property of PrestaShop SA
|
||||||
*}
|
*}
|
||||||
|
|
||||||
{include file="toolbar.tpl" toolbar_btn=$toolbar_btn toolbar_scroll=$toolbar_scroll title=$title}
|
{include file="toolbar.tpl" toolbar_btn=$toolbar_btn toolbar_scroll=$toolbar_scroll title=$title}
|
||||||
<div class="leadin">{block name="leadin"}{/block}</div>
|
<div class="leadin">{block name="leadin"}{/block}</div>
|
||||||
|
|
||||||
{if $module_confirmation}
|
{if $module_confirmation}
|
||||||
<div class="module_confirmation conf confirm">
|
<div class="module_confirmation conf confirm">
|
||||||
{l s='Your .CSV file has been sucessfully imported into your shop. Don\'t forget to Re-build the products search index.'}
|
{l s='Your .CSV file has been sucessfully imported into your shop.'}
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
var truncateAuthorized = {$truncateAuthorized|intval};
|
||||||
|
|
||||||
|
$(document).ready(function(){
|
||||||
|
activeClueTip();
|
||||||
|
$("a#upload_file_import_link").fancybox({
|
||||||
|
'titleShow' : false,
|
||||||
|
'transitionIn' : 'elastic',
|
||||||
|
'transitionOut' : 'elastic'
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#preview_import').submit(function(e) {
|
||||||
|
if ($('#truncate').get(0).checked)
|
||||||
|
{
|
||||||
|
console.log(truncateAuthorized);
|
||||||
|
if (truncateAuthorized)
|
||||||
|
{
|
||||||
|
if (!confirm('{l s='Are you sure that you would like to delete this' js=1}' + ' ' + $.trim($('#entity > option:selected').text().toLowerCase()) + '?'))
|
||||||
|
{
|
||||||
|
e.preventDefault();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
jAlert('{l s='You do not have permission to delete here. When the multistore is enabled, only a SuperAdmin can delete all items before an import.' js='1'}');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
function activeClueTip()
|
||||||
|
{
|
||||||
|
$('.info_import').cluetip({
|
||||||
|
splitTitle: '|',
|
||||||
|
showTitle: false
|
||||||
|
});
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{**
|
||||||
|
* Upload fancybox
|
||||||
|
*}
|
||||||
<div style="display: none">
|
<div style="display: none">
|
||||||
<div id="upload_file_import" style="padding-left: 10px; background-color: #EBEDF4; border: 1px solid #CCCED7">
|
<div id="upload_file_import" style="padding-left: 10px; background-color: #EBEDF4; border: 1px solid #CCCED7">
|
||||||
<div class="clear"> </div>
|
<div class="clear"> </div>
|
||||||
@@ -50,16 +97,28 @@
|
|||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="clear"> </div>
|
<div class="clear"> </div>
|
||||||
<form id="preview_import" action="{$current}&token={$token}" method="post" style="display:inline" enctype="multipart/form-data" class="clear">
|
|
||||||
|
{**
|
||||||
|
* Import fieldset
|
||||||
|
*}
|
||||||
|
<form id="preview_import"
|
||||||
|
action="{$current}&token={$token}"
|
||||||
|
method="post"
|
||||||
|
style="display:inline"
|
||||||
|
enctype="multipart/form-data"
|
||||||
|
class="clear">
|
||||||
|
|
||||||
<fieldset style="float: left; margin: 0pt 20px 0pt 0pt; width: 70%;">
|
<fieldset style="float: left; margin: 0pt 20px 0pt 0pt; width: 70%;">
|
||||||
<legend><img src="../img/admin/import.gif" />{l s='Import '}</legend>
|
<legend><img src="../img/admin/import.gif" />{l s='Import '}</legend>
|
||||||
|
|
||||||
<label class="clear">{if count($files_to_import) > 1}{l s='Your CSV file (%d files):' sprintf=count($files_to_import)}{else}{l s='Your CSV file (%d file):' sprintf=count($files_to_import)}{/if}</label>
|
<label class="clear">{if count($files_to_import) > 1}{l s='Your CSV file (%d files):' sprintf=count($files_to_import)}{else}{l s='Your CSV file (%d file):' sprintf=count($files_to_import)}{/if}</label>
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
{if count($files_to_import)}
|
{if count($files_to_import)}
|
||||||
<select name="csv">
|
<select name="csv">
|
||||||
{foreach $files_to_import AS $filename}
|
{foreach $files_to_import AS $filename}
|
||||||
<option value="{$filename}"{if $csv_selected == $filename} selected="selected"{/if}>{$filename|escape:'htmlall':'UTF-8'}</option>
|
<option value="{$filename}">{$filename}</option>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
</select>
|
</select>
|
||||||
{/if}
|
{/if}
|
||||||
@@ -67,44 +126,33 @@
|
|||||||
<a href="#upload_file_import" id="upload_file_import_link" class="button"><img src="../img/admin/add.gif" alt="Uplaod" title="Upload" />{l s='Upload'}</a>
|
<a href="#upload_file_import" id="upload_file_import_link" class="button"><img src="../img/admin/add.gif" alt="Uplaod" title="Upload" />{l s='Upload'}</a>
|
||||||
</div>
|
</div>
|
||||||
<div style="width:50%; margin: 0 auto;">
|
<div style="width:50%; margin: 0 auto;">
|
||||||
<div style="width:50%; display: inline-block; float :left;">
|
<a href="#" onclick="$('#sample_files_import').slideToggle(); return false;">{l s='Click to view our sample import csv files.'}</a>
|
||||||
<a href="#" onclick="$('#sample_files_import').slideToggle(); return false;">{l s='Click to view our sample import csv files.'}</a>
|
<ul id="sample_files_import" style="display:none">
|
||||||
<ul id="sample_files_import" style="display:none;">
|
<li><a href="../docs/csv_import/categories_import.csv">{l s='Sample Categories file'}</a></li>
|
||||||
<li><a class="_blank" href="../docs/csv_import/categories_import.csv">{l s='Sample Categories file'}</a></li>
|
<li><a href="../docs/csv_import/products_import.csv">{l s='Sample Products file'}</a></li>
|
||||||
<li><a class="_blank" href="../docs/csv_import/products_import.csv">{l s='Sample Products file'}</a></li>
|
<li><a href="../docs/csv_import/combinations_import.csv">{l s='Sample Combinations file'}</a></li>
|
||||||
<li><a class="_blank" href="../docs/csv_import/combinations_import.csv">{l s='Sample Combinations file'}</a></li>
|
<li><a href="../docs/csv_import/customers_import.csv">{l s='Sample Customers file'}</a></li>
|
||||||
<li><a class="_blank" href="../docs/csv_import/customers_import.csv">{l s='Sample Customers file'}</a></li>
|
<li><a href="../docs/csv_import/addresses_import.csv">{l s='Sample Addresses file'}</a></li>
|
||||||
<li><a class="_blank" href="../docs/csv_import/addresses_import.csv">{l s='Sample Addresses file'}</a></li>
|
<li><a href="../docs/csv_import/manufacturers_import.csv">{l s='Sample Manufacturers file'}</a></li>
|
||||||
<li><a class="_blank" href="../docs/csv_import/manufacturers_import.csv">{l s='Sample Manufacturers file'}</a></li>
|
<li><a href="../docs/csv_import/suppliers_import.csv">{l s='Sample Suppliers file'}</a></li>
|
||||||
<li><a class="_blank" href="../docs/csv_import/suppliers_import.csv">{l s='Sample Suppliers file'}</a></li>
|
{if $PS_ADVANCED_STOCK_MANAGEMENT}
|
||||||
<li><a class="_blank" href="../docs/csv_import/alias_import.csv">{l s='Sample Alias file'}</a></li>
|
<li><a href="../docs/csv_import/supply_orders_import.csv">{l s='Supply Orders sample file'}</a></li>
|
||||||
{if $PS_ADVANCED_STOCK_MANAGEMENT}
|
<li><a href="../docs/csv_import/supply_orders_details_import.csv">{l s='Supply Orders Details sample file'}</a></li>
|
||||||
<li><a class="_blank" href="../docs/csv_import/supply_orders_import.csv">{l s='Supply Orders sample file'}</a></li>
|
{/if}
|
||||||
<li><a class="_blank" href="../docs/csv_import/supply_orders_details_import.csv">{l s='Supply Orders Details sample file'}</a></li>
|
</ul>
|
||||||
{/if}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div style="width:50%; float:left;">
|
|
||||||
<a href="#" onclick="$('#csv_files_import').slideToggle(); return false;">{l s='Click to view your csv files.'}</a>
|
|
||||||
<ul id="csv_files_import" style="display:none;">
|
|
||||||
{foreach $files_to_import AS $filename}
|
|
||||||
<li><a href="{$current}&token={$token}&csvfilename={$filename|@base64_encode}">{$filename}</a>
|
|
||||||
<a href="{$current}&token={$token}&csvfilename={$filename|@base64_encode}&delete=1"><img src="../img/admin/delete.gif" /></a></li>
|
|
||||||
{/foreach}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="clear"> </div>
|
<div class="clear"> </div>
|
||||||
</div>
|
</div>
|
||||||
<label class="clear">{l s='What kind of entity would you like to import?'} </label>
|
<label class="clear">{l s='What kind of entity would you like to import?'} </label>
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<select name="entity" id="entity">
|
<select name="entity" id="entity">
|
||||||
{foreach $entities AS $entity => $i}
|
{foreach $entities AS $entity => $i}
|
||||||
<option value="{$i}"{if $entity_selected == $i} selected="selected"{/if}>
|
<option value="{$i}" {if $entity == $i}selected="selected"{/if}>
|
||||||
{$entity}
|
{$entity}
|
||||||
</option>
|
</option>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<label class="clear">{l s='Language of the file'}</label>
|
<label class="clear">{l s='Language of the file'}</label>
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<select name="iso_lang">
|
<select name="iso_lang">
|
||||||
@@ -120,30 +168,26 @@
|
|||||||
</div>
|
</div>
|
||||||
<label class="clear">{l s='Field separator'} </label>
|
<label class="clear">{l s='Field separator'} </label>
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<input type="text" size="2" value="{if isset($separator_selected)}{$separator_selected|escape:'htmlall':'UTF-8'}{else};{/if}" name="separator"/>
|
<input type="text" size="2" value=";" name="separator"/>
|
||||||
{l s='e.g. '}"1<span class="bold" style="color: red">;</span>Ipod<span class="bold" style="color: red">;</span>129.90<span class="bold" style="color: red">;</span>5"
|
{l s='e.g. '}"1<span class="bold" style="color: red">;</span>Ipod<span class="bold" style="color: red">;</span>129.90<span class="bold" style="color: red">;</span>5"
|
||||||
</div>
|
</div>
|
||||||
<label class="clear">{l s='Multiple value separator'} </label>
|
<label class="clear">{l s='Multiple value separator'} </label>
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<input type="text" size="2" value="{if isset($multiple_value_separator_selected)}{$multiple_value_separator_selected|escape:'htmlall':'UTF-8'}{else},{/if}" name="multiple_value_separator"/>
|
<input type="text" size="2" value="," name="multiple_value_separator"/>
|
||||||
{l s='e.g. '}"Ipod;red.jpg<span class="bold" style="color: red">,</span>blue.jpg<span class="bold" style="color: red">,</span>green.jpg;129.90"
|
{l s='e.g. '}"Ipod;red.jpg<span class="bold" style="color: red">,</span>blue.jpg<span class="bold" style="color: red">,</span>green.jpg;129.90"
|
||||||
</div>
|
</div>
|
||||||
<label for="truncate" class="clear">{l s='Delete all'} <span id="entitie">{l s='categories'}</span> {l s='before import?'} </label>
|
<label for="truncate" class="clear">{l s='Delete all'} <span id="entitie">{l s='categories'}</span> {l s='before import?'} </label>
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<input name="truncate" id="truncate" type="checkbox"/>
|
<input name="truncate" id="truncate" type="checkbox"/>
|
||||||
</div>
|
</div>
|
||||||
<label for="regenerate" class="clear">{l s='No thumbnails regeneration'}</label>
|
<label for="match_ref" class="clear" style="display: none">{l s='Use product reference as key?'}</label>
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<input name="regenerate" id="regenerate" type="checkbox" />
|
<input name="match_ref" id="match_ref" type="checkbox" style="margin-top: 6px; display:none"/>
|
||||||
</div>
|
</div>
|
||||||
<label for="forceIDs" class="clear">{l s='Force all ID\'s during import?'} </label>
|
<label for="forceIDs" class="clear">{l s='Force all ID\'s during import?'} </label>
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<input name="forceIDs" id="forceIDs" type="checkbox"/> {l s='If you don\'t use this option, all ID\'s will be auto-incremented.'}
|
<input name="forceIDs" id="forceIDs" type="checkbox"/> {l s='If you don\'t use this option, all ID\'s will be auto-incremented.'}
|
||||||
</div>
|
</div>
|
||||||
<label for="match_ref" class="clear" style="display: none">{l s='Use product reference as key?'}</label>
|
|
||||||
<div class="margin-form">
|
|
||||||
<input name="match_ref" id="match_ref" type="checkbox" style="margin-top: 6px; display:none"/>
|
|
||||||
</div>
|
|
||||||
<div class="space margin-form">
|
<div class="space margin-form">
|
||||||
<input type="submit" name="submitImportFile" value="{l s='Next step'}" class="button" {if empty($files_to_import)}disabled{/if}/>
|
<input type="submit" name="submitImportFile" value="{l s='Next step'}" class="button" {if empty($files_to_import)}disabled{/if}/>
|
||||||
{if empty($files_to_import)}<span style="color:red;">{l s='You must upload a file in order to proceed to the next step'}</span>{/if}
|
{if empty($files_to_import)}<span style="color:red;">{l s='You must upload a file in order to proceed to the next step'}</span>{/if}
|
||||||
@@ -166,10 +210,13 @@
|
|||||||
{/if}
|
{/if}
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<fieldset style="display:block;">
|
<fieldset style="display:block;">
|
||||||
|
|
||||||
<legend>
|
<legend>
|
||||||
<img src="../img/admin/import.gif" />{l s='Available fields'}
|
<img src="../img/admin/import.gif" />{l s='Available fields'}
|
||||||
</legend>
|
</legend>
|
||||||
|
|
||||||
<div id="availableFields">
|
<div id="availableFields">
|
||||||
{$available_fields}
|
{$available_fields}
|
||||||
</div>
|
</div>
|
||||||
@@ -177,93 +224,74 @@
|
|||||||
<div class="clear">
|
<div class="clear">
|
||||||
<br /><br />{l s='* Required field'}
|
<br /><br />{l s='* Required field'}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<div class="clear"> </div>
|
<div class="clear"> </div>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(document).ready(function(){
|
$("select#entity").change( function() {
|
||||||
var truncateAuthorized = {$truncateAuthorized|intval};
|
|
||||||
activeClueTip();
|
|
||||||
$("a#upload_file_import_link").fancybox({
|
|
||||||
'titleShow' : false,
|
|
||||||
'transitionIn' : 'elastic',
|
|
||||||
'transitionOut' : 'elastic'
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#preview_import').submit(function(e){
|
if ($("#entity > option:selected").val() == 7 || $("#entity > option:selected").val() == 8)
|
||||||
if ($('#truncate').get(0).checked)
|
|
||||||
if (truncateAuthorized)
|
|
||||||
{
|
|
||||||
if (!confirm('{l s='Are you sure that you would like to delete this' js=1}' + ' ' + $.trim($('#entity > option:selected').text().toLowerCase()) + '?'))
|
|
||||||
e.preventDefault();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
jAlert('{l s='You do not have permission to delete here. When the multistore is enabled, only a SuperAdmin can delete all items before an import.' js=1}');
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$("select#entity").change(function(){
|
|
||||||
if ($("#entity > option:selected").val() == 8 || $("#entity > option:selected").val() == 9)
|
|
||||||
$("label[for=truncate],#truncate").hide();
|
|
||||||
else
|
|
||||||
$("label[for=truncate],#truncate").show();
|
|
||||||
|
|
||||||
if ($("#entity > option:selected").val() == 9)
|
|
||||||
$(".import_supply_orders_details").show();
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$(".import_supply_orders_details").hide();
|
|
||||||
$('input[name=multiple_value_separator]').val('{if isset($multiple_value_separator_selected)}{$multiple_value_separator_selected}{else},{/if}');
|
|
||||||
}
|
|
||||||
if ($("#entity > option:selected").val() == 1)
|
|
||||||
$("label[for=match_ref], #match_ref").show();
|
|
||||||
else
|
|
||||||
$("label[for=match_ref], #match_ref").hide();
|
|
||||||
|
|
||||||
if ($("#entity > option:selected").val() == 1 || $("#entity > option:selected").val() == 0)
|
|
||||||
$(".import_products_categories").show();
|
|
||||||
else
|
|
||||||
$(".import_products_categories").hide();
|
|
||||||
|
|
||||||
if ($("#entity > option:selected").val() == 0 || $("#entity > option:selected").val() == 1 ||
|
|
||||||
$("#entity > option:selected").val() == 5 || $("#entity > option:selected").val() == 6)
|
|
||||||
$("label[for=regenerate], #regenerate").show()
|
|
||||||
else
|
|
||||||
$("label[for=regenerate], #regenerate").hide();
|
|
||||||
|
|
||||||
if ($("#entity > option:selected").val() == 0 || $("#entity > option:selected").val() == 1 || $("#entity > option:selected").val() == 3 || $("#entity > option:selected").val() == 5 || $("#entity > option:selected").val() == 6 || $("#entity > option:selected").val() == 7)
|
|
||||||
$("label[for=forceIDs], #forceIDs").show();
|
|
||||||
else
|
|
||||||
$("label[for=forceIDs], #forceIDs").hide();
|
|
||||||
$("#entitie").html($("#entity > option:selected").text().toLowerCase());
|
|
||||||
$.ajax({
|
|
||||||
url: 'ajax.php',
|
|
||||||
data: {
|
|
||||||
getAvailableFields:1,
|
|
||||||
entity: $("#entity").val()
|
|
||||||
},
|
|
||||||
dataType: 'json',
|
|
||||||
success: function(j){
|
|
||||||
var fields = "";
|
|
||||||
$("#availableFields").empty();
|
|
||||||
|
|
||||||
for (var i = 0; i < j.length; i++)
|
|
||||||
fields += j[i].field;
|
|
||||||
|
|
||||||
$("#availableFields").html(fields);
|
|
||||||
activeClueTip();
|
|
||||||
},
|
|
||||||
error: function(j){}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
$("select#entity").trigger('change');
|
|
||||||
function activeClueTip()
|
|
||||||
{
|
{
|
||||||
$('.info_import').cluetip({
|
$("label[for=truncate],#truncate").hide();
|
||||||
splitTitle: '|',
|
}
|
||||||
showTitle: false
|
else
|
||||||
});
|
$("label[for=truncate],#truncate").show();
|
||||||
};
|
|
||||||
|
|
||||||
|
if ($("#entity > option:selected").val() == 8)
|
||||||
|
{
|
||||||
|
$(".import_supply_orders_details").show();
|
||||||
|
$('input[name=multiple_value_separator]').val('|');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$(".import_supply_orders_details").hide();
|
||||||
|
$('input[name=multiple_value_separator]').val(',');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ($("#entity > option:selected").val() == 1)
|
||||||
|
{
|
||||||
|
$("label[for=match_ref],#match_ref").show();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$("label[for=match_ref],#match_ref").hide();
|
||||||
|
|
||||||
|
if ($("#entity > option:selected").val() == 1 || $("#entity > option:selected").val() == 0)
|
||||||
|
{
|
||||||
|
$(".import_products_categories").show();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$(".import_products_categories").hide();
|
||||||
|
|
||||||
|
if ($("#entity > option:selected").val() == 0 || $("#entity > option:selected").val() == 1 || $("#entity > option:selected").val() == 3 || $("#entity > option:selected").val() == 5 || $("#entity > option:selected").val() == 6)
|
||||||
|
$("label[for=forceIDs],#forceIDs").show();
|
||||||
|
else
|
||||||
|
$("label[for=forceIDs],#forceIDs").hide();
|
||||||
|
|
||||||
|
$("#entitie").html($("#entity > option:selected").text().toLowerCase());
|
||||||
|
$.ajax({
|
||||||
|
url: 'ajax.php',
|
||||||
|
data: {
|
||||||
|
getAvailableFields:1,
|
||||||
|
entity: $("#entity").val()
|
||||||
|
},
|
||||||
|
dataType: 'json',
|
||||||
|
success: function(j) {
|
||||||
|
var fields = "";
|
||||||
|
$("#availableFields").empty();
|
||||||
|
|
||||||
|
for (var i = 0; i < j.length; i++)
|
||||||
|
fields += j[i].field;
|
||||||
|
|
||||||
|
$("#availableFields").html(fields);
|
||||||
|
activeClueTip();
|
||||||
|
},
|
||||||
|
error: function(j) {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -22,52 +22,20 @@
|
|||||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||||
* International Registered Trademark & Property of PrestaShop SA
|
* International Registered Trademark & Property of PrestaShop SA
|
||||||
*}
|
*}
|
||||||
|
|
||||||
{extends file="helpers/view/view.tpl"}
|
{extends file="helpers/view/view.tpl"}
|
||||||
|
|
||||||
{block name="override_tpl"}
|
{block name="override_tpl"}
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var errorEmpty = '{l s='Please name your matching configuration to save.' js=1}';
|
var errorEmpty = "{l s='Please name your matching configuration to save.'}"
|
||||||
var token = '{$token}';
|
var token = '{$token}';
|
||||||
var current = 0;
|
|
||||||
function showTable(nb)
|
|
||||||
{
|
|
||||||
$('#btn_left').disabled = null;
|
|
||||||
$('#btn_right').disabled = null;
|
|
||||||
if (nb <= 0)
|
|
||||||
{
|
|
||||||
nb = 0;
|
|
||||||
$('#btn_left').disabled = 'true';
|
|
||||||
}
|
|
||||||
if (nb >= {$nb_table} - 1)
|
|
||||||
{
|
|
||||||
nb = {$nb_table} - 1;
|
|
||||||
$('#btn_right').disabled = 'true';
|
|
||||||
}
|
|
||||||
$('#table' + current).hide();
|
|
||||||
current = nb;
|
|
||||||
$('#table' + current).show();
|
|
||||||
}
|
|
||||||
$(document).ready(function(){
|
|
||||||
var btn_save_import = $('span[class~="process-icon-save-import"]').parent();
|
|
||||||
var btn_submit_import = $('#import');
|
|
||||||
if (btn_save_import.length > 0 && btn_submit_import.length > 0)
|
|
||||||
{
|
|
||||||
btn_submit_import.hide();
|
|
||||||
btn_save_import.find('span').removeClass('process-icon-save-import');
|
|
||||||
btn_save_import.find('span').addClass('process-icon-save');
|
|
||||||
btn_save_import.click(function(){
|
|
||||||
btn_submit_import.before('<input type="hidden" name="' + btn_submit_import.attr("name") + '" value="1" />');
|
|
||||||
$('#import_form').submit();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
showTable(current);
|
|
||||||
});
|
|
||||||
</script>
|
</script>
|
||||||
<div id="container-customer">
|
<div id="container-customer">
|
||||||
<h2>{l s='View your data'}</h2>
|
<h2>{l s='View your data'}</h2>
|
||||||
<div>
|
<div>
|
||||||
<b>{l s='Save and load your configuration for importing files'} : </b><br/><br/>
|
<b>{l s='Save and load your configuration for importing files'} : </b><br><br>
|
||||||
<input type="text" name="newImportMatchs" id="newImportMatchs" />
|
<input type="text" name="newImportMatchs" id="newImportMatchs">
|
||||||
<a id="saveImportMatchs" class="button" href="#">{l s='Save'}</a><br /><br />
|
<a id="saveImportMatchs" class="button" href="#">{l s='Save'}</a><br><br>
|
||||||
<div id="selectDivImportMatchs" {if !$import_matchs}style="display:none"{/if}>
|
<div id="selectDivImportMatchs" {if !$import_matchs}style="display:none"{/if}>
|
||||||
<select id="valueImportMatchs">
|
<select id="valueImportMatchs">
|
||||||
{foreach $import_matchs as $match}
|
{foreach $import_matchs as $match}
|
||||||
@@ -78,18 +46,21 @@
|
|||||||
<a class="button" id="deleteImportMatchs" href="#">{l s='Delete'}</a>
|
<a class="button" id="deleteImportMatchs" href="#">{l s='Delete'}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h3>{l s='Please set the value type of each column'}</h3>
|
<h3>{l s='Please set the value type of each column'}</h3>
|
||||||
|
|
||||||
<div id="error_duplicate_type" class="warning warn" style="display:none;">
|
<div id="error_duplicate_type" class="warning warn" style="display:none;">
|
||||||
<h3>{l s='Columns cannot have the same value type'}</h3>
|
<h3>{l s='Columns cannot have the same value type'}</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="required_column" class="warning warn" style="display:none;">
|
<div id="required_column" class="warning warn" style="display:none;">
|
||||||
<h3>{l s='Column'} <span id="missing_column"> </span> {l s='must be set'}</h3>
|
<h3>{l s='Column'} <span id="missing_column"> </span> {l s='must be set'}</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<form action="{$current}&token={$token}" method="post" id="import_form" name="import_form">
|
<form action="{$current}&token={$token}" method="post" id="import_form" name="import_form">
|
||||||
{l s='Skip'} <input type="text" size="2" name="skip" value="1" /> {l s='lines'}
|
{l s='Skip'} <input type="text" size="2" name="skip" value="0" /> {l s='lines'}
|
||||||
<input type="hidden" name="csv" value="{$fields_value.csv}" />
|
<input type="hidden" name="csv" value="{$fields_value.csv}" />
|
||||||
<input type="hidden" name="convert" value="{$fields_value.convert}" />
|
<input type="hidden" name="convert" value="{$fields_value.convert}" />
|
||||||
<input type="hidden" name="regenerate" value="{$fields_value.regenerate}" />
|
|
||||||
<input type="hidden" name="entity" value="{$fields_value.entity}" />
|
<input type="hidden" name="entity" value="{$fields_value.entity}" />
|
||||||
<input type="hidden" name="iso_lang" value="{$fields_value.iso_lang}" />
|
<input type="hidden" name="iso_lang" value="{$fields_value.iso_lang}" />
|
||||||
{if $fields_value.truncate}
|
{if $fields_value.truncate}
|
||||||
@@ -101,8 +72,49 @@
|
|||||||
{if $fields_value.match_ref}
|
{if $fields_value.match_ref}
|
||||||
<input type="hidden" name="match_ref" value="1" />
|
<input type="hidden" name="match_ref" value="1" />
|
||||||
{/if}
|
{/if}
|
||||||
<input type="hidden" name="separator" value="{$fields_value.separator}" />
|
<input type="hidden" name="separator" value="{$fields_value.separator}">
|
||||||
<input type="hidden" name="multiple_value_separator" value="{$fields_value.multiple_value_separator}" />
|
<input type="hidden" name="multiple_value_separator" value="{$fields_value.multiple_value_separator}">
|
||||||
|
<script type="text/javascript">
|
||||||
|
var current = 0;
|
||||||
|
|
||||||
|
function showTable(nb)
|
||||||
|
{
|
||||||
|
getE('btn_left').disabled = null;
|
||||||
|
getE('btn_right').disabled = null;
|
||||||
|
if (nb <= 0)
|
||||||
|
{
|
||||||
|
nb = 0;
|
||||||
|
getE('btn_left').disabled = 'true';
|
||||||
|
}
|
||||||
|
if (nb >= {$nb_table} - 1)
|
||||||
|
{
|
||||||
|
nb = {$nb_table} - 1;
|
||||||
|
getE('btn_right').disabled = 'true';
|
||||||
|
}
|
||||||
|
toggle(getE('table'+current), false);
|
||||||
|
current = nb;
|
||||||
|
toggle(getE('table'+current), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
$(function() {
|
||||||
|
var btn_save_import = $('span[class~="process-icon-save-import"]').parent();
|
||||||
|
var btn_submit_import = $('#import');
|
||||||
|
|
||||||
|
if (btn_save_import.length > 0 && btn_submit_import.length > 0)
|
||||||
|
{
|
||||||
|
btn_submit_import.hide();
|
||||||
|
btn_save_import.find('span').removeClass('process-icon-save-import');
|
||||||
|
btn_save_import.find('span').addClass('process-icon-save');
|
||||||
|
btn_save_import.click(function() {
|
||||||
|
btn_submit_import.before('<input type="hidden" name="'+btn_submit_import.attr("name")+'" value="1" />');
|
||||||
|
|
||||||
|
$('#import_form').submit();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="3" align="center">
|
<td colspan="3" align="center">
|
||||||
@@ -111,7 +123,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top" align="center">
|
<td valign="top" align="center">
|
||||||
<input id="btn_left" value="{l s='<<'}" type="button" class="button" onclick="showTable(current - 1);" />
|
<input id="btn_left" value="{l s='<<'}" type="button" class="button" onclick="showTable(current - 1)" />
|
||||||
</td>
|
</td>
|
||||||
<td align="left">
|
<td align="left">
|
||||||
{section name=nb_i start=0 loop=$nb_table step=1}
|
{section name=nb_i start=0 loop=$nb_table step=1}
|
||||||
@@ -120,10 +132,12 @@
|
|||||||
{/section}
|
{/section}
|
||||||
</td>
|
</td>
|
||||||
<td valign="top" align="center">
|
<td valign="top" align="center">
|
||||||
<input id="btn_right" value="{l s='>>'}" type="button" class="button" onclick="showTable(current + 1);" />
|
<input id="btn_right" value="{l s='>>'}" type="button" class="button" onclick="showTable(current + 1)" />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
<script type="text/javascript">showTable(current);</script>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
{/block}
|
{/block}
|
||||||
|
|
||||||
|
|||||||
@@ -24,9 +24,9 @@
|
|||||||
*}
|
*}
|
||||||
|
|
||||||
<div class="width4">
|
<div class="width4">
|
||||||
{if isset($localization_form)}{$localization_form}{/if}
|
{$localization_form}
|
||||||
</div>
|
</div>
|
||||||
<br />
|
<br />
|
||||||
<div class="width4">
|
<div class="width4">
|
||||||
{if isset($localization_options)}{$localization_options}{/if}
|
{$localization_options}
|
||||||
</div>
|
</div>
|
||||||
@@ -49,14 +49,14 @@
|
|||||||
<form action="#" id="login_form" method="post">
|
<form action="#" id="login_form" method="post">
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label for="email">{l s='Email address:'}</label>
|
<label for="email">{l s='Email address:'}</label>
|
||||||
<input type="text" id="email" name="email" class="input email_field" tabindex="1" value="{if isset($email)}{$email|escape:'htmlall':'UTF-8'}{/if}" />
|
<input type="text" id="email" name="email" class="input email_field" value="{if isset($email)}{$email|escape:'htmlall':'UTF-8'}{/if}" />
|
||||||
</div>
|
</div>
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label for="passwd">{l s='Password:'}</label>
|
<label for="passwd">{l s='Password:'}</label>
|
||||||
<input id="passwd" type="password" name="passwd" class="input password_field" tabindex="2" value="{if isset($password)}{$password}{/if}"/>
|
<input id="passwd" type="password" name="passwd" class="input password_field" value="{if isset($password)}{$password}{/if}"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<input type="submit" name="submitLogin" value="{l s='Log in'}" tabindex="3" class="button fl margin-right-5" />
|
<input type="submit" name="submitLogin" value="{l s='Log in'}" class="button fl margin-right-5" />
|
||||||
<p class="fl no-margin hide ajax-loader">
|
<p class="fl no-margin hide ajax-loader">
|
||||||
<img src="../img/loader.gif" alt="" />
|
<img src="../img/loader.gif" alt="" />
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -59,14 +59,14 @@
|
|||||||
<td>{$module->categoryName}</td>
|
<td>{$module->categoryName}</td>
|
||||||
<td>
|
<td>
|
||||||
<select name="i_{$module->name}" class="moduleFavorite" style="width:50px">
|
<select name="i_{$module->name}" class="moduleFavorite" style="width:50px">
|
||||||
<option value="" selected="selected">-</option>
|
<option value="" selected="selected">---</option>
|
||||||
<option value="1" {if isset($module->preferences.interest) && $module->preferences.interest eq '1'}selected="selected"{/if}>{l s='Yes'}</option>
|
<option value="1" {if isset($module->preferences.interest) && $module->preferences.interest eq '1'}selected="selected"{/if}>{l s='Yes'}</option>
|
||||||
<option value="0" {if isset($module->preferences.interest) && $module->preferences.interest eq '0'}selected="selected"{/if}>{l s='No'}</option>
|
<option value="0" {if isset($module->preferences.interest) && $module->preferences.interest eq '0'}selected="selected"{/if}>{l s='No'}</option>
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<select name="f_{$module->name}" class="moduleFavorite" style="width:50px">
|
<select name="f_{$module->name}" class="moduleFavorite" style="width:50px">
|
||||||
<option value="" selected="selected">-</option>
|
<option value="" selected="selected">---</option>
|
||||||
<option value="1" {if isset($module->preferences.favorite) && $module->preferences.favorite eq '1'}selected="selected"{/if}>{l s='Yes'}</option>
|
<option value="1" {if isset($module->preferences.favorite) && $module->preferences.favorite eq '1'}selected="selected"{/if}>{l s='Yes'}</option>
|
||||||
<option value="0" {if isset($module->preferences.favorite) && $module->preferences.favorite eq '0'}selected="selected"{/if}>{l s='No'}</option>
|
<option value="0" {if isset($module->preferences.favorite) && $module->preferences.favorite eq '0'}selected="selected"{/if}>{l s='No'}</option>
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||||
* International Registered Trademark & Property of PrestaShop SA
|
* International Registered Trademark & Property of PrestaShop SA
|
||||||
*}
|
*}
|
||||||
<script type="text/javascript" src="../js/jquery/plugins/jquery.uitablefilter.js"></script>
|
|
||||||
{if $add_permission eq '1'}
|
{if $add_permission eq '1'}
|
||||||
{if isset($logged_on_addons)}
|
{if isset($logged_on_addons)}
|
||||||
<!--start addons login-->
|
<!--start addons login-->
|
||||||
@@ -62,7 +62,10 @@
|
|||||||
<!--start filter module-->
|
<!--start filter module-->
|
||||||
<style>.ac_results { border:1px solid #C2C4D9; }</style>
|
<style>.ac_results { border:1px solid #C2C4D9; }</style>
|
||||||
<div class="filter-module">
|
<div class="filter-module">
|
||||||
<input style="float: left; margin-right: 15px" placeholder="{l s='Search'}" type="text" value="" name="quicksearch" autocomplete="off" onkeyup="$.uiTableFilter($('#moduleContainer').find('table'), this.value);">
|
<form id="filternameForm" method="post">
|
||||||
|
<input type="text" value="" name="filtername" autocomplete="off" class="ac_input">
|
||||||
|
<input type="submit" class="button" value="{l s='Search'}">
|
||||||
|
</form>
|
||||||
<form method="post">
|
<form method="post">
|
||||||
<div class="select-filter">
|
<div class="select-filter">
|
||||||
<label class="search-filter">{l s='Sort by'}:</label>
|
<label class="search-filter">{l s='Sort by'}:</label>
|
||||||
|
|||||||
@@ -87,7 +87,7 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Method to check / uncheck all modules checkbox
|
// Method to check / uncheck all modules checkbox
|
||||||
$('#moduleContainer').on("click", "#checkme", function()
|
$('#checkme').click(function()
|
||||||
{
|
{
|
||||||
if ($(this).attr("rel") == 'false')
|
if ($(this).attr("rel") == 'false')
|
||||||
{
|
{
|
||||||
@@ -321,8 +321,8 @@
|
|||||||
catch(e){}
|
catch(e){}
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#moduleContainer').on("click", ".toggle_favorite", function()
|
$('.toggle_favorite').live('click', function(event)
|
||||||
{
|
{
|
||||||
var el = $(this);
|
var el = $(this);
|
||||||
var value_pref = el.data('value');
|
var value_pref = el.data('value');
|
||||||
|
|||||||
@@ -46,8 +46,8 @@
|
|||||||
</td>
|
</td>
|
||||||
<td><img class="imgm" alt="" src="{if isset($module->image)}{$module->image}{else}../modules/{$module->name}/{$module->logo}{/if}"></td>
|
<td><img class="imgm" alt="" src="{if isset($module->image)}{$module->image}{else}../modules/{$module->name}/{$module->logo}{/if}"></td>
|
||||||
<td>
|
<td>
|
||||||
<div class="moduleDesc" id="anchor{$module->name|ucfirst}" title="{$module->name}">
|
<div class="moduleDesc" id="anchor{$module->name|ucfirst}">
|
||||||
<h3>{$module->displayName}<span style="display:none">{$module->name}</span>
|
<h3>{$module->displayName}
|
||||||
{if isset($module->type) && $module->type == 'addonsMustHave'}
|
{if isset($module->type) && $module->type == 'addonsMustHave'}
|
||||||
<span class="setup must-have">{l s='Must Have'}</span>
|
<span class="setup must-have">{l s='Must Have'}</span>
|
||||||
{else}
|
{else}
|
||||||
@@ -77,7 +77,7 @@
|
|||||||
</dl>
|
</dl>
|
||||||
</div>
|
</div>
|
||||||
<p class="desc">{if isset($module->description) && $module->description ne ''}{l s='Description'} : {$module->description}{else} {/if}</p>
|
<p class="desc">{if isset($module->description) && $module->description ne ''}{l s='Description'} : {$module->description}{else} {/if}</p>
|
||||||
{if isset($module->message) && (empty($module->name) === false) && (!isset($module->type) || ($module->type != 'addonsMustHave' || $module->type !== 'addonsNative'))}<div class="conf">{$module->message}</div>{/if}
|
{if isset($module->message) && $module->type !== 'addonsNative' && $module->type != 'addonsMustHave'}<div class="conf">{$module->message}</div>{/if}
|
||||||
<div class="row-actions-module">
|
<div class="row-actions-module">
|
||||||
{if !isset($module->not_on_disk)}
|
{if !isset($module->not_on_disk)}
|
||||||
{$module->optionsHtml}
|
{$module->optionsHtml}
|
||||||
@@ -101,7 +101,7 @@
|
|||||||
<a href="{$module->addons_buy_url}" target="_blank" class="button updated"><span><img src="../img/admin/cart_addons.png"> {if isset($module->id_currency) && isset($module->price)}{displayPrice price=$module->price currency=$module->id_currency}{/if}</span></a>
|
<a href="{$module->addons_buy_url}" target="_blank" class="button updated"><span><img src="../img/admin/cart_addons.png"> {if isset($module->id_currency) && isset($module->price)}{displayPrice price=$module->price currency=$module->id_currency}{/if}</span></a>
|
||||||
</li>
|
</li>
|
||||||
{else}
|
{else}
|
||||||
{if isset($module->version_addons) && $module->version_addons}
|
{if $module->id && isset($module->version_addons) && $module->version_addons}
|
||||||
<li><a href="{$module->options.update_url}" class="button updated"><span>{l s='Update it!'}</span></a></li>
|
<li><a href="{$module->options.update_url}" class="button updated"><span>{l s='Update it!'}</span></a></li>
|
||||||
{/if}
|
{/if}
|
||||||
<li>
|
<li>
|
||||||
|
|||||||
@@ -34,7 +34,6 @@
|
|||||||
<td valign="top">
|
<td valign="top">
|
||||||
<div class="moduleDesc" id="anchor{$module->name|ucfirst}">
|
<div class="moduleDesc" id="anchor{$module->name|ucfirst}">
|
||||||
<h3>
|
<h3>
|
||||||
<span style="display:none">{$module->name}</span>
|
|
||||||
{$module->displayName|truncate:36:'…'} {$module->version}
|
{$module->displayName|truncate:36:'…'} {$module->version}
|
||||||
{if isset($module->id) && $module->id gt 0 }
|
{if isset($module->id) && $module->id gt 0 }
|
||||||
{if $module->active}
|
{if $module->active}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
{include file="toolbar.tpl" toolbar_btn=$toolbar_btn toolbar_scroll=$toolbar_scroll title=$title}
|
{include file="toolbar.tpl" toolbar_btn=$toolbar_btn toolbar_scroll=$toolbar_scroll title=$title}
|
||||||
<div class="leadin">{block name="leadin"}{/block}</div>
|
<div class="leadin">{block name="leadin"}{/block}</div>
|
||||||
|
|
||||||
<form action="{$url_submit}" id="{$table}_form" method="post">
|
<form action="{$url_submit}" id={$table}_form method="post">
|
||||||
{if $display_key}
|
{if $display_key}
|
||||||
<input type="hidden" name="show_modules" value="{$display_key}" />
|
<input type="hidden" name="show_modules" value="{$display_key}" />
|
||||||
{/if}
|
{/if}
|
||||||
@@ -49,10 +49,38 @@
|
|||||||
</select><sup> *</sup>
|
</select><sup> *</sup>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
//<![CDATA
|
||||||
|
function position_exception_add(shopID)
|
||||||
|
{
|
||||||
|
var listValue = $('#em_list_'+shopID).val();
|
||||||
|
var inputValue = $('#em_text_'+shopID).val();
|
||||||
|
var r = new RegExp('(^|,) *'+listValue+' *(,|$)');
|
||||||
|
if (!r.test(inputValue))
|
||||||
|
$('#em_text_'+shopID).val(inputValue + ((inputValue.trim()) ? ', ' : '') + listValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
function position_exception_remove(shopID)
|
||||||
|
{
|
||||||
|
var listValue = $('#em_list_'+shopID).val();
|
||||||
|
var inputValue = $('#em_text_'+shopID).val();
|
||||||
|
var r = new RegExp('(^|,) *'+listValue+' *(,|$)');
|
||||||
|
if (r.test(inputValue))
|
||||||
|
{
|
||||||
|
var rep = '';
|
||||||
|
if (new RegExp(', *'+listValue+' *,').test(inputValue))
|
||||||
|
$('#em_text_'+shopID).val(inputValue.replace(r, ','));
|
||||||
|
else if (new RegExp(listValue+' *,').test(inputValue))
|
||||||
|
$('#em_text_'+shopID).val(inputValue.replace(r, ''));
|
||||||
|
else
|
||||||
|
$('#em_text_'+shopID).val(inputValue.replace(r, ''));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//]]>
|
||||||
|
</script>
|
||||||
|
|
||||||
<label>{l s='Exceptions'} :</label>
|
<label>{l s='Exceptions'} :</label>
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
{l s='Please specify the files for which you do not want the module to be displayed.'}<br />
|
|
||||||
{l s='Please input each filename, separated by a comma.'}<br />
|
|
||||||
{if !$except_diff}
|
{if !$except_diff}
|
||||||
{$exception_list}
|
{$exception_list}
|
||||||
{else}
|
{else}
|
||||||
@@ -60,6 +88,9 @@
|
|||||||
{$value}
|
{$value}
|
||||||
{/foreach}
|
{/foreach}
|
||||||
{/if}
|
{/if}
|
||||||
|
{l s='Please specify the files for which you do not want the module to be displayed.'}.<br />
|
||||||
|
{l s='Please input each filename, separated by a comma.'}.
|
||||||
|
<br /><br />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
@@ -71,40 +102,4 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="small"><sup>*</sup> {l s='Required field'}</div>
|
<div class="small"><sup>*</sup> {l s='Required field'}</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</form>
|
</form>
|
||||||
<script type="text/javascript">
|
|
||||||
//<![CDATA
|
|
||||||
function position_exception_textchange()
|
|
||||||
{
|
|
||||||
// TODO : Add & Remove automatically the "custom pages" in the "em_list_x"
|
|
||||||
var obj = $(this);
|
|
||||||
var shopID = obj.attr('id').replace(/\D/g, '');
|
|
||||||
var list = obj.parent().find('#em_list_' + shopID);
|
|
||||||
var values = obj.val().split(',');
|
|
||||||
var len = values.length;
|
|
||||||
|
|
||||||
list.find('option').prop('selected', false);
|
|
||||||
for (var i = 0; i < len; i++)
|
|
||||||
list.find('option[value="' + $.trim(values[i]) + '"]').prop('selected', true);
|
|
||||||
}
|
|
||||||
|
|
||||||
function position_exception_listchange()
|
|
||||||
{
|
|
||||||
var obj = $(this);
|
|
||||||
var shopID = obj.attr('id').replace(/\D/g, '');
|
|
||||||
var str = obj.val().join(', ');
|
|
||||||
|
|
||||||
obj.parent().find('#em_text_' + shopID).val(str);
|
|
||||||
}
|
|
||||||
|
|
||||||
$(document).ready(function(){
|
|
||||||
$('form[id="hook_module_form"] input[id^="em_text_"]').each(function(){
|
|
||||||
$(this).change(position_exception_textchange).change();
|
|
||||||
});
|
|
||||||
|
|
||||||
$('form[id="hook_module_form"] select[id^="em_list_"]').each(function(){
|
|
||||||
$(this).change(position_exception_listchange);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
//]]>
|
|
||||||
</script>
|
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
{l s='Show'} :
|
{l s='Show'} :
|
||||||
<select id="show_modules" onChange="autoUrl('show_modules', '{$url_show_modules}')">
|
<select id="show_modules" onChange="autoUrl('show_modules', '{$url_show_modules}')">
|
||||||
<option value="all">{l s='All modules'} </option>
|
<option value="all">{l s='All modules'} </option>
|
||||||
<option>-</option>
|
<option>---------------</option>
|
||||||
|
|
||||||
{foreach $modules as $module}
|
{foreach $modules as $module}
|
||||||
<option value="{$module->id|intval}" {if $display_key == $module->id}selected="selected"{/if}>{$module->displayName}</option>
|
<option value="{$module->id|intval}" {if $display_key == $module->id}selected="selected"{/if}>{$module->displayName}</option>
|
||||||
|
|||||||
@@ -45,7 +45,6 @@
|
|||||||
{/if}
|
{/if}
|
||||||
</td>
|
</td>
|
||||||
<td align="center" class="productQuantity">{$product['customizationQuantityTotal']}</td>
|
<td align="center" class="productQuantity">{$product['customizationQuantityTotal']}</td>
|
||||||
{if $display_warehouse}<td style="" align="center"> </td>{/if}
|
|
||||||
{if ($order->hasBeenPaid())}<td align="center" class="productQuantity">{$product['customizationQuantityRefunded']}</td>{/if}
|
{if ($order->hasBeenPaid())}<td align="center" class="productQuantity">{$product['customizationQuantityRefunded']}</td>{/if}
|
||||||
{if ($order->hasBeenDelivered() || $order->hasProductReturned())}<td align="center" class="productQuantity">{$product['customizationQuantityReturned']}</td>{/if}
|
{if ($order->hasBeenDelivered() || $order->hasProductReturned())}<td align="center" class="productQuantity">{$product['customizationQuantityReturned']}</td>{/if}
|
||||||
{if $stock_management}<td align="center" class=""> - </td>{/if}
|
{if $stock_management}<td align="center" class=""> - </td>{/if}
|
||||||
@@ -104,7 +103,6 @@
|
|||||||
</span>
|
</span>
|
||||||
{/if}
|
{/if}
|
||||||
</td>
|
</td>
|
||||||
{if $display_warehouse}<td style="" align="center"> </td>{/if}
|
|
||||||
{if ($order->hasBeenPaid())}<td align="center">{$customization['quantity_refunded']}</td>{/if}
|
{if ($order->hasBeenPaid())}<td align="center">{$customization['quantity_refunded']}</td>{/if}
|
||||||
{if ($order->hasBeenDelivered())}<td align="center">{$customization['quantity_returned']}</td>{/if}
|
{if ($order->hasBeenDelivered())}<td align="center">{$customization['quantity_returned']}</td>{/if}
|
||||||
<td align="center">
|
<td align="center">
|
||||||
|
|||||||
@@ -68,9 +68,9 @@
|
|||||||
{/if}
|
{/if}
|
||||||
{if get_class($document) eq 'OrderInvoice'}
|
{if get_class($document) eq 'OrderInvoice'}
|
||||||
{if isset($document->is_delivery)}
|
{if isset($document->is_delivery)}
|
||||||
#{Configuration::get('PS_DELIVERY_PREFIX', $current_id_lang, null, $order->id_shop)}{'%06d'|sprintf:$document->delivery_number}
|
#{Configuration::get('PS_DELIVERY_PREFIX', $current_id_lang)}{'%06d'|sprintf:$document->delivery_number}
|
||||||
{else}
|
{else}
|
||||||
{$document->getInvoiceNumberFormatted($current_id_lang, $order->id_shop)}
|
{$document->getInvoiceNumberFormatted($current_id_lang)}
|
||||||
{/if}
|
{/if}
|
||||||
{elseif get_class($document) eq 'OrderSlip'}
|
{elseif get_class($document) eq 'OrderSlip'}
|
||||||
#{Configuration::get('PS_CREDIT_SLIP_PREFIX', $current_id_lang)}{'%06d'|sprintf:$document->id}
|
#{Configuration::get('PS_CREDIT_SLIP_PREFIX', $current_id_lang)}{'%06d'|sprintf:$document->id}
|
||||||
|
|||||||
@@ -40,7 +40,6 @@
|
|||||||
</td>
|
</td>
|
||||||
<td style="display:none;" align="center" class="productQuantity"><input type="text" name="add_product[product_quantity]" id="add_product_product_quantity" value="1" size="3" disabled="disabled" /></td>
|
<td style="display:none;" align="center" class="productQuantity"><input type="text" name="add_product[product_quantity]" id="add_product_product_quantity" value="1" size="3" disabled="disabled" /></td>
|
||||||
{if ($order->hasBeenPaid())}<td style="display:none;" align="center" class="productQuantity"> </td>{/if}
|
{if ($order->hasBeenPaid())}<td style="display:none;" align="center" class="productQuantity"> </td>{/if}
|
||||||
{if $display_warehouse}<td style="" align="center"> </td>{/if}
|
|
||||||
{if ($order->hasBeenDelivered())}<td style="display:none;" align="center" class="productQuantity"> </td>{/if}
|
{if ($order->hasBeenDelivered())}<td style="display:none;" align="center" class="productQuantity"> </td>{/if}
|
||||||
<td style="display:none;" align="center" class="productQuantity" id="add_product_product_stock">0</td>
|
<td style="display:none;" align="center" class="productQuantity" id="add_product_product_stock">0</td>
|
||||||
<td style="display:none;" align="center" id="add_product_product_total">{displayPrice price=0 currency=$currency->id}</td>
|
<td style="display:none;" align="center" id="add_product_product_total">{displayPrice price=0 currency=$currency->id}</td>
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
{* Generate HTML code for printing Invoice Icon with link *}
|
{* Generate HTML code for printing Invoice Icon with link *}
|
||||||
<span style="width:20px; margin-right:5px;">
|
<span style="width:20px; margin-right:5px;">
|
||||||
{if ($order_state->invoice || $order->invoice_number)}
|
{if ($order_state->invoice || $order->invoice_number)}
|
||||||
<a href="{$link->getAdminLink('AdminPdf')|escape:'htmlall':'UTF-8'}&submitAction=generateInvoicePDF&id_order={$order->id}"><img src="../img/admin/tab-invoice.gif" alt="invoice" /></a>
|
<a target="_blank" href="{$link->getAdminLink('AdminPdf')|escape:'htmlall':'UTF-8'}&submitAction=generateInvoicePDF&id_order={$order->id}"><img src="../img/admin/tab-invoice.gif" alt="invoice" /></a>
|
||||||
{else}
|
{else}
|
||||||
-
|
-
|
||||||
{/if}
|
{/if}
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
{* Generate HTML code for printing Delivery Icon with link *}
|
{* Generate HTML code for printing Delivery Icon with link *}
|
||||||
<span style="width:20px;">
|
<span style="width:20px;">
|
||||||
{if ($order_state->delivery || $order->delivery_number)}
|
{if ($order_state->delivery || $order->delivery_number)}
|
||||||
<a href="{$link->getAdminLink('AdminPdf')|escape:'htmlall':'UTF-8'}&submitAction=generateDeliverySlipPDF&id_order={$order->id}"><img src="../img/admin/delivery.gif" alt="delivery" /></a>
|
<a target="_blank" href="{$link->getAdminLink('AdminPdf')|escape:'htmlall':'UTF-8'}&submitAction=generateDeliverySlipPDF&id_order={$order->id}"><img src="../img/admin/delivery.gif" alt="delivery" /></a>
|
||||||
{else}
|
{else}
|
||||||
-
|
-
|
||||||
{/if}
|
{/if}
|
||||||
|
|||||||
@@ -56,7 +56,6 @@
|
|||||||
</span>
|
</span>
|
||||||
{/if}
|
{/if}
|
||||||
</td>
|
</td>
|
||||||
{if $display_warehouse}<td align="center">{$product.warehouse_name|escape:'htmlall':'UTF-8'}</td>{/if}
|
|
||||||
{if ($order->hasBeenPaid())}
|
{if ($order->hasBeenPaid())}
|
||||||
<td align="center" class="productQuantity">
|
<td align="center" class="productQuantity">
|
||||||
{$product['product_quantity_refunded']}
|
{$product['product_quantity_refunded']}
|
||||||
|
|||||||
@@ -33,16 +33,11 @@
|
|||||||
var currencies = new Array();
|
var currencies = new Array();
|
||||||
var id_currency = '';
|
var id_currency = '';
|
||||||
var id_lang = '';
|
var id_lang = '';
|
||||||
var txt_show_carts = '{l s='Show carts and orders for this customer.' js=1}';
|
var txt_show_carts = '{l s='Show carts and orders for this customer.' js='1'}';
|
||||||
var txt_hide_carts = '{l s='Hide carts and orders for this customer.' js=1}';
|
var txt_hide_carts = '{l s='Hide carts and orders for this customer.' js='1'}';
|
||||||
var defaults_order_state = new Array();
|
var defaults_order_state = new Array();
|
||||||
var customization_errors = false;
|
var customization_errors = false;
|
||||||
var pic_dir = '{$pic_dir}';
|
var pic_dir = '{$pic_dir}';
|
||||||
var currency_format = 5;
|
|
||||||
var currency_sign = '';
|
|
||||||
var currency_blank = false;
|
|
||||||
var priceDisplayPrecision = 2;
|
|
||||||
|
|
||||||
{foreach from=$defaults_order_state key='module' item='id_order_state'}
|
{foreach from=$defaults_order_state key='module' item='id_order_state'}
|
||||||
defaults_order_state['{$module}'] = '{$id_order_state}';
|
defaults_order_state['{$module}'] = '{$id_order_state}';
|
||||||
{/foreach}
|
{/foreach}
|
||||||
@@ -122,7 +117,7 @@
|
|||||||
$('#vouchers_err').hide();
|
$('#vouchers_err').hide();
|
||||||
var mytab = new Array();
|
var mytab = new Array();
|
||||||
for (var i = 0; i < data.vouchers.length; i++)
|
for (var i = 0; i < data.vouchers.length; i++)
|
||||||
mytab[mytab.length] = { data: data.vouchers[i], value: data.vouchers[i].name + (data.vouchers[i].code.length > 0 ? ' - ' + data.vouchers[i].code : '')};
|
mytab[mytab.length] = { data: data.vouchers[i], value: data.vouchers[i].name+' - '+data.vouchers[i].description };
|
||||||
return mytab;
|
return mytab;
|
||||||
},
|
},
|
||||||
extraParams: {
|
extraParams: {
|
||||||
@@ -510,6 +505,7 @@
|
|||||||
}
|
}
|
||||||
displaySummary(res);
|
displaySummary(res);
|
||||||
resetBind();
|
resetBind();
|
||||||
|
updateCurrencySign();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -656,12 +652,11 @@
|
|||||||
var id_product = Number(this.id_product);
|
var id_product = Number(this.id_product);
|
||||||
var id_product_attribute = Number(this.id_product_attribute);
|
var id_product_attribute = Number(this.id_product_attribute);
|
||||||
cart_quantity[Number(this.id_product)+'_'+Number(this.id_product_attribute)+'_'+Number(this.id_customization)] = this.cart_quantity;
|
cart_quantity[Number(this.id_product)+'_'+Number(this.id_product_attribute)+'_'+Number(this.id_customization)] = this.cart_quantity;
|
||||||
cart_content += '<tr><td><img src="'+this.image_link+'" title="'+this.name+'" /></td><td>'+this.name+'<br />'+this.attributes_small+'</td><td>'+this.reference+'</td><td><input type="text" size="7" rel="'+this.id_product+'_'+this.id_product_attribute+'" class="product_unit_price" value="'+this.numeric_price+'" /></td><td>';
|
cart_content += '<tr><td><img src="'+this.image_link+'" title="'+this.name+'" /></td><td>'+this.name+'<br />'+this.attributes_small+'</td><td>'+this.reference+'</td><td><input type="text" size="7" rel="'+this.id_product+'_'+this.id_product_attribute+'" class="product_unit_price" value="'+this.price+'" /> <span class="currency_sign"></span></td><td>';
|
||||||
cart_content += (!this.id_customization ? '<div style="float:left;"><a href="#" class="increaseqty_product" rel="'+this.id_product+'_'+this.id_product_attribute+'_'+(this.id_customization ? this.id_customization : 0)+'" ><img src="../img/admin/up.gif" /></a><br /><a href="#" class="decreaseqty_product" rel="'+this.id_product+'_'+this.id_product_attribute+'_'+(this.id_customization ? this.id_customization : 0)+'"><img src="../img/admin/down.gif" /></a></div>' : '');
|
cart_content += (!this.id_customization ? '<div style="float:left;"><a href="#" class="increaseqty_product" rel="'+this.id_product+'_'+this.id_product_attribute+'_'+(this.id_customization ? this.id_customization : 0)+'" ><img src="../img/admin/up.gif" /></a><br /><a href="#" class="decreaseqty_product" rel="'+this.id_product+'_'+this.id_product_attribute+'_'+(this.id_customization ? this.id_customization : 0)+'"><img src="../img/admin/down.gif" /></a></div>' : '');
|
||||||
cart_content += (!this.id_customization ? '<div style="float:left;"><input type="text" rel="'+this.id_product+'_'+this.id_product_attribute+'_'+(this.id_customization ? this.id_customization : 0)+'" class="cart_quantity" size="2" value="'+this.cart_quantity+'" />' : '');
|
cart_content += (!this.id_customization ? '<div style="float:left;"><input type="text" rel="'+this.id_product+'_'+this.id_product_attribute+'_'+(this.id_customization ? this.id_customization : 0)+'" class="cart_quantity" size="2" value="'+this.cart_quantity+'" />' : '');
|
||||||
cart_content += (!this.id_customization ? '<a href="#" class="delete_product" rel="delete_'+this.id_product+'_'+this.id_product_attribute+'_'+(this.id_customization ? this.id_customization : 0)+'" ><img src="../img/admin/delete.gif" /></a></div>' : '');
|
cart_content += (!this.id_customization ? '<a href="#" class="delete_product" rel="delete_'+this.id_product+'_'+this.id_product_attribute+'_'+(this.id_customization ? this.id_customization : 0)+'" ><img src="../img/admin/delete.gif" /></a></div>' : '');
|
||||||
cart_content += '</td><td>' + formatCurrency(this.numeric_total, currency_format, currency_sign, currency_blank) + '</td></tr>';
|
cart_content += '</td><td>'+this.total+' <span class="currency_sign"></span></td></tr>';
|
||||||
|
|
||||||
if (this.id_customization && this.id_customization != 0)
|
if (this.id_customization && this.id_customization != 0)
|
||||||
{
|
{
|
||||||
$.each(this.customized_datas[this.id_product][this.id_product_attribute][id_address_delivery], function() {
|
$.each(this.customized_datas[this.id_product][this.id_product_attribute][id_address_delivery], function() {
|
||||||
@@ -699,15 +694,17 @@
|
|||||||
function updateCartVouchers(vouchers)
|
function updateCartVouchers(vouchers)
|
||||||
{
|
{
|
||||||
var vouchers_html = '';
|
var vouchers_html = '';
|
||||||
if (typeof(vouchers) == 'object')
|
if (vouchers.length > 0)
|
||||||
$.each(vouchers, function(){
|
{
|
||||||
|
$.each(vouchers, function() {
|
||||||
vouchers_html += '<tr><td>'+this.name+'</td><td>'+this.description+'</td><td>'+this.value_real+'</td><td><a href="#" class="delete_discount" rel="'+this.id_discount+'"><img src="../img/admin/delete.gif" /></a></td></tr>';
|
vouchers_html += '<tr><td>'+this.name+'</td><td>'+this.description+'</td><td>'+this.value_real+'</td><td><a href="#" class="delete_discount" rel="'+this.id_discount+'"><img src="../img/admin/delete.gif" /></a></td></tr>';
|
||||||
});
|
});
|
||||||
$('#voucher_list tbody').html($.trim(vouchers_html));
|
|
||||||
if ($('#voucher_list tbody').html().length == 0)
|
|
||||||
$('#voucher_list').hide();
|
|
||||||
else
|
|
||||||
$('#voucher_list').show();
|
$('#voucher_list').show();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$('#voucher_list').hide();
|
||||||
|
|
||||||
|
$('#voucher_list tbody').html(vouchers_html);
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateCartPaymentList(payment_list)
|
function updateCartPaymentList(payment_list)
|
||||||
@@ -715,23 +712,8 @@
|
|||||||
$('#payment_list').html(payment_list);
|
$('#payment_list').html(payment_list);
|
||||||
}
|
}
|
||||||
|
|
||||||
function fixPriceFormat(price)
|
|
||||||
{
|
|
||||||
if(price.indexOf(',') > 0 && price.indexOf('.') > 0) // if contains , and .
|
|
||||||
if(price.indexOf(',') < price.indexOf('.')) // if , is before .
|
|
||||||
price = price.replace(',',''); // remove ,
|
|
||||||
price = price.replace(' ',''); // remove any spaces
|
|
||||||
price = price.replace(',','.'); // remove , if price did not cotain both , and .
|
|
||||||
return price;
|
|
||||||
}
|
|
||||||
|
|
||||||
function displaySummary(jsonSummary)
|
function displaySummary(jsonSummary)
|
||||||
{
|
{
|
||||||
currency_format = jsonSummary.currency.format;
|
|
||||||
currency_sign = jsonSummary.currency.sign;
|
|
||||||
currency_blank = jsonSummary.currency.blank;
|
|
||||||
priceDisplayPrecision = jsonSummary.currency.decimals ? 2 : 0;
|
|
||||||
|
|
||||||
updateCartProducts(jsonSummary.summary.products, jsonSummary.summary.gift_products, jsonSummary.cart.id_address_delivery);
|
updateCartProducts(jsonSummary.summary.products, jsonSummary.summary.gift_products, jsonSummary.cart.id_address_delivery);
|
||||||
updateCartVouchers(jsonSummary.summary.discounts);
|
updateCartVouchers(jsonSummary.summary.discounts);
|
||||||
updateAddressesList(jsonSummary.addresses, jsonSummary.cart.id_address_delivery, jsonSummary.cart.id_address_invoice);
|
updateAddressesList(jsonSummary.addresses, jsonSummary.cart.id_address_delivery, jsonSummary.cart.id_address_invoice);
|
||||||
@@ -757,19 +739,20 @@
|
|||||||
$('#free_shipping').removeAttr('checked');
|
$('#free_shipping').removeAttr('checked');
|
||||||
|
|
||||||
$('#gift_message').html(jsonSummary.cart.gift_message);
|
$('#gift_message').html(jsonSummary.cart.gift_message);
|
||||||
if (!changed_shipping_price)
|
if(!changed_shipping_price)
|
||||||
$('#shipping_price').html('<b>' + formatCurrency(parseFloat(jsonSummary.summary.total_shipping), currency_format, currency_sign, currency_blank) + '</b>');
|
$('#shipping_price').html('<b>'+jsonSummary.summary.total_shipping+'</b>');
|
||||||
shipping_price_selected_carrier = jsonSummary.summary.total_shipping;
|
shipping_price_selected_carrier = jsonSummary.summary.total_shipping;
|
||||||
|
|
||||||
$('#total_vouchers').html(formatCurrency(parseFloat(fixPriceFormat(jsonSummary.summary.total_discounts_tax_exc)), currency_format, currency_sign, currency_blank));
|
$('#total_vouchers').html(jsonSummary.summary.total_discounts_tax_exc);
|
||||||
$('#total_shipping').html(formatCurrency(parseFloat(fixPriceFormat(jsonSummary.summary.total_shipping_tax_exc)), currency_format, currency_sign, currency_blank));
|
$('#total_shipping').html(jsonSummary.summary.total_shipping_tax_exc);
|
||||||
$('#total_taxes').html(formatCurrency(parseFloat(fixPriceFormat(jsonSummary.summary.total_tax)), currency_format, currency_sign, currency_blank));
|
$('#total_taxes').html(jsonSummary.summary.total_tax);
|
||||||
$('#total_without_taxes').html(formatCurrency(parseFloat(fixPriceFormat(jsonSummary.summary.total_price_without_tax)), currency_format, currency_sign, currency_blank));
|
$('#total_without_taxes').html(jsonSummary.summary.total_price_without_tax);
|
||||||
$('#total_with_taxes').html(formatCurrency(parseFloat(fixPriceFormat(jsonSummary.summary.total_price)), currency_format, currency_sign, currency_blank));
|
$('#total_with_taxes').html(jsonSummary.summary.total_price);
|
||||||
$('#total_products').html(formatCurrency(parseFloat(fixPriceFormat(jsonSummary.summary.total_products)), currency_format, currency_sign, currency_blank));
|
$('#total_products').html(jsonSummary.summary.total_products);
|
||||||
id_currency = jsonSummary.cart.id_currency;
|
id_currency = jsonSummary.cart.id_currency;
|
||||||
$('#id_currency option').removeAttr('selected');
|
$('#id_currency option').removeAttr('selected');
|
||||||
$('#id_currency option[value="'+id_currency+'"]').attr('selected', true);
|
$('#id_currency option[value="'+id_currency+'"]').attr('selected', true);
|
||||||
|
updateCurrencySign();
|
||||||
id_lang = jsonSummary.cart.id_lang;
|
id_lang = jsonSummary.cart.id_lang;
|
||||||
$('#id_lang option').removeAttr('selected');
|
$('#id_lang option').removeAttr('selected');
|
||||||
$('#id_lang option[value="'+id_lang+'"]').attr('selected', true);
|
$('#id_lang option[value="'+id_lang+'"]').attr('selected', true);
|
||||||
@@ -797,21 +780,21 @@
|
|||||||
qty: qty,
|
qty: qty,
|
||||||
id_customer: id_customer,
|
id_customer: id_customer,
|
||||||
id_cart: id_cart,
|
id_cart: id_cart,
|
||||||
},
|
},
|
||||||
success : function(res)
|
success : function(res)
|
||||||
{
|
{
|
||||||
displaySummary(res);
|
displaySummary(res);
|
||||||
var errors = '';
|
var errors = '';
|
||||||
if (res.errors.length)
|
if(res.errors.length)
|
||||||
{
|
{
|
||||||
$.each(res.errors, function() {
|
$.each(res.errors, function() {
|
||||||
errors += this + '<br />';
|
errors += this+'<br />';
|
||||||
});
|
});
|
||||||
$('#products_err').show();
|
$('#products_err').show();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
$('#products_err').hide();
|
$('#products_err').hide();
|
||||||
$('#products_err').html(errors);
|
$('#products_err').html(errors);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -907,6 +890,11 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function updateCurrencySign()
|
||||||
|
{
|
||||||
|
$('.currency_sign').html(currencies[id_currency]);
|
||||||
|
}
|
||||||
|
|
||||||
function sendMailToCustomer()
|
function sendMailToCustomer()
|
||||||
{
|
{
|
||||||
$.ajax({
|
$.ajax({
|
||||||
@@ -939,33 +927,11 @@
|
|||||||
var addresses_invoice_options = '';
|
var addresses_invoice_options = '';
|
||||||
var address_invoice_detail = '';
|
var address_invoice_detail = '';
|
||||||
var address_delivery_detail = '';
|
var address_delivery_detail = '';
|
||||||
var delivery_address_edit_link = '';
|
|
||||||
var invoice_address_edit_link = '';
|
|
||||||
|
|
||||||
$.each(addresses, function() {
|
$.each(addresses, function() {
|
||||||
if (this.id_address == id_address_invoice)
|
if (this.id_address == id_address_invoice)
|
||||||
{
|
address_invoice_detail = this.company+' '+this.firstname+' '+this.lastname+'<br />'+this.address1+'<br />'+this.address2+'<br />'+this.postcode+' '+this.city+' '+this.country;
|
||||||
address_invoice_detail = this.company+' '+this.firstname+' '+this.lastname+'<br />'+this.address1+'<br />'+this.address2+'<br />'+this.postcode+' '+this.city;
|
|
||||||
|
|
||||||
if (this.state != null)
|
|
||||||
address_invoice_detail += ' '+this.state;
|
|
||||||
|
|
||||||
address_invoice_detail += '</br>'+this.country;
|
|
||||||
|
|
||||||
invoice_address_edit_link = "{$link->getAdminLink('AdminAddresses')}&id_address="+this.id_address+"&updateaddress&realedit=1&liteDisplaying=1&submitFormAjax=1#";
|
|
||||||
}
|
|
||||||
|
|
||||||
if(this.id_address == id_address_delivery)
|
if(this.id_address == id_address_delivery)
|
||||||
{
|
address_delivery_detail = this.company+' '+this.firstname+' '+this.lastname+'<br />'+this.address1+'<br />'+this.address2+'<br />'+this.postcode+' '+this.city+' '+this.country;
|
||||||
address_delivery_detail = this.company+' '+this.firstname+' '+this.lastname+'<br />'+this.address1+'<br />'+this.address2+'<br />'+this.postcode+' '+this.city;
|
|
||||||
|
|
||||||
if (this.state != null)
|
|
||||||
address_delivery_detail += ' '+this.state;
|
|
||||||
|
|
||||||
address_delivery_detail += '</br>'+this.country;
|
|
||||||
|
|
||||||
delivery_address_edit_link = "{$link->getAdminLink('AdminAddresses')}&id_address="+this.id_address+"&updateaddress&realedit=1&liteDisplaying=1&submitFormAjax=1#";
|
|
||||||
}
|
|
||||||
|
|
||||||
addresses_delivery_options += '<option value="'+this.id_address+'" '+(this.id_address == id_address_delivery ? 'selected="selected"' : '')+'>'+this.alias+'</option>';
|
addresses_delivery_options += '<option value="'+this.id_address+'" '+(this.id_address == id_address_delivery ? 'selected="selected"' : '')+'>'+this.alias+'</option>';
|
||||||
addresses_invoice_options += '<option value="'+this.id_address+'" '+(this.id_address == id_address_invoice ? 'selected="selected"' : '')+'>'+this.alias+'</option>';
|
addresses_invoice_options += '<option value="'+this.id_address+'" '+(this.id_address == id_address_invoice ? 'selected="selected"' : '')+'>'+this.alias+'</option>';
|
||||||
@@ -985,8 +951,6 @@
|
|||||||
$('#id_address_invoice').html(addresses_invoice_options);
|
$('#id_address_invoice').html(addresses_invoice_options);
|
||||||
$('#address_delivery_detail').html(address_delivery_detail);
|
$('#address_delivery_detail').html(address_delivery_detail);
|
||||||
$('#address_invoice_detail').html(address_invoice_detail);
|
$('#address_invoice_detail').html(address_invoice_detail);
|
||||||
$('#edit_delivery_address').attr('href', delivery_address_edit_link);
|
|
||||||
$('#edit_invoice_address').attr('href', invoice_address_edit_link);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateAddresses()
|
function updateAddresses()
|
||||||
@@ -1022,7 +986,7 @@
|
|||||||
<label>{l s='Search customers'}</label>
|
<label>{l s='Search customers'}</label>
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<input type="text" id="customer" value="" />
|
<input type="text" id="customer" value="" />
|
||||||
<p>{l s='Search a customer by typing the first letters of his/her name'}</p>
|
<p>{l s='Search a customer by tapping the first letters of his/her name'}</p>
|
||||||
<a class="fancybox button" href="{$link->getAdminLink('AdminCustomers')|escape:'htmlall':'UTF-8'}&addcustomer&liteDisplaying=1&submitFormAjax=1#">
|
<a class="fancybox button" href="{$link->getAdminLink('AdminCustomers')|escape:'htmlall':'UTF-8'}&addcustomer&liteDisplaying=1&submitFormAjax=1#">
|
||||||
<img src="../img/admin/add.gif" title="new"/><span>{l s='Add new customer'}</span>
|
<img src="../img/admin/add.gif" title="new"/><span>{l s='Add new customer'}</span>
|
||||||
</a>
|
</a>
|
||||||
@@ -1037,7 +1001,7 @@
|
|||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<input type="hidden" value="" id="id_cart" name="id_cart" />
|
<input type="hidden" value="" id="id_cart" name="id_cart" />
|
||||||
<input type="text" id="product" value="" />
|
<input type="text" id="product" value="" />
|
||||||
<p>{l s='Search a product by typing the first letters of his/her name.'}</p>
|
<p>{l s='Search a product by tapping the first letters of his/her name.'}</p>
|
||||||
</div>
|
</div>
|
||||||
<div id="products_found">
|
<div id="products_found">
|
||||||
<div id="product_list">
|
<div id="product_list">
|
||||||
@@ -1197,14 +1161,14 @@
|
|||||||
<div id="address_delivery">
|
<div id="address_delivery">
|
||||||
<h3>{l s='Delivery'}</h3>
|
<h3>{l s='Delivery'}</h3>
|
||||||
<select id="id_address_delivery" name="id_address_delivery">
|
<select id="id_address_delivery" name="id_address_delivery">
|
||||||
</select> <a class="fancybox" id="edit_delivery_address" href="#"><img src="../img/admin/edit.gif" /></a>
|
</select>
|
||||||
<div id="address_delivery_detail">
|
<div id="address_delivery_detail">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="address_invoice">
|
<div id="address_invoice">
|
||||||
<h3>{l s='Invoice'}</h3>
|
<h3>{l s='Invoice'}</h3>
|
||||||
<select id="id_address_invoice" name="id_address_invoice">
|
<select id="id_address_invoice" name="id_address_invoice">
|
||||||
</select> <a class="fancybox" id="edit_invoice_address" href="#"><img src="../img/admin/edit.gif" /></a>
|
</select>
|
||||||
<div id="address_invoice_detail">
|
<div id="address_invoice_detail">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -1222,7 +1186,7 @@
|
|||||||
</select>
|
</select>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label for="shipping_price">{l s='Shipping price'}</label> <span id="shipping_price" name="shipping_price"></span>
|
<label for="shipping_price">{l s='Shipping price'}</label> <span id="shipping_price" name="shipping_price"></span> <span class="currency_sign"></span>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label for="free_shipping">{l s='Free shipping'}</label>
|
<label for="free_shipping">{l s='Free shipping'}</label>
|
||||||
@@ -1246,12 +1210,12 @@
|
|||||||
<div id="send_email_feedback"></div>
|
<div id="send_email_feedback"></div>
|
||||||
<div id="cart_summary" style="clear:both;float:left;">
|
<div id="cart_summary" style="clear:both;float:left;">
|
||||||
<ul>
|
<ul>
|
||||||
<li><span class="total_cart">{l s='Total products'}</span><span id="total_products"></span></li>
|
<li><span class="total_cart">{l s='Total products'}</span><span id="total_products"></span><span class="currency_sign"></span></li>
|
||||||
<li><span class="total_cart">{l s='Total vouchers'}</span><span id="total_vouchers"></span></li>
|
<li><span class="total_cart">{l s='Total vouchers'}</span><span id="total_vouchers"></span><span class="currency_sign"></span></li>
|
||||||
<li><span class="total_cart">{l s='Total shipping'}</span><span id="total_shipping"></span></li>
|
<li><span class="total_cart">{l s='Total shipping'}</span><span id="total_shipping"></span><span class="currency_sign"></span></li>
|
||||||
<li><span class="total_cart">{l s='Total taxes'}</span><span id="total_taxes"></span></li>
|
<li><span class="total_cart">{l s='Total taxes'}</span><span id="total_taxes"></span><span class="currency_sign"></span></li>
|
||||||
<li><span class="total_cart">{l s='Total without taxes'}</span><span id="total_without_taxes"></span></li>
|
<li><span class="total_cart">{l s='Total without taxes'}</span><span id="total_without_taxes"></span><span class="currency_sign"></span></li>
|
||||||
<li><span class="total_cart">{l s='Total with taxes'}</span><span id="total_with_taxes"></span></li>
|
<li><span class="total_cart">{l s='Total with taxes'}</span><span id="total_with_taxes"></span><span class="currency_sign"></span></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="order_message_right">
|
<div class="order_message_right">
|
||||||
|
|||||||
@@ -65,7 +65,7 @@
|
|||||||
<div class="bloc-command">
|
<div class="bloc-command">
|
||||||
<div class="button-command">
|
<div class="button-command">
|
||||||
{if (count($invoices_collection))}
|
{if (count($invoices_collection))}
|
||||||
<a class="button" href="{$link->getAdminLink('AdminPdf')|escape:'htmlall':'UTF-8'}&submitAction=generateInvoicePDF&id_order={$order->id}">
|
<a class="button" href="{$link->getAdminLink('AdminPdf')|escape:'htmlall':'UTF-8'}&submitAction=generateInvoicePDF&id_order={$order->id}" target="_blank">
|
||||||
<img src="../img/admin/charged_ok.gif" alt="{l s='View invoice'}" /> {l s='View invoice'}
|
<img src="../img/admin/charged_ok.gif" alt="{l s='View invoice'}" /> {l s='View invoice'}
|
||||||
</a>
|
</a>
|
||||||
{else}
|
{else}
|
||||||
@@ -73,7 +73,7 @@
|
|||||||
{/if}
|
{/if}
|
||||||
|
|
|
|
||||||
{if (($currentState && $currentState->delivery) || $order->delivery_number)}
|
{if (($currentState && $currentState->delivery) || $order->delivery_number)}
|
||||||
<a class="button" href="{$link->getAdminLink('AdminPdf')|escape:'htmlall':'UTF-8'}&submitAction=generateDeliverySlipPDF&id_order={$order->id}">
|
<a class="button" href="{$link->getAdminLink('AdminPdf')|escape:'htmlall':'UTF-8'}&submitAction=generateDeliverySlipPDF&id_order={$order->id}" target="_blank">
|
||||||
<img src="../img/admin/delivery.gif" alt="{l s='View delivery slip'}" /> {l s='View delivery slip'}
|
<img src="../img/admin/delivery.gif" alt="{l s='View delivery slip'}" /> {l s='View delivery slip'}
|
||||||
</a>
|
</a>
|
||||||
{else}
|
{else}
|
||||||
@@ -124,10 +124,10 @@
|
|||||||
<!-- History of status -->
|
<!-- History of status -->
|
||||||
<table cellspacing="0" cellpadding="0" class="table history-status" style="width: 100%;">
|
<table cellspacing="0" cellpadding="0" class="table history-status" style="width: 100%;">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col width="1%"/>
|
<col width="1%">
|
||||||
<col width=""/>
|
<col width="">
|
||||||
<col width="20%"/>
|
<col width="20%">
|
||||||
<col width="20%"/>
|
<col width="20%">
|
||||||
</colgroup>
|
</colgroup>
|
||||||
{foreach from=$history item=row key=key}
|
{foreach from=$history item=row key=key}
|
||||||
{if ($key == 0)}
|
{if ($key == 0)}
|
||||||
@@ -153,7 +153,7 @@
|
|||||||
<br />
|
<br />
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend><img src="../img/admin/tab-customers.gif" /> {l s='Customer information'}</legend>
|
<legend><img src="../img/admin/tab-customers.gif" /> {l s='Customer information'}</legend>
|
||||||
<span style="font-weight: bold; font-size: 14px;"><a href="?tab=AdminCustomers&id_customer={$customer->id}&viewcustomer&token={getAdminToken tab='AdminCustomers'}"> {$gender->name|escape:'htmlall':'UTF-8'} {$customer->firstname} {$customer->lastname}</a></span> ({l s='#'}{$customer->id})<br />
|
<span style="font-weight: bold; font-size: 14px;"><a href="?tab=AdminCustomers&id_customer={$customer->id}&viewcustomer&token={getAdminToken tab='AdminCustomers'}"> {$customer->firstname} {$customer->lastname}</a></span> ({l s='#'}{$customer->id})<br />
|
||||||
(<a href="mailto:{$customer->email}">{$customer->email}</a>)<br /><br />
|
(<a href="mailto:{$customer->email}">{$customer->email}</a>)<br /><br />
|
||||||
{if ($customer->isGuest())}
|
{if ($customer->isGuest())}
|
||||||
{l s='This order has been placed by a guest.'}
|
{l s='This order has been placed by a guest.'}
|
||||||
@@ -170,9 +170,9 @@
|
|||||||
{l s='Account registered:'} <b>{dateFormat date=$customer->date_add full=true}</b><br />
|
{l s='Account registered:'} <b>{dateFormat date=$customer->date_add full=true}</b><br />
|
||||||
{l s='Valid orders placed:'} <b>{$customerStats['nb_orders']}</b><br />
|
{l s='Valid orders placed:'} <b>{$customerStats['nb_orders']}</b><br />
|
||||||
{l s='Total spent since registration:'} <b>{displayPrice price=Tools::ps_round(Tools::convertPrice($customerStats['total_orders'], $currency), 2) currency=$currency->id}</b><br />
|
{l s='Total spent since registration:'} <b>{displayPrice price=Tools::ps_round(Tools::convertPrice($customerStats['total_orders'], $currency), 2) currency=$currency->id}</b><br />
|
||||||
|
</fieldset>
|
||||||
{/if}
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
</fieldset>
|
|
||||||
|
|
||||||
<!-- Sources block -->
|
<!-- Sources block -->
|
||||||
{if (sizeof($sources))}
|
{if (sizeof($sources))}
|
||||||
@@ -299,12 +299,12 @@
|
|||||||
<form id="formAddPayment" method="post" action="{$current_index}&vieworder&id_order={$order->id}&token={$smarty.get.token|escape:'htmlall':'UTF-8'}">
|
<form id="formAddPayment" method="post" action="{$current_index}&vieworder&id_order={$order->id}&token={$smarty.get.token|escape:'htmlall':'UTF-8'}">
|
||||||
<table class="table" width="100%" cellspacing="0" cellpadding="0">
|
<table class="table" width="100%" cellspacing="0" cellpadding="0">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col width="15%"/>
|
<col width="15%">
|
||||||
<col width=""/>
|
<col width="">
|
||||||
<col width="20%"/>
|
<col width="20%">
|
||||||
<col width="10%"/>
|
<col width="10%">
|
||||||
<col width="10%"/>
|
<col width="10%">
|
||||||
<col width="1%"/>
|
<col width="1%">
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -325,7 +325,7 @@
|
|||||||
<td>{displayPrice price=$payment->amount currency=$payment->id_currency}</td>
|
<td>{displayPrice price=$payment->amount currency=$payment->id_currency}</td>
|
||||||
<td>
|
<td>
|
||||||
{if $invoice = $payment->getOrderInvoice($order->id)}
|
{if $invoice = $payment->getOrderInvoice($order->id)}
|
||||||
{$invoice->getInvoiceNumberFormatted($current_id_lang, $order->id_shop)}
|
{$invoice->getInvoiceNumberFormatted($current_id_lang)}
|
||||||
{else}
|
{else}
|
||||||
{l s='No invoice'}
|
{l s='No invoice'}
|
||||||
{/if}
|
{/if}
|
||||||
@@ -404,7 +404,7 @@
|
|||||||
<td>
|
<td>
|
||||||
<select name="payment_invoice" id="payment_invoice">
|
<select name="payment_invoice" id="payment_invoice">
|
||||||
{foreach from=$invoices_collection item=invoice}
|
{foreach from=$invoices_collection item=invoice}
|
||||||
<option value="{$invoice->id}" selected="selected">{$invoice->getInvoiceNumberFormatted($current_id_lang, $order->id_shop)}</option>
|
<option value="{$invoice->id}" selected="selected">{$invoice->getInvoiceNumberFormatted($current_id_lang)}</option>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
@@ -592,7 +592,6 @@
|
|||||||
<th>{l s='Product'}</th>
|
<th>{l s='Product'}</th>
|
||||||
<th style="width: 15%; text-align: center">{l s='Unit Price'} <sup>*</sup></th>
|
<th style="width: 15%; text-align: center">{l s='Unit Price'} <sup>*</sup></th>
|
||||||
<th style="width: 4%; text-align: center">{l s='Qty'}</th>
|
<th style="width: 4%; text-align: center">{l s='Qty'}</th>
|
||||||
{if $display_warehouse}<th style="text-align: center">{l s='Warehouse'}</th>{/if}
|
|
||||||
{if ($order->hasBeenPaid())}<th style="width: 3%; text-align: center">{l s='Refunded'}</th>{/if}
|
{if ($order->hasBeenPaid())}<th style="width: 3%; text-align: center">{l s='Refunded'}</th>{/if}
|
||||||
{if ($order->hasBeenDelivered() || $order->hasProductReturned())}<th style="width: 3%; text-align: center">{l s='Returned'}</th>{/if}
|
{if ($order->hasBeenDelivered() || $order->hasProductReturned())}<th style="width: 3%; text-align: center">{l s='Returned'}</th>{/if}
|
||||||
{if $stock_management}<th style="width: 10%; text-align: center">{l s='Available quantity'}</th>{/if}
|
{if $stock_management}<th style="width: 10%; text-align: center">{l s='Available quantity'}</th>{/if}
|
||||||
@@ -751,7 +750,7 @@
|
|||||||
<a href="{$link->getAdminLink('AdminCustomerThreads')|escape:'htmlall':'UTF-8'}"><b>{l s='Click here'}</b> {l s='to see all messages.'}</a><br>
|
<a href="{$link->getAdminLink('AdminCustomerThreads')|escape:'htmlall':'UTF-8'}"><b>{l s='Click here'}</b> {l s='to see all messages.'}</a><br>
|
||||||
<div id="message" style="display: {if Tools::getValue('message')}block{else}none{/if}">
|
<div id="message" style="display: {if Tools::getValue('message')}block{else}none{/if}">
|
||||||
<select name="order_message" id="order_message" onchange="orderOverwriteMessage(this, '{l s='Do you want to overwrite your existing message?'}')">
|
<select name="order_message" id="order_message" onchange="orderOverwriteMessage(this, '{l s='Do you want to overwrite your existing message?'}')">
|
||||||
<option value="0" selected="selected">- {l s='Choose a standard message'} -</option>
|
<option value="0" selected="selected">-- {l s='Choose a standard message'} --</option>
|
||||||
{foreach from=$orderMessages item=orderMessage}
|
{foreach from=$orderMessages item=orderMessage}
|
||||||
<option value="{$orderMessage['message']|escape:'htmlall':'UTF-8'}">{$orderMessage['name']}</option>
|
<option value="{$orderMessage['message']|escape:'htmlall':'UTF-8'}">{$orderMessage['name']}</option>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
@@ -787,6 +786,8 @@
|
|||||||
</fieldset>
|
</fieldset>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="clear"> </div>
|
<div class="clear"> </div>
|
||||||
<br /><br /><a href="{$current_index}&token={$smarty.get.token}"><img src="../img/admin/arrow2.gif" /> {l s='Back to list'}</a><br />
|
<br /><br /><a href="{$current_index}&token={$smarty.get.token}"><img src="../img/admin/arrow2.gif" /> {l s='Back to list'}</a><br />
|
||||||
{/block}
|
{/block}
|
||||||
|
|||||||
@@ -31,14 +31,6 @@
|
|||||||
{if isset($modules_list)}
|
{if isset($modules_list)}
|
||||||
{$modules_list}
|
{$modules_list}
|
||||||
{/if}
|
{/if}
|
||||||
<div class="space info">
|
|
||||||
{l s='This is where you decide what payment modules are available for different variations like your customers\' currency, group, and country.'}
|
|
||||||
<br />
|
|
||||||
{l s='A check mark indicates you want the payment module available.'}
|
|
||||||
{l s='If it is not checked then this means that the Payment module is disabled.'}
|
|
||||||
<br />
|
|
||||||
{l s='Please make sure to click Save for each section.'}
|
|
||||||
</div>
|
|
||||||
{if $display_restrictions}
|
{if $display_restrictions}
|
||||||
<br /><h2 class="space">{l s='Payment module restrictions'}</h2>
|
<br /><h2 class="space">{l s='Payment module restrictions'}</h2>
|
||||||
{foreach $lists as $list}
|
{foreach $lists as $list}
|
||||||
|
|||||||
@@ -34,10 +34,10 @@
|
|||||||
{if $module->active}
|
{if $module->active}
|
||||||
<th>
|
<th>
|
||||||
{if $list['name_id'] != 'currency' || $module->currencies_mode == 'checkbox'}
|
{if $list['name_id'] != 'currency' || $module->currencies_mode == 'checkbox'}
|
||||||
<input type="hidden" id="checkedBox_{$list['name_id']}_{$module->name}" value="checked"/>
|
<input type="hidden" id="checkedBox_{$list['name_id']}_{$module->name}" value="checked">
|
||||||
<a href="javascript:checkPaymentBoxes('{$list['name_id']}', '{$module->name}')" style="text-decoration:none;">
|
<a href="javascript:checkPaymentBoxes('{$list['name_id']}', '{$module->name}')" style="text-decoration:none;">
|
||||||
{/if}
|
{/if}
|
||||||
<img src="{$ps_base_uri}modules/{$module->name}/logo.gif" alt="{$module->name}" title="{$module->displayName}"/>
|
<img src="{$ps_base_uri}modules/{$module->name}/logo.gif" alt="{$module->name}" title="{$module->displayName}" />
|
||||||
{if $list['name_id'] != 'currency' || $module->currencies_mode == 'checkbox'}
|
{if $list['name_id'] != 'currency' || $module->currencies_mode == 'checkbox'}
|
||||||
</a>
|
</a>
|
||||||
{/if}
|
{/if}
|
||||||
@@ -64,9 +64,11 @@
|
|||||||
{$type = 'checkbox'}
|
{$type = 'checkbox'}
|
||||||
{/if}
|
{/if}
|
||||||
{if $type != 'null'}
|
{if $type != 'null'}
|
||||||
<input type="{$type}" name="{$module->name}_{$list['name_id']}[]" value="{$item[$list['identifier']]}" {if $item['check_list'][$key_module] == 'checked'}checked="checked"{/if}/>
|
<input type="checkbox" name="{$module->name}_{$list['name_id']}[]" value="{$item[$list['identifier']]}"
|
||||||
|
{if $item['check_list'][$key_module] == 'checked'}checked="checked"{/if}
|
||||||
|
/>
|
||||||
{else}
|
{else}
|
||||||
<input type="hidden" name="{$module->name}_{$list['name_id']}[]" value="{$item[$list['identifier']]}"/>--
|
--
|
||||||
{/if}
|
{/if}
|
||||||
</td>
|
</td>
|
||||||
{/if}
|
{/if}
|
||||||
@@ -94,4 +96,4 @@
|
|||||||
</table>
|
</table>
|
||||||
<div><input type="submit" class="button space" name="submitModule{$list['name_id']}" value="{l s='Save restrictions'}" /></div>
|
<div><input type="submit" class="button space" name="submitModule{$list['name_id']}" value="{l s='Save restrictions'}" /></div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</form>
|
</form>
|
||||||
@@ -40,9 +40,6 @@
|
|||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
{$smarty.block.parent}
|
{$smarty.block.parent}
|
||||||
{if $input.type == 'radio' && $input.name == 'smarty_cache'}
|
|
||||||
<a href="{$current}&token={$token}&empty_smarty_cache=1" class="clear button" href="">{l s='Clear Smarty cache & Autoload cache'}</a>
|
|
||||||
{/if}
|
|
||||||
{/block}
|
{/block}
|
||||||
|
|
||||||
{block name="description"}
|
{block name="description"}
|
||||||
@@ -189,7 +186,7 @@
|
|||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
$('input[name="smarty_force_compile"], input[name="smarty_cache"], input[name="smarty_console"], input[name="smarty_console_key"]').change(function(){
|
$('input[name="smarty_force_compile"], input[name="smarty_cache"], input[name="smarty_console"]').change(function(){
|
||||||
$('#smarty_up').val(1);
|
$('#smarty_up').val(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -103,11 +103,11 @@
|
|||||||
<td class="col-left"><label>{l s='Manufacturer:'}</label></td>
|
<td class="col-left"><label>{l s='Manufacturer:'}</label></td>
|
||||||
<td style="padding-bottom:5px;">
|
<td style="padding-bottom:5px;">
|
||||||
<select name="id_manufacturer" id="id_manufacturer">
|
<select name="id_manufacturer" id="id_manufacturer">
|
||||||
<option value="0">- {l s='Choose (optional)'} -</option>
|
<option value="0">-- {l s='Choose (optional)'} --</option>
|
||||||
{if $product->id_manufacturer}
|
{if $product->id_manufacturer}
|
||||||
<option value="{$product->id_manufacturer}" selected="selected">{$product->manufacturer_name}</option>
|
<option value="{$product->id_manufacturer}" selected="selected">{$product->manufacturer_name}</option>
|
||||||
{/if}
|
{/if}
|
||||||
<option disabled="disabled">-</option>
|
<option disabled="disabled">----------</option>
|
||||||
</select>
|
</select>
|
||||||
<a class="button bt-icon confirm_leave" style="margin-bottom:0" href="{$link->getAdminLink('AdminManufacturers')|escape:'htmlall':'UTF-8'}&addmanufacturer">
|
<a class="button bt-icon confirm_leave" style="margin-bottom:0" href="{$link->getAdminLink('AdminManufacturers')|escape:'htmlall':'UTF-8'}&addmanufacturer">
|
||||||
<img src="../img/admin/add.gif" alt="{l s='Create new manufacturer'}" title="{l s='Create new manufacturer'}" />
|
<img src="../img/admin/add.gif" alt="{l s='Create new manufacturer'}" title="{l s='Create new manufacturer'}" />
|
||||||
|
|||||||
@@ -85,7 +85,7 @@
|
|||||||
</td>
|
</td>
|
||||||
<td style="padding-bottom:5px;">
|
<td style="padding-bottom:5px;">
|
||||||
<select name="attribute" id="attribute" style="width: 200px;">
|
<select name="attribute" id="attribute" style="width: 200px;">
|
||||||
<option value="0">-</option>
|
<option value="0">---</option>
|
||||||
</select>
|
</select>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
@@ -252,7 +252,7 @@
|
|||||||
<li style="float: left; width: {$imageWidth}px;">
|
<li style="float: left; width: {$imageWidth}px;">
|
||||||
<input type="checkbox" name="id_image_attr[]" value="{$image.id_image}" id="id_image_attr_{$image.id_image}" />
|
<input type="checkbox" name="id_image_attr[]" value="{$image.id_image}" id="id_image_attr_{$image.id_image}" />
|
||||||
<label for="id_image_attr_{$image.id_image}" style="float: none;">
|
<label for="id_image_attr_{$image.id_image}" style="float: none;">
|
||||||
<img src="{$smarty.const._THEME_PROD_DIR_}{$image.obj->getExistingImgPath()}-{$imageType}.jpg" alt="{$image.legend|escape:'htmlall':'UTF-8'}" title="{$image.legend|escape:'htmlall':'UTF-8'}" />
|
<img src="{$smarty.const._THEME_PROD_DIR_}{$image.obj->getExistingImgPath()}-small_default.jpg" alt="{$image.legend|escape:'htmlall':'UTF-8'}" title="{$image.legend|escape:'htmlall':'UTF-8'}" />
|
||||||
</label>
|
</label>
|
||||||
</li>
|
</li>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
|
|||||||
@@ -29,19 +29,6 @@
|
|||||||
<h4>{if isset($id_image)}{l s='Edit this product image'}{else}{l s='Add a new image to this product'}{/if}</h4> <div class="separation"></div><br />
|
<h4>{if isset($id_image)}{l s='Edit this product image'}{else}{l s='Add a new image to this product'}{/if}</h4> <div class="separation"></div><br />
|
||||||
|
|
||||||
<table cellpadding="5" style="width:100%">
|
<table cellpadding="5" style="width:100%">
|
||||||
<tr>
|
|
||||||
<td class="col-left">
|
|
||||||
<label>{l s='Legend:'}</label>
|
|
||||||
</td>
|
|
||||||
<td style="padding-bottom:5px;" class="translatable">
|
|
||||||
{foreach from=$languages item=language}
|
|
||||||
<div class="lang_{$language.id_lang}" style="{if !$language.is_default}display: none;{/if} float: left;">
|
|
||||||
<input class="updateCurrentText" size="43" type="text" {if !$product->id}disabled="disabled"{/if} id="legend_{$language.id_lang}" name="legend_{$language.id_lang}" value="{$product->name[$language.id_lang]|escape:'htmlall':'UTF-8'}"/>
|
|
||||||
<span class="hint" name="help_box">{l s='Invalid characters:'} <>;=#{}<span class="hint-pointer"> </span></span>
|
|
||||||
</div>
|
|
||||||
{/foreach}
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
<tr>
|
||||||
<td class="col-left"><label class="file_upload_label">{l s='File:'}</label></td>
|
<td class="col-left"><label class="file_upload_label">{l s='File:'}</label></td>
|
||||||
<td style="padding-bottom:5px;">
|
<td style="padding-bottom:5px;">
|
||||||
@@ -70,7 +57,6 @@
|
|||||||
<thead>
|
<thead>
|
||||||
<tr class="nodrag nodrop">
|
<tr class="nodrag nodrop">
|
||||||
<th style="width: 100px;">{l s='Image'}</th>
|
<th style="width: 100px;">{l s='Image'}</th>
|
||||||
<th>{l s='Legend'}</th>
|
|
||||||
<th>{l s='Position'}</th>
|
<th>{l s='Position'}</th>
|
||||||
{if $shops}
|
{if $shops}
|
||||||
{foreach from=$shops item=shop}
|
{foreach from=$shops item=shop}
|
||||||
@@ -92,10 +78,9 @@
|
|||||||
<tr id="image_id">
|
<tr id="image_id">
|
||||||
<td style="padding: 4px;">
|
<td style="padding: 4px;">
|
||||||
<a href="{$smarty.const._THEME_PROD_DIR_}image_path.jpg" class="fancybox">
|
<a href="{$smarty.const._THEME_PROD_DIR_}image_path.jpg" class="fancybox">
|
||||||
<img src="{$smarty.const._THEME_PROD_DIR_}{$iso_lang}-default-{$imageType}.jpg" alt="legend" title="legend" />
|
<img src="{$smarty.const._THEME_PROD_DIR_}en-default-small_default.jpg" alt="image_id" title="image_id" />
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
<td>legend</td>
|
|
||||||
<td id="td_image_id" class="pointer dragHandle center positionImage">
|
<td id="td_image_id" class="pointer dragHandle center positionImage">
|
||||||
image_position
|
image_position
|
||||||
</td>
|
</td>
|
||||||
@@ -116,6 +101,7 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var upbutton = '{l s='Upload an image'}';
|
var upbutton = '{l s='Upload an image'}';
|
||||||
var token = '{$token}';
|
var token = '{$token}';
|
||||||
@@ -142,7 +128,7 @@
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
assoc = false;
|
assoc = false;
|
||||||
imageLine({$image->id}, "{$image->getExistingImgPath()}", {$image->position}, "{if $image->cover}enabled{else}forbbiden{/if}", assoc, "{$image->legend[$default_language]|@addcslashes:'\"'}");
|
imageLine({$image->id}, "{$image->getExistingImgPath()}", {$image->position}, "{if $image->cover}enabled{else}forbbiden{/if}", assoc);
|
||||||
{/foreach}
|
{/foreach}
|
||||||
{literal}
|
{literal}
|
||||||
$("#imageTable").tableDnD(
|
$("#imageTable").tableDnD(
|
||||||
@@ -161,20 +147,20 @@
|
|||||||
updateImagePosition(image_up);
|
updateImagePosition(image_up);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
var filecheck = 1;
|
var filecheck = 1;
|
||||||
var params = new Array;
|
var uploader = new qq.FileUploader(
|
||||||
params['id_product'] = {/literal}{$id_product|intval}{literal};
|
|
||||||
params['id_category'] = {/literal}{$id_category_default|intval}{literal};
|
|
||||||
params['token'] = "{/literal}{$token}{literal}";
|
|
||||||
params['tab'] = "AdminProducts";
|
|
||||||
params['action'] = "addImage";
|
|
||||||
params['ajax'] = 1;
|
|
||||||
uploader = new qq.FileUploader(
|
|
||||||
{
|
{
|
||||||
element: document.getElementById("file-uploader"),
|
element: document.getElementById("file-uploader"),
|
||||||
action: "ajax-tab.php",
|
action: "ajax-tab.php",
|
||||||
debug: false,
|
debug: false,
|
||||||
|
params: {
|
||||||
|
id_product : {/literal}{$id_product}{literal},
|
||||||
|
id_category : {/literal}{$id_category_default}{literal},
|
||||||
|
token : "{/literal}{$token}{literal}",
|
||||||
|
tab : "AdminProducts",
|
||||||
|
action : 'addImage',
|
||||||
|
ajax: 1
|
||||||
|
},
|
||||||
onComplete: function(id, fileName, responseJSON)
|
onComplete: function(id, fileName, responseJSON)
|
||||||
{
|
{
|
||||||
var percent = ((filecheck * 100) / nbfile);
|
var percent = ((filecheck * 100) / nbfile);
|
||||||
@@ -199,7 +185,7 @@
|
|||||||
cover = "forbbiden";
|
cover = "forbbiden";
|
||||||
if (responseJSON.cover == "1")
|
if (responseJSON.cover == "1")
|
||||||
cover = "enabled";
|
cover = "enabled";
|
||||||
imageLine(responseJSON.id, responseJSON.path, responseJSON.position, cover, responseJSON.shops, responseJSON.legend[{/literal}{$default_language|intval}{literal}])
|
imageLine(responseJSON.id, responseJSON.path, responseJSON.position, cover, responseJSON.shops)
|
||||||
$("#imageTable tr:last").after(responseJSON.html);
|
$("#imageTable tr:last").after(responseJSON.html);
|
||||||
$("#countImage").html(parseInt($("#countImage").html()) + 1);
|
$("#countImage").html(parseInt($("#countImage").html()) + 1);
|
||||||
$("#img" + id).remove();
|
$("#img" + id).remove();
|
||||||
@@ -212,12 +198,6 @@
|
|||||||
},
|
},
|
||||||
onSubmit: function(id, filename)
|
onSubmit: function(id, filename)
|
||||||
{
|
{
|
||||||
$('input[id^="legend_"]').each(function()
|
|
||||||
{
|
|
||||||
id = $(this).prop("id").replace("legend_", "legend[") + "]";
|
|
||||||
params[id] = $(this).val();
|
|
||||||
});
|
|
||||||
uploader.setParams(params);
|
|
||||||
$("#imageTable").show();
|
$("#imageTable").show();
|
||||||
$("#listImage").append("<li id='img"+id+"'><div class=\"float\" >" + filename + "</div></div><a style=\"margin-left:10px\"href=\"javascript:delQueue(" + id +");\"><img src=\"../img/admin/disabled.gif\" alt=\"\" border=\"0\"></a><p class=\"errorImg\"></p></li>");
|
$("#listImage").append("<li id='img"+id+"'><div class=\"float\" >" + filename + "</div></div><a style=\"margin-left:10px\"href=\"javascript:delQueue(" + id +");\"><img src=\"../img/admin/disabled.gif\" alt=\"\" border=\"0\"></a><p class=\"errorImg\"></p></li>");
|
||||||
}
|
}
|
||||||
@@ -329,18 +309,16 @@
|
|||||||
$("#img" + id).remove();
|
$("#img" + id).remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
function imageLine(id, path, position, cover, shops, legend)
|
function imageLine(id, path, position, cover, shops)
|
||||||
{
|
{
|
||||||
line = $("#lineType").html();
|
line = $("#lineType").html();
|
||||||
line = line.replace(/image_id/g, id);
|
line = line.replace(/image_id/g, id);
|
||||||
line = line.replace(/[a-z]{0,2}-default/g, path);
|
line = line.replace(/en-default/g, path);
|
||||||
line = line.replace(/image_path/g, path);
|
line = line.replace(/image_path/g, path);
|
||||||
line = line.replace(/image_position/g, position);
|
line = line.replace(/image_position/g, position);
|
||||||
line = line.replace(/legend/g, legend);
|
|
||||||
line = line.replace(/blank/g, cover);
|
line = line.replace(/blank/g, cover);
|
||||||
line = line.replace(/<tbody>/gi, "");
|
line = line.replace(/<tbody>/gi, "");
|
||||||
line = line.replace(/<\/tbody>/gi, "");
|
line = line.replace(/<\/tbody>/gi, "");
|
||||||
|
|
||||||
if (shops != false)
|
if (shops != false)
|
||||||
{
|
{
|
||||||
$.each(shops, function(key, value){
|
$.each(shops, function(key, value){
|
||||||
@@ -348,7 +326,6 @@
|
|||||||
line = line.replace('id="' + key + '' + id + '"','id="' + key + '' + id + '" checked=checked');
|
line = line.replace('id="' + key + '' + id + '"','id="' + key + '' + id + '" checked=checked');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
$("#imageList").append(line);
|
$("#imageList").append(line);
|
||||||
}
|
}
|
||||||
$('.fancybox').fancybox();
|
$('.fancybox').fancybox();
|
||||||
|
|||||||
@@ -166,7 +166,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr class="redirect_product_options" style="display:none">
|
<tr class="redirect_product_options" style="display:none">
|
||||||
<td class="col-left">
|
<td class="col-left">
|
||||||
{include file="controllers/products/multishop/checkbox.tpl" field="redirect_type" type="radio" onclick=""}
|
{include file="controllers/products/multishop/checkbox.tpl" field="active" type="radio" onclick=""}
|
||||||
<label class="text">{l s='Redirect:'}</label>
|
<label class="text">{l s='Redirect:'}</label>
|
||||||
</td>
|
</td>
|
||||||
<td style="padding-bottom:5px;">
|
<td style="padding-bottom:5px;">
|
||||||
@@ -184,7 +184,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr class="redirect_product_options redirect_product_options_product_choise" style="display:none">
|
<tr class="redirect_product_options redirect_product_options_product_choise" style="display:none">
|
||||||
<td class="col-left">
|
<td class="col-left">
|
||||||
{include file="controllers/products/multishop/checkbox.tpl" field="id_product_redirected" type="radio" onclick=""}
|
{include file="controllers/products/multishop/checkbox.tpl" field="active" type="radio" onclick=""}
|
||||||
<label class="text">{l s='Related product:'}</label>
|
<label class="text">{l s='Related product:'}</label>
|
||||||
</td>
|
</td>
|
||||||
<td style="padding-bottom:5px;">
|
<td style="padding-bottom:5px;">
|
||||||
@@ -375,19 +375,8 @@
|
|||||||
<td style="padding-bottom:5px;" class="translatable">
|
<td style="padding-bottom:5px;" class="translatable">
|
||||||
{foreach from=$languages item=language}
|
{foreach from=$languages item=language}
|
||||||
<div class="lang_{$language.id_lang}" style="{if !$language.is_default}display: none;{/if}float: left;">
|
<div class="lang_{$language.id_lang}" style="{if !$language.is_default}display: none;{/if}float: left;">
|
||||||
{literal}
|
|
||||||
<script type="text/javascript">
|
|
||||||
$().ready(function () {
|
|
||||||
var input_id = '{/literal}tags_{$language.id_lang}{literal}';
|
|
||||||
$('#'+input_id).tagify({delimiters: [13,44], addTagPrompt: '{/literal}{l s='Add tag' js=1}{literal}'});
|
|
||||||
$({/literal}'#{$table}{literal}_form').submit( function() {
|
|
||||||
$(this).find('#'+input_id).val($('#'+input_id).tagify('serialize'));
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
{/literal}
|
|
||||||
<input size="55" type="text" id="tags_{$language.id_lang}" name="tags_{$language.id_lang}"
|
<input size="55" type="text" id="tags_{$language.id_lang}" name="tags_{$language.id_lang}"
|
||||||
value="{$product->getTags($language.id_lang, true)|htmlentitiesUTF8}" class="tagify" />
|
value="{$product->getTags($language.id_lang, true)|htmlentitiesUTF8}" />
|
||||||
<span class="hint" name="help_box">{l s='Forbidden characters:'} !<;>;?=+#"°{}_$%<span class="hint-pointer"> </span></span>
|
<span class="hint" name="help_box">{l s='Forbidden characters:'} !<;>;?=+#"°{}_$%<span class="hint-pointer"> </span></span>
|
||||||
</div>
|
</div>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
<input size="30" type="text" id="{$input_name}_{$language.id_lang}"
|
<input size="30" type="text" id="{$input_name}_{$language.id_lang}"
|
||||||
name="{$input_name}_{$language.id_lang}"
|
name="{$input_name}_{$language.id_lang}"
|
||||||
value="{$input_value[$language.id_lang]|htmlentitiesUTF8|default:''}"
|
value="{$input_value[$language.id_lang]|htmlentitiesUTF8|default:''}"
|
||||||
onkeyup="if (isArrowKey(event)) return ;updateFriendlyURL();" onblur="updateLinkRewrite();"/>
|
onkeyup="if (isArrowKey(event)) return ;updateFriendlyURL();"/>
|
||||||
</div>
|
</div>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -24,8 +24,8 @@
|
|||||||
*}
|
*}
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var msg_select_one = "{l s='Please select at least one product.' js=1}";
|
var msg_select_one = "{l s="Please select at least one product." js=1}";
|
||||||
var msg_set_quantity = "{l s='Please set a quantity to add a product.' js=1}";
|
var msg_set_quantity = "{l s="Please set a quantity to add a product." js=1}";
|
||||||
</script>
|
</script>
|
||||||
<input type="hidden" name="submitted_tabs[]" value="Pack" />
|
<input type="hidden" name="submitted_tabs[]" value="Pack" />
|
||||||
<h4>{l s='Pack'}</h4>
|
<h4>{l s='Pack'}</h4>
|
||||||
|
|||||||
@@ -178,7 +178,7 @@ $(document).ready(function () {
|
|||||||
</tr>
|
</tr>
|
||||||
<tr {if !$ps_use_ecotax} style="display:none;"{/if}>
|
<tr {if !$ps_use_ecotax} style="display:none;"{/if}>
|
||||||
<td class="col-left">
|
<td class="col-left">
|
||||||
{include file="controllers/products/multishop/checkbox.tpl" field="ecotax" type="default"}
|
{include file="controllers/products/multishop/checkbox.tpl" field="ecot" type="default"}
|
||||||
<label>{l s='Eco-tax (tax incl.):'}</label>
|
<label>{l s='Eco-tax (tax incl.):'}</label>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
@@ -223,7 +223,7 @@ $(document).ready(function () {
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="col-left"><label><b>{l s='Final retail price:'}</b></label></td>
|
<td class="col-left"><label><b>{l s='Final retail price:'}</b></label></td>
|
||||||
<td>
|
<td>
|
||||||
<span>
|
<span {if !$country_display_tax_label}style="display:none"{/if} >
|
||||||
{$currency->prefix}<span id="finalPrice" style="font-weight: bold;">0.00</span>{$currency->suffix}<span {if $ps_tax}style="display:none;"{/if}> ({l s='tax incl.'})</span>
|
{$currency->prefix}<span id="finalPrice" style="font-weight: bold;">0.00</span>{$currency->suffix}<span {if $ps_tax}style="display:none;"{/if}> ({l s='tax incl.'})</span>
|
||||||
</span>
|
</span>
|
||||||
<span {if $ps_tax}style="display:none;"{/if} >
|
<span {if $ps_tax}style="display:none;"{/if} >
|
||||||
@@ -249,7 +249,7 @@ $(document).ready(function () {
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var product_prices = new Array();
|
var product_prices = new Array();
|
||||||
{foreach from=$combinations item='combination'}
|
{foreach from=$combinations item='combination'}
|
||||||
product_prices['{$combination.id_product_attribute}'] = '{$combination.price|@addcslashes:'\''}';
|
product_prices['{$combination.id_product_attribute}'] = '{$combination.price}';
|
||||||
{/foreach}
|
{/foreach}
|
||||||
</script>
|
</script>
|
||||||
<div id="add_specific_price" style="display: none;">
|
<div id="add_specific_price" style="display: none;">
|
||||||
@@ -375,7 +375,7 @@ $(document).ready(function () {
|
|||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<input type="text" name="sp_reduction" value="0.00" size="11" />
|
<input type="text" name="sp_reduction" value="0.00" size="11" />
|
||||||
<select name="sp_reduction_type">
|
<select name="sp_reduction_type">
|
||||||
<option selected="selected">-</option>
|
<option selected="selected">---</option>
|
||||||
<option value="amount">{l s='Amount'}</option>
|
<option value="amount">{l s='Amount'}</option>
|
||||||
<option value="percentage">{l s='Percentage'}</option>
|
<option value="percentage">{l s='Percentage'}</option>
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
@@ -71,7 +71,7 @@
|
|||||||
<label>{l s='Carriers:'}</label>
|
<label>{l s='Carriers:'}</label>
|
||||||
</td>
|
</td>
|
||||||
<td class="padding-bottom:5px;">
|
<td class="padding-bottom:5px;">
|
||||||
<select name="carriers[]" id="carriers_restriction" multiple="multiple" size="4" style="height:100px;width:300px;">
|
<select name="carriers[]" id="carriers_restriction" multiple="multiple" size="4" style="height:100px;width:200px;">
|
||||||
{foreach $carrier_list as $carrier}
|
{foreach $carrier_list as $carrier}
|
||||||
<option value="{$carrier.id_reference}" {if isset($carrier.selected) && $carrier.selected}selected="selected"{/if}>{$carrier.name}</option>
|
<option value="{$carrier.id_reference}" {if isset($carrier.selected) && $carrier.selected}selected="selected"{/if}>{$carrier.name}</option>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
@@ -88,4 +88,4 @@
|
|||||||
$('#carriers_restriction option').each(function () { $(this).removeAttr('selected')});
|
$('#carriers_restriction option').each(function () { $(this).removeAttr('selected')});
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@@ -75,7 +75,7 @@
|
|||||||
<p>{l s='Click "Save and Stay" after changing selected suppliers to display the associated product references.'}</p>
|
<p>{l s='Click "Save and Stay" after changing selected suppliers to display the associated product references.'}</p>
|
||||||
<div id="suppliers_accordion" style="margin-top:10px; display:block;">
|
<div id="suppliers_accordion" style="margin-top:10px; display:block;">
|
||||||
{foreach from=$associated_suppliers item=supplier}
|
{foreach from=$associated_suppliers item=supplier}
|
||||||
<h3 style="margin-bottom:0;"><a href="#">{if isset($supplier->name)}{$supplier->name}{/if}</a></h3>
|
<h3 style="margin-bottom:0;"><a href="#">{$supplier->name}</a></h3>
|
||||||
<div style="display:block;">
|
<div style="display:block;">
|
||||||
|
|
||||||
<table cellpadding="10" cellspacing="0" class="table">
|
<table cellpadding="10" cellspacing="0" class="table">
|
||||||
|
|||||||
@@ -58,7 +58,6 @@
|
|||||||
$('#file_missing').hide();
|
$('#file_missing').hide();
|
||||||
$('#virtual_product_name').attr('value', fileName);
|
$('#virtual_product_name').attr('value', fileName);
|
||||||
$("#upload-confirmation .error").remove();
|
$("#upload-confirmation .error").remove();
|
||||||
$('#upload-confirmation div').find('span').remove();
|
|
||||||
$('#upload-confirmation div').prepend('<span>{l s='The file'} "<a class="link" href="get-file-admin.php?file='+msg+'&filename='+fileName+'">'+fileName+'</a>" {l s='has successfully been uploaded'}' +
|
$('#upload-confirmation div').prepend('<span>{l s='The file'} "<a class="link" href="get-file-admin.php?file='+msg+'&filename='+fileName+'">'+fileName+'</a>" {l s='has successfully been uploaded'}' +
|
||||||
'<input type="hidden" id="virtual_product_filename" name="virtual_product_filename" value="' + msg + '" /></span>');
|
'<input type="hidden" id="virtual_product_filename" name="virtual_product_filename" value="' + msg + '" /></span>');
|
||||||
$("#upload-confirmation").show();
|
$("#upload-confirmation").show();
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
{l s='The field `request_uri` is the URL from which the customers come to your website.'}<br />
|
{l s='The field `request_uri` is the URL from which the customers come to your website.'}<br />
|
||||||
{l s='For example, if the visitor accesses a product page, the URL will be'} "{$uri}music-ipods/1-ipod-nano.html".<br />
|
{l s='For example, if the visitor accesses a product page, the URL will be'} "{$uri}music-ipods/1-ipod-nano.html".<br />
|
||||||
{l s='This is helpful because you can add tags or tokens in the links pointing to your website.'}
|
{l s='This is helpful because you can add tags or tokens in the links pointing to your website.'}
|
||||||
{l s='For example, you can post a link "%1$sindex.php?prestashop" in the forum and get statistics by entering "%%prestashop" in the field `request_uri`. ' sprintf=[$uri]}
|
{l s='For example, you can post a link "%dindex.php?prestashop" in the forum and get statistics by entering "%prestashop" in the field `request_uri`. '}
|
||||||
{l s='This method is more reliable than the `http_referer`, but there is one disadvantage. If a search engine references a page with your link, then it will be displayed in the search results and you will not only have visitors from the forum, but also those from the search engine.'}
|
{l s='This method is more reliable than the `http_referer`, but there is one disadvantage. If a search engine references a page with your link, then it will be displayed in the search results and you will not only have visitors from the forum, but also those from the search engine.'}
|
||||||
</li>
|
</li>
|
||||||
<br />
|
<br />
|
||||||
|
|||||||
@@ -112,7 +112,7 @@
|
|||||||
<label>{l s='Filter by product:'}</label>
|
<label>{l s='Filter by product:'}</label>
|
||||||
<div class="margin-left">
|
<div class="margin-left">
|
||||||
<select id="selectProduct" name="selectProduct" style="width: 200px;" onfocus="fillProducts();" onchange="updateConversionRate(this.value);">
|
<select id="selectProduct" name="selectProduct" style="width: 200px;" onfocus="fillProducts();" onchange="updateConversionRate(this.value);">
|
||||||
<option value="0" selected="selected">- {l s='All'} -</option>
|
<option value="0" selected="selected">-- {l s='All'} --</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<br class="clear" />
|
<br class="clear" />
|
||||||
|
|||||||
@@ -90,7 +90,7 @@
|
|||||||
var table = $('#selectTables select').val();
|
var table = $('#selectTables select').val();
|
||||||
|
|
||||||
if (!table)
|
if (!table)
|
||||||
jAlert("{l s='Please choose a table.' js=1}");
|
jAlert("{l s='Please choose a table.' js='1'}");
|
||||||
else
|
else
|
||||||
AddRequestSql(table);
|
AddRequestSql(table);
|
||||||
});
|
});
|
||||||
|
|||||||
+1
-1
@@ -24,7 +24,7 @@
|
|||||||
*}
|
*}
|
||||||
<a href="{$href}" class="delete"
|
<a href="{$href}" class="delete"
|
||||||
{if in_array($id_shop, $shops_having_dependencies)}
|
{if in_array($id_shop, $shops_having_dependencies)}
|
||||||
onclick="jAlert('{l s='You cannot delete this shop\'s (customer and/or order dependency)' js=1}'); return false;"
|
onclick="jAlert('{l s='You cannot delete this shop\'s (customer and/or order dependency)' js='1'}'); return false;"
|
||||||
{elseif isset($confirm)}
|
{elseif isset($confirm)}
|
||||||
onclick="if (confirm('{$confirm}')){ return true; } else { event.stopPropagation(); event.preventDefault();};"
|
onclick="if (confirm('{$confirm}')){ return true; } else { event.stopPropagation(); event.preventDefault();};"
|
||||||
{/if} title="{$action}">
|
{/if} title="{$action}">
|
||||||
|
|||||||
+3
-10
@@ -41,7 +41,7 @@
|
|||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<select id="id_category" name="id_category">
|
<select id="id_category" name="id_category">
|
||||||
{foreach from=$categories item='category'}
|
{foreach from=$categories item='category'}
|
||||||
<option value="{$category.id_category|intval}">({$category.id_category|intval}) {$category.name}</option>
|
<option value="{$category.id_category}">{$category.name}</option>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
</select>
|
</select>
|
||||||
<a class="button bt-icon" href="#" id="add_condition_category">
|
<a class="button bt-icon" href="#" id="add_condition_category">
|
||||||
@@ -161,13 +161,6 @@ function add_condition(id_condition_group, type, value)
|
|||||||
function delete_condition(condition)
|
function delete_condition(condition)
|
||||||
{
|
{
|
||||||
delete conditions[condition];
|
delete conditions[condition];
|
||||||
|
|
||||||
to_delete = $('#'+condition).prev();
|
|
||||||
if ($(to_delete).children().hasClass('btn_delete_condition'))
|
|
||||||
$(to_delete).remove();
|
|
||||||
else
|
|
||||||
$('#'+condition).next().remove();
|
|
||||||
|
|
||||||
$('#'+condition).remove();
|
$('#'+condition).remove();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -185,7 +178,7 @@ function new_condition_group()
|
|||||||
function appendConditionToGroup(html)
|
function appendConditionToGroup(html)
|
||||||
{
|
{
|
||||||
if ($('#condition_group_'+current_id_condition_group+' table tbody tr').length > 0)
|
if ($('#condition_group_'+current_id_condition_group+' table tbody tr').length > 0)
|
||||||
$('#condition_group_'+current_id_condition_group+' table tbody').append('<tr><td align="center" class="btn_delete_condition" colspan="3"><b>{l s='AND' js=1}</b></td></tr>');
|
$('#condition_group_'+current_id_condition_group+' table tbody').append('<tr><td align="center" colspan="3"><b>{l s='AND' js=1}</b></td></tr>');
|
||||||
$('#condition_group_'+current_id_condition_group+' table tbody').append(html);
|
$('#condition_group_'+current_id_condition_group+' table tbody').append(html);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -291,7 +284,7 @@ $(document).ready(function() {
|
|||||||
$('#id_attribute_group option[value="{$condition.id_attribute_group}"]').attr('selected', true);
|
$('#id_attribute_group option[value="{$condition.id_attribute_group}"]').attr('selected', true);
|
||||||
$('#id_attribute_{$condition.id_attribute_group} option[value="{$condition.value}"]').attr('selected', true);
|
$('#id_attribute_{$condition.id_attribute_group} option[value="{$condition.value}"]').attr('selected', true);
|
||||||
{elseif $condition.type == 'feature'}
|
{elseif $condition.type == 'feature'}
|
||||||
$('#id_feature option[value="{$condition.id_feature}"]').attr('selected', true);
|
$('#id_feature[value="{$condition.id_feature}"]').attr('selected', true);
|
||||||
$('#id_feature_{$condition.id_feature} option[value="{$condition.value}"]').attr('selected', true);
|
$('#id_feature_{$condition.id_feature} option[value="{$condition.value}"]').attr('selected', true);
|
||||||
{else}
|
{else}
|
||||||
$('#id_{$condition.type} option[value="{$condition.value}"]').attr('selected', true);
|
$('#id_{$condition.type} option[value="{$condition.value}"]').attr('selected', true);
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
<div id="statsContainer">
|
<div id="statsContainer">
|
||||||
<div id="calendar">
|
<div id="calendar">
|
||||||
<form action="{$current}&token={$token}{if $action && $table}&{$action|escape}{$table|escape}{/if}{if $identifier && $id}&{$identifier|escape}={$id|escape}{/if}{if isset($smarty.get.module)}&module={$smarty.get.module|escape}{/if}{if isset($smarty.get.id_product)}&id_product={$smarty.get.id_product|escape}{/if}" method="post" id="calendar_form" name="calendar_form">
|
<form action="{$current}&token={$token}{if $action && $table}&{$action|escape}{$table|escape}{/if}{if $identifier && $id}&{$identifier|escape}={$id|escape}{/if}" method="post" id="calendar_form" name="calendar_form">
|
||||||
<input type="submit" name="submitDateDay" class="button submitDateDay" value="{$translations.Day}">
|
<input type="submit" name="submitDateDay" class="button submitDateDay" value="{$translations.Day}">
|
||||||
<input type="submit" name="submitDateMonth" class="button submitDateMonth" value="{$translations.Month}">
|
<input type="submit" name="submitDateMonth" class="button submitDateMonth" value="{$translations.Month}">
|
||||||
<input type="submit" name="submitDateYear" class="button submitDateYear" value="{$translations.Year}">
|
<input type="submit" name="submitDateYear" class="button submitDateYear" value="{$translations.Year}">
|
||||||
@@ -51,4 +51,4 @@
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
</div>
|
</div>
|
||||||
@@ -30,9 +30,9 @@
|
|||||||
function ajaxStoreStates(id_state_selected)
|
function ajaxStoreStates(id_state_selected)
|
||||||
{
|
{
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: "index.php",
|
url: "ajax.php",
|
||||||
cache: false,
|
cache: false,
|
||||||
data: "ajax=1&tab=AdminStates&token={getAdminToken tab='AdminStates'}&action=states&id_country="+$('#PS_SHOP_COUNTRY_ID').val() + "&id_state=" + $('#PS_SHOP_STATE_ID').val(),
|
data: "ajaxStates=1&id_country="+$('#PS_SHOP_COUNTRY_ID').val() + "&id_state=" + $('#PS_SHOP_STATE_ID').val(),
|
||||||
success: function(html)
|
success: function(html)
|
||||||
{
|
{
|
||||||
if (html == 'false')
|
if (html == 'false')
|
||||||
|
|||||||
@@ -138,7 +138,7 @@
|
|||||||
// check if it's possible to add the product
|
// check if it's possible to add the product
|
||||||
if (product_infos == null || $('#cur_product_name').val() == '')
|
if (product_infos == null || $('#cur_product_name').val() == '')
|
||||||
{
|
{
|
||||||
jAlert('{l s='Please select at least one product.' js=1}');
|
jAlert('{l s='Please select at least one product.' js='1'}');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -54,7 +54,7 @@ $(document).ready(function() {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<input type="submit" id="{$table}_form_submit_btn" value="{l s='Save'}" name="submitChangestate" class="button" style="display: none;">
|
<input type="submit" id="_form_submit_btn" value="{l s='Save'}" name="submitChangestate" class="button" style="display: none;">
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
{/block}
|
{/block}
|
||||||
|
|||||||
@@ -60,9 +60,9 @@
|
|||||||
$("#states-label").hide();
|
$("#states-label").hide();
|
||||||
} else {
|
} else {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: "index.php",
|
url: "ajax.php",
|
||||||
cache: false,
|
cache: false,
|
||||||
data: "ajax=1&tab=AdminStates&token={getAdminToken tab='AdminStates'}&action=states&id_country="+id_country+"&id_state="+id_state+"&empty_value={l s='All'}",
|
data: "ajaxStates=1&id_country="+id_country+"&id_state="+id_state+"&empty_value={l s='All'}",
|
||||||
success: function(html){
|
success: function(html){
|
||||||
if (html == "false")
|
if (html == "false")
|
||||||
{
|
{
|
||||||
@@ -88,10 +88,10 @@
|
|||||||
{
|
{
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
url: 'index.php',
|
url: 'ajax.php',
|
||||||
async: true,
|
async: true,
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
data: 'ajax=1&tab=AdminTaxRulesGroup&token={getAdminToken tab='AdminTaxRulesGroup'}&ajaxStates=1&action=updateTaxRule&id_tax_rule='+id_tax_rule,
|
data: 'ajaxStates=1&ajaxUpdateTaxRule=1&id_tax_rule='+id_tax_rule,
|
||||||
success: function(data){
|
success: function(data){
|
||||||
$('#tax_rule_form').show();
|
$('#tax_rule_form').show();
|
||||||
$('#id_tax_rule').val(data.id);
|
$('#id_tax_rule').val(data.id);
|
||||||
|
|||||||
+9
-9
@@ -33,22 +33,22 @@
|
|||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<form method="post" action="{$currentIndex}&{$identifier}&token={$token}&id_tax_rules_group={$id_tax_rules_group}&updatetax_rules_group#{$table}" class="form">
|
<form method="post" action="{$currentIndex}&{$identifier}&token={$token}&id_tax_rules_group={$id_tax_rules_group}&updatetax_rules_group#{$table}" class="form">
|
||||||
<input type="hidden" id="submitFilter{$list_id}" name="submitFilter{$list_id}" value="0"/>
|
<input type="hidden" id="submitFilter{$table}" name="submitFilter{$table}" value="0"/>
|
||||||
<table class="table_grid">
|
<table class="table_grid">
|
||||||
<tr>
|
<tr>
|
||||||
<td style="vertical-align: bottom;">
|
<td style="vertical-align: bottom;">
|
||||||
<span style="float: left;">
|
<span style="float: left;">
|
||||||
{if $page > 1}
|
{if $page > 1}
|
||||||
<input type="image" src="../img/admin/list-prev2.gif" onclick="getE('submitFilter{$list_id}').value=1"/>
|
<input type="image" src="../img/admin/list-prev2.gif" onclick="getE('submitFilter{$table}').value=1"/>
|
||||||
<input type="image" src="../img/admin/list-prev.gif" onclick="getE('submitFilter{$list_id}').value={$page - 1}"/>
|
<input type="image" src="../img/admin/list-prev.gif" onclick="getE('submitFilter{$table}').value={$page - 1}"/>
|
||||||
{/if}
|
{/if}
|
||||||
{l s='Page'} <b>{$page}</b> / {$total_pages}
|
{l s='Page'} <b>{$page}</b> / {$total_pages}
|
||||||
{if $page < $total_pages}
|
{if $page < $total_pages}
|
||||||
<input type="image" src="../img/admin/list-next.gif" onclick="getE('submitFilter{$list_id}').value={$page + 1};"/>
|
<input type="image" src="../img/admin/list-next.gif" onclick="getE('submitFilter{$table}').value={$page + 1};"/>
|
||||||
<input type="image" src="../img/admin/list-next2.gif" onclick="getE('submitFilter{$list_id}').value={$total_pages}"/>
|
<input type="image" src="../img/admin/list-next2.gif" onclick="getE('submitFilter{$table}').value={$total_pages}"/>
|
||||||
{/if}
|
{/if}
|
||||||
| {l s='Display'}
|
| {l s='Display'}
|
||||||
<select name="{$list_id}_pagination" onchange="submit()">
|
<select name="pagination" onchange="submit()">
|
||||||
{* Choose number of results per page *}
|
{* Choose number of results per page *}
|
||||||
{foreach $pagination AS $value}
|
{foreach $pagination AS $value}
|
||||||
<option value="{$value|intval}"{if $selected_pagination == $value} selected="selected" {elseif $selected_pagination == NULL && $value == $pagination[1]} selected="selected2"{/if}>{$value|intval}</option>
|
<option value="{$value|intval}"{if $selected_pagination == $value} selected="selected" {elseif $selected_pagination == NULL && $value == $pagination[1]} selected="selected2"{/if}>{$value|intval}</option>
|
||||||
@@ -57,7 +57,7 @@
|
|||||||
/ {$list_total} {l s='result(s)'}
|
/ {$list_total} {l s='result(s)'}
|
||||||
</span>
|
</span>
|
||||||
<span style="float: right;">
|
<span style="float: right;">
|
||||||
<input type="submit" name="submitReset{$list_id}" value="{l s='Reset'}" class="button" />
|
<input type="submit" name="submitReset{$table}" value="{l s='Reset'}" class="button" />
|
||||||
</span>
|
</span>
|
||||||
<span class="clear"></span>
|
<span class="clear"></span>
|
||||||
</td>
|
</td>
|
||||||
@@ -66,7 +66,7 @@
|
|||||||
<td>
|
<td>
|
||||||
<table
|
<table
|
||||||
{if $table_id} id={$table_id}{/if}
|
{if $table_id} id={$table_id}{/if}
|
||||||
class="table {if $table_dnd}tableDnD{/if} {$list_id}"
|
class="table {if $table_dnd}tableDnD{/if} {$table}"
|
||||||
cellpadding="0" cellspacing="0"
|
cellpadding="0" cellspacing="0"
|
||||||
style="width: 100%; margin-bottom:10px;"
|
style="width: 100%; margin-bottom:10px;"
|
||||||
>
|
>
|
||||||
@@ -84,7 +84,7 @@
|
|||||||
<tr class="nodrag nodrop">
|
<tr class="nodrag nodrop">
|
||||||
<th class="center">
|
<th class="center">
|
||||||
{if $has_bulk_actions}
|
{if $has_bulk_actions}
|
||||||
<input type="checkbox" name="checkme" class="noborder" onclick="checkDelBoxes(this.form, '{$list_id}Box[]', this.checked)" />
|
<input type="checkbox" name="checkme" class="noborder" onclick="checkDelBoxes(this.form, '{$table}Box[]', this.checked)" />
|
||||||
{/if}
|
{/if}
|
||||||
</th>
|
</th>
|
||||||
{foreach $fields_display AS $key => $params}
|
{foreach $fields_display AS $key => $params}
|
||||||
|
|||||||
@@ -35,12 +35,11 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="footerRight">
|
<div class="footerRight">
|
||||||
{if $iso_is_fr}
|
{if $iso_is_fr}
|
||||||
<span>Questions / Renseignements / Formations :</span> <strong>+33 (0)1.40.18.30.04</strong>
|
<span>Questions / Renseignements / Formations :</span> <strong>+33 (0)1.40.18.30.04</strong> de 09h à 18h
|
||||||
{/if}
|
{/if}
|
||||||
| <a href="http://www.prestashop.com/en/contact-us?utm_source=backoffice_footer" target="_blank" class="footer_link">{l s='Contact'}</a>
|
| <a href="http://www.prestashop.com/en/contact_us/" target="_blank" class="footer_link">{l s='Contact'}</a>
|
||||||
| <a href="http://forge.prestashop.com/?utm_source=backoffice_footer" target="_blank" class="footer_link">{l s='Bug Tracker'}</a>
|
| <a href="http://forge.prestashop.com" target="_blank" class="footer_link">{l s='Bug Tracker'}</a>
|
||||||
| <a href="http://www.prestashop.com/forums/?utm_source=backoffice_footer" target="_blank" class="footer_link">{l s='Forum'}</a>
|
| <a href="http://www.prestashop.com/forums/" target="_blank" class="footer_link">{l s='Forum'}</a>
|
||||||
| <a href="http://addons.prestashop.com/?utm_source=backoffice_footer" target="_blank" class="footer_link">{l s='Addons'}</a>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -34,51 +34,54 @@
|
|||||||
<title>{$meta_title} - PrestaShop™</title>
|
<title>{$meta_title} - PrestaShop™</title>
|
||||||
{if $display_header}
|
{if $display_header}
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var help_class_name = '{$controller_name|@addcslashes:'\''}';
|
var help_class_name = '{$controller_name}';
|
||||||
var iso_user = '{$iso_user|@addcslashes:'\''}';
|
var iso_user = '{$iso_user}';
|
||||||
var country_iso_code = '{$country_iso_code|@addcslashes:'\''}';
|
var country_iso_code = '{$country_iso_code}';
|
||||||
var _PS_VERSION_ = '{$smarty.const._PS_VERSION_|@addcslashes:'\''}';
|
var _PS_VERSION_ = '{$smarty.const._PS_VERSION_}';
|
||||||
var helpboxes = {$help_box|intval};
|
|
||||||
var roundMode = {$round_mode|intval};
|
var helpboxes = {$help_box};
|
||||||
{if isset($shop_context)}
|
var roundMode = {$round_mode};
|
||||||
{if $shop_context == Shop::CONTEXT_ALL}
|
{if isset($shop_context)}
|
||||||
var youEditFieldFor = '{l s='A modification of this field will be applied for all shops' js=1}';
|
{if $shop_context == Shop::CONTEXT_ALL}
|
||||||
{elseif $shop_context == Shop::CONTEXT_GROUP}
|
var youEditFieldFor = "{l s='A modification of this field will be applied for all shops' slashes=1 }";
|
||||||
var youEditFieldFor = '{l s='A modification of this field will be applied for all shops of group' js=1} <b>{$shop_name|@addcslashes:'\''}</b>';
|
{elseif $shop_context == Shop::CONTEXT_GROUP}
|
||||||
{else}
|
var youEditFieldFor = "{l s='A modification of this field will be applied for all shops of group ' slashes=1 }<b>{$shop_name}</b>";
|
||||||
var youEditFieldFor = '{l s='A modification of this field will be applied for the shop' js=1} <b>{$shop_name|@addcslashes:'\''}</b>';
|
{else}
|
||||||
{/if}
|
var youEditFieldFor = "{l s='A modification of this field will be applied for the shop ' slashes=1 }<b>{$shop_name}</b>";
|
||||||
{else}
|
{/if}
|
||||||
var youEditFieldFor = '';
|
{else}
|
||||||
{/if}
|
var youEditFieldFor = '';
|
||||||
var autorefresh_notifications = '{$autorefresh_notifications|@addcslashes:'\''}';
|
{/if}
|
||||||
var new_order_msg = '{l s='A new order has been placed on your shop.' js=1}';
|
{* Notifications vars *}
|
||||||
var order_number_msg = '{l s='Order number: ' js=1}';
|
var autorefresh_notifications = '{$autorefresh_notifications}';
|
||||||
var total_msg = '{l s='Total: ' js=1}';
|
var new_order_msg = '{l s='A new order has been placed on your shop.' slashes=1}';
|
||||||
var from_msg = '{l s='From: ' js=1}';
|
var order_number_msg = '{l s='Order number: ' slashes=1}';
|
||||||
var see_order_msg = '{l s='View this order' js=1}';
|
var total_msg = '{l s='Total: ' slashes=1}';
|
||||||
var new_customer_msg = '{l s='A new customer registered on your shop.' js=1}';
|
var from_msg = '{l s='From: ' slashes=1}';
|
||||||
var customer_name_msg = '{l s='Customer name: ' js=1}';
|
var see_order_msg = '{l s='View this order' slashes=1}';
|
||||||
var see_customer_msg = '{l s='View this customer' js=1}';
|
var new_customer_msg = '{l s='A new customer registered on your shop.' slashes=1}';
|
||||||
var new_msg = '{l s='A new message posted on your shop.' js=1}';
|
var customer_name_msg = '{l s='Customer name: ' slashes=1}';
|
||||||
var excerpt_msg = '{l s='Excerpt: ' js=1}';
|
var see_customer_msg = '{l s='View this customer' slashes=1}';
|
||||||
var see_msg = '{l s='Read this message' js=1}';
|
var new_msg = '{l s='A new message posted on your shop.' slashes=1}';
|
||||||
var token_admin_orders = '{getAdminToken tab='AdminOrders'}';
|
var excerpt_msg = '{l s='Excerpt: ' slashes=1}';
|
||||||
var token_admin_customers = '{getAdminToken tab='AdminCustomers'}';
|
var see_msg = '{l s='Read this message' slashes=1}';
|
||||||
var token_admin_customer_threads = '{getAdminToken tab='AdminCustomerThreads'}';
|
var token_admin_orders = '{getAdminToken tab='AdminOrders' slashes=1}';
|
||||||
var currentIndex = '{$currentIndex|@addcslashes:'\''}';
|
var token_admin_customers = '{getAdminToken tab='AdminCustomers' slashes=1}';
|
||||||
var choose_language_translate = '{l s='Choose language' js=1}';
|
var token_admin_customer_threads = '{getAdminToken tab='AdminCustomerThreads' slashes=1}';
|
||||||
|
var currentIndex = '{$currentIndex}';
|
||||||
|
var choose_language_translate = "{l s='Choose language' slashes=1 }";
|
||||||
</script>
|
</script>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{if isset($css_files)}
|
{if isset($css_files)}
|
||||||
{foreach from=$css_files key=css_uri item=media}
|
{foreach from=$css_files key=css_uri item=media}
|
||||||
<link href="{$css_uri}" rel="stylesheet" type="text/css" media="{$media}" />
|
<link href="{$css_uri}" rel="stylesheet" type="text/css" media="{$media}" />
|
||||||
{/foreach}
|
{/foreach}
|
||||||
{/if}
|
{/if}
|
||||||
{if isset($js_files)}
|
{if isset($js_files)}
|
||||||
{foreach from=$js_files item=js_uri}
|
{foreach from=$js_files item=js_uri}
|
||||||
<script type="text/javascript" src="{$js_uri}"></script>
|
<script type="text/javascript" src="{$js_uri}"></script>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
{/if}
|
{/if}
|
||||||
<link rel="icon" type="image/vnd.microsoft.icon" href="{$img_dir}favicon.ico" />
|
<link rel="icon" type="image/vnd.microsoft.icon" href="{$img_dir}favicon.ico" />
|
||||||
<link rel="shortcut icon" type="image/x-icon" href="{$img_dir}favicon.ico" />
|
<link rel="shortcut icon" type="image/x-icon" href="{$img_dir}favicon.ico" />
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
{if isset($fields.title)}<h2>{$fields.title}</h2>{/if}
|
{if isset($fields.title)}<h2>{$fields.title}</h2>{/if}
|
||||||
{block name="defaultForm"}
|
{block name="defaultForm"}
|
||||||
<form id="{if isset($fields.form.form.id_form)}{$fields.form.form.id_form|escape:'htmlall':'UTF-8'}{else}{if $table == null}configuration_form{else}{$table}_form{/if}{/if}" class="defaultForm {$name_controller}" action="{$current}&{if !empty($submit_action)}{$submit_action}=1{/if}&token={$token}" method="post" enctype="multipart/form-data" {if isset($style)}style="{$style}"{/if}>
|
<form id="{if isset($fields.form.form.id_form)}{$fields.form.form.id_form|escape:'htmlall':'UTF-8'}{else}{$table}_form{/if}" class="defaultForm {$name_controller}" action="{$current}&{if !empty($submit_action)}{$submit_action}=1{/if}&token={$token}" method="post" enctype="multipart/form-data" {if isset($style)}style="{$style}"{/if}>
|
||||||
{if $form_id}
|
{if $form_id}
|
||||||
<input type="hidden" name="{$identifier}" id="{$identifier}" value="{$form_id}" />
|
<input type="hidden" name="{$identifier}" id="{$identifier}" value="{$form_id}" />
|
||||||
{/if}
|
{/if}
|
||||||
@@ -68,7 +68,7 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$().ready(function () {
|
$().ready(function () {
|
||||||
var input_id = '{/literal}{if isset($input.id)}{$input.id}_{$language.id_lang}{else}{$input.name}_{$language.id_lang}{/if}{literal}';
|
var input_id = '{/literal}{if isset($input.id)}{$input.id}_{$language.id_lang}{else}{$input.name}_{$language.id_lang}{/if}{literal}';
|
||||||
$('#'+input_id).tagify({delimiters: [13,44], addTagPrompt: '{/literal}{l s='Add tag' js=1}{literal}'});
|
$('#'+input_id).tagify({addTagPrompt: '{/literal}{l s='Add tag' js=1}{literal}'});
|
||||||
$({/literal}'#{$table}{literal}_form').submit( function() {
|
$({/literal}'#{$table}{literal}_form').submit( function() {
|
||||||
$(this).find('#'+input_id).val($('#'+input_id).tagify('serialize'));
|
$(this).find('#'+input_id).val($('#'+input_id).tagify('serialize'));
|
||||||
});
|
});
|
||||||
@@ -97,7 +97,8 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$().ready(function () {
|
$().ready(function () {
|
||||||
var input_id = '{/literal}{if isset($input.id)}{$input.id}{else}{$input.name}{/if}{literal}';
|
var input_id = '{/literal}{if isset($input.id)}{$input.id}{else}{$input.name}{/if}{literal}';
|
||||||
$('#'+input_id).tagify({delimiters: [13,44], addTagPrompt: '{/literal}{l s='Add tag'}{literal}'});
|
$('#'+input_id).tagify();
|
||||||
|
$('#'+input_id).tagify({addTagPrompt: '{/literal}{l s='Add tag'}{literal}'});
|
||||||
$({/literal}'#{$table}{literal}_form').submit( function() {
|
$({/literal}'#{$table}{literal}_form').submit( function() {
|
||||||
$(this).find('#'+input_id).val($('#'+input_id).tagify('serialize'));
|
$(this).find('#'+input_id).val($('#'+input_id).tagify('serialize'));
|
||||||
});
|
});
|
||||||
@@ -167,7 +168,7 @@
|
|||||||
{/if}
|
{/if}
|
||||||
>{$option->$input.options.name}</option>
|
>{$option->$input.options.name}</option>
|
||||||
{elseif $option == "-"}
|
{elseif $option == "-"}
|
||||||
<option value="">-</option>
|
<option value="">--</option>
|
||||||
{else}
|
{else}
|
||||||
<option value="{$option[$input.options.id]}"
|
<option value="{$option[$input.options.id]}"
|
||||||
{if isset($input.multiple)}
|
{if isset($input.multiple)}
|
||||||
@@ -191,7 +192,7 @@
|
|||||||
{/if}
|
{/if}
|
||||||
{elseif $input.type == 'radio'}
|
{elseif $input.type == 'radio'}
|
||||||
{foreach $input.values as $value}
|
{foreach $input.values as $value}
|
||||||
<input type="radio" name="{$input.name}" id="{$value.id}" value="{$value.value|escape:'htmlall':'UTF-8'}"
|
<input type="radio" name="{$input.name}"id="{$value.id}" value="{$value.value|escape:'htmlall':'UTF-8'}"
|
||||||
{if $fields_value[$input.name] == $value.value}checked="checked"{/if}
|
{if $fields_value[$input.name] == $value.value}checked="checked"{/if}
|
||||||
{if isset($input.disabled) && $input.disabled}disabled="disabled"{/if} />
|
{if isset($input.disabled) && $input.disabled}disabled="disabled"{/if} />
|
||||||
<label {if isset($input.class)}class="{$input.class}"{/if} for="{$value.id}">
|
<label {if isset($input.class)}class="{$input.class}"{/if} for="{$value.id}">
|
||||||
@@ -233,29 +234,17 @@
|
|||||||
{/foreach}
|
{/foreach}
|
||||||
{elseif $input.type == 'file'}
|
{elseif $input.type == 'file'}
|
||||||
{if isset($input.display_image) && $input.display_image}
|
{if isset($input.display_image) && $input.display_image}
|
||||||
{if isset($fields_value[$input.name].image) && $fields_value[$input.name].image}
|
{if isset($fields_value.image) && $fields_value.image}
|
||||||
<div id="image">
|
<div id="image">
|
||||||
{$fields_value[$input.name].image}
|
{$fields_value.image}
|
||||||
<p align="center">{l s='File size'} {$fields_value[$input.name].size}{l s='kb'}</p>
|
<p align="center">{l s='File size'} {$fields_value.size}kb</p>
|
||||||
<a href="{$current}&{$identifier}={$form_id}&token={$token}&deleteImage=1">
|
<a href="{$current}&{$identifier}={$form_id}&token={$token}&deleteImage=1">
|
||||||
<img src="../img/admin/delete.gif" alt="{l s='Delete'}" /> {l s='Delete'}
|
<img src="../img/admin/delete.gif" alt="{l s='Delete'}" /> {l s='Delete'}
|
||||||
</a>
|
</a>
|
||||||
</div><br />
|
</div><br />
|
||||||
{/if}
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
|
<input type="file" name="{$input.name}" {if isset($input.id)}id="{$input.id}"{/if} />
|
||||||
{if isset($input.lang) AND $input.lang}
|
|
||||||
<div class="translatable">
|
|
||||||
{foreach $languages as $language}
|
|
||||||
<div class="lang_{$language.id_lang}" id="{$input.name}_{$language.id_lang}" style="display:{if $language.id_lang == $defaultFormLanguage}block{else}none{/if}; float: left;">
|
|
||||||
<input type="file" name="{$input.name}_{$language.id_lang}" {if isset($input.id)}id="{$input.id}_{$language.id_lang}"{/if} />
|
|
||||||
|
|
||||||
</div>
|
|
||||||
{/foreach}
|
|
||||||
</div>
|
|
||||||
{else}
|
|
||||||
<input type="file" name="{$input.name}" {if isset($input.id)}id="{$input.id}"{/if} />
|
|
||||||
{/if}
|
|
||||||
{if !empty($input.hint)}<span class="hint" name="help_box">{$input.hint}<span class="hint-pointer"> </span></span>{/if}
|
{if !empty($input.hint)}<span class="hint" name="help_box">{$input.hint}<span class="hint-pointer"> </span></span>{/if}
|
||||||
{elseif $input.type == 'password'}
|
{elseif $input.type == 'password'}
|
||||||
<input type="password"
|
<input type="password"
|
||||||
@@ -313,6 +302,7 @@
|
|||||||
{if isset($input.class)}class="{$input.class}"
|
{if isset($input.class)}class="{$input.class}"
|
||||||
{else}class="color mColorPickerInput"{/if}
|
{else}class="color mColorPickerInput"{/if}
|
||||||
name="{$input.name}"
|
name="{$input.name}"
|
||||||
|
class="{if isset($input.class)}{$input.class}{/if}"
|
||||||
value="{$fields_value[$input.name]|escape:'htmlall':'UTF-8'}" />
|
value="{$fields_value[$input.name]|escape:'htmlall':'UTF-8'}" />
|
||||||
{elseif $input.type == 'date'}
|
{elseif $input.type == 'date'}
|
||||||
<input type="text"
|
<input type="text"
|
||||||
@@ -353,13 +343,13 @@
|
|||||||
{/if}
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
{/foreach}
|
{/foreach}
|
||||||
{hook h='displayAdminForm' fieldset=$f}
|
{hook h='displayAdminForm'}
|
||||||
{if isset($name_controller)}
|
{if isset($name_controller)}
|
||||||
{capture name=hookName assign=hookName}display{$name_controller|ucfirst}Form{/capture}
|
{capture name=hookName assign=hookName}display{$name_controller|ucfirst}Form{/capture}
|
||||||
{hook h=$hookName fieldset=$f}
|
{hook h=$hookName}
|
||||||
{elseif isset($smarty.get.controller)}
|
{elseif isset($smarty.get.controller)}
|
||||||
{capture name=hookName assign=hookName}display{$smarty.get.controller|ucfirst|htmlentities}Form{/capture}
|
{capture name=hookName assign=hookName}display{$smarty.get.controller|ucfirst|htmlentities}Form{/capture}
|
||||||
{hook h=$hookName fieldset=$f}
|
{hook h=$hookName}
|
||||||
{/if}
|
{/if}
|
||||||
{elseif $key == 'submit'}
|
{elseif $key == 'submit'}
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
@@ -431,8 +421,7 @@
|
|||||||
};
|
};
|
||||||
{/foreach}
|
{/foreach}
|
||||||
// we need allowEmployeeFormLang var in ajax request
|
// we need allowEmployeeFormLang var in ajax request
|
||||||
allowEmployeeFormLang = {$allowEmployeeFormLang|intval};
|
allowEmployeeFormLang = {$allowEmployeeFormLang};
|
||||||
employee_token = '{getAdminToken tab='AdminEmployees'}';
|
|
||||||
displayFlags(languages, id_language, allowEmployeeFormLang);
|
displayFlags(languages, id_language, allowEmployeeFormLang);
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
@@ -454,7 +443,6 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
state_token = '{getAdminToken tab='AdminStates'}';
|
|
||||||
{block name="script"}{/block}
|
{block name="script"}{/block}
|
||||||
</script>
|
</script>
|
||||||
{/if}
|
{/if}
|
||||||
|
|||||||
@@ -24,11 +24,11 @@
|
|||||||
*}
|
*}
|
||||||
{if count($categories) && isset($categories)}
|
{if count($categories) && isset($categories)}
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var inputName = '{$categories.input_name|@addcslashes:'\''}';
|
var inputName = '{$categories.input_name}';
|
||||||
var use_radio = {if $categories.use_radio}1{else}0{/if};
|
var use_radio = {if $categories.use_radio}1{else}0{/if};
|
||||||
var selectedCat = {$categories.selected_cat|@implode|intval};
|
var selectedCat = '{implode value=$categories.selected_cat}';
|
||||||
var selectedLabel = '{$categories.trads.selected|@addcslashes:'\''}';
|
var selectedLabel = '{$categories.trads.selected}';
|
||||||
var home = '{$categories.trads.Root.name|@addcslashes:'\''}';
|
var home = '{$categories.trads.Root.name}';
|
||||||
var use_radio = {if $categories.use_radio}1{else}0{/if};
|
var use_radio = {if $categories.use_radio}1{else}0{/if};
|
||||||
var use_context = {if isset($categories.use_context)}1{else}0{/if};
|
var use_context = {if isset($categories.use_context)}1{else}0{/if};
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
|
|||||||
@@ -49,7 +49,6 @@
|
|||||||
{/if}
|
{/if}
|
||||||
class="{if !$no_link}pointer{/if}
|
class="{if !$no_link}pointer{/if}
|
||||||
{if isset($params.position) && $order_by == 'position' && $order_way != 'DESC'} dragHandle{/if}
|
{if isset($params.position) && $order_by == 'position' && $order_way != 'DESC'} dragHandle{/if}
|
||||||
{if isset($params.class)} {$params.class}{/if}
|
|
||||||
{if isset($params.align)} {$params.align}{/if}"
|
{if isset($params.align)} {$params.align}{/if}"
|
||||||
{if (!isset($params.position) && !$no_link && !isset($params.remove_onclick))}
|
{if (!isset($params.position) && !$no_link && !isset($params.remove_onclick))}
|
||||||
onclick="document.location = '{$current_index}&{$identifier}={$tr.$identifier}{if $view}&view{else}&update{/if}{$table}&token={$token}'">
|
onclick="document.location = '{$current_index}&{$identifier}={$tr.$identifier}{if $view}&view{else}&update{/if}{$table}&token={$token}'">
|
||||||
@@ -60,7 +59,7 @@
|
|||||||
{block name="td_content"}
|
{block name="td_content"}
|
||||||
{if isset($params.prefix)}{$params.prefix}{/if}
|
{if isset($params.prefix)}{$params.prefix}{/if}
|
||||||
{if isset($params.color) && isset($tr[$params.color])}
|
{if isset($params.color) && isset($tr[$params.color])}
|
||||||
<span class="color_field" style="background-color:{$tr[$params.color]};color:{if Tools::getBrightness($tr[$params.color]) < 128}white{else}#383838{/if}">
|
<span class="color_field" style="background-color:{$tr.color};color:{if Tools::getBrightness($tr.color) < 128}white{else}#383838{/if}">
|
||||||
{/if}
|
{/if}
|
||||||
{if isset($tr.$key)}
|
{if isset($tr.$key)}
|
||||||
{if isset($params.active)}
|
{if isset($params.active)}
|
||||||
|
|||||||
@@ -27,8 +27,8 @@
|
|||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
$('table.{$list_id} .filter').keypress(function(event){
|
$('table.{$table} .filter').keypress(function(event){
|
||||||
formSubmit(event, 'submitFilterButton{$list_id}')
|
formSubmit(event, 'submitFilterButton{$table}')
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
<script type="text/javascript" src="../js/jquery/plugins/jquery.tablednd.js"></script>
|
<script type="text/javascript" src="../js/jquery/plugins/jquery.tablednd.js"></script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var token = '{$token}';
|
var token = '{$token}';
|
||||||
var come_from = '{$list_id}';
|
var come_from = '{$table}';
|
||||||
var alternate = {if $order_way == 'DESC'}'1'{else}'0'{/if};
|
var alternate = {if $order_way == 'DESC'}'1'{else}'0'{/if};
|
||||||
</script>
|
</script>
|
||||||
<script type="text/javascript" src="../js/admin-dnd.js"></script>
|
<script type="text/javascript" src="../js/admin-dnd.js"></script>
|
||||||
@@ -45,8 +45,8 @@
|
|||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(function() {
|
$(function() {
|
||||||
if ($("table.{$list_id} .datepicker").length > 0)
|
if ($("table.{$table} .datepicker").length > 0)
|
||||||
$("table.{$list_id} .datepicker").datepicker({
|
$("table.{$table} .datepicker").datepicker({
|
||||||
prevText: '',
|
prevText: '',
|
||||||
nextText: '',
|
nextText: '',
|
||||||
dateFormat: 'yy-mm-dd'
|
dateFormat: 'yy-mm-dd'
|
||||||
@@ -83,7 +83,7 @@
|
|||||||
|
|
||||||
{block name="override_form_extra"}{/block}
|
{block name="override_form_extra"}{/block}
|
||||||
|
|
||||||
<input type="hidden" id="submitFilter{$list_id}" name="submitFilter{$list_id}" value="0"/>
|
<input type="hidden" id="submitFilter{$table}" name="submitFilter{$table}" value="0"/>
|
||||||
{/if}
|
{/if}
|
||||||
<table class="table_grid" name="list_table">
|
<table class="table_grid" name="list_table">
|
||||||
{if !$simple_header}
|
{if !$simple_header}
|
||||||
@@ -91,16 +91,16 @@
|
|||||||
<td style="vertical-align: bottom;">
|
<td style="vertical-align: bottom;">
|
||||||
<span style="float: left;">
|
<span style="float: left;">
|
||||||
{if $page > 1}
|
{if $page > 1}
|
||||||
<input type="image" src="../img/admin/list-prev2.gif" onclick="getE('submitFilter{$list_id}').value=1"/>
|
<input type="image" src="../img/admin/list-prev2.gif" onclick="getE('submitFilter{$table}').value=1"/>
|
||||||
<input type="image" src="../img/admin/list-prev.gif" onclick="getE('submitFilter{$list_id}').value={$page - 1}"/>
|
<input type="image" src="../img/admin/list-prev.gif" onclick="getE('submitFilter{$table}').value={$page - 1}"/>
|
||||||
{/if}
|
{/if}
|
||||||
{l s='Page'} <b>{$page}</b> / {$total_pages}
|
{l s='Page'} <b>{$page}</b> / {$total_pages}
|
||||||
{if $page < $total_pages}
|
{if $page < $total_pages}
|
||||||
<input type="image" src="../img/admin/list-next.gif" onclick="getE('submitFilter{$list_id}').value={$page + 1}"/>
|
<input type="image" src="../img/admin/list-next.gif" onclick="getE('submitFilter{$table}').value={$page + 1}"/>
|
||||||
<input type="image" src="../img/admin/list-next2.gif" onclick="getE('submitFilter{$list_id}').value={$total_pages}"/>
|
<input type="image" src="../img/admin/list-next2.gif" onclick="getE('submitFilter{$table}').value={$total_pages}"/>
|
||||||
{/if}
|
{/if}
|
||||||
| {l s='Display'}
|
| {l s='Display'}
|
||||||
<select name="{$list_id}_pagination" onchange="submit()">
|
<select name="pagination" onchange="submit()">
|
||||||
{* Choose number of results per page *}
|
{* Choose number of results per page *}
|
||||||
{foreach $pagination AS $value}
|
{foreach $pagination AS $value}
|
||||||
<option value="{$value|intval}"{if $selected_pagination == $value} selected="selected" {elseif $selected_pagination == NULL && $value == $pagination[1]} selected="selected2"{/if}>{$value|intval}</option>
|
<option value="{$value|intval}"{if $selected_pagination == $value} selected="selected" {elseif $selected_pagination == NULL && $value == $pagination[1]} selected="selected2"{/if}>{$value|intval}</option>
|
||||||
@@ -109,8 +109,8 @@
|
|||||||
/ {$list_total} {l s='result(s)'}
|
/ {$list_total} {l s='result(s)'}
|
||||||
</span>
|
</span>
|
||||||
<span style="float: right;">
|
<span style="float: right;">
|
||||||
<input type="submit" id="submitFilterButton{$list_id}" name="submitFilter" value="{l s='Filter'}" class="button" />
|
<input type="submit" name="submitReset{$table}" value="{l s='Reset'}" class="button" />
|
||||||
<input type="submit" name="submitReset{$list_id}" value="{l s='Reset'}" class="button" />
|
<input type="submit" id="submitFilterButton{$table}" name="submitFilter" value="{l s='Filter'}" class="button" />
|
||||||
</span>
|
</span>
|
||||||
<span class="clear"></span>
|
<span class="clear"></span>
|
||||||
</td>
|
</td>
|
||||||
@@ -120,7 +120,7 @@
|
|||||||
<td{if $simple_header} style="border:none;"{/if}>
|
<td{if $simple_header} style="border:none;"{/if}>
|
||||||
<table
|
<table
|
||||||
{if $table_id} id={$table_id}{/if}
|
{if $table_id} id={$table_id}{/if}
|
||||||
class="table {if $table_dnd}tableDnD{/if} {$list_id}"
|
class="table {if $table_dnd}tableDnD{/if} {$table}"
|
||||||
cellpadding="0" cellspacing="0"
|
cellpadding="0" cellspacing="0"
|
||||||
style="width: 100%; margin-bottom:10px;">
|
style="width: 100%; margin-bottom:10px;">
|
||||||
<col width="10px" />
|
<col width="10px" />
|
||||||
@@ -137,7 +137,7 @@
|
|||||||
<tr class="nodrag nodrop" style="height: 40px">
|
<tr class="nodrag nodrop" style="height: 40px">
|
||||||
<th class="center">
|
<th class="center">
|
||||||
{if $has_bulk_actions}
|
{if $has_bulk_actions}
|
||||||
<input type="checkbox" name="checkme" class="noborder" onclick="checkDelBoxes(this.form, '{$list_id}Box[]', this.checked)" />
|
<input type="checkbox" name="checkme" class="noborder" onclick="checkDelBoxes(this.form, '{$table}Box[]', this.checked)" />
|
||||||
{/if}
|
{/if}
|
||||||
</th>
|
</th>
|
||||||
{foreach $fields_display AS $key => $params}
|
{foreach $fields_display AS $key => $params}
|
||||||
@@ -148,9 +148,9 @@
|
|||||||
</span>
|
</span>
|
||||||
{if (!isset($params.orderby) || $params.orderby) && !$simple_header}
|
{if (!isset($params.orderby) || $params.orderby) && !$simple_header}
|
||||||
<br />
|
<br />
|
||||||
<a href="{$currentIndex}&{$list_id}Orderby={$key|urlencode}&{$list_id}Orderway=desc&token={$token}{if isset($smarty.get.$identifier)}&{$identifier}={$smarty.get.$identifier|intval}{/if}">
|
<a href="{$currentIndex}&{$table}Orderby={$key|urlencode}&{$table}Orderway=desc&token={$token}{if isset($smarty.get.$identifier)}&{$identifier}={$smarty.get.$identifier|intval}{/if}">
|
||||||
<img border="0" src="../img/admin/down{if isset($order_by) && ($key == $order_by) && ($order_way == 'DESC')}_d{/if}.gif" /></a>
|
<img border="0" src="../img/admin/down{if isset($order_by) && ($key == $order_by) && ($order_way == 'DESC')}_d{/if}.gif" /></a>
|
||||||
<a href="{$currentIndex}&{$list_id}Orderby={$key|urlencode}&{$list_id}Orderway=asc&token={$token}{if isset($smarty.get.$identifier)}&{$identifier}={$smarty.get.$identifier|intval}{/if}">
|
<a href="{$currentIndex}&{$table}Orderby={$key|urlencode}&{$table}Orderway=asc&token={$token}{if isset($smarty.get.$identifier)}&{$identifier}={$smarty.get.$identifier|intval}{/if}">
|
||||||
<img border="0" src="../img/admin/up{if isset($order_by) && ($key == $order_by) && ($order_way == 'ASC')}_d{/if}.gif" /></a>
|
<img border="0" src="../img/admin/up{if isset($order_by) && ($key == $order_by) && ($order_way == 'ASC')}_d{/if}.gif" /></a>
|
||||||
{elseif !$simple_header}
|
{elseif !$simple_header}
|
||||||
<br />
|
<br />
|
||||||
@@ -186,8 +186,8 @@
|
|||||||
--
|
--
|
||||||
{else}
|
{else}
|
||||||
{if $params.type == 'bool'}
|
{if $params.type == 'bool'}
|
||||||
<select onchange="$('#submitFilterButton{$list_id}').focus();$('#submitFilterButton{$list_id}').click();" name="{$list_id}Filter_{$key}">
|
<select onchange="$('#submitFilterButton{$table}').focus();$('#submitFilterButton{$table}').click();" name="{$table}Filter_{$key}">
|
||||||
<option value="">-</option>
|
<option value="">--</option>
|
||||||
<option value="1" {if $params.value == 1} selected="selected" {/if}>{l s='Yes'}</option>
|
<option value="1" {if $params.value == 1} selected="selected" {/if}>{l s='Yes'}</option>
|
||||||
<option value="0" {if $params.value == 0 && $params.value != ''} selected="selected" {/if}>{l s='No'}</option>
|
<option value="0" {if $params.value == 0 && $params.value != ''} selected="selected" {/if}>{l s='No'}</option>
|
||||||
</select>
|
</select>
|
||||||
@@ -196,8 +196,8 @@
|
|||||||
{l s='To'} <input type="text" class="filter datepicker" id="{$params.id_date}_1" name="{$params.name_date}[1]" value="{if isset($params.value.1)}{$params.value.1}{/if}"{if isset($params.width)} style="width:70px"{/if}/>
|
{l s='To'} <input type="text" class="filter datepicker" id="{$params.id_date}_1" name="{$params.name_date}[1]" value="{if isset($params.value.1)}{$params.value.1}{/if}"{if isset($params.width)} style="width:70px"{/if}/>
|
||||||
{elseif $params.type == 'select'}
|
{elseif $params.type == 'select'}
|
||||||
{if isset($params.filter_key)}
|
{if isset($params.filter_key)}
|
||||||
<select onchange="$('#submitFilterButton{$list_id}').focus();$('#submitFilterButton{$list_id}').click();" name="{$list_id}Filter_{$params.filter_key}" {if isset($params.width)} style="width:{$params.width}px"{/if}>
|
<select onchange="$('#submitFilterButton{$table}').focus();$('#submitFilterButton{$table}').click();" name="{$table}Filter_{$params.filter_key}" {if isset($params.width)} style="width:{$params.width}px"{/if}>
|
||||||
<option value="" {if $params.value == ''} selected="selected" {/if}>-</option>
|
<option value="" {if $params.value == ''} selected="selected" {/if}>--</option>
|
||||||
{if isset($params.list) && is_array($params.list)}
|
{if isset($params.list) && is_array($params.list)}
|
||||||
{foreach $params.list AS $option_value => $option_display}
|
{foreach $params.list AS $option_value => $option_display}
|
||||||
<option value="{$option_value}" {if $option_display == $params.value || $option_value == $params.value} selected="selected"{/if}>{$option_display}</option>
|
<option value="{$option_value}" {if $option_display == $params.value || $option_value == $params.value} selected="selected"{/if}>{$option_display}</option>
|
||||||
@@ -206,7 +206,7 @@
|
|||||||
</select>
|
</select>
|
||||||
{/if}
|
{/if}
|
||||||
{else}
|
{else}
|
||||||
<input type="text" class="filter" name="{$list_id}Filter_{if isset($params.filter_key)}{$params.filter_key}{else}{$key}{/if}" value="{$params.value|escape:'htmlall':'UTF-8'}" {if isset($params.width) && $params.width != 'auto'} style="width:{$params.width}px"{else}style="width:95%"{/if} />
|
<input type="text" class="filter" name="{$table}Filter_{if isset($params.filter_key)}{$params.filter_key}{else}{$key}{/if}" value="{$params.value|escape:'htmlall':'UTF-8'}" {if isset($params.width) && $params.width != 'auto'} style="width:{$params.width}px"{else}style="width:95%"{/if} />
|
||||||
{/if}
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
|
|
||||||
{block name="defaultOptions"}
|
{block name="defaultOptions"}
|
||||||
<form action="{$current}&token={$token}"
|
<form action="{$current}&token={$token}"
|
||||||
id="{if $table == null}configuration_form{else}{$table}_form{/if}"
|
id="{$table}_form"
|
||||||
{if isset($categoryData['name'])} name={$categoryData['name']}{/if}
|
{if isset($categoryData['name'])} name={$categoryData['name']}{/if}
|
||||||
{if isset($categoryData['id'])} id={$categoryData['id']} {/if}
|
{if isset($categoryData['id'])} id={$categoryData['id']} {/if}
|
||||||
method="post"
|
method="post"
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
</span>
|
</span>
|
||||||
|
|
||||||
{if count($errors) == 1}
|
{if count($errors) == 1}
|
||||||
{reset($errors)}
|
{$errors[0]}
|
||||||
{else}
|
{else}
|
||||||
{l s='%d errors' sprintf=$errors|count}
|
{l s='%d errors' sprintf=$errors|count}
|
||||||
<br/>
|
<br/>
|
||||||
|
|||||||
@@ -36,9 +36,9 @@
|
|||||||
{if $k == 'modules-list'}
|
{if $k == 'modules-list'}
|
||||||
<div id="modules_list_container" style="display:none">
|
<div id="modules_list_container" style="display:none">
|
||||||
<div style="float:right;margin:5px">
|
<div style="float:right;margin:5px">
|
||||||
<a href="#" onclick="$('#modules_list_container').slideUp();return false;"><img alt="X" src="../img/admin/close.png" /></a>
|
<a href="#" onclick="$('#modules_list_container').slideUp();return false;"><img alt="X" src="../img/admin/close.png"></a>
|
||||||
</div>
|
</div>
|
||||||
<div id="modules_list_loader"><img src="../img/loader.gif" alt="" border="0" /></div>
|
<div id="modules_list_loader"><img src="../img/loader.gif" alt="" border="0"></div>
|
||||||
<div id="modules_list_container_tab" style="display:none;"></div>
|
<div id="modules_list_container_tab" style="display:none;"></div>
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
@@ -87,7 +87,7 @@
|
|||||||
btn_submit.hide();
|
btn_submit.hide();
|
||||||
//bind enter key press to validate form
|
//bind enter key press to validate form
|
||||||
$('#{$table}_form').keypress(function (e) {
|
$('#{$table}_form').keypress(function (e) {
|
||||||
if (e.which == 13 && e.target.localName != 'textarea' && !e.target.hasClass('tagify'))
|
if (e.which == 13 && e.target.localName != 'textarea')
|
||||||
$('#desc-{$table}-save').click();
|
$('#desc-{$table}-save').click();
|
||||||
});
|
});
|
||||||
//submit the form
|
//submit the form
|
||||||
|
|||||||
+20
-27
@@ -264,17 +264,13 @@ class AddressCore extends ObjectModel
|
|||||||
if(!isset($id_address) || empty($id_address))
|
if(!isset($id_address) || empty($id_address))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
$cache_id = 'Address::isCountryActiveById_'.(int)$id_address;
|
if (!$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
|
||||||
if (!Cache::isStored($cache_id))
|
SELECT c.`active`
|
||||||
{
|
FROM `'._DB_PREFIX_.'address` a
|
||||||
$result = (bool)Db::getInstance(_PS_USE_SQL_SLAVE_)->getvalue('
|
LEFT JOIN `'._DB_PREFIX_.'country` c ON c.`id_country` = a.`id_country`
|
||||||
SELECT c.`active`
|
WHERE a.`id_address` = '.(int)$id_address))
|
||||||
FROM `'._DB_PREFIX_.'address` a
|
return false;
|
||||||
LEFT JOIN `'._DB_PREFIX_.'country` c ON c.`id_country` = a.`id_country`
|
return ($result['active']);
|
||||||
WHERE a.`id_address` = '.(int)$id_address);
|
|
||||||
Cache::store($cache_id, $result);
|
|
||||||
}
|
|
||||||
return Cache::retrieve($cache_id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -317,10 +313,11 @@ class AddressCore extends ObjectModel
|
|||||||
{
|
{
|
||||||
$key = 'address_exists_'.(int)$id_address;
|
$key = 'address_exists_'.(int)$id_address;
|
||||||
if (!Cache::isStored($key))
|
if (!Cache::isStored($key))
|
||||||
{
|
Cache::store(
|
||||||
$id_address = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('SELECT `id_address` FROM '._DB_PREFIX_.'address a WHERE a.`id_address` = '.(int)$id_address);
|
$key, Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
|
||||||
Cache::store($key, (bool)$id_address);
|
SELECT `id_address`
|
||||||
}
|
FROM '._DB_PREFIX_.'address a
|
||||||
|
WHERE a.`id_address` = '.(int)$id_address));
|
||||||
return Cache::retrieve($key);
|
return Cache::retrieve($key);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -328,17 +325,12 @@ class AddressCore extends ObjectModel
|
|||||||
{
|
{
|
||||||
if (!$id_customer)
|
if (!$id_customer)
|
||||||
return false;
|
return false;
|
||||||
$cache_id = 'Address::getFirstCustomerAddressId_'.(int)$id_customer.'-'.(bool)$active;
|
|
||||||
if (!Cache::isStored($cache_id))
|
return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
|
||||||
{
|
SELECT `id_address`
|
||||||
$result = (int)Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
|
FROM `'._DB_PREFIX_.'address`
|
||||||
SELECT `id_address`
|
WHERE `id_customer` = '.(int)$id_customer.' AND `deleted` = 0'.($active ? ' AND `active` = 1' : '')
|
||||||
FROM `'._DB_PREFIX_.'address`
|
);
|
||||||
WHERE `id_customer` = '.(int)$id_customer.' AND `deleted` = 0'.($active ? ' AND `active` = 1' : '')
|
|
||||||
);
|
|
||||||
Cache::store($cache_id, $result);
|
|
||||||
}
|
|
||||||
return Cache::retrieve($cache_id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -388,4 +380,5 @@ class AddressCore extends ObjectModel
|
|||||||
$query->where('id_warehouse = 0');
|
$query->where('id_warehouse = 0');
|
||||||
return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($query);
|
return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($query);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1303,7 +1303,7 @@ abstract class AdminTabCore
|
|||||||
}
|
}
|
||||||
|
|
||||||
$asso = Shop::getAssoTable($this->table);
|
$asso = Shop::getAssoTable($this->table);
|
||||||
if ($asso !== false && $asso['type'] == 'shop')
|
if ($asso !== false && $assos['type'] == 'shop')
|
||||||
{
|
{
|
||||||
$filterKey = $asso['type'];
|
$filterKey = $asso['type'];
|
||||||
$idenfierShop = Shop::getContextListShopID();
|
$idenfierShop = Shop::getContextListShopID();
|
||||||
@@ -1500,7 +1500,7 @@ abstract class AdminTabCore
|
|||||||
case 'bool':
|
case 'bool':
|
||||||
echo '
|
echo '
|
||||||
<select name="'.$this->table.'Filter_'.$key.'">
|
<select name="'.$this->table.'Filter_'.$key.'">
|
||||||
<option value="">-</option>
|
<option value="">--</option>
|
||||||
<option value="1"'.($value == 1 ? ' selected="selected"' : '').'>'.$this->l('Yes').'</option>
|
<option value="1"'.($value == 1 ? ' selected="selected"' : '').'>'.$this->l('Yes').'</option>
|
||||||
<option value="0"'.(($value == 0 && $value != '') ? ' selected="selected"' : '').'>'.$this->l('No').'</option>
|
<option value="0"'.(($value == 0 && $value != '') ? ' selected="selected"' : '').'>'.$this->l('No').'</option>
|
||||||
</select>';
|
</select>';
|
||||||
@@ -1524,7 +1524,7 @@ abstract class AdminTabCore
|
|||||||
if (isset($params['filter_key']))
|
if (isset($params['filter_key']))
|
||||||
{
|
{
|
||||||
echo '<select onchange="$(\'#submitFilter'.$this->table.'\').focus();$(\'#submitFilter'.$this->table.'\').click();" name="'.$this->table.'Filter_'.$params['filter_key'].'" '.(isset($params['width']) ? 'style="width: '.$params['width'].'px"' : '').'>
|
echo '<select onchange="$(\'#submitFilter'.$this->table.'\').focus();$(\'#submitFilter'.$this->table.'\').click();" name="'.$this->table.'Filter_'.$params['filter_key'].'" '.(isset($params['width']) ? 'style="width: '.$params['width'].'px"' : '').'>
|
||||||
<option value=""'.(($value == 0 && $value != '') ? ' selected="selected"' : '').'>-</option>';
|
<option value=""'.(($value == 0 && $value != '') ? ' selected="selected"' : '').'>--</option>';
|
||||||
if (isset($params['select']) && is_array($params['select']))
|
if (isset($params['select']) && is_array($params['select']))
|
||||||
foreach ($params['select'] as $optionValue => $optionDisplay)
|
foreach ($params['select'] as $optionValue => $optionDisplay)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -124,21 +124,5 @@ class AliasCore extends ObjectModel
|
|||||||
{
|
{
|
||||||
return Configuration::get('PS_ALIAS_FEATURE_ACTIVE');
|
return Configuration::get('PS_ALIAS_FEATURE_ACTIVE');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* This method is allow to know if a alias exist for AdminImportController
|
|
||||||
* @since 1.5.6.0
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public static function aliasExists($id_alias)
|
|
||||||
{
|
|
||||||
$row = Db::getInstance()->getRow('
|
|
||||||
SELECT `id_alias`
|
|
||||||
FROM '._DB_PREFIX_.'alias a
|
|
||||||
WHERE a.`id_alias` = '.(int)$id_alias
|
|
||||||
);
|
|
||||||
|
|
||||||
return isset($row['id_alias']);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -139,7 +139,7 @@ class AttributeCore extends ObjectModel
|
|||||||
ON (a.`id_attribute` = al.`id_attribute` AND al.`id_lang` = '.(int)$id_lang.')
|
ON (a.`id_attribute` = al.`id_attribute` AND al.`id_lang` = '.(int)$id_lang.')
|
||||||
'.Shop::addSqlAssociation('attribute_group', 'ag').'
|
'.Shop::addSqlAssociation('attribute_group', 'ag').'
|
||||||
'.Shop::addSqlAssociation('attribute', 'a').'
|
'.Shop::addSqlAssociation('attribute', 'a').'
|
||||||
'.($not_null ? 'WHERE a.`id_attribute` IS NOT NULL AND al.`name` IS NOT NULL AND agl.`id_attribute_group` IS NOT NULL' : '').'
|
'.($not_null ? 'WHERE a.`id_attribute` IS NOT NULL AND al.`name` IS NOT NULL' : '').'
|
||||||
ORDER BY agl.`name` ASC, a.`position` ASC
|
ORDER BY agl.`name` ASC, a.`position` ASC
|
||||||
');
|
');
|
||||||
}
|
}
|
||||||
@@ -343,4 +343,4 @@ class AttributeCore extends ObjectModel
|
|||||||
|
|
||||||
return (is_numeric($position)) ? $position : -1;
|
return (is_numeric($position)) ? $position : -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -142,15 +142,12 @@ class AttributeGroupCore extends ObjectModel
|
|||||||
if (!AttributeGroup::cleanDeadCombinations())
|
if (!AttributeGroup::cleanDeadCombinations())
|
||||||
return false;
|
return false;
|
||||||
/* Also delete related attributes */
|
/* Also delete related attributes */
|
||||||
if (count($to_remove))
|
if (Db::getInstance()->execute('
|
||||||
if (!Db::getInstance()->execute('
|
|
||||||
DELETE FROM `'._DB_PREFIX_.'attribute_lang`
|
DELETE FROM `'._DB_PREFIX_.'attribute_lang`
|
||||||
WHERE `id_attribute` IN ('.implode(',', $to_remove).')') ||
|
WHERE `id_attribute`
|
||||||
!Db::getInstance()->execute('
|
IN (SELECT id_attribute FROM `'._DB_PREFIX_.'attribute` WHERE `id_attribute_group` = '.(int)$this->id.')') === false ||
|
||||||
DELETE FROM `'._DB_PREFIX_.'attribute_shop`
|
Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'attribute` WHERE `id_attribute_group` = '.(int)$this->id) === false)
|
||||||
WHERE `id_attribute` IN ('.implode(',', $to_remove).')') ||
|
return false;
|
||||||
!Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'attribute` WHERE `id_attribute_group` = '.(int)$this->id))
|
|
||||||
return false;
|
|
||||||
$this->cleanPositions();
|
$this->cleanPositions();
|
||||||
}
|
}
|
||||||
$return = parent::delete();
|
$return = parent::delete();
|
||||||
|
|||||||
+25
-23
@@ -49,15 +49,11 @@ class Autoload
|
|||||||
*/
|
*/
|
||||||
public $index = array();
|
public $index = array();
|
||||||
|
|
||||||
public $_include_override_path = true;
|
|
||||||
|
|
||||||
protected function __construct()
|
protected function __construct()
|
||||||
{
|
{
|
||||||
$this->root_dir = dirname(dirname(__FILE__)).'/';
|
$this->root_dir = dirname(dirname(__FILE__)).'/';
|
||||||
if (file_exists($this->root_dir.Autoload::INDEX_FILE))
|
if (file_exists($this->root_dir.Autoload::INDEX_FILE))
|
||||||
$this->index = include($this->root_dir.Autoload::INDEX_FILE);
|
$this->index = include($this->root_dir.Autoload::INDEX_FILE);
|
||||||
else
|
|
||||||
$this->generateIndex();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -84,8 +80,9 @@ class Autoload
|
|||||||
if (strpos(strtolower($classname), 'smarty_') === 0)
|
if (strpos(strtolower($classname), 'smarty_') === 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// regenerate the class index if the requested file doesn't exists
|
// regenerate the class index if the requested class is not found in the index or if the requested file doesn't exists
|
||||||
if ((isset($this->index[$classname]) && $this->index[$classname] && !is_file($this->root_dir.$this->index[$classname]))
|
if (!isset($this->index[$classname])
|
||||||
|
|| ($this->index[$classname] && !is_file($this->root_dir.$this->index[$classname]))
|
||||||
|| (isset($this->index[$classname.'Core']) && $this->index[$classname.'Core'] && !is_file($this->root_dir.$this->index[$classname.'Core'])))
|
|| (isset($this->index[$classname.'Core']) && $this->index[$classname.'Core'] && !is_file($this->root_dir.$this->index[$classname.'Core'])))
|
||||||
$this->generateIndex();
|
$this->generateIndex();
|
||||||
|
|
||||||
@@ -122,32 +119,36 @@ class Autoload
|
|||||||
{
|
{
|
||||||
$classes = array_merge(
|
$classes = array_merge(
|
||||||
$this->getClassesFromDir('classes/'),
|
$this->getClassesFromDir('classes/'),
|
||||||
$this->getClassesFromDir('controllers/')
|
$this->getClassesFromDir('override/classes/'),
|
||||||
|
$this->getClassesFromDir('controllers/'),
|
||||||
|
$this->getClassesFromDir('override/controllers/')
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($this->_include_override_path)
|
|
||||||
$classes = array_merge(
|
|
||||||
$classes,
|
|
||||||
$this->getClassesFromDir('override/classes/'),
|
|
||||||
$this->getClassesFromDir('override/controllers/')
|
|
||||||
);
|
|
||||||
|
|
||||||
ksort($classes);
|
ksort($classes);
|
||||||
$content = '<?php return '.var_export($classes, true).'; ?>';
|
$content = '<?php return '.var_export($classes, true).'; ?>';
|
||||||
|
|
||||||
// Write classes index on disc to cache it
|
// Write classes index on disc to cache it
|
||||||
$filename = $this->root_dir.Autoload::INDEX_FILE;
|
$filename = $this->root_dir.Autoload::INDEX_FILE;
|
||||||
$filename_tmp = tempnam(dirname($filename), basename($filename.'.'));
|
if ((file_exists($filename) && !is_writable($filename)) || !is_writable(dirname($filename)))
|
||||||
if ($filename_tmp !== false && file_put_contents($filename_tmp, $content, LOCK_EX) !== false)
|
|
||||||
{
|
{
|
||||||
if (!rename($filename_tmp, $filename))
|
header('HTTP/1.1 503 temporarily overloaded');
|
||||||
unlink($filename_tmp);
|
// Cannot use PrestaShopException in this context
|
||||||
else
|
die('/cache/class_index.php is not writable, please give write permissions (chmod 666) on this file.');
|
||||||
@chmod($filename, 0666);
|
|
||||||
}
|
}
|
||||||
// $filename_tmp couldn't be written. $filename should be there anyway (even if outdated), no need to die.
|
|
||||||
else
|
else
|
||||||
error_log('Cannot write temporary file '.$filename_tmp);
|
{
|
||||||
|
$filename_tmp = tempnam(dirname($filename), basename($filename.'.'));
|
||||||
|
if($filename_tmp !== FALSE and file_put_contents($filename_tmp, $content, LOCK_EX) !== FALSE)
|
||||||
|
{
|
||||||
|
rename($filename_tmp, $filename);
|
||||||
|
@chmod($filename, 0664);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// $filename_tmp couldn't be written. $filename should be there anyway (even if outdated),
|
||||||
|
// no need to die.
|
||||||
|
error_log('Cannot write temporary file '.$filename_tmp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$this->index = $classes;
|
$this->index = $classes;
|
||||||
}
|
}
|
||||||
@@ -191,3 +192,4 @@ class Autoload
|
|||||||
return isset($this->index[$classname]) ? $this->index[$classname] : null;
|
return isset($this->index[$classname]) ? $this->index[$classname] : null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-7
@@ -34,7 +34,6 @@ class CMSCore extends ObjectModel
|
|||||||
public $link_rewrite;
|
public $link_rewrite;
|
||||||
public $id_cms_category;
|
public $id_cms_category;
|
||||||
public $position;
|
public $position;
|
||||||
public $indexation;
|
|
||||||
public $active;
|
public $active;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -47,7 +46,6 @@ class CMSCore extends ObjectModel
|
|||||||
'fields' => array(
|
'fields' => array(
|
||||||
'id_cms_category' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt'),
|
'id_cms_category' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt'),
|
||||||
'position' => array('type' => self::TYPE_INT),
|
'position' => array('type' => self::TYPE_INT),
|
||||||
'indexation' => array('type' => self::TYPE_BOOL),
|
|
||||||
'active' => array('type' => self::TYPE_BOOL),
|
'active' => array('type' => self::TYPE_BOOL),
|
||||||
|
|
||||||
// Lang fields
|
// Lang fields
|
||||||
@@ -55,7 +53,7 @@ class CMSCore extends ObjectModel
|
|||||||
'meta_keywords' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'size' => 255),
|
'meta_keywords' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'size' => 255),
|
||||||
'meta_title' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'required' => true, 'size' => 128),
|
'meta_title' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'required' => true, 'size' => 128),
|
||||||
'link_rewrite' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isLinkRewrite', 'required' => true, 'size' => 128),
|
'link_rewrite' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isLinkRewrite', 'required' => true, 'size' => 128),
|
||||||
'content' => array('type' => self::TYPE_HTML, 'lang' => true, 'validate' => 'isCleanHtml', 'size' => 3999999999999),
|
'content' => array('type' => self::TYPE_HTML, 'lang' => true, 'validate' => 'isString', 'size' => 3999999999999),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -190,7 +188,7 @@ class CMSCore extends ObjectModel
|
|||||||
return (Db::getInstance()->getValue($sql));
|
return (Db::getInstance()->getValue($sql));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getCMSPages($id_lang = null, $id_cms_category = null, $active = true, $id_shop = null)
|
public static function getCMSPages($id_lang = null, $id_cms_category = null, $active = true)
|
||||||
{
|
{
|
||||||
$sql = new DbQuery();
|
$sql = new DbQuery();
|
||||||
$sql->select('*');
|
$sql->select('*');
|
||||||
@@ -198,9 +196,6 @@ class CMSCore extends ObjectModel
|
|||||||
if ($id_lang)
|
if ($id_lang)
|
||||||
$sql->innerJoin('cms_lang', 'l', 'c.id_cms = l.id_cms AND l.id_lang = '.(int)$id_lang);
|
$sql->innerJoin('cms_lang', 'l', 'c.id_cms = l.id_cms AND l.id_lang = '.(int)$id_lang);
|
||||||
|
|
||||||
if ($id_shop)
|
|
||||||
$sql->innerJoin('cms_shop', 'cs', 'c.id_cms = cs.id_cms AND cs.id_shop = '.(int)$id_shop);
|
|
||||||
|
|
||||||
if ($active)
|
if ($active)
|
||||||
$sql->where('c.active = 1');
|
$sql->where('c.active = 1');
|
||||||
|
|
||||||
|
|||||||
+30
-71
@@ -165,7 +165,7 @@ class CarrierCore extends ObjectModel
|
|||||||
public function __construct($id = null, $id_lang = null)
|
public function __construct($id = null, $id_lang = null)
|
||||||
{
|
{
|
||||||
parent::__construct($id, $id_lang);
|
parent::__construct($id, $id_lang);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* keep retrocompatibility SHIPPING_METHOD_DEFAULT
|
* keep retrocompatibility SHIPPING_METHOD_DEFAULT
|
||||||
* @deprecated 1.5.5
|
* @deprecated 1.5.5
|
||||||
@@ -277,20 +277,17 @@ class CarrierCore extends ObjectModel
|
|||||||
|
|
||||||
public function getMaxDeliveryPriceByWeight($id_zone)
|
public function getMaxDeliveryPriceByWeight($id_zone)
|
||||||
{
|
{
|
||||||
$cache_id = 'Carrier::getMaxDeliveryPriceByWeight_'.(int)$this->id.'-'.(int)$id_zone;
|
$sql = 'SELECT d.`price`
|
||||||
if (!Cache::isStored($cache_id))
|
FROM `'._DB_PREFIX_.'delivery` d
|
||||||
{
|
INNER JOIN `'._DB_PREFIX_.'range_weight` w ON d.`id_range_weight` = w.`id_range_weight`
|
||||||
$sql = 'SELECT d.`price`
|
WHERE d.`id_zone` = '.(int)$id_zone.'
|
||||||
FROM `'._DB_PREFIX_.'delivery` d
|
AND d.`id_carrier` = '.(int)$this->id.'
|
||||||
INNER JOIN `'._DB_PREFIX_.'range_weight` w ON d.`id_range_weight` = w.`id_range_weight`
|
'.Carrier::sqlDeliveryRangeShop('range_weight').'
|
||||||
WHERE d.`id_zone` = '.(int)$id_zone.'
|
ORDER BY w.`delimiter2` DESC LIMIT 1';
|
||||||
AND d.`id_carrier` = '.(int)$this->id.'
|
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql);
|
||||||
'.Carrier::sqlDeliveryRangeShop('range_weight').'
|
if (!isset($result[0]['price']))
|
||||||
ORDER BY w.`delimiter2` DESC';
|
return false;
|
||||||
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($sql);
|
return $result[0]['price'];
|
||||||
Cache::store($cache_id, $result);
|
|
||||||
}
|
|
||||||
return Cache::retrieve($cache_id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -360,20 +357,17 @@ class CarrierCore extends ObjectModel
|
|||||||
|
|
||||||
public function getMaxDeliveryPriceByPrice($id_zone)
|
public function getMaxDeliveryPriceByPrice($id_zone)
|
||||||
{
|
{
|
||||||
$cache_id = 'Carrier::getMaxDeliveryPriceByPrice_'.(int)$this->id.'-'.(int)$id_zone;
|
$sql = 'SELECT d.`price`
|
||||||
if (!Cache::isStored($cache_id))
|
FROM `'._DB_PREFIX_.'delivery` d
|
||||||
{
|
INNER JOIN `'._DB_PREFIX_.'range_price` r ON d.`id_range_price` = r.`id_range_price`
|
||||||
$sql = 'SELECT d.`price`
|
WHERE d.`id_zone` = '.(int)$id_zone.'
|
||||||
FROM `'._DB_PREFIX_.'delivery` d
|
AND d.`id_carrier` = '.(int)$this->id.'
|
||||||
INNER JOIN `'._DB_PREFIX_.'range_price` r ON d.`id_range_price` = r.`id_range_price`
|
'.Carrier::sqlDeliveryRangeShop('range_price').'
|
||||||
WHERE d.`id_zone` = '.(int)$id_zone.'
|
ORDER BY r.`delimiter2` DESC LIMIT 1';
|
||||||
AND d.`id_carrier` = '.(int)$this->id.'
|
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql);
|
||||||
'.Carrier::sqlDeliveryRangeShop('range_price').'
|
if (!isset($result[0]['price']))
|
||||||
ORDER BY r.`delimiter2` DESC';
|
return false;
|
||||||
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($sql);
|
return $result[0]['price'];
|
||||||
Cache::store($cache_id, $result);
|
|
||||||
}
|
|
||||||
return Cache::retrieve($cache_id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -455,13 +449,7 @@ class CarrierCore extends ObjectModel
|
|||||||
GROUP BY c.`id_carrier`
|
GROUP BY c.`id_carrier`
|
||||||
ORDER BY c.`position` ASC';
|
ORDER BY c.`position` ASC';
|
||||||
|
|
||||||
$cache_id = 'Carrier::getCarriers_'.md5($sql);
|
$carriers = Db::getInstance()->executeS($sql);
|
||||||
if (!Cache::isStored($cache_id))
|
|
||||||
{
|
|
||||||
$carriers = Db::getInstance()->executeS($sql);
|
|
||||||
Cache::store($cache_id, $carriers);
|
|
||||||
}
|
|
||||||
$carriers = Cache::retrieve($cache_id);
|
|
||||||
|
|
||||||
if (is_array($carriers) && count($carriers))
|
if (is_array($carriers) && count($carriers))
|
||||||
{
|
{
|
||||||
@@ -474,7 +462,7 @@ class CarrierCore extends ObjectModel
|
|||||||
|
|
||||||
return $carriers;
|
return $carriers;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getIdTaxRulesGroupMostUsed()
|
public static function getIdTaxRulesGroupMostUsed()
|
||||||
{
|
{
|
||||||
return Db::getInstance()->getValue('
|
return Db::getInstance()->getValue('
|
||||||
@@ -765,7 +753,7 @@ class CarrierCore extends ObjectModel
|
|||||||
* @param array $priceList Prices list in multiple arrays (changed to array since 1.5.0)
|
* @param array $priceList Prices list in multiple arrays (changed to array since 1.5.0)
|
||||||
* @return boolean Insertion result
|
* @return boolean Insertion result
|
||||||
*/
|
*/
|
||||||
public function addDeliveryPrice($price_list, $delete = false)
|
public function addDeliveryPrice($price_list)
|
||||||
{
|
{
|
||||||
if (!$price_list)
|
if (!$price_list)
|
||||||
return false;
|
return false;
|
||||||
@@ -784,17 +772,6 @@ class CarrierCore extends ObjectModel
|
|||||||
if (!isset($values['id_shop_group']))
|
if (!isset($values['id_shop_group']))
|
||||||
$values['id_shop_group'] = (Shop::getContext() != Shop::CONTEXT_ALL) ? Shop::getContextShopGroupID() : null;
|
$values['id_shop_group'] = (Shop::getContext() != Shop::CONTEXT_ALL) ? Shop::getContextShopGroupID() : null;
|
||||||
|
|
||||||
if ($delete)
|
|
||||||
Db::getInstance()->execute('
|
|
||||||
DELETE FROM `'._DB_PREFIX_.'delivery`
|
|
||||||
WHERE '.(is_null($values['id_shop']) ? 'ISNULL(`id_shop`) ' : 'id_shop = '.(int)$values['id_shop']).'
|
|
||||||
AND '.(is_null($values['id_shop_group']) ? 'ISNULL(`id_shop`) ' : 'id_shop_group='.(int)$values['id_shop_group']).'
|
|
||||||
AND id_carrier='.(int)$values['id_carrier'].
|
|
||||||
($values['id_range_price'] !== null ? ' AND id_range_price='.(int)$values['id_range_price'] : ' AND (ISNULL(`id_range_price`) OR `id_range_price` = 0)').
|
|
||||||
($values['id_range_weight'] !== null ? ' AND id_range_weight='.(int)$values['id_range_weight'] : ' AND (ISNULL(`id_range_weight`) OR `id_range_weight` = 0)').'
|
|
||||||
AND id_zone='.(int)$values['id_zone']
|
|
||||||
);
|
|
||||||
|
|
||||||
$sql .= '(';
|
$sql .= '(';
|
||||||
foreach ($values as $v)
|
foreach ($values as $v)
|
||||||
{
|
{
|
||||||
@@ -898,7 +875,8 @@ class CarrierCore extends ObjectModel
|
|||||||
(SELECT '.(int)$this->id.', `id_tax_rules_group`, `id_shop`
|
(SELECT '.(int)$this->id.', `id_tax_rules_group`, `id_shop`
|
||||||
FROM `'._DB_PREFIX_.'carrier_tax_rules_group_shop`
|
FROM `'._DB_PREFIX_.'carrier_tax_rules_group_shop`
|
||||||
WHERE `id_carrier`='.(int)$old_id.')');
|
WHERE `id_carrier`='.(int)$old_id.')');
|
||||||
|
// Update warehouse_carriers
|
||||||
|
Db::getInstance()->execute('UPDATE '._DB_PREFIX_.'warehouse_carrier SET id_carrier='.(int)$this->id.' WHERE id_carrier='.(int)$old_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1211,14 +1189,7 @@ class CarrierCore extends ObjectModel
|
|||||||
$query->where('pc.id_product = '.(int)$product->id);
|
$query->where('pc.id_product = '.(int)$product->id);
|
||||||
$query->where('pc.id_shop = '.(int)$id_shop);
|
$query->where('pc.id_shop = '.(int)$id_shop);
|
||||||
|
|
||||||
$cache_id = 'Carrier::getAvailableCarrierList_'.(int)$product->id.'-'.(int)$id_shop;
|
$carriers_for_product = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($query);
|
||||||
if (!Cache::isStored($cache_id))
|
|
||||||
{
|
|
||||||
$carriers_for_product = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($query);
|
|
||||||
Cache::store($cache_id, $carriers_for_product);
|
|
||||||
}
|
|
||||||
$carriers_for_product = Cache::retrieve($cache_id);
|
|
||||||
|
|
||||||
$carrier_list = array();
|
$carrier_list = array();
|
||||||
if (!empty($carriers_for_product))
|
if (!empty($carriers_for_product))
|
||||||
{
|
{
|
||||||
@@ -1305,17 +1276,5 @@ class CarrierCore extends ObjectModel
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setGroups($groups, $delete = true)
|
|
||||||
{
|
|
||||||
if ($delete)
|
|
||||||
Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'carrier_group WHERE id_carrier = '.(int)$this->id);
|
|
||||||
if (!is_array($groups) || !count($groups))
|
|
||||||
return true;
|
|
||||||
$sql = 'INSERT INTO '._DB_PREFIX_.'carrier_group (id_carrier, id_group) VALUES ';
|
|
||||||
foreach ($groups as $id_group)
|
|
||||||
$sql .= '('.(int)$this->id.', '.(int)$id_group.'),';
|
|
||||||
|
|
||||||
return Db::getInstance()->execute(rtrim($sql, ','));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+117
-142
@@ -134,7 +134,6 @@ class CartCore extends ObjectModel
|
|||||||
'cart_rows' => array('resource' => 'cart_row', 'virtual_entity' => true, 'fields' => array(
|
'cart_rows' => array('resource' => 'cart_row', 'virtual_entity' => true, 'fields' => array(
|
||||||
'id_product' => array('required' => true, 'xlink_resource' => 'products'),
|
'id_product' => array('required' => true, 'xlink_resource' => 'products'),
|
||||||
'id_product_attribute' => array('required' => true, 'xlink_resource' => 'combinations'),
|
'id_product_attribute' => array('required' => true, 'xlink_resource' => 'combinations'),
|
||||||
'id_address_delivery' => array('required' => true, 'xlink_resource' => 'addresses'),
|
|
||||||
'quantity' => array('required' => true),
|
'quantity' => array('required' => true),
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
@@ -210,7 +209,7 @@ class CartCore extends ObjectModel
|
|||||||
if (!isset($this->id_address_invoice) || $this->id_address_invoice == $id_address)
|
if (!isset($this->id_address_invoice) || $this->id_address_invoice == $id_address)
|
||||||
{
|
{
|
||||||
$to_update = true;
|
$to_update = true;
|
||||||
$this->id_address_invoice = $id_address_new;
|
$this->context->cart->id_address_invoice = $id_address_new;
|
||||||
}
|
}
|
||||||
if (!isset($this->id_address_delivery) || $this->id_address_delivery == $id_address)
|
if (!isset($this->id_address_delivery) || $this->id_address_delivery == $id_address)
|
||||||
{
|
{
|
||||||
@@ -325,7 +324,7 @@ class CartCore extends ObjectModel
|
|||||||
if (!CartRule::isFeatureActive() || !$this->id)
|
if (!CartRule::isFeatureActive() || !$this->id)
|
||||||
return array();
|
return array();
|
||||||
|
|
||||||
$cache_key = 'Cart::getCartRules_'.$this->id.'-'.$filter;
|
$cache_key = 'Cart::getCartRules'.$this->id.'-'.$filter;
|
||||||
if (!Cache::isStored($cache_key))
|
if (!Cache::isStored($cache_key))
|
||||||
{
|
{
|
||||||
$result = Db::getInstance()->executeS('
|
$result = Db::getInstance()->executeS('
|
||||||
@@ -340,7 +339,6 @@ class CartCore extends ObjectModel
|
|||||||
'.($filter == CartRule::FILTER_ACTION_SHIPPING ? 'AND free_shipping = 1' : '').'
|
'.($filter == CartRule::FILTER_ACTION_SHIPPING ? 'AND free_shipping = 1' : '').'
|
||||||
'.($filter == CartRule::FILTER_ACTION_GIFT ? 'AND gift_product != 0' : '').'
|
'.($filter == CartRule::FILTER_ACTION_GIFT ? 'AND gift_product != 0' : '').'
|
||||||
'.($filter == CartRule::FILTER_ACTION_REDUCTION ? 'AND (reduction_percent != 0 OR reduction_amount != 0)' : '')
|
'.($filter == CartRule::FILTER_ACTION_REDUCTION ? 'AND (reduction_percent != 0 OR reduction_amount != 0)' : '')
|
||||||
.' ORDER by cr.priority ASC'
|
|
||||||
);
|
);
|
||||||
Cache::store($cache_key, $result);
|
Cache::store($cache_key, $result);
|
||||||
}
|
}
|
||||||
@@ -368,16 +366,12 @@ class CartCore extends ObjectModel
|
|||||||
{
|
{
|
||||||
if (!CartRule::isFeatureActive())
|
if (!CartRule::isFeatureActive())
|
||||||
return 0;
|
return 0;
|
||||||
$cache_id = 'Cart::getDiscountsCustomer_'.(int)$this->id.'-'.(int)$id_cart_rule;
|
|
||||||
if (!Cache::isStored($cache_id))
|
return Db::getInstance()->getValue('
|
||||||
{
|
SELECT COUNT(*)
|
||||||
$result = (int)Db::getInstance()->getValue('
|
FROM `'._DB_PREFIX_.'cart_cart_rule`
|
||||||
SELECT COUNT(*)
|
WHERE `id_cart_rule` = '.(int)$id_cart_rule.' AND `id_cart` = '.(int)$this->id
|
||||||
FROM `'._DB_PREFIX_.'cart_cart_rule`
|
);
|
||||||
WHERE `id_cart_rule` = '.(int)$id_cart_rule.' AND `id_cart` = '.(int)$this->id);
|
|
||||||
Cache::store($cache_id, $result);
|
|
||||||
}
|
|
||||||
return Cache::retrieve($cache_id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getLastProduct()
|
public function getLastProduct()
|
||||||
@@ -434,7 +428,7 @@ class CartCore extends ObjectModel
|
|||||||
product_shop.`available_for_order`, product_shop.`price`, product_shop.`active`, product_shop.`unity`, product_shop.`unit_price_ratio`,
|
product_shop.`available_for_order`, product_shop.`price`, product_shop.`active`, product_shop.`unity`, product_shop.`unit_price_ratio`,
|
||||||
stock.`quantity` AS quantity_available, p.`width`, p.`height`, p.`depth`, stock.`out_of_stock`, p.`weight`,
|
stock.`quantity` AS quantity_available, p.`width`, p.`height`, p.`depth`, stock.`out_of_stock`, p.`weight`,
|
||||||
p.`date_add`, p.`date_upd`, IFNULL(stock.quantity, 0) as quantity, pl.`link_rewrite`, cl.`link_rewrite` AS category,
|
p.`date_add`, p.`date_upd`, IFNULL(stock.quantity, 0) as quantity, pl.`link_rewrite`, cl.`link_rewrite` AS category,
|
||||||
CONCAT(LPAD(cp.`id_product`, 10, 0), LPAD(IFNULL(cp.`id_product_attribute`, 0), 10, 0), IFNULL(cp.`id_address_delivery`, 0)) AS unique_id, cp.id_address_delivery,
|
CONCAT(cp.`id_product`, IFNULL(cp.`id_product_attribute`, 0), IFNULL(cp.`id_address_delivery`, 0)) AS unique_id, cp.id_address_delivery,
|
||||||
product_shop.`wholesale_price`, product_shop.advanced_stock_management, ps.product_supplier_reference supplier_reference');
|
product_shop.`wholesale_price`, product_shop.advanced_stock_management, ps.product_supplier_reference supplier_reference');
|
||||||
|
|
||||||
// Build FROM
|
// Build FROM
|
||||||
@@ -636,19 +630,14 @@ class CartCore extends ObjectModel
|
|||||||
|
|
||||||
if (!isset($row['pai_id_image']) || $row['pai_id_image'] == 0)
|
if (!isset($row['pai_id_image']) || $row['pai_id_image'] == 0)
|
||||||
{
|
{
|
||||||
$cache_id = 'Cart::getProducts_'.'-pai_id_image-'.(int)$row['id_product'].'-'.(int)$this->id_lang.'-'.(int)$row['id_shop'];
|
$row2 = Db::getInstance()->getRow('
|
||||||
if (!Cache::isStored($cache_id))
|
SELECT image_shop.`id_image` id_image, il.`legend`
|
||||||
{
|
FROM `'._DB_PREFIX_.'image` i
|
||||||
$row2 = Db::getInstance()->getRow('
|
JOIN `'._DB_PREFIX_.'image_shop` image_shop ON (i.id_image = image_shop.id_image AND image_shop.cover=1 AND image_shop.id_shop='.(int)$row['id_shop'].')
|
||||||
SELECT image_shop.`id_image` id_image, il.`legend`
|
LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (image_shop.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$this->id_lang.')
|
||||||
FROM `'._DB_PREFIX_.'image` i
|
WHERE i.`id_product` = '.(int)$row['id_product'].' AND image_shop.`cover` = 1'
|
||||||
JOIN `'._DB_PREFIX_.'image_shop` image_shop ON (i.id_image = image_shop.id_image AND image_shop.cover=1 AND image_shop.id_shop='.(int)$row['id_shop'].')
|
);
|
||||||
LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (image_shop.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$this->id_lang.')
|
|
||||||
WHERE i.`id_product` = '.(int)$row['id_product'].' AND image_shop.`cover` = 1'
|
|
||||||
);
|
|
||||||
Cache::store($cache_id, $row2);
|
|
||||||
}
|
|
||||||
$row2 = Cache::retrieve($cache_id);
|
|
||||||
if (!$row2)
|
if (!$row2)
|
||||||
$row2 = array('id_image' => false, 'legend' => false);
|
$row2 = array('id_image' => false, 'legend' => false);
|
||||||
else
|
else
|
||||||
@@ -736,7 +725,7 @@ class CartCore extends ObjectModel
|
|||||||
*
|
*
|
||||||
* @result integer Products quantity
|
* @result integer Products quantity
|
||||||
*/
|
*/
|
||||||
public function nbProducts()
|
public function nbProducts()
|
||||||
{
|
{
|
||||||
if (!$this->id)
|
if (!$this->id)
|
||||||
return 0;
|
return 0;
|
||||||
@@ -772,13 +761,9 @@ class CartCore extends ObjectModel
|
|||||||
{
|
{
|
||||||
// You can't add a cart rule that does not exist
|
// You can't add a cart rule that does not exist
|
||||||
$cartRule = new CartRule($id_cart_rule, Context::getContext()->language->id);
|
$cartRule = new CartRule($id_cart_rule, Context::getContext()->language->id);
|
||||||
|
|
||||||
if (!Validate::isLoadedObject($cartRule))
|
if (!Validate::isLoadedObject($cartRule))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (Db::getInstance()->getValue('SELECT id_cart_rule FROM '._DB_PREFIX_.'cart_cart_rule WHERE id_cart_rule = '.(int)$id_cart_rule.' AND id_cart = '.(int)$this->id))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
// Add the cart rule to the cart
|
// Add the cart rule to the cart
|
||||||
if (!Db::getInstance()->insert('cart_cart_rule', array(
|
if (!Db::getInstance()->insert('cart_cart_rule', array(
|
||||||
'id_cart_rule' => (int)$id_cart_rule,
|
'id_cart_rule' => (int)$id_cart_rule,
|
||||||
@@ -1087,9 +1072,9 @@ class CartCore extends ObjectModel
|
|||||||
);
|
);
|
||||||
$id_customization = Db::getInstance()->Insert_ID();
|
$id_customization = Db::getInstance()->Insert_ID();
|
||||||
}
|
}
|
||||||
|
|
||||||
$query = 'INSERT INTO `'._DB_PREFIX_.'customized_data` (`id_customization`, `type`, `index`, `value`)
|
$query = 'INSERT INTO `'._DB_PREFIX_.'customized_data` (`id_customization`, `type`, `index`, `value`)
|
||||||
VALUES ('.(int)$id_customization.', '.(int)$type.', '.(int)$index.', \''.pSQL($field).'\')';
|
VALUES ('.(int)$id_customization.', '.(int)$type.', '.(int)$index.', \''.pSql($field).'\')';
|
||||||
|
|
||||||
if (!Db::getInstance()->execute($query))
|
if (!Db::getInstance()->execute($query))
|
||||||
return false;
|
return false;
|
||||||
@@ -1103,13 +1088,7 @@ class CartCore extends ObjectModel
|
|||||||
*/
|
*/
|
||||||
public function orderExists()
|
public function orderExists()
|
||||||
{
|
{
|
||||||
$cache_id = 'Cart::orderExists_'.(int)$this->id;
|
return (bool)Db::getInstance()->getValue('SELECT count(*) FROM `'._DB_PREFIX_.'orders` WHERE `id_cart` = '.(int)$this->id);
|
||||||
if (!Cache::isStored($cache_id))
|
|
||||||
{
|
|
||||||
$result = (bool)Db::getInstance()->getValue('SELECT count(*) FROM `'._DB_PREFIX_.'orders` WHERE `id_cart` = '.(int)$this->id);
|
|
||||||
Cache::store($cache_id, $result);
|
|
||||||
}
|
|
||||||
return Cache::retrieve($cache_id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1276,7 +1255,7 @@ class CartCore extends ObjectModel
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getTotalCart($id_cart, $use_tax_display = false, $type = Cart::BOTH)
|
public static function getTotalCart($id_cart, $use_tax_display = false, $type = CART::BOTH)
|
||||||
{
|
{
|
||||||
$cart = new Cart($id_cart);
|
$cart = new Cart($id_cart);
|
||||||
if (!Validate::isLoadedObject($cart))
|
if (!Validate::isLoadedObject($cart))
|
||||||
@@ -1692,7 +1671,6 @@ class CartCore extends ObjectModel
|
|||||||
$warehouse_count_by_address[$product['id_address_delivery']][$warehouse['id_warehouse']]++;
|
$warehouse_count_by_address[$product['id_address_delivery']][$warehouse['id_warehouse']]++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
unset($product);
|
|
||||||
|
|
||||||
arsort($warehouse_count_by_address);
|
arsort($warehouse_count_by_address);
|
||||||
|
|
||||||
@@ -1710,12 +1688,9 @@ class CartCore extends ObjectModel
|
|||||||
$id_warehouse = 0;
|
$id_warehouse = 0;
|
||||||
foreach ($warehouse_count_by_address[$product['id_address_delivery']] as $id_war => $val)
|
foreach ($warehouse_count_by_address[$product['id_address_delivery']] as $id_war => $val)
|
||||||
{
|
{
|
||||||
if (in_array((int)$id_war, $product['warehouse_list']))
|
$product['carrier_list'] = array_merge($product['carrier_list'], Carrier::getAvailableCarrierList(new Product($product['id_product']), $id_war, $product['id_address_delivery'], null, $this));
|
||||||
{
|
if (in_array((int)$id_war, $product['warehouse_list']) && $id_warehouse == 0)
|
||||||
$product['carrier_list'] = array_merge($product['carrier_list'], Carrier::getAvailableCarrierList(new Product($product['id_product']), $id_war, $product['id_address_delivery'], null, $this));
|
$id_warehouse = (int)$id_war;
|
||||||
if (!$id_warehouse)
|
|
||||||
$id_warehouse = (int)$id_war;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isset($grouped_by_warehouse[$product['id_address_delivery']]['in_stock'][$id_warehouse]))
|
if (!isset($grouped_by_warehouse[$product['id_address_delivery']]['in_stock'][$id_warehouse]))
|
||||||
@@ -1734,7 +1709,6 @@ class CartCore extends ObjectModel
|
|||||||
|
|
||||||
$grouped_by_warehouse[$product['id_address_delivery']][$key][$id_warehouse][] = $product;
|
$grouped_by_warehouse[$product['id_address_delivery']][$key][$id_warehouse][] = $product;
|
||||||
}
|
}
|
||||||
unset($product);
|
|
||||||
|
|
||||||
// Step 3 : grouped product from grouped_by_warehouse by available carriers
|
// Step 3 : grouped product from grouped_by_warehouse by available carriers
|
||||||
$grouped_by_carriers = array();
|
$grouped_by_carriers = array();
|
||||||
@@ -1753,6 +1727,7 @@ class CartCore extends ObjectModel
|
|||||||
{
|
{
|
||||||
if (!isset($grouped_by_carriers[$id_address_delivery][$key][$id_warehouse]))
|
if (!isset($grouped_by_carriers[$id_address_delivery][$key][$id_warehouse]))
|
||||||
$grouped_by_carriers[$id_address_delivery][$key][$id_warehouse] = array();
|
$grouped_by_carriers[$id_address_delivery][$key][$id_warehouse] = array();
|
||||||
|
|
||||||
foreach ($product_list as $product)
|
foreach ($product_list as $product)
|
||||||
{
|
{
|
||||||
$package_carriers_key = implode(',', $product['carrier_list']);
|
$package_carriers_key = implode(',', $product['carrier_list']);
|
||||||
@@ -1817,6 +1792,7 @@ class CartCore extends ObjectModel
|
|||||||
);
|
);
|
||||||
$package_list[$id_address_delivery][$key][$id_warehouse][$id_carrier]['carrier_list'] =
|
$package_list[$id_address_delivery][$key][$id_warehouse][$id_carrier]['carrier_list'] =
|
||||||
array_intersect($package_list[$id_address_delivery][$key][$id_warehouse][$id_carrier]['carrier_list'], $data['carrier_list']);
|
array_intersect($package_list[$id_address_delivery][$key][$id_warehouse][$id_carrier]['carrier_list'], $data['carrier_list']);
|
||||||
|
|
||||||
$package_list[$id_address_delivery][$key][$id_warehouse][$id_carrier]['product_list'] =
|
$package_list[$id_address_delivery][$key][$id_warehouse][$id_carrier]['product_list'] =
|
||||||
array_merge($package_list[$id_address_delivery][$key][$id_warehouse][$id_carrier]['product_list'], $data['product_list']);
|
array_merge($package_list[$id_address_delivery][$key][$id_warehouse][$id_carrier]['product_list'], $data['product_list']);
|
||||||
|
|
||||||
@@ -2292,23 +2268,18 @@ class CartCore extends ObjectModel
|
|||||||
public function getAddressCollection()
|
public function getAddressCollection()
|
||||||
{
|
{
|
||||||
$collection = array();
|
$collection = array();
|
||||||
$cache_id = 'Cart::getAddressCollection'.(int)$this->id;
|
$result = Db::getInstance()->executeS(
|
||||||
if (!Cache::isStored($cache_id))
|
'SELECT DISTINCT `id_address_delivery`
|
||||||
{
|
FROM `'._DB_PREFIX_.'cart_product`
|
||||||
$result = Db::getInstance()->executeS(
|
WHERE id_cart = '.(int)$this->id
|
||||||
'SELECT DISTINCT `id_address_delivery`
|
);
|
||||||
FROM `'._DB_PREFIX_.'cart_product`
|
|
||||||
WHERE id_cart = '.(int)$this->id
|
|
||||||
);
|
|
||||||
Cache::store($cache_id, $result);
|
|
||||||
}
|
|
||||||
$result = Cache::retrieve($cache_id);
|
|
||||||
|
|
||||||
$result[] = array('id_address_delivery' => (int)$this->id_address_delivery);
|
$result[] = array('id_address_delivery' => (int)$this->id_address_delivery);
|
||||||
|
|
||||||
foreach ($result as $row)
|
foreach ($result as $row)
|
||||||
if ((int)$row['id_address_delivery'] != 0)
|
if ((int)$row['id_address_delivery'] != 0)
|
||||||
$collection[(int)$row['id_address_delivery']] = new Address((int)$row['id_address_delivery']);
|
$collection[(int)$row['id_address_delivery']] = new Address((int)$row['id_address_delivery']);
|
||||||
|
|
||||||
return $collection;
|
return $collection;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2572,7 +2543,6 @@ class CartCore extends ObjectModel
|
|||||||
if (empty($id_carrier) && $this->isCarrierInRange((int)Configuration::get('PS_CARRIER_DEFAULT'), (int)$id_zone))
|
if (empty($id_carrier) && $this->isCarrierInRange((int)Configuration::get('PS_CARRIER_DEFAULT'), (int)$id_zone))
|
||||||
$id_carrier = (int)Configuration::get('PS_CARRIER_DEFAULT');
|
$id_carrier = (int)Configuration::get('PS_CARRIER_DEFAULT');
|
||||||
|
|
||||||
$total_package_without_shipping_tax_inc = $this->getOrderTotal(true, Cart::BOTH_WITHOUT_SHIPPING, $product_list);
|
|
||||||
if (empty($id_carrier))
|
if (empty($id_carrier))
|
||||||
{
|
{
|
||||||
if ((int)$this->id_customer)
|
if ((int)$this->id_customer)
|
||||||
@@ -2607,7 +2577,7 @@ class CartCore extends ObjectModel
|
|||||||
{
|
{
|
||||||
$check_delivery_price_by_weight = Carrier::checkDeliveryPriceByWeight($row['id_carrier'], $this->getTotalWeight(), (int)$id_zone);
|
$check_delivery_price_by_weight = Carrier::checkDeliveryPriceByWeight($row['id_carrier'], $this->getTotalWeight(), (int)$id_zone);
|
||||||
|
|
||||||
$total_order = $total_package_without_shipping_tax_inc;
|
$total_order = $this->getOrderTotal(true, Cart::BOTH_WITHOUT_SHIPPING, $product_list);
|
||||||
$check_delivery_price_by_price = Carrier::checkDeliveryPriceByPrice($row['id_carrier'], $total_order, (int)$id_zone, (int)$this->id_currency);
|
$check_delivery_price_by_price = Carrier::checkDeliveryPriceByPrice($row['id_carrier'], $total_order, (int)$id_zone, (int)$this->id_currency);
|
||||||
|
|
||||||
// Get only carriers that have a range compatible with cart
|
// Get only carriers that have a range compatible with cart
|
||||||
@@ -2710,8 +2680,26 @@ class CartCore extends ObjectModel
|
|||||||
$id_zone = (int)$default_country->id_zone;
|
$id_zone = (int)$default_country->id_zone;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($carrier->getShippingMethod() == Carrier::SHIPPING_METHOD_WEIGHT && !Carrier::checkDeliveryPriceByWeight($carrier->id, $this->getTotalWeight(), (int)$id_zone))
|
$check_delivery_price_by_weight = Carrier::checkDeliveryPriceByWeight((int)$carrier->id, $this->getTotalWeight(), (int)$id_zone);
|
||||||
|| ($carrier->getShippingMethod() == Carrier::SHIPPING_METHOD_PRICE && !Carrier::checkDeliveryPriceByPrice($carrier->id, $total_package_without_shipping_tax_inc, $id_zone, (int)$this->id_currency)
|
|
||||||
|
// Code Review V&V TO FINISH
|
||||||
|
$check_delivery_price_by_price = Carrier::checkDeliveryPriceByPrice(
|
||||||
|
$carrier->id,
|
||||||
|
$this->getOrderTotal(
|
||||||
|
true,
|
||||||
|
Cart::BOTH_WITHOUT_SHIPPING,
|
||||||
|
$product_list
|
||||||
|
),
|
||||||
|
$id_zone,
|
||||||
|
(int)$this->id_currency
|
||||||
|
);
|
||||||
|
|
||||||
|
if ((
|
||||||
|
$carrier->getShippingMethod() == Carrier::SHIPPING_METHOD_WEIGHT
|
||||||
|
&& !$check_delivery_price_by_weight
|
||||||
|
) || (
|
||||||
|
$carrier->getShippingMethod() == Carrier::SHIPPING_METHOD_PRICE
|
||||||
|
&& !$check_delivery_price_by_price
|
||||||
))
|
))
|
||||||
$shipping_cost += 0;
|
$shipping_cost += 0;
|
||||||
else
|
else
|
||||||
@@ -2858,10 +2846,7 @@ class CartCore extends ObjectModel
|
|||||||
$formatted_addresses['delivery'] = AddressFormat::getFormattedLayoutData($delivery);
|
$formatted_addresses['delivery'] = AddressFormat::getFormattedLayoutData($delivery);
|
||||||
$formatted_addresses['invoice'] = AddressFormat::getFormattedLayoutData($invoice);
|
$formatted_addresses['invoice'] = AddressFormat::getFormattedLayoutData($invoice);
|
||||||
|
|
||||||
$base_total_tax_inc = $this->getOrderTotal(true);
|
$total_tax = $this->getOrderTotal() - $this->getOrderTotal(false);
|
||||||
$base_total_tax_exc = $this->getOrderTotal(false);
|
|
||||||
|
|
||||||
$total_tax = $base_total_tax_inc - $base_total_tax_exc;
|
|
||||||
|
|
||||||
if ($total_tax < 0)
|
if ($total_tax < 0)
|
||||||
$total_tax = 0;
|
$total_tax = 0;
|
||||||
@@ -2959,9 +2944,9 @@ class CartCore extends ObjectModel
|
|||||||
'total_shipping_tax_exc' => $total_shipping_tax_exc,
|
'total_shipping_tax_exc' => $total_shipping_tax_exc,
|
||||||
'total_products_wt' => $total_products_wt,
|
'total_products_wt' => $total_products_wt,
|
||||||
'total_products' => $total_products,
|
'total_products' => $total_products,
|
||||||
'total_price' => $base_total_tax_inc,
|
'total_price' => $this->getOrderTotal(),
|
||||||
'total_tax' => $total_tax,
|
'total_tax' => $total_tax,
|
||||||
'total_price_without_tax' => $base_total_tax_exc,
|
'total_price_without_tax' => $this->getOrderTotal(false),
|
||||||
'is_multi_address_delivery' => $this->isMultiAddressDelivery() || ((int)Tools::getValue('multi-shipping') == 1),
|
'is_multi_address_delivery' => $this->isMultiAddressDelivery() || ((int)Tools::getValue('multi-shipping') == 1),
|
||||||
'free_ship' => $total_shipping ? 0 : 1,
|
'free_ship' => $total_shipping ? 0 : 1,
|
||||||
'carrier' => new Carrier($this->id_carrier, $id_lang),
|
'carrier' => new Carrier($this->id_carrier, $id_lang),
|
||||||
@@ -3058,10 +3043,9 @@ class CartCore extends ObjectModel
|
|||||||
*/
|
*/
|
||||||
public function addTextFieldToProduct($id_product, $index, $type, $text_value)
|
public function addTextFieldToProduct($id_product, $index, $type, $text_value)
|
||||||
{
|
{
|
||||||
if (!_PS_MAGIC_QUOTES_GPC_){
|
$text_value = str_replace(array("\n", "\r"), '', nl2br($text_value));
|
||||||
$text_value = str_replace('\\', '\\\\', $text_value);
|
$text_value = str_replace('\\', '\\\\', $text_value);
|
||||||
$text_value = str_replace('\'', '\\\'', $text_value);
|
$text_value = str_replace('\'', '\\\'', $text_value);
|
||||||
}
|
|
||||||
return $this->_addCustomization($id_product, 0, $index, $type, $text_value, 0);
|
return $this->_addCustomization($id_product, 0, $index, $type, $text_value, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3237,24 +3221,25 @@ class CartCore extends ObjectModel
|
|||||||
|
|
||||||
public function getWsCartRows()
|
public function getWsCartRows()
|
||||||
{
|
{
|
||||||
return Db::getInstance()->executeS('
|
$query = '
|
||||||
SELECT id_product, id_product_attribute, quantity, id_address_delivery
|
SELECT id_product, id_product_attribute, quantity
|
||||||
FROM `'._DB_PREFIX_.'cart_product`
|
FROM `'._DB_PREFIX_.'cart_product`
|
||||||
WHERE id_cart = '.(int)$this->id.' AND id_shop = '.(int)Context::getContext()->shop->id
|
WHERE id_cart = '.(int)$this->id.'
|
||||||
);
|
AND id_shop = '.(int)Context::getContext()->shop->id;
|
||||||
|
|
||||||
|
$result = Db::getInstance()->executeS($query);
|
||||||
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setWsCartRows($values)
|
public function setWsCartRows($values)
|
||||||
{
|
{
|
||||||
if ($this->deleteAssociations())
|
if ($this->deleteAssociations())
|
||||||
{
|
{
|
||||||
$query = 'INSERT INTO `'._DB_PREFIX_.'cart_product`(`id_cart`, `id_product`, `id_product_attribute`, `id_address_delivery`, `quantity`, `date_add`, `id_shop`) VALUES ';
|
$query = 'INSERT INTO `'._DB_PREFIX_.'cart_product`(`id_cart`, `id_product`, `id_product_attribute`, `quantity`, `date_add`, `id_shop`) VALUES ';
|
||||||
|
|
||||||
foreach ($values as $value)
|
foreach ($values as $value)
|
||||||
$query .= '('.(int)$this->id.', '.(int)$value['id_product'].', '.
|
$query .= '('.(int)$this->id.', '.(int)$value['id_product'].', '.
|
||||||
(isset($value['id_product_attribute']) ? (int)$value['id_product_attribute'] : 'NULL').', '.
|
(isset($value['id_product_attribute']) ? (int)$value['id_product_attribute'] : 'NULL').', '.(int)$value['quantity'].', NOW(), '.(int)Context::getContext()->shop->id.'),';
|
||||||
(isset($value['id_address_delivery']) ? (int)$value['id_address_delivery'] : 0).', '.
|
|
||||||
(int)$value['quantity'].', NOW(), '.(int)Context::getContext()->shop->id.'),';
|
|
||||||
|
|
||||||
Db::getInstance()->execute(rtrim($query, ','));
|
Db::getInstance()->execute(rtrim($query, ','));
|
||||||
}
|
}
|
||||||
@@ -3439,72 +3424,62 @@ class CartCore extends ObjectModel
|
|||||||
*/
|
*/
|
||||||
public function setNoMultishipping()
|
public function setNoMultishipping()
|
||||||
{
|
{
|
||||||
$emptyCache = $result = false;
|
// Upgrading quantities
|
||||||
if (Configuration::get('PS_ALLOW_MULTISHIPPING'))
|
$sql = 'SELECT sum(`quantity`) as quantity, id_product, id_product_attribute, count(*) as count
|
||||||
|
FROM `'._DB_PREFIX_.'cart_product`
|
||||||
|
WHERE `id_cart` = '.(int)$this->id.'
|
||||||
|
AND `id_shop` = '.(int)$this->id_shop.'
|
||||||
|
GROUP BY id_product, id_product_attribute
|
||||||
|
HAVING count > 1';
|
||||||
|
|
||||||
|
foreach (Db::getInstance()->executeS($sql) as $product)
|
||||||
{
|
{
|
||||||
// Upgrading quantities
|
$sql = 'UPDATE `'._DB_PREFIX_.'cart_product`
|
||||||
$sql = 'SELECT sum(`quantity`) as quantity, id_product, id_product_attribute, count(*) as count
|
SET `quantity` = '.$product['quantity'].'
|
||||||
FROM `'._DB_PREFIX_.'cart_product`
|
WHERE `id_cart` = '.(int)$this->id.'
|
||||||
WHERE `id_cart` = '.(int)$this->id.'
|
AND `id_shop` = '.(int)$this->id_shop.'
|
||||||
AND `id_shop` = '.(int)$this->id_shop.'
|
AND id_product = '.$product['id_product'].'
|
||||||
GROUP BY id_product, id_product_attribute
|
AND id_product_attribute = '.$product['id_product_attribute'];
|
||||||
HAVING count > 1';
|
Db::getInstance()->execute($sql);
|
||||||
|
|
||||||
foreach (Db::getInstance()->executeS($sql) as $product)
|
|
||||||
{
|
|
||||||
$sql = 'UPDATE `'._DB_PREFIX_.'cart_product`
|
|
||||||
SET `quantity` = '.$product['quantity'].'
|
|
||||||
WHERE `id_cart` = '.(int)$this->id.'
|
|
||||||
AND `id_shop` = '.(int)$this->id_shop.'
|
|
||||||
AND id_product = '.$product['id_product'].'
|
|
||||||
AND id_product_attribute = '.$product['id_product_attribute'];
|
|
||||||
$result = Db::getInstance()->execute($sql);
|
|
||||||
if ($result)
|
|
||||||
$emptyCache = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Merging multiple lines
|
|
||||||
$sql = 'DELETE cp1
|
|
||||||
FROM `'._DB_PREFIX_.'cart_product` cp1
|
|
||||||
INNER JOIN `'._DB_PREFIX_.'cart_product` cp2
|
|
||||||
ON (
|
|
||||||
(cp1.id_cart = cp2.id_cart)
|
|
||||||
AND (cp1.id_product = cp2.id_product)
|
|
||||||
AND (cp1.id_product_attribute = cp2.id_product_attribute)
|
|
||||||
AND (cp1.id_address_delivery <> cp2.id_address_delivery)
|
|
||||||
AND (cp1.date_add > cp2.date_add)
|
|
||||||
)';
|
|
||||||
Db::getInstance()->execute($sql);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update delivery address for each product line
|
// Merging multiple lines
|
||||||
|
$sql = 'DELETE cp1
|
||||||
|
FROM `'._DB_PREFIX_.'cart_product` cp1
|
||||||
|
INNER JOIN `'._DB_PREFIX_.'cart_product` cp2
|
||||||
|
ON (
|
||||||
|
(cp1.id_cart = cp2.id_cart)
|
||||||
|
AND (cp1.id_product = cp2.id_product)
|
||||||
|
AND (cp1.id_product_attribute = cp2.id_product_attribute)
|
||||||
|
AND (cp1.id_address_delivery <> cp2.id_address_delivery)
|
||||||
|
AND (cp1.date_add > cp2.date_add)
|
||||||
|
)';
|
||||||
|
Db::getInstance()->execute($sql);
|
||||||
|
|
||||||
|
// Upgrading address delivery
|
||||||
$sql = 'UPDATE `'._DB_PREFIX_.'cart_product`
|
$sql = 'UPDATE `'._DB_PREFIX_.'cart_product`
|
||||||
SET `id_address_delivery` = (
|
SET `id_address_delivery` =
|
||||||
SELECT `id_address_delivery` FROM `'._DB_PREFIX_.'cart`
|
(
|
||||||
WHERE `id_cart` = '.(int)$this->id.' AND `id_shop` = '.(int)$this->id_shop.'
|
SELECT `id_address_delivery`
|
||||||
)
|
FROM `'._DB_PREFIX_.'cart`
|
||||||
WHERE `id_cart` = '.(int)$this->id.'
|
WHERE `id_cart` = '.(int)$this->id.'
|
||||||
'.(Configuration::get('PS_ALLOW_MULTISHIPPING') ? ' AND `id_shop` = '.(int)$this->id_shop : '');
|
AND `id_shop` = '.(int)$this->id_shop.'
|
||||||
|
)
|
||||||
|
WHERE `id_cart` = '.(int)$this->id.'
|
||||||
|
'.(Configuration::get('PS_ALLOW_MULTISHIPPING') ? ' AND `id_shop` = '.(int)$this->id_shop : '');
|
||||||
|
|
||||||
$cache_id = 'Cart::setNoMultishipping'.(int)$this->id.'-'.(int)$this->id_shop;
|
Db::getInstance()->execute($sql);
|
||||||
if (!Cache::isStored($cache_id))
|
|
||||||
{
|
|
||||||
if ($result = (bool)Db::getInstance()->execute($sql))
|
|
||||||
$emptyCache = true;
|
|
||||||
Cache::store($cache_id, $result);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Customization::isFeatureActive())
|
$sql = 'UPDATE `'._DB_PREFIX_.'customization`
|
||||||
Db::getInstance()->execute('
|
SET `id_address_delivery` =
|
||||||
UPDATE `'._DB_PREFIX_.'customization`
|
(
|
||||||
SET `id_address_delivery` = (
|
SELECT `id_address_delivery`
|
||||||
SELECT `id_address_delivery` FROM `'._DB_PREFIX_.'cart`
|
FROM `'._DB_PREFIX_.'cart`
|
||||||
WHERE `id_cart` = '.(int)$this->id.'
|
WHERE `id_cart` = '.(int)$this->id.'
|
||||||
)
|
)
|
||||||
WHERE `id_cart` = '.(int)$this->id);
|
WHERE `id_cart` = '.(int)$this->id;
|
||||||
|
|
||||||
if ($emptyCache)
|
Db::getInstance()->execute($sql);
|
||||||
$this->_products = null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+47
-42
@@ -10,7 +10,7 @@
|
|||||||
* http://opensource.org/licenses/osl-3.0.php
|
* http://opensource.org/licenses/osl-3.0.php
|
||||||
* If you did not receive a copy of the license and are unable to
|
* If you did not receive a copy of the license and are unable to
|
||||||
* obtain it through the world-wide-web, please send an email
|
* obtain it through the world-wide-web, please send an email
|
||||||
* to license@prestashop.com so we can send you a copy immediately.
|
* to license@prestashop.com so we can send you a copy 502immediately.
|
||||||
*
|
*
|
||||||
* DISCLAIMER
|
* DISCLAIMER
|
||||||
*
|
*
|
||||||
@@ -254,17 +254,6 @@ class CartRuleCore extends ObjectModel
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
$cart_rule['quantity_for_user'] = 0;
|
$cart_rule['quantity_for_user'] = 0;
|
||||||
unset($cart_rule);
|
|
||||||
|
|
||||||
foreach ($result as $cart_rule)
|
|
||||||
if ($cart_rule['shop_restriction'])
|
|
||||||
{
|
|
||||||
$cartRuleShops = Db::getInstance()->executeS('SELECT id_shop FROM '._DB_PREFIX_.'cart_rule_shop WHERE id_cart_rule = '.(int)$cart_rule['id_cart_rule']);
|
|
||||||
foreach ($cartRuleShops as $cartRuleShop)
|
|
||||||
if (Shop::isFeatureActive() && ($cartRuleShop['id_shop'] == Context::getContext()->shop->id))
|
|
||||||
continue 2;
|
|
||||||
unset($result[$key]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Retrocompatibility with 1.4 discounts
|
// Retrocompatibility with 1.4 discounts
|
||||||
foreach ($result as &$cart_rule)
|
foreach ($result as &$cart_rule)
|
||||||
@@ -475,7 +464,7 @@ class CartRuleCore extends ObjectModel
|
|||||||
// Check if the products chosen by the customer are usable with the cart rule
|
// Check if the products chosen by the customer are usable with the cart rule
|
||||||
if ($this->product_restriction)
|
if ($this->product_restriction)
|
||||||
{
|
{
|
||||||
$r = $this->checkProductRestrictions($context, false, $display_error, $alreadyInCart);
|
$r = $this->checkProductRestrictions($context, false, $display_error);
|
||||||
if ($r !== false && $display_error)
|
if ($r !== false && $display_error)
|
||||||
return $r;
|
return $r;
|
||||||
elseif (!$r && !$display_error)
|
elseif (!$r && !$display_error)
|
||||||
@@ -506,14 +495,36 @@ class CartRuleCore extends ObjectModel
|
|||||||
$cartTotal = $context->cart->getOrderTotal($this->minimum_amount_tax, Cart::ONLY_PRODUCTS);
|
$cartTotal = $context->cart->getOrderTotal($this->minimum_amount_tax, Cart::ONLY_PRODUCTS);
|
||||||
if ($this->minimum_amount_shipping)
|
if ($this->minimum_amount_shipping)
|
||||||
$cartTotal += $context->cart->getOrderTotal($this->minimum_amount_tax, Cart::ONLY_SHIPPING);
|
$cartTotal += $context->cart->getOrderTotal($this->minimum_amount_tax, Cart::ONLY_SHIPPING);
|
||||||
$products = $context->cart->getProducts();
|
|
||||||
$cart_rules = $context->cart->getCartRules();
|
|
||||||
|
|
||||||
foreach ($cart_rules as &$cart_rule)
|
// If a product is given for free in this rule and already in the cart, the price is subtracted
|
||||||
if ($cart_rule['gift_product'])
|
if ($this->gift_product && $alreadyInCart)
|
||||||
foreach ($products as $key => &$product)
|
{
|
||||||
if (empty($product['gift']) && $product['id_product'] == $cart_rule['gift_product'] && $product['id_product_attribute'] == $cart_rule['gift_product_attribute'])
|
$query = new DbQuery();
|
||||||
$cartTotal = Tools::ps_round($cartTotal - $product[$this->minimum_amount_tax ? 'price_wt' : 'price'], (int)$context->currency->decimals * _PS_PRICE_DISPLAY_PRECISION_);
|
|
||||||
|
$query->select('id_product');
|
||||||
|
$query->from('cart_product');
|
||||||
|
$query->where('id_product = '.(int)$this->gift_product);
|
||||||
|
$query->where('id_cart = '.(int)$context->cart->id);
|
||||||
|
|
||||||
|
if ((int)$this->gift_product_attribute)
|
||||||
|
$query->where('id_product_attribute = '.(int)$this->gift_product_attribute);
|
||||||
|
|
||||||
|
if (Db::getInstance()->getValue($query))
|
||||||
|
{
|
||||||
|
$ref = false;
|
||||||
|
$product_price = Product::getPriceStatic(
|
||||||
|
$this->gift_product,
|
||||||
|
$this->minimum_amount_tax,
|
||||||
|
$this->gift_product_attribute,
|
||||||
|
null, null, false, true, 1, null,
|
||||||
|
$context->cart->id_customer ? $context->cart->id_customer : null,
|
||||||
|
$context->cart->id,
|
||||||
|
(int)$context->cart->{Configuration::get('PS_TAX_ADDRESS_TYPE')} ? (int)$context->cart->{Configuration::get('PS_TAX_ADDRESS_TYPE')} : null,
|
||||||
|
$ref, true, true, $context, true
|
||||||
|
);
|
||||||
|
$cartTotal -= $product_price;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($cartTotal < $minimum_amount)
|
if ($cartTotal < $minimum_amount)
|
||||||
return (!$display_error) ? false : Tools::displayError('You have not reached the minimum amount required to use this voucher');
|
return (!$display_error) ? false : Tools::displayError('You have not reached the minimum amount required to use this voucher');
|
||||||
@@ -534,7 +545,6 @@ class CartRuleCore extends ObjectModel
|
|||||||
return (!$display_error) ? false : Tools::displayError('This voucher is already in your cart');
|
return (!$display_error) ? false : Tools::displayError('This voucher is already in your cart');
|
||||||
if ($otherCartRule['gift_product'])
|
if ($otherCartRule['gift_product'])
|
||||||
--$nb_products;
|
--$nb_products;
|
||||||
|
|
||||||
if ($this->cart_rule_restriction && $otherCartRule['cart_rule_restriction'] && $otherCartRule['id_cart_rule'] != $this->id)
|
if ($this->cart_rule_restriction && $otherCartRule['cart_rule_restriction'] && $otherCartRule['id_cart_rule'] != $this->id)
|
||||||
{
|
{
|
||||||
$combinable = Db::getInstance()->getValue('
|
$combinable = Db::getInstance()->getValue('
|
||||||
@@ -562,7 +572,7 @@ class CartRuleCore extends ObjectModel
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function checkProductRestrictions(Context $context, $return_products = false, $display_error = true, $alreadyInCart = false)
|
protected function checkProductRestrictions(Context $context, $return_products = false, $display_error = true)
|
||||||
{
|
{
|
||||||
$selectedProducts = array();
|
$selectedProducts = array();
|
||||||
|
|
||||||
@@ -597,8 +607,6 @@ class CartRuleCore extends ObjectModel
|
|||||||
if (in_array($cartAttribute['id_attribute'], $productRule['values']))
|
if (in_array($cartAttribute['id_attribute'], $productRule['values']))
|
||||||
{
|
{
|
||||||
$countMatchingProducts += $cartAttribute['quantity'];
|
$countMatchingProducts += $cartAttribute['quantity'];
|
||||||
if ($alreadyInCart && $this->gift_product == $cartProduct['id_product']&& $this->gift_product_attribute == $cartProduct['id_product_attribute'])
|
|
||||||
--$countMatchingProducts;
|
|
||||||
$matchingProductsList[] = $cartAttribute['id_product'].'-'.$cartAttribute['id_product_attribute'];
|
$matchingProductsList[] = $cartAttribute['id_product'].'-'.$cartAttribute['id_product_attribute'];
|
||||||
}
|
}
|
||||||
if ($countMatchingProducts < $productRuleGroup['quantity'])
|
if ($countMatchingProducts < $productRuleGroup['quantity'])
|
||||||
@@ -617,8 +625,6 @@ class CartRuleCore extends ObjectModel
|
|||||||
if (in_array($cartProduct['id_product'], $productRule['values']))
|
if (in_array($cartProduct['id_product'], $productRule['values']))
|
||||||
{
|
{
|
||||||
$countMatchingProducts += $cartProduct['quantity'];
|
$countMatchingProducts += $cartProduct['quantity'];
|
||||||
if ($alreadyInCart && $this->gift_product == $cartProduct['id_product'])
|
|
||||||
--$countMatchingProducts;
|
|
||||||
$matchingProductsList[] = $cartProduct['id_product'].'-0';
|
$matchingProductsList[] = $cartProduct['id_product'].'-0';
|
||||||
}
|
}
|
||||||
if ($countMatchingProducts < $productRuleGroup['quantity'])
|
if ($countMatchingProducts < $productRuleGroup['quantity'])
|
||||||
@@ -1098,33 +1104,32 @@ class CartRuleCore extends ObjectModel
|
|||||||
'.($context->customer->id ? 'OR cr.id_customer = '.(int)$context->cart->id_customer : '').'
|
'.($context->customer->id ? 'OR cr.id_customer = '.(int)$context->cart->id_customer : '').'
|
||||||
)
|
)
|
||||||
AND (
|
AND (
|
||||||
cr.`carrier_restriction` = 0
|
cr.carrier_restriction = 0
|
||||||
'.($context->cart->id_carrier ? 'OR c.id_carrier = '.(int)$context->cart->id_carrier : '').'
|
'.($context->cart->id_carrier ? 'OR c.id_carrier = '.(int)$context->cart->id_carrier : '').'
|
||||||
)
|
)
|
||||||
AND (
|
AND (
|
||||||
cr.`shop_restriction` = 0
|
cr.shop_restriction = 0
|
||||||
'.((Shop::isFeatureActive() && $context->shop->id) ? 'OR crs.id_shop = '.(int)$context->shop->id : '').'
|
'.((Shop::isFeatureActive() && $context->shop->id) ? 'OR crs.id_shop = '.(int)$context->shop->id : '').'
|
||||||
)
|
)
|
||||||
AND (
|
AND (
|
||||||
cr.`group_restriction` = 0
|
cr.group_restriction = 0
|
||||||
'.($context->customer->id ? 'OR 0 < (
|
'.($context->customer->id ? 'OR 0 < (
|
||||||
SELECT cg.`id_group`
|
SELECT cg.id_group
|
||||||
FROM `'._DB_PREFIX_.'customer_group` cg
|
FROM '._DB_PREFIX_.'customer_group cg
|
||||||
INNER JOIN `'._DB_PREFIX_.'cart_rule_group` crg ON cg.id_group = crg.id_group
|
LEFT JOIN '._DB_PREFIX_.'cart_rule_group crg ON (cg.id_group = crg.id_group AND cg.id_group = '.(int)$context->customer->id_default_group.')
|
||||||
WHERE cr.`id_cart_rule` = crg.`id_cart_rule`
|
WHERE cr.id_cart_rule = crg.id_cart_rule
|
||||||
AND cg.`id_customer` = '.(int)$context->customer->id.'
|
AND cg.id_customer = '.(int)$context->customer->id.' LIMIT 1
|
||||||
LIMIT 1
|
|
||||||
)' : '').'
|
)' : '').'
|
||||||
)
|
)
|
||||||
AND (
|
AND (
|
||||||
cr.`reduction_product` <= 0
|
cr.reduction_product <= 0
|
||||||
OR cr.`reduction_product` IN (
|
OR cr.reduction_product IN (
|
||||||
SELECT `id_product`
|
SELECT id_product
|
||||||
FROM `'._DB_PREFIX_.'cart_product`
|
FROM '._DB_PREFIX_.'cart_product
|
||||||
WHERE `id_cart` = '.(int)$context->cart->id.'
|
WHERE id_cart = '.(int)$context->cart->id.'
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
AND cr.id_cart_rule NOT IN (SELECT id_cart_rule FROM '._DB_PREFIX_.'cart_cart_rule WHERE id_cart = '.(int)$context->cart->id.')
|
AND cr.id_cart_rule NOT IN (SELECT id_cart_rule FROM '._DB_PREFIX_.'cart_cart_rule WHERE id_cart = '.(int)$context->cart->id.')
|
||||||
ORDER BY priority';
|
ORDER BY priority';
|
||||||
$result = Db::getInstance()->executeS($sql);
|
$result = Db::getInstance()->executeS($sql);
|
||||||
if ($result)
|
if ($result)
|
||||||
@@ -1201,7 +1206,7 @@ class CartRuleCore extends ObjectModel
|
|||||||
SELECT cr.*, crl.*
|
SELECT cr.*, crl.*
|
||||||
FROM '._DB_PREFIX_.'cart_rule cr
|
FROM '._DB_PREFIX_.'cart_rule cr
|
||||||
LEFT JOIN '._DB_PREFIX_.'cart_rule_lang crl ON (cr.id_cart_rule = crl.id_cart_rule AND crl.id_lang = '.(int)$id_lang.')
|
LEFT JOIN '._DB_PREFIX_.'cart_rule_lang crl ON (cr.id_cart_rule = crl.id_cart_rule AND crl.id_lang = '.(int)$id_lang.')
|
||||||
WHERE code LIKE \'%'.pSQL($name).'%\' OR name LIKE \'%'.pSQL($name).'%\'
|
WHERE code LIKE \'%'.pSQL($name).'%\'
|
||||||
');
|
');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+67
-87
@@ -107,9 +107,9 @@ class CategoryCore extends ObjectModel
|
|||||||
'date_upd' => array('type' => self::TYPE_DATE, 'validate' => 'isDate'),
|
'date_upd' => array('type' => self::TYPE_DATE, 'validate' => 'isDate'),
|
||||||
|
|
||||||
// Lang fields
|
// Lang fields
|
||||||
'name' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isCatalogName', 'required' => true, 'size' => 128),
|
'name' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isCatalogName', 'required' => true, 'size' => 64),
|
||||||
'link_rewrite' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isLinkRewrite', 'required' => true, 'size' => 128),
|
'link_rewrite' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isLinkRewrite', 'required' => true, 'size' => 64),
|
||||||
'description' => array('type' => self::TYPE_HTML, 'lang' => true, 'validate' => 'isCleanHtml'),
|
'description' => array('type' => self::TYPE_HTML, 'lang' => true, 'validate' => 'isString'),
|
||||||
'meta_title' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'size' => 128),
|
'meta_title' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'size' => 128),
|
||||||
'meta_description' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'size' => 255),
|
'meta_description' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'size' => 255),
|
||||||
'meta_keywords' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'size' => 255),
|
'meta_keywords' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'size' => 255),
|
||||||
@@ -666,9 +666,9 @@ class CategoryCore extends ObjectModel
|
|||||||
* @param boolean $active return only active categories
|
* @param boolean $active return only active categories
|
||||||
* @return array categories
|
* @return array categories
|
||||||
*/
|
*/
|
||||||
public static function getHomeCategories($id_lang, $active = true, $id_shop = false)
|
public static function getHomeCategories($id_lang, $active = true)
|
||||||
{
|
{
|
||||||
return self::getChildren(Configuration::get('PS_HOME_CATEGORY'), $id_lang, $active, $id_shop);
|
return self::getChildren(Configuration::get('PS_HOME_CATEGORY'), $id_lang, $active);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getRootCategory($id_lang = null, Shop $shop = null)
|
public static function getRootCategory($id_lang = null, Shop $shop = null)
|
||||||
@@ -704,22 +704,16 @@ class CategoryCore extends ObjectModel
|
|||||||
if (!Validate::isBool($active))
|
if (!Validate::isBool($active))
|
||||||
die(Tools::displayError());
|
die(Tools::displayError());
|
||||||
|
|
||||||
$cache_id = 'Category::getChildren_'.(int)$id_parent.'-'.(int)$id_lang.'-'.(bool)$active.'-'.(int)$id_shop;
|
$query = 'SELECT c.`id_category`, cl.`name`, cl.`link_rewrite`, category_shop.`id_shop`
|
||||||
if (!Cache::isStored($cache_id))
|
FROM `'._DB_PREFIX_.'category` c
|
||||||
{
|
LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON (c.`id_category` = cl.`id_category`'.Shop::addSqlRestrictionOnLang('cl').')
|
||||||
$query = 'SELECT c.`id_category`, cl.`name`, cl.`link_rewrite`, category_shop.`id_shop`
|
'.Shop::addSqlAssociation('category', 'c').'
|
||||||
FROM `'._DB_PREFIX_.'category` c
|
WHERE `id_lang` = '.(int)$id_lang.'
|
||||||
LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON (c.`id_category` = cl.`id_category`'.Shop::addSqlRestrictionOnLang('cl').')
|
AND c.`id_parent` = '.(int)$id_parent.'
|
||||||
'.Shop::addSqlAssociation('category', 'c').'
|
'.($active ? 'AND `active` = 1' : '').'
|
||||||
WHERE `id_lang` = '.(int)$id_lang.'
|
GROUP BY c.`id_category`
|
||||||
AND c.`id_parent` = '.(int)$id_parent.'
|
ORDER BY category_shop.`position` ASC';
|
||||||
'.($active ? 'AND `active` = 1' : '').'
|
return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($query);
|
||||||
GROUP BY c.`id_category`
|
|
||||||
ORDER BY category_shop.`position` ASC';
|
|
||||||
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($query);
|
|
||||||
Cache::store($cache_id, $result);
|
|
||||||
}
|
|
||||||
return Cache::retrieve($cache_id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -802,7 +796,7 @@ class CategoryCore extends ObjectModel
|
|||||||
)).')';
|
)).')';
|
||||||
|
|
||||||
$flag = Db::getInstance()->execute('
|
$flag = Db::getInstance()->execute('
|
||||||
INSERT IGNORE INTO `'._DB_PREFIX_.'category_product` (`id_product`, `id_category`, `position`)
|
INSERT INTO `'._DB_PREFIX_.'category_product` (`id_product`, `id_category`, `position`)
|
||||||
VALUES '.implode(',', $row)
|
VALUES '.implode(',', $row)
|
||||||
);
|
);
|
||||||
return $flag;
|
return $flag;
|
||||||
@@ -837,15 +831,20 @@ class CategoryCore extends ObjectModel
|
|||||||
if (!Validate::isUnsignedId($id_category) || !Validate::isUnsignedId($id_lang))
|
if (!Validate::isUnsignedId($id_category) || !Validate::isUnsignedId($id_lang))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!isset(self::$_links[$id_category.'-'.$id_lang]))
|
if (isset(self::$_links[$id_category.'-'.$id_lang]))
|
||||||
self::$_links[$id_category.'-'.$id_lang] = Db::getInstance()->getValue('
|
return self::$_links[$id_category.'-'.$id_lang];
|
||||||
SELECT cl.`link_rewrite`
|
|
||||||
FROM `'._DB_PREFIX_.'category_lang` cl
|
$result = Db::getInstance()->getRow('
|
||||||
WHERE `id_lang` = '.(int)$id_lang.'
|
SELECT cl.`link_rewrite`
|
||||||
'.Shop::addSqlRestrictionOnLang('cl').'
|
FROM `'._DB_PREFIX_.'category_lang` cl
|
||||||
AND cl.`id_category` = '.(int)$id_category
|
WHERE `id_lang` = '.(int)$id_lang.'
|
||||||
);
|
'.Shop::addSqlRestrictionOnLang('cl').'
|
||||||
return self::$_links[$id_category.'-'.$id_lang];
|
AND cl.`id_category` = '.(int)$id_category
|
||||||
|
);
|
||||||
|
|
||||||
|
self::$_links[$id_category.'-'.$id_lang] = $result['link_rewrite'];
|
||||||
|
|
||||||
|
return $result['link_rewrite'];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getLink(Link $link = null)
|
public function getLink(Link $link = null)
|
||||||
@@ -1014,20 +1013,14 @@ class CategoryCore extends ObjectModel
|
|||||||
public function getGroups()
|
public function getGroups()
|
||||||
{
|
{
|
||||||
$groups = array();
|
$groups = array();
|
||||||
$cache_id = 'Category::getGroups_'.(int)$this->id;
|
$result = Db::getInstance()->executeS('
|
||||||
if (!Cache::isStored($cache_id))
|
SELECT cg.`id_group`
|
||||||
{
|
FROM '._DB_PREFIX_.'category_group cg
|
||||||
$result = Db::getInstance()->executeS('
|
WHERE cg.`id_category` = '.(int)$this->id
|
||||||
SELECT cg.`id_group`
|
);
|
||||||
FROM '._DB_PREFIX_.'category_group cg
|
foreach ($result as $group)
|
||||||
WHERE cg.`id_category` = '.(int)$this->id
|
$groups[] = $group['id_group'];
|
||||||
);
|
return $groups;
|
||||||
$groups = array();
|
|
||||||
foreach ($result as $group)
|
|
||||||
$groups[] = $group['id_group'];
|
|
||||||
Cache::store($cache_id, $groups);
|
|
||||||
}
|
|
||||||
return Cache::retrieve($cache_id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function addGroupsIfNoExist($id_group)
|
public function addGroupsIfNoExist($id_group)
|
||||||
@@ -1048,23 +1041,24 @@ class CategoryCore extends ObjectModel
|
|||||||
*/
|
*/
|
||||||
public function checkAccess($id_customer)
|
public function checkAccess($id_customer)
|
||||||
{
|
{
|
||||||
$cache_id = 'Category::checkAccess_'.(int)$this->id.'-'.$id_customer.(!$id_customer ? '-'.(int)Group::getCurrent()->id : '');
|
if (!$id_customer)
|
||||||
if (!Cache::isStored($cache_id))
|
|
||||||
{
|
{
|
||||||
if (!$id_customer)
|
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
|
||||||
$result = (bool)Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
|
|
||||||
SELECT ctg.`id_group`
|
SELECT ctg.`id_group`
|
||||||
FROM '._DB_PREFIX_.'category_group ctg
|
FROM '._DB_PREFIX_.'category_group ctg
|
||||||
WHERE ctg.`id_category` = '.(int)$this->id.' AND ctg.`id_group` = '.(int)Group::getCurrent()->id);
|
WHERE ctg.`id_category` = '.(int)$this->id.' AND ctg.`id_group` = '.(int)Group::getCurrent()->id.'
|
||||||
else
|
');
|
||||||
$result = (bool)Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
|
} else {
|
||||||
|
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow('
|
||||||
SELECT ctg.`id_group`
|
SELECT ctg.`id_group`
|
||||||
FROM '._DB_PREFIX_.'category_group ctg
|
FROM '._DB_PREFIX_.'category_group ctg
|
||||||
INNER JOIN '._DB_PREFIX_.'customer_group cg on (cg.`id_group` = ctg.`id_group` AND cg.`id_customer` = '.(int)$id_customer.')
|
INNER JOIN '._DB_PREFIX_.'customer_group cg on (cg.`id_group` = ctg.`id_group` AND cg.`id_customer` = '.(int)$id_customer.')
|
||||||
WHERE ctg.`id_category` = '.(int)$this->id);
|
WHERE ctg.`id_category` = '.(int)$this->id
|
||||||
Cache::store($cache_id, $result);
|
);
|
||||||
}
|
}
|
||||||
return Cache::retrieve($cache_id);
|
if ($result && isset($result['id_group']) && $result['id_group'])
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1210,16 +1204,12 @@ class CategoryCore extends ObjectModel
|
|||||||
*/
|
*/
|
||||||
public static function getInterval($id)
|
public static function getInterval($id)
|
||||||
{
|
{
|
||||||
$cache_id = 'Category::getInterval_'.(int)$id;
|
$sql = 'SELECT nleft, nright, level_depth
|
||||||
if (!Cache::isStored($cache_id))
|
FROM '._DB_PREFIX_.'category
|
||||||
{
|
WHERE id_category = '.(int)$id;
|
||||||
$sql = 'SELECT nleft, nright, level_depth
|
if (!$result = Db::getInstance()->getRow($sql))
|
||||||
FROM '._DB_PREFIX_.'category
|
return false;
|
||||||
WHERE id_category = '.(int)$id;
|
return $result;
|
||||||
$result = Db::getInstance()->getRow($sql);
|
|
||||||
Cache::store($cache_id, $result);
|
|
||||||
}
|
|
||||||
return Cache::retrieve($cache_id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1401,17 +1391,12 @@ class CategoryCore extends ObjectModel
|
|||||||
|
|
||||||
public static function getCategoriesWithoutParent()
|
public static function getCategoriesWithoutParent()
|
||||||
{
|
{
|
||||||
$cache_id = 'Category::getCategoriesWithoutParent_'.(int)Context::getContext()->language->id;
|
return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
|
||||||
if (!Cache::isStored($cache_id))
|
SELECT DISTINCT c.*
|
||||||
{
|
FROM `'._DB_PREFIX_.'category` c
|
||||||
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
|
LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON (c.`id_category` = cl.`id_category` AND cl.`id_lang` = '.(int)Context::getContext()->language->id.')
|
||||||
SELECT DISTINCT c.*
|
WHERE `level_depth` = 1
|
||||||
FROM `'._DB_PREFIX_.'category` c
|
');
|
||||||
LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON (c.`id_category` = cl.`id_category` AND cl.`id_lang` = '.(int)Context::getContext()->language->id.')
|
|
||||||
WHERE `level_depth` = 1');
|
|
||||||
Cache::store($cache_id, $result);
|
|
||||||
}
|
|
||||||
return Cache::retrieve($cache_id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function isRootCategoryForAShop()
|
public function isRootCategoryForAShop()
|
||||||
@@ -1430,17 +1415,12 @@ class CategoryCore extends ObjectModel
|
|||||||
public static function getTopCategory($id_lang = null)
|
public static function getTopCategory($id_lang = null)
|
||||||
{
|
{
|
||||||
if (is_null($id_lang))
|
if (is_null($id_lang))
|
||||||
$id_lang = (int)Context::getContext()->language->id;
|
$id_lang = Context::getContext()->language->id;
|
||||||
$cache_id = 'Category::getTopCategory_'.(int)$id_lang;
|
$id_category = Db::getInstance()->getValue('
|
||||||
if (!Cache::isStored($cache_id))
|
SELECT `id_category`
|
||||||
{
|
FROM `'._DB_PREFIX_.'category`
|
||||||
$id_category = (int)Db::getInstance()->getValue('
|
WHERE `id_parent` = 0');
|
||||||
SELECT `id_category`
|
return new Category($id_category, $id_lang);
|
||||||
FROM `'._DB_PREFIX_.'category`
|
|
||||||
WHERE `id_parent` = 0');
|
|
||||||
Cache::store($cache_id, new Category($id_category, $id_lang));
|
|
||||||
}
|
|
||||||
return Cache::retrieve($cache_id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function addPosition($position, $id_shop = null)
|
public function addPosition($position, $id_shop = null)
|
||||||
|
|||||||
@@ -74,16 +74,6 @@ class CollectionCore implements Iterator, ArrayAccess, Countable
|
|||||||
* @var int Total of elements for iteration
|
* @var int Total of elements for iteration
|
||||||
*/
|
*/
|
||||||
protected $total;
|
protected $total;
|
||||||
|
|
||||||
/**
|
|
||||||
* @var int Page number
|
|
||||||
*/
|
|
||||||
protected $page_number = 0;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var int Size of a page
|
|
||||||
*/
|
|
||||||
protected $page_size = 0;
|
|
||||||
|
|
||||||
protected $fields = array();
|
protected $fields = array();
|
||||||
protected $alias = array();
|
protected $alias = array();
|
||||||
@@ -344,11 +334,6 @@ class CollectionCore implements Iterator, ArrayAccess, Countable
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// All limit clause
|
|
||||||
if ($this->page_size)
|
|
||||||
$this->query->limit($this->page_size, $this->page_number * $this->page_size);
|
|
||||||
|
|
||||||
|
|
||||||
// Shall we display query for debug ?
|
// Shall we display query for debug ?
|
||||||
if ($display_query)
|
if ($display_query)
|
||||||
@@ -674,34 +659,6 @@ class CollectionCore implements Iterator, ArrayAccess, Countable
|
|||||||
}
|
}
|
||||||
return $this->fields[$field];
|
return $this->fields[$field];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the page number
|
|
||||||
*
|
|
||||||
* @param int $page_number
|
|
||||||
* @return Collection
|
|
||||||
*/
|
|
||||||
public function setPageNumber($page_number)
|
|
||||||
{
|
|
||||||
$page_number = (int)$page_number;
|
|
||||||
if ($page_number > 0)
|
|
||||||
$page_number--;
|
|
||||||
|
|
||||||
$this->page_number = $page_number;
|
|
||||||
return $this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the nuber of item per page
|
|
||||||
*
|
|
||||||
* @param int $page_size
|
|
||||||
* @return Collection
|
|
||||||
*/
|
|
||||||
public function setPageSize($page_size)
|
|
||||||
{
|
|
||||||
$this->page_size = (int)$page_size;
|
|
||||||
return $this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generate uniq alias from association name
|
* Generate uniq alias from association name
|
||||||
|
|||||||
@@ -102,14 +102,7 @@ class CombinationCore extends ObjectModel
|
|||||||
|
|
||||||
// Removes the product from StockAvailable, for the current shop
|
// Removes the product from StockAvailable, for the current shop
|
||||||
StockAvailable::removeProductFromStockAvailable((int)$this->id_product, (int)$this->id);
|
StockAvailable::removeProductFromStockAvailable((int)$this->id_product, (int)$this->id);
|
||||||
|
|
||||||
if ($specific_prices = SpecificPrice::getByProductId((int)$this->id_product, (int)$this->id))
|
|
||||||
foreach ($specific_prices as $specific_price)
|
|
||||||
{
|
|
||||||
$price = new SpecificPrice((int)$specific_price['id_specific_price']);
|
|
||||||
$price->delete();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$this->hasMultishopEntries() && !$this->deleteAssociations())
|
if (!$this->hasMultishopEntries() && !$this->deleteAssociations())
|
||||||
return false;
|
return false;
|
||||||
return true;
|
return true;
|
||||||
@@ -135,7 +128,6 @@ class CombinationCore extends ObjectModel
|
|||||||
{
|
{
|
||||||
$result = Db::getInstance()->delete('product_attribute_combination', '`id_product_attribute` = '.(int)$this->id);
|
$result = Db::getInstance()->delete('product_attribute_combination', '`id_product_attribute` = '.(int)$this->id);
|
||||||
$result &= Db::getInstance()->delete('cart_product', '`id_product_attribute` = '.(int)$this->id);
|
$result &= Db::getInstance()->delete('cart_product', '`id_product_attribute` = '.(int)$this->id);
|
||||||
$result &= Db::getInstance()->delete('product_attribute_image', '`id_product_attribute` = '.(int)$this->id);
|
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ class ConfigurationTestCore
|
|||||||
'mysql_support' => false,
|
'mysql_support' => false,
|
||||||
'config_dir' => 'config',
|
'config_dir' => 'config',
|
||||||
'cache_dir' => 'cache',
|
'cache_dir' => 'cache',
|
||||||
|
'sitemap' => 'sitemap.xml',
|
||||||
'log_dir' => 'log',
|
'log_dir' => 'log',
|
||||||
'img_dir' => 'img',
|
'img_dir' => 'img',
|
||||||
'mails_dir' => 'mails',
|
'mails_dir' => 'mails',
|
||||||
@@ -58,8 +59,7 @@ class ConfigurationTestCore
|
|||||||
'theme_cache_dir' => 'themes/'._THEME_NAME_.'/cache/',
|
'theme_cache_dir' => 'themes/'._THEME_NAME_.'/cache/',
|
||||||
'translations_dir' => 'translations',
|
'translations_dir' => 'translations',
|
||||||
'customizable_products_dir' => 'upload',
|
'customizable_products_dir' => 'upload',
|
||||||
'virtual_products_dir' => 'download',
|
'virtual_products_dir' => 'download'
|
||||||
'files' => false
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -319,21 +319,4 @@ class ConfigurationTestCore
|
|||||||
{
|
{
|
||||||
return extension_loaded('Dom');
|
return extension_loaded('Dom');
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function test_files()
|
|
||||||
{
|
|
||||||
$files = array(
|
|
||||||
'/cache/smarty/compile/index.php',
|
|
||||||
'/classes/log/index.php',
|
|
||||||
'/classes/cache/index.php',
|
|
||||||
'/config/index.php',
|
|
||||||
'/tools/tar/Archive_Tar.php',
|
|
||||||
'/tools/pear/PEAR.php',
|
|
||||||
'/index.php'
|
|
||||||
);
|
|
||||||
foreach ($files as $file)
|
|
||||||
if (!file_exists(rtrim(_PS_ROOT_DIR_, DIRECTORY_SEPARATOR).str_replace('/', DIRECTORY_SEPARATOR, $file)))
|
|
||||||
return false;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -82,12 +82,8 @@ class ConnectionCore extends ObjectModel
|
|||||||
// The connection is created if it does not exist yet and we get the current page id
|
// The connection is created if it does not exist yet and we get the current page id
|
||||||
if (!isset($cookie->id_connections) || !strstr(isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '', Tools::getHttpHost(false, false)))
|
if (!isset($cookie->id_connections) || !strstr(isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '', Tools::getHttpHost(false, false)))
|
||||||
$id_page = Connection::setNewConnection($cookie);
|
$id_page = Connection::setNewConnection($cookie);
|
||||||
// If we do not track the pages, no need to get the page id
|
|
||||||
if (!Configuration::get('PS_STATSDATA_PAGESVIEWS') && !Configuration::get('PS_STATSDATA_CUSTOMER_PAGESVIEWS'))
|
|
||||||
return array();
|
|
||||||
if (!isset($id_page) || !$id_page)
|
if (!isset($id_page) || !$id_page)
|
||||||
$id_page = Page::getCurrentId();
|
$id_page = Page::getCurrentId();
|
||||||
// If we do not track the page views by customer, the id_page is the only information needed
|
|
||||||
if (!Configuration::get('PS_STATSDATA_CUSTOMER_PAGESVIEWS'))
|
if (!Configuration::get('PS_STATSDATA_CUSTOMER_PAGESVIEWS'))
|
||||||
return array('id_page' => $id_page);
|
return array('id_page' => $id_page);
|
||||||
|
|
||||||
@@ -97,7 +93,7 @@ class ConnectionCore extends ObjectModel
|
|||||||
'id_connections' => (int)$cookie->id_connections,
|
'id_connections' => (int)$cookie->id_connections,
|
||||||
'id_page' => (int)$id_page,
|
'id_page' => (int)$id_page,
|
||||||
'time_start' => $time_start
|
'time_start' => $time_start
|
||||||
), false, true, Db::INSERT_IGNORE);
|
));
|
||||||
|
|
||||||
// This array is serialized and used by the ajax request to identify the page
|
// This array is serialized and used by the ajax request to identify the page
|
||||||
return array(
|
return array(
|
||||||
@@ -114,7 +110,7 @@ class ConnectionCore extends ObjectModel
|
|||||||
// This is a bot and we have to retrieve its connection ID
|
// This is a bot and we have to retrieve its connection ID
|
||||||
$sql = 'SELECT `id_connections` FROM `'._DB_PREFIX_.'connections`
|
$sql = 'SELECT `id_connections` FROM `'._DB_PREFIX_.'connections`
|
||||||
WHERE ip_address = '.ip2long(Tools::getRemoteAddr()).'
|
WHERE ip_address = '.ip2long(Tools::getRemoteAddr()).'
|
||||||
AND `date_add` > \''.pSQL(date('Y-m-d H:i:00', time() - 1800)).'\'
|
AND DATE_ADD(`date_add`, INTERVAL 30 MINUTE) > \''.pSQL(date('Y-m-d H:i:00')).'\'
|
||||||
'.Shop::addSqlRestriction(Shop::SHARE_CUSTOMER).'
|
'.Shop::addSqlRestriction(Shop::SHARE_CUSTOMER).'
|
||||||
ORDER BY `date_add` DESC';
|
ORDER BY `date_add` DESC';
|
||||||
if ($id_connections = Db::getInstance()->getValue($sql))
|
if ($id_connections = Db::getInstance()->getValue($sql))
|
||||||
@@ -128,7 +124,7 @@ class ConnectionCore extends ObjectModel
|
|||||||
$sql = 'SELECT `id_guest`
|
$sql = 'SELECT `id_guest`
|
||||||
FROM `'._DB_PREFIX_.'connections`
|
FROM `'._DB_PREFIX_.'connections`
|
||||||
WHERE `id_guest` = '.(int)$cookie->id_guest.'
|
WHERE `id_guest` = '.(int)$cookie->id_guest.'
|
||||||
AND `date_add` > \''.pSQL(date('Y-m-d H:i:00', time() - 1800)).'\'
|
AND DATE_ADD(`date_add`, INTERVAL 30 MINUTE) > \''.pSQL(date('Y-m-d H:i:00')).'\'
|
||||||
'.Shop::addSqlRestriction(Shop::SHARE_CUSTOMER).'
|
'.Shop::addSqlRestriction(Shop::SHARE_CUSTOMER).'
|
||||||
ORDER BY `date_add` DESC';
|
ORDER BY `date_add` DESC';
|
||||||
$result = Db::getInstance()->getRow($sql);
|
$result = Db::getInstance()->getRow($sql);
|
||||||
|
|||||||
@@ -298,11 +298,7 @@ class CookieCore
|
|||||||
|
|
||||||
//checks if the language exists, if not choose the default language
|
//checks if the language exists, if not choose the default language
|
||||||
if (!$this->_standalone && !Language::getLanguage((int)$this->id_lang))
|
if (!$this->_standalone && !Language::getLanguage((int)$this->id_lang))
|
||||||
{
|
|
||||||
$this->id_lang = Configuration::get('PS_LANG_DEFAULT');
|
$this->id_lang = Configuration::get('PS_LANG_DEFAULT');
|
||||||
// set detect_language to force going through Tools::setCookieLanguage to figure out browser lang
|
|
||||||
$this->detect_language = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+12
-15
@@ -121,23 +121,20 @@ class CountryCore extends ObjectModel
|
|||||||
public static function getCountries($id_lang, $active = false, $contain_states = false, $list_states = true)
|
public static function getCountries($id_lang, $active = false, $contain_states = false, $list_states = true)
|
||||||
{
|
{
|
||||||
$countries = array();
|
$countries = array();
|
||||||
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
|
foreach (Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('SELECT cl.*,c.*, cl.`name` country, z.`name` zone
|
||||||
SELECT cl.*,c.*, cl.`name` country, z.`name` zone
|
FROM `'._DB_PREFIX_.'country` c '.Shop::addSqlAssociation('country', 'c').'
|
||||||
FROM `'._DB_PREFIX_.'country` c '.Shop::addSqlAssociation('country', 'c').'
|
LEFT JOIN `'._DB_PREFIX_.'country_lang` cl ON (c.`id_country` = cl.`id_country` AND cl.`id_lang` = '.(int)$id_lang.')
|
||||||
LEFT JOIN `'._DB_PREFIX_.'country_lang` cl ON (c.`id_country` = cl.`id_country` AND cl.`id_lang` = '.(int)$id_lang.')
|
LEFT JOIN `'._DB_PREFIX_.'zone` z ON (z.`id_zone` = c.`id_zone`)
|
||||||
LEFT JOIN `'._DB_PREFIX_.'zone` z ON (z.`id_zone` = c.`id_zone`)
|
WHERE 1'.($active ? ' AND c.active = 1' : '').($contain_states ? ' AND c.`contains_states` = '.(int)$contain_states : '').'
|
||||||
WHERE 1'.($active ? ' AND c.active = 1' : '').($contain_states ? ' AND c.`contains_states` = '.(int)$contain_states : '').'
|
ORDER BY cl.name ASC') as $country)
|
||||||
ORDER BY cl.name ASC');
|
$countries[$country['id_country']] = $country;
|
||||||
foreach ($result as $row)
|
|
||||||
$countries[$row['id_country']] = $row;
|
|
||||||
|
|
||||||
if ($list_states)
|
if ($list_states)
|
||||||
{
|
foreach (Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('SELECT * FROM `'._DB_PREFIX_.'state` ORDER BY `name` ASC') as $state)
|
||||||
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('SELECT * FROM `'._DB_PREFIX_.'state` ORDER BY `name` ASC');
|
if (isset($countries[$state['id_country']])) /* Does not keep the state if its country has been disabled and not selected */
|
||||||
foreach ($result as $row)
|
if ($state['active'] == 1)
|
||||||
if (isset($countries[$row['id_country']]) && $row['active'] == 1) /* Does not keep the state if its country has been disabled and not selected */
|
$countries[$state['id_country']]['states'][] = $state;
|
||||||
$countries[$row['id_country']]['states'][] = $row;
|
|
||||||
}
|
|
||||||
return $countries;
|
return $countries;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user