Compare commits

..
19 Commits
Author SHA1 Message Date
François Gaillard e3d9613abf // Development branch merged 2013-03-27 10:43:43 +01:00
Damien Metzger 1d03f35748 Merge pull request #267 from dSkrbic/patch-1
// translations
2013-02-27 00:48:46 -08:00
dSkrbic 808fec8f4c // translations 2013-02-11 18:42:50 +01:00
Damien Metzger 3310d7582c // Fix upgrade 2012-12-31 15:17:35 +01:00
Damien Metzger 15b26ee239 // Changelog, readme and install_version.php 2012-12-31 14:37:29 +01:00
Rémi GaillardandDamien Metzger 92a64c0c76 // oups.... 2012-12-31 13:52:28 +01:00
Rémi GaillardandDamien Metzger 17aed56146 // small fix 2012-12-31 13:52:28 +01:00
Rémi GaillardandDamien Metzger 7744068783 [-] FO: Fix retrocompatibility for modules and old themes 2012-12-31 13:52:27 +01:00
Damien Metzger 41798f3d8b // Just to be sure... 2012-12-31 13:52:27 +01:00
Damien Metzger 03101f3bab [-] BO : fixed accentuated URLs in products 2012-12-31 13:52:27 +01:00
PrestaEditandDamien Metzger 1986ed9fef [-] Project: Fix bug when you want to upload (and resize) an image 2012-12-31 13:52:26 +01:00
Damien Metzger a18eb5bebe // Missing part of a fix 2012-12-31 13:52:26 +01:00
Rémi GaillardandDamien Metzger 23ecbcbeaa [-] FO: Fix PHP warning on category controller 2012-12-31 13:52:15 +01:00
Rémi GaillardandDamien Metzger 2903ab096a [-] Installer: Fix #PSCFV-6392 redirect_type was missing on upgrade 2012-12-31 13:52:15 +01:00
vAugagneur d571f91e74 Merge branch 'release' 2012-12-28 16:16:40 +01:00
vAugagneur 5cfd0c6f9a Merge branch 'release' 2012-12-28 10:40:40 +01:00
vAugagneur e36548ad3c //updated CONTRIBUTING.md & CONTRIBUTORS.md thanks to @all 2012-11-30 10:56:18 +01:00
François Gaillard 4f269e87a4 // .DS_Store files added to .gitignore 2012-11-26 11:21:23 +01:00
vAugagneur 3eebb2d620 //added CONTRIBUTING.md CONTRIBUTORS.md README.md 2012-11-22 14:57:18 +01:00
1434 changed files with 35708 additions and 42370 deletions
+1 -76
View File
@@ -7,15 +7,6 @@
.DS_Store .DS_Store
robots.txt robots.txt
sitemap.xml sitemap.xml
cache/cachefs/*
!cache/cachefs/index.php
download/*
!download/index.php
upload/*
!upload/index.php
admin-dev/autoupgrade/*
admin-dev/backups/*
!admin-dev/backups/index.php
cache/smarty/cache/* cache/smarty/cache/*
!cache/smarty/cache/index.php !cache/smarty/cache/index.php
cache/smarty/compile/* cache/smarty/compile/*
@@ -25,7 +16,6 @@ cache/tcpdf/*
!cache/tcpdf/index.php !cache/tcpdf/index.php
config/xml/*.xml config/xml/*.xml
config/settings.inc.php config/settings.inc.php
config/settings.old.php
log/*.log log/*.log
img/* img/*
!img/index.php !img/index.php
@@ -37,71 +27,6 @@ tools/smarty*/compile/*.php
override/classes/*.php override/classes/*.php
themes/default/cache/*.js themes/default/cache/*.js
themes/default/cache/*.css themes/default/cache/*.css
themes/default/modules/*/*.php
!themes/default/modules/*/index.php
themes/default/lang/*.php
!themes/default/lang/index.php
modules/*/translations/*.php modules/*/translations/*.php
!modules/*/translations/index.php !modules/*/translations/index.php
mails/*
!mails/en
modules/*/mails/*
!modules/*/mails/en
translations/*
!translations/*.gzip
modules/atos/*
modules/addshoppers
modules/alliedwallet
modules/authorizeaim
modules/autoupgrade
modules/avalaratax
modules/backwardcompatibility
modules/canadapost
modules/cloudcache
modules/ebay
modules/fedexcarrier
modules/fianetfraud
modules/fianetsceau
modules/fidbag
modules/firstdata
modules/gadwords
modules/gamification
modules/ganalytics
modules/gsitemap
modules/hipay
modules/iadvize
modules/itembase
modules/jirafe
modules/kiala
modules/kialasmall
modules/klarnaprestashop
modules/kwixo
modules/livezilla
modules/mailjet
modules/merchantware
modules/mobile_theme
modules/mondialrelay
modules/moneybookers
modules/nqgatewayneteven
modules/ogone
modules/pagseguro
modules/paypal
modules/payulatam
modules/prediggo
modules/prestafraud
modules/shipwire
modules/shoppingfeedexport
modules/shoppingfluxexport
modules/socolissimo
modules/stripejs
modules/themeinstallator
modules/tntcarrier
modules/treepodia
modules/trustedshops
modules/trustly
modules/twenga
modules/upscarrier
modules/uspscarrier
modules/wexpay
modules/yotpo
modules/zingaya
+2 -2
View File
@@ -8,5 +8,5 @@ All core files you commit in your pull request must have Open Software License (
All modules files you commit in your pull request must have Academic Free License (AFL 3.0) All modules files you commit in your pull request must have Academic Free License (AFL 3.0)
[1]: https://help.github.com/articles/using-pull-requests [1]: https://help.github.com/articles/using-pull-requests
[2]: http://docs.prestashop.com/display/PS15/Coding+Standards [2]: http://docs.prestashop.com/display/PS15/Coding+Standard
[3]: http://docs.prestashop.com/display/PS15/How+to+write+a+commit+message [3]: http://docs.prestashop.com/display/PS15/How+to+write+a+commit+message
+79 -160
View File
@@ -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
+20 -21
View File
@@ -2,48 +2,47 @@ README
====== ======
![PrestaShop](http://www.prestashop.com/images/banners/general/prestashop_728x90.png "PrestaShop") ![PrestaShop](http://www.prestashop.com/images/banners/general/prestashop_728x90.png "PrestaShop")
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/
+1 -1
View File
@@ -34,4 +34,4 @@
require(dirname(__FILE__).'/config/config.inc.php'); require(dirname(__FILE__).'/config/config.inc.php');
Tools::displayFileAsDeprecated(); Tools::displayFileAsDeprecated();
Tools::redirect('index.php?controller=address'.((count($_GET) || count($_POST)) ? '&'.http_build_query(array_merge($_GET, $_POST), '', '&') : ''), __PS_BASE_URI__, null, 'HTTP/1.1 301 Moved Permanently'); Tools::redirect('index.php?controller=address'.($_REQUEST ? '&'.http_build_query($_REQUEST, '', '&') : ''), __PS_BASE_URI__, null, 'HTTP/1.1 301 Moved Permanently');
+1 -1
View File
@@ -34,4 +34,4 @@
require(dirname(__FILE__).'/config/config.inc.php'); require(dirname(__FILE__).'/config/config.inc.php');
Tools::displayFileAsDeprecated(); Tools::displayFileAsDeprecated();
Tools::redirect('index.php?controller=addresses'.((count($_GET) || count($_POST)) ? '&'.http_build_query(array_merge($_GET, $_POST), '', '&') : ''), __PS_BASE_URI__, null, 'HTTP/1.1 301 Moved Permanently'); Tools::redirect('index.php?controller=addresses'.($_REQUEST ? '&'.http_build_query($_REQUEST, '', '&') : ''), __PS_BASE_URI__, null, 'HTTP/1.1 301 Moved Permanently');
+92 -1
View File
@@ -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>';
}
+17 -9
View File
@@ -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();
@@ -52,7 +60,7 @@
$tem[$k] = $v; $tem[$k] = $v;
} }
$tem['path'] = addslashes(backslashToSlash($path)); $tem['path'] = backslashToSlash($path);
$tem['type'] = "file"; $tem['type'] = "file";
$tem['size'] = transformFileSize($tem['size']); $tem['size'] = transformFileSize($tem['size']);
$tem['ctime'] = date(DATE_TIME_FORMAT, $tem['ctime']); $tem['ctime'] = date(DATE_TIME_FORMAT, $tem['ctime']);
@@ -65,7 +73,7 @@
$info .= sprintf(", %s:'%s'", $k, $v); $info .= sprintf(", %s:'%s'", $k, $v);
} }
$info .= sprintf(", url:'%s'", addslashes(getFileUrl($path))); $info .= sprintf(", url:'%s'", getFileUrl($path));
$info .= sprintf(", tipedit:'%s'", TIP_DOC_RENAME); $info .= sprintf(", tipedit:'%s'", TIP_DOC_RENAME);
@@ -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']);
@@ -100,9 +99,9 @@
{ {
$v = transformFileSize($v); $v = transformFileSize($v);
} }
echo (($j++ > 1)?",":'') . "'" . addslashes($k) . "':'" . addslashes($v) . "'"; echo (($j++ > 1)?",":'') . "'" . $k . "':'" . $v . "'";
} }
echo (($j++ > 1)?",":'') . "'url':'" . addslashes(getFileUrl($file['path'])) . "'"; echo (($j++ > 1)?",":'') . "'url':'" . getFileUrl($file['path']) . "'";
echo "}\n"; echo "}\n";
} }
echo "};</script>\n"; echo "};</script>\n";
+4 -4
View File
@@ -33,15 +33,15 @@
$this->fileInfo['atime'] = $this->fileStat[8]; $this->fileInfo['atime'] = $this->fileStat[8];
$this->fileInfo['ctime'] = $this->fileStat[10]; $this->fileInfo['ctime'] = $this->fileStat[10];
$this->fileInfo['mtime'] = $this->fileStat[9]; $this->fileInfo['mtime'] = $this->fileStat[9];
$this->fileInfo['path'] = addslashes($path); $this->fileInfo['path'] = $path;
$this->fileInfo['name'] = addslashes(basename($path)); $this->fileInfo['name'] = basename($path);
$this->fileInfo['is_writable'] = $this->isWritable(); $this->fileInfo['is_writable'] = $this->isWritable();
$this->fileInfo['is_readable'] = $this->isReadable(); $this->fileInfo['is_readable'] = $this->isReadable();
}elseif(is_dir($this->filePath)) }elseif(is_dir($this->filePath))
{ {
$this->fileStat = @stat($path); $this->fileStat = @stat($path);
$this->fileInfo['name'] = addslashes(basename($path)); $this->fileInfo['name'] = basename($path);
$this->fileInfo['path'] = addslashes($path); $this->fileInfo['path'] = $path;
$this->fileInfo['atime'] = $this->fileStat[8]; $this->fileInfo['atime'] = $this->fileStat[8];
$this->fileInfo['ctime'] = $this->fileStat[10]; $this->fileInfo['ctime'] = $this->fileStat[10];
$this->fileInfo['mtime'] = $this->fileStat[9]; $this->fileInfo['mtime'] = $this->fileStat[9];
@@ -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', '');
-3
View File
@@ -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
View File
@@ -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();
+4 -4
View File
@@ -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&trade; '._PS_VERSION_.'</a><br /> <a href="http://www.prestashop.com/" target="_blank" style="font-weight:700;color:#666666">PrestaShop&trade; '._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 &agrave; 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 &agrave; 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>
+10 -17
View File
@@ -23,7 +23,7 @@
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA * International Registered Trademark & Property of PrestaShop SA
*/ */
require_once(dirname(__FILE__).'/../images.inc.php');
function bindDatepicker($id, $time) function bindDatepicker($id, $time)
{ {
if ($time) if ($time)
@@ -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('"', '&quot;', $string); return str_replace('"', '&quot;', $string);
@@ -241,6 +233,7 @@ function translate($string)
return str_replace('"', '&quot;', stripslashes($str)); return str_replace('"', '&quot;', 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;
+1 -1
View File
@@ -25,5 +25,5 @@
*/ */
define('_PS_ADMIN_DIR_', getcwd()); define('_PS_ADMIN_DIR_', getcwd());
require(_PS_ADMIN_DIR_.'/../config/config.inc.php'); require(_PS_ADMIN_DIR_.'/config/config.inc.php');
Controller::getController('GetFileController')->run(); Controller::getController('GetFileController')->run();
-47
View File
@@ -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
View File
@@ -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&trade; - '.Translate::getAdminTranslation('Administration panel').'</title> <title>PrestaShop&trade; - '.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.'&nbsp'.Context::getContext()->employee->lastname.'</strong></div> <div class="employee_name">'.translate('Welcome,').' <strong>'.Context::getContext()->employee->firstname.'&nbsp'.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}&amp;updateemployee">'.Translate::getAdminTranslation('My preferences').'</a></li> <li><a href="'.htmlentities(Context::getContext()->link->getAdminLink('AdminEmployees'), ENT_COMPAT, 'UTF-8').'&id_employee={$employee->id}&amp;updateemployee">'.translate('My preferences').'</a></li>
<li class="separator">&nbsp;</li> <li class="separator">&nbsp;</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&amp;token='.Tools::getAdminTokenLite('AdminSearch').'"> <form method="post" action="index.php?controller=AdminSearch&amp;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>';
} }
-3
View File
@@ -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
View File
@@ -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://';
+6 -16
View File
@@ -25,16 +25,12 @@ select[disabled="disabled"], input[disabled="disabled"],textarea[disabled="disab
.double_select select{width:300px;height:160px;} .double_select select{width:300px;height:160px;}
.double_select a{text-align:center;display:block;border:1px solid #aaa;text-decoration:none;background-color:#fafafa;color:#123456;margin:2px;padding:2px} .double_select a{text-align:center;display:block;border:1px solid #aaa;text-decoration:none;background-color:#fafafa;color:#123456;margin:2px;padding:2px}
.icon {vertical-align:middle}
.icon-top {vertical-align:top}
/*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;
border-color: #CCCCCC #BBBBBB #A0A0A0;border-left: 1px solid #BBBBBB;border-radius: 3px 3px 3px 3px;border-right: 1px solid #BBBBBB;border-style: solid;border-width: 1px;color: #000000;margin: 0;outline: medium none;padding: 3px 8px;text-align: center;vertical-align: middle;white-space: nowrap; text-shadow:0 1px 0 #fff;} border-color: #CCCCCC #BBBBBB #A0A0A0;border-left: 1px solid #BBBBBB;border-radius: 3px 3px 3px 3px;border-right: 1px solid #BBBBBB;border-style: solid;border-width: 1px;color: #000000;margin: 0; outline: medium none;padding: 3px 8px;text-align: center;vertical-align: middle;white-space: nowrap; text-shadow:0 1px 0 #fff;}
.button[disabled=disabled]{color:#8C8C8C} .button[disabled=disabled]{color:#8C8C8C}
.button.bt-icon { display:inline-block; margin-bottom:7px;} .button.bt-icon { display:inline-block; margin-bottom:7px;}
.button.bt-icon span {padding-left:5px;} .button.bt-icon span {padding-left:5px;}
@@ -122,8 +118,6 @@ input.button[disabled=disabled]:hover{background-color:#FFF6D3}
#header #menu .submenu li{list-style:none;margin:0;padding:0;display:block;min-width:150px;} #header #menu .submenu li{list-style:none;margin:0;padding:0;display:block;min-width:150px;}
#header #menu .submenu li a{ font-size:12px;display:block;padding: 5px 15px 5px 10px; color:#666666;border-top:1px solid #fff; border-bottom:1px solid #ccc;} #header #menu .submenu li a{ font-size:12px;display:block;padding: 5px 15px 5px 10px; color:#666666;border-top:1px solid #fff; border-bottom:1px solid #ccc;}
#header #menu .submenu li a:hover { background-color:#eee; text-shadow:0 1px 0 #fff;} #header #menu .submenu li a:hover { background-color:#eee; text-shadow:0 1px 0 #fff;}
#header #menu .submenu li.active a { color: #fff;}
#header #menu .submenu li.active a:hover { color:#666666}
/*SEPARATION*/ /*SEPARATION*/
.separation { background-color:#ccc;border-bottom:1px solid #fff; width:100%; height:1px; margin:10px 0;} .separation { background-color:#ccc;border-bottom:1px solid #fff; width:100%; height:1px; margin:10px 0;}
@@ -538,7 +532,7 @@ form#product_form h4 { font-size:18px; font-weight:normal;}
margin:0; margin:0;
white-space: nowrap; white-space: nowrap;
overflow: auto; overflow: auto;
height: 370px; height: 335px;
} }
#modules_list_container_tab #modules_list_container_content li{display:inline-block;} #modules_list_container_tab #modules_list_container_content li{display:inline-block;}
#modules_list_container_tab table tr th { height:40px;} #modules_list_container_tab table tr th { height:40px;}
@@ -554,7 +548,7 @@ form#product_form h4 { font-size:18px; font-weight:normal;}
#modules_list_container_tab .moduleDesc .metadata dl dd { padding-right:10px;} #modules_list_container_tab .moduleDesc .metadata dl dd { padding-right:10px;}
#modules_list_container_tab .moduleDesc .metadata dl dt { font-weight:bold; padding-right:5px;} #modules_list_container_tab .moduleDesc .metadata dl dt { font-weight:bold; padding-right:5px;}
#modules_list_container_tab .moduleDesc p.desc { color:#666; font-family: Georgia; font-style: italic; font-size:12px; text-align: left;white-space: normal;} #modules_list_container_tab .moduleDesc p.desc { color:#666; font-family: Georgia; font-style: italic; font-size:12px; text-align: left;white-space: normal;}
#modules_list_container_tab .setup {background-color:#6db300; font-weight:bold; font-size:10px; color:#fff; text-transform:uppercase; padding:0 10px; display: inline-block; border-radius:3px;} #modules_list_container_tab .setup {background-color:#6db300; font-weight:bold; font-size:10px; color:#fff; text-transform:uppercase; padding:2px 10px; display: inline-block; border-radius:3px;}
#modules_list_container_tab .row-actions-module {float: right;} #modules_list_container_tab .row-actions-module {float: right;}
#modules_list_container_tab .setup.non-install { background-color:#ec7000;} #modules_list_container_tab .setup.non-install { background-color:#ec7000;}
#modules_list_container_tab .setup.must-have { background-color: #ec7000;} #modules_list_container_tab .setup.must-have { background-color: #ec7000;}
@@ -568,8 +562,8 @@ form#product_form h4 { font-size:18px; font-weight:normal;}
#modules_list_container_tab ul.listing-grid-module li select { position:absolute; top:0; right:0px; } #modules_list_container_tab ul.listing-grid-module li select { position:absolute; top:0; right:0px; }
.default_modules_list_display_type #modules_list_container_content li table tr td{border: none} .default_modules_list_display_type #modules_list_container_content li table tr td{border: none}
.default_modules_list_display_type #modules_list_container_content li table {border:solid 1px #ccc;height:105px;width:100%;margin-bottom:10px} .default_modules_list_display_type #modules_list_container_content li table {border: solid 1px #ccc; height: 140px;width: 100%;margin-bottom:15px}
#modules_list_container_tab ul li {height:105px} #modules_list_container_tab ul li {height:140px}
/******** ie7 ******/ /******** ie7 ******/
.ie7 #modules_list_container_tab #modules_list_container_content li{zoom:1;display:inline;} .ie7 #modules_list_container_tab #modules_list_container_content li{zoom:1;display:inline;}
@@ -670,8 +664,4 @@ ul.listForm li {padding-bottom:3px;}
/******** CREATE AN ORDER **************/ /******** CREATE AN ORDER **************/
#carrier_form label{padding-top:0} #carrier_form label{padding-top:0}
#carrier_form input{margin-top:3px} #carrier_form input{margin-top:3px}
/************** SCENE *****************/
#large_scene_image{clear:both;border:1px solid transparent;}
+1 -1
View File
@@ -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*/
@@ -49,12 +49,10 @@
if (perm == 'all' && $(this).parent().parent().hasClass('parent')) if (perm == 'all' && $(this).parent().parent().hasClass('parent'))
{ {
if (enabled) checked = enabled ? 'checked': '';
$(this).parent().parent().parent().find('.child-'+id_tab+' input[type=checkbox]').attr('checked', 'checked'); $(this).parent().parent().parent().find('.child-'+id_tab+' input[type=checkbox]').attr('checked', checked);
else
$(this).parent().parent().parent().find('.child-'+id_tab+' input[type=checkbox]').removeAttr('checked');
$.ajax({ $.ajax({
url: "{$link->getAdminLink('AdminAccess')|addslashes}", url: "{$link->getAdminLink('AdminAccess')}",
cache: false, cache: false,
data : { data : {
ajaxMode : '1', ajaxMode : '1',
@@ -70,12 +68,15 @@
}, },
success : function(res,textStatus,jqXHR) success : function(res,textStatus,jqXHR)
{ {
try { try
{
if (res == 'ok') if (res == 'ok')
showSuccessMessage("{l s='Update successful'}"); showSuccessMessage("{l s='Update successful'}");
else else
showErrorMessage("{l s='Update error'}"); showErrorMessage("{l s='Update error'}");
} catch(e) { }
catch(e)
{
jAlert('Technical error'); jAlert('Technical error');
} }
} }
@@ -84,7 +85,7 @@
perfect_access_js_gestion(this, perm, id_tab, tabsize, tabnumber, table); perfect_access_js_gestion(this, perm, id_tab, tabsize, tabnumber, table);
$.ajax({ $.ajax({
url: "{$link->getAdminLink('AdminAccess')|addslashes}", url: "{$link->getAdminLink('AdminAccess')}",
cache: false, cache: false,
data : { data : {
ajaxMode : '1', ajaxMode : '1',
@@ -133,7 +134,7 @@
}); });
$.ajax({ $.ajax({
url: "{$link->getAdminLink('AdminAccess')|addslashes}", url: "{$link->getAdminLink('AdminAccess')}",
cache: false, cache: false,
data : { data : {
ajaxMode: '1', ajaxMode: '1',
@@ -302,7 +303,7 @@
{assign var=is_child value=true} {assign var=is_child value=true}
{assign var=result_accesses value=0} {assign var=result_accesses value=0}
<tr class="child-{$child.id_parent}"> <tr class="child-{$child.id_parent}">
<td{if !$is_child} class="bold"{/if}>{if $is_child} &raquo; {/if}{$child.name}</td> <td{if !$is_child} class="bold"{/if}>{if $is_child} &raquo; {/if}<strong>{$child.name}</strong></td>
{foreach $perms as $perm} {foreach $perms as $perm}
{if $access_edit == 1} {if $access_edit == 1}
<td> <td>
@@ -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]);
@@ -27,10 +27,7 @@
{block name="label"} {block name="label"}
{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 $input.type == 'closediv'}
</div>
{/if} {/if}
{$smarty.block.parent} {$smarty.block.parent}
{/block} {/block}
@@ -1,58 +0,0 @@
{*
* 2007-2013 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* 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
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* 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
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2013 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*}
{extends file="helpers/form/form.tpl"}
{block name="script"}
var string_price = '{l s='Will be applied when the price is' js=1}';
var string_weight = '{l s='Will be applied when the weight is' js=1}';
{/block}
{block name="field"}
{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'}
<!--
<div class="validate_range" style="display:none">
<a href="#" class="button" id="validate_range_button">{l s="Validate"}</a>
</div>
-->
<div class="new_range">
<a href="#" onclick="add_new_range();return false;" class="button" id="add_new_range">{l s='Add new range'}</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>
{/if}
{$smarty.block.parent}
{/block}
@@ -1,61 +0,0 @@
<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">
<table cellpadding="5" cellspacing="0" id="zones_table">
<tr class="range_inf">
<td class="range_type"></td>
<td class="border_left border_bottom range_sign">>=</td>
{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">&nbsp; {$PS_WEIGHT_UNIT}</span><span class="price_unit">&nbsp; {$currency_sign}</span></td>
{foreachelse}
<td class="border_bottom center"><input name="range_inf[{$range.id_range|intval}]" type="text" /><sup>*</sup><span class="weight_unit">&nbsp; {$PS_WEIGHT_UNIT}</span><span class="price_unit">&nbsp; {$currency_sign}</span></td>
{/foreach}
</tr>
<tr class="range_sup">
<td class="center range_type"></td>
<td class="border_left range_sign"><</td>
{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">&nbsp; {$PS_WEIGHT_UNIT}</span><span class="price_unit">&nbsp; {$currency_sign}</span></td>
{foreachelse}
<td class="center"><input name="range_sup[{$range.id_range|intval}]" type="text" /><sup>*</sup><span class="weight_unit">&nbsp; {$PS_WEIGHT_UNIT}</span><span class="price_unit">&nbsp; {$currency_sign}</span></td>
{/foreach}
</tr>
<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><input type="checkbox" onclick="checkAllZones(this);" ></td>
{foreach from=$ranges key=r item=range}
<td class="center border_top border_bottom {if $range.id_range != 0} validated {/if}" >
<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}>&nbsp; {$currency_sign}</span>
</td>
{foreachelse}
<td class="center border_top border_bottom">
<input style="display:none" type="text" /><span class="currency_sign" style="display:none">&nbsp; {$currency_sign}</span>
</td>
{/foreach}
</tr>
{foreach from=$zones key=i item=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 class="zone">
<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}
<td class="center">
<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} /> &nbsp; {$currency_sign}
</td>
{/foreach}
</tr>
{/foreach}
<tr class="delete_range">
<td>&nbsp;</td>
<td>&nbsp;</td>
{foreach from=$ranges name=ranges key=r item=range}
{if $smarty.foreach.ranges.first}
<td class="center">&nbsp;</td>
{else}
<td class="center"><button class="button">{l s='Delete'}</button></td>
{/if}
{/foreach}
</tr>
</table>
</div>
@@ -1,35 +0,0 @@
<?php
/*
* 2007-2013 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* 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
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* 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
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2013 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../../../../../../');
exit;
@@ -1,35 +0,0 @@
<?php
/*
* 2007-2013 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* 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
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* 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
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2013 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../../../../../');
exit;
@@ -1,35 +0,0 @@
<?php
/*
* 2007-2013 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* 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
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* 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
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2013 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../../../../../../');
exit;
@@ -1,66 +0,0 @@
{*
* 2007-2013 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* 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
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* 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
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2013 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*}
{extends file="helpers/view/view.tpl"}
{block name="override_tpl"}
<script>
var labelNext = '{$labels.next|addslashes}';
var labelPrevious = '{$labels.previous|addslashes}';
var labelFinish = '{$labels.finish|addslashes}';
var labelDelete = '{l s='Delete' js=1}';
var labelValidate = '{l s='Validate' js=1}';
var validate_url = '{$validate_url|addslashes}';
var carrierlist_url = '{$carrierlist_url|addslashes}';
var nbr_steps = {$wizard_steps.steps|count};
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>
<div id="carrier_wizard" class="swMain">
<ul class="nbr_steps_{$wizard_steps.steps|count}">
{foreach from=$wizard_steps.steps key=step_nbr item=step}
<li>
<a href="#step-{$step_nbr + 1}">
<label class="stepNumber">{$step_nbr + 1}</label>
<span class="stepDesc">
{$step.title}<br />
{if isset($step.desc)}<small>{$step.desc}</small>{/if}
</span>
</a>
</li>
{/foreach}
</ul>
{foreach from=$wizard_contents.contents key=step_nbr item=content}
<div id="step-{$step_nbr + 1}" class="step_container">
{$content}
</div>
{/foreach}
</div>
{/block}
@@ -1,91 +0,0 @@
{*
* 2007-2013 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* 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
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* 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
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2013 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*}
<div id="carrier_logo_block">
<img id="carrier_logo_img" src="{if $carrier_logo}{$carrier_logo}{else}../img/admin/carrier-default.jpg{/if}" />
<br/>
<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>
</div>
<script type="text/javascript">
var carrier_translation_undefined = '{l s='undefined' js=1}';
function removeCarrierLogo()
{
$('#carrier_logo_img').attr('src', '../img/admin/carrier-default.jpg');
$('#logo').val('null');
fixCarrierLogoDisplay();
$('#carrier_logo_remove').hide();
}
function uploadCarrierLogo()
{
$.ajaxFileUpload({
url: 'ajax-tab.php?tab=AdminCarrierWizard&token={$token|addslashes}&action=uploadLogo',
secureuri: false,
fileElementId: 'carrier_logo_input',
dataType: 'xml',
success: function (data, status) {
data = data.getElementsByTagName('return')[0];
var message = data.getAttribute("message");
if (data.getAttribute("result") == "success")
{
$('#carrier_logo_img').attr('src', message);
$('#logo').val(message);
$('#carrier_logo_remove').show();
fixCarrierLogoDisplay();
}
else
alert(message);
}
});
}
function fixCarrierLogoDisplay()
{
$('<img/>').attr('src', $('#carrier_logo_img').attr('src')).load(function(){
var maxHeight = 200;
var maxWidth = 200;
var res = this.width / this.height;
$('#carrier_logo_size').text(this.width + 'x' + this.height + ' px');
$('#carrier_logo_img').width(this.width);
$('#carrier_logo_img').height(this.height);
if ($('#carrier_logo_img').width() > maxWidth)
{
$('#carrier_logo_img').width(maxWidth);
$('#carrier_logo_img').height(maxWidth / res);
}
if ($('#carrier_logo_img').height() > maxHeight)
{
$('#carrier_logo_img').height(maxHeight);
$('#carrier_logo_img').width(maxHeight * res);
}
if ($('#logo').val() == 'null')
$('#carrier_logo_size').text(carrier_translation_undefined);
});
}
fixCarrierLogoDisplay();
</script>
@@ -1,68 +0,0 @@
{*
* 2007-2013 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* 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
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* 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
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2013 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*}
<script type="text/javascript">
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_paid = '<strong>{l s='not 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_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_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>
<div class="defaultForm">
<fieldset>
{l s='Carrier name:'} <strong id="summary_name"></strong>
<div class="clear">&nbsp;</div>
<div id="summary_meta_informations"></div>
<div class="clear">&nbsp;</div>
<div id="summary_shipping_cost"></div>
<div class="clear">&nbsp;</div>
<div id="summary_range"></div>
<div class="clear">&nbsp;</div>
<div>
{l s='This carrier will be proposed for those delivery zones:'}
<ul id="summary_zones"></ul>
</div>
<div class="clear">&nbsp;</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">&nbsp;</div>
<div>
{l s='Finally, this carrier will be proposed in those shops:'}
<ul id="summary_shops"></ul>
</div>
{/if}
<div class="clear">&nbsp;</div>
{$active_form}
</fieldset>
</div>
<div class="clear">&nbsp;</div>
@@ -207,12 +207,12 @@
<br /> <br />
<input type="checkbox" id="product_restriction" name="product_restriction" value="1" {if $product_rule_groups|@count}checked="checked"{/if} /> <strong>{l s='Product selection'}</strong> <input type="checkbox" id="product_restriction" name="product_restriction" value="1" {if $product_rule_groups|@count}checked="checked"{/if} /> <strong>{l s='Product selection'}</strong>
<div id="product_restriction_div"> <div id="product_restriction_div">
<table id="product_rule_group_table" style="border:1px solid #AAAAAA;margin:10px 0 10px 0;padding:10px 10px 10px 10px;background-color:#FFF5D3;width:600px;display:none" cellpadding="0" cellspacing="0"> <table id="product_rule_group_table" style="border:1px solid #AAAAAA;margin:10px 0 10px 0;padding:10px 10px 10px 10px;background-color:#FFF5D3;width:600px" cellpadding="0" cellspacing="0">
{foreach from=$product_rule_groups item='product_rule_group'} {foreach from=$product_rule_groups item='product_rule_group'}
{$product_rule_group} {$product_rule_group}
{/foreach} {/foreach}
</table> </table>
<a href="javascript:addProductRuleGroup();" style="margin-top:5px;display:block"> <a href="javascript:addProductRuleGroup();">
<img src="../img/admin/add.gif" alt="{l s='Add'}" title="{l s='Add'}" /> {l s='Product selection'} <img src="../img/admin/add.gif" alt="{l s='Add'}" title="{l s='Add'}" /> {l s='Product selection'}
</a> </a>
</div> </div>
@@ -25,7 +25,6 @@
function addProductRuleGroup() function addProductRuleGroup()
{ {
$('#product_rule_group_table').show();
product_rule_groups_counter += 1; product_rule_groups_counter += 1;
product_rule_counters[product_rule_groups_counter] = 0; product_rule_counters[product_rule_groups_counter] = 0;
@@ -85,13 +84,6 @@ function addCartRuleOption(item)
function updateProductRuleShortDescription(item) function updateProductRuleShortDescription(item)
{ {
/******* For IE: put a product in condition on cart rules *******/
if(typeof String.prototype.trim !== 'function') {
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g, '');
}
}
var id1 = $(item).attr('id').replace('_add', '').replace('_remove', ''); var id1 = $(item).attr('id').replace('_add', '').replace('_remove', '');
var id2 = id1.replace('_select', ''); var id2 = id1.replace('_select', '');
var length = $('#' + id1 + '_2 option').length; var length = $('#' + id1 + '_2 option').length;
@@ -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;">&nbsp;</div> <div class="clear" style="height:20px;">&nbsp;</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}
@@ -33,9 +33,9 @@
&nbsp;<img src="../img/admin/home.gif" alt="" /> &nbsp;<img src="../img/admin/home.gif" alt="" />
{assign var=params_url value=""} {assign var=params_url value=""}
{else} {else}
{assign var=params_url value="&id_category={$category.id_category|intval}&viewcategory"} {assign var=params_url value="&id_category={$category.id_category}&viewcategory"}
{/if} {/if}
{if $category.id_category == $categories_tree_current_id} {if $key == 0}
{$category.name} {$category.name}
{else} {else}
<a href="{$currentIndex}{$params_url}&token={$token}">{$category.name}</a>&nbsp;>&nbsp; <a href="{$currentIndex}{$params_url}&token={$token}">{$category.name}</a>&nbsp;>&nbsp;
@@ -43,7 +43,7 @@
{/foreach} {/foreach}
</div> </div>
{if isset($delete_category) && $delete_category} {if isset($delete_category) && $delete_category}
<form action="{$REQUEST_URI|escape:'htmlall':'UTF-8'}" method="post"> <form action="{$REQUEST_URI}" method="post">
<div class="warn"> <div class="warn">
<h2> <h2>
{if $need_delete_mode} {if $need_delete_mode}
@@ -74,10 +74,10 @@
{if $key != 'deleteMode'} {if $key != 'deleteMode'}
{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}
{/if} {/if}
{/foreach} {/foreach}
@@ -48,21 +48,6 @@
</div> </div>
{else} {else}
{$smarty.block.parent} {$smarty.block.parent}
{/if}
{/block}
{block name="label"}
{if $input.name == 'standardization'}
<div id="TAASC" style="display: none;">{$smarty.block.parent}
{else}
{$smarty.block.parent}
{/if}
{/block}
{block name="input"}
{if $input.name == 'standardization'}
{$smarty.block.parent}</div>
{else}
{$smarty.block.parent}
{/if} {/if}
{/block} {/block}
@@ -100,11 +85,7 @@
$('#need_zip_code_on, #need_zip_code_off').change(function() { $('#need_zip_code_on, #need_zip_code_off').change(function() {
disableZipFormat(); disableZipFormat();
}); });
$('#iso_code').change(function() {
disableTAASC();
});
disableTAASC();
}); });
function switchExplanationText(text) { function switchExplanationText(text) {
@@ -57,14 +57,14 @@
<dl> <dl>
<dt>{l s='Sent on:'}</dt> <dt>{l s='Sent on:'}</dt>
<dd>{$message.date_add}&nbsp;</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}&nbsp;</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>
@@ -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}&note="+encodeURIComponent(noteContent), data: "token={getAdminToken tab='AdminCustomers'}&tab=AdminCustomers&ajax=1&action=updateCustomerNote&id_customer={$customer->id}&note="+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">&nbsp;</div> <div class="clear">&nbsp;</div>
@@ -60,7 +60,7 @@
ifSuperAdmin($(this)); ifSuperAdmin($(this));
$.ajax({ $.ajax({
url: "{$link->getAdminLink('AdminEmployees')|addslashes}", url: "{$link->getAdminLink('AdminEmployees')}",
cache: false, cache: false,
data : { data : {
ajax : '1', ajax : '1',
@@ -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,61 +106,63 @@
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.'}');
return false; return false;
} }
}); });
if (exist) if (exist)
return; return;
$.ajax({ $.ajax({
type:"POST", type:"POST",
url: "ajax-tab.php", url: "ajax-tab.php",
async: true, async: true,
dataType: "json", dataType: "json",
data : { data : {
ajax: "1", ajax: "1",
token: "{getAdminToken tab='AdminGroups'}", token: "{getAdminToken tab='AdminGroups'}",
controller: "AdminGroups", controller: "AdminGroups",
action: "addCategoryReduction", action: "addCategoryReduction",
category_reduction: $('#category_reduction_fancybox').val() , category_reduction: $('#category_reduction_fancybox').val() ,
id_category: $('[name="id_category"]:checked').val() id_category: $('[name="id_category"]:checked').val()
}, },
success : function(jsonData) { success : function(jsonData)
if (jsonData.hasError)
{ {
var errors = ''; if (jsonData.hasError)
for (error in jsonData.errors) {
//IE6 bug fix var errors = '';
if (error != 'indexOf') for(error in jsonData.errors)
errors += $('<div />').html(jsonData.errors[error]).text() + "\n"; //IE6 bug fix
jAlert(errors); if(error != 'indexOf')
errors += jsonData.errors[error] + "\n";
jAlert(errors);
}
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>');
var input_hidden = document.createElement("input");
input_hidden.setAttribute('type', 'hidden');
input_hidden.setAttribute('value', jsonData.discount);
input_hidden.setAttribute('name', 'category_reduction['+jsonData.id_category+']');
input_hidden.setAttribute('class', 'category_reduction');
$('#group_discount_category_table tr#'+jsonData.id_category+' > td:last').append(input_hidden);
$.fancybox.close();
}
} }
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>');
var input_hidden = document.createElement("input");
input_hidden.setAttribute('type', 'hidden');
input_hidden.setAttribute('value', jsonData.discount);
input_hidden.setAttribute('name', 'category_reduction['+jsonData.id_category+']');
input_hidden.setAttribute('class', 'category_reduction');
$('#group_discount_category_table tr#'+jsonData.id_category+' > td:last').append(input_hidden);
$.fancybox.close();
}
}
});
return false; return false;
} }
function initFancyBox() function initFancyBox()
{ {
$('[name="id_category"]:checked').removeAttr('checked'); $('[name="id_category"]:checked').removeAttr('checked');
collapseAllCategories(); collapseAllCategories();
$('#category_reduction_fancybox').val('0.00'); $('#category_reduction_fancybox').val('0.00');
} }
</script> </script>
<div class="margin-form"> <div class="margin-form">
<a class="button" href="#group_discount_category_fancybox" id="group_discount_category">{l s='Add a category discount'}</a> <a class="button" href="#group_discount_category_fancybox" id="group_discount_category">{l s='Add a category discount'}</a>
@@ -168,7 +170,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 +270,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',
@@ -76,7 +76,7 @@
</form> </form>
{/if} {/if}
{if isset($display_move) && $display_move} {if isset($display_move)}
<br /><h2 class="space">{l s='Move images'}</h2> <br /><h2 class="space">{l s='Move images'}</h2>
{l s='PrestaShop now uses a new storage system for product images. It offers better performance if your shop has a large number of products.'}<br /> {l s='PrestaShop now uses a new storage system for product images. It offers better performance if your shop has a large number of products.'}<br />
<br /> <br />
@@ -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()) + '{l s='?' js=1}'))
{
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.'}');
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">&nbsp;</div> <div class="clear">&nbsp;</div>
@@ -50,16 +97,28 @@
</form> </form>
</div> </div>
</div> </div>
<div class="clear">&nbsp;</div> <div class="clear">&nbsp;</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>&nbsp;&nbsp;
<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">&nbsp;</div> <div class="clear">&nbsp;</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">&nbsp;</div> <div class="clear">&nbsp;</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">&nbsp;</span> {l s='must be set'}</h3> <h3>{l s='Column'} <span id="missing_column">&nbsp;</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}
@@ -32,7 +32,7 @@
{ {
$.ajax({ $.ajax({
type: 'GET', type: 'GET',
url: '{$link->getAdminLink('AdminInformation')|addslashes}', url: '{$link->getAdminLink('AdminInformation')}',
data: { data: {
'action': 'checkFiles', 'action': 'checkFiles',
'ajax': 1 'ajax': 1
@@ -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>
@@ -22,79 +22,91 @@
* @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"> <script type="text/javascript">
var there_are = '{l s='There are'}'; var there_are = '{l s='There are'}';
var there_is = '{l s='There is'}'; var there_is = '{l s='There is'}';
var label_errors = '{l s='errors'}'; var label_errors = '{l s='errors'}';
var label_error = '{l s='error'}'; var label_error = '{l s='error'}';
</script> </script>
<div id="container">
<div id="error" {if !isset($errors)}class="hide"{/if}> <div id="container">
{if isset($errors)} <div id="error" {if !isset($errors)}class="hide"{/if}>
<h3>{if $nbErrors > 1}{l s='There are %d errors.' sprintf=$nbErrors}{else}{l s='There is %d error.' sprintf=$nbErrors}{/if}</h3> {if isset($errors)}
<ol style="margin: 0 0 0 20px;"> <h3>{if $nbErrors > 1}{l s='There are %d errors.' sprintf=$nbErrors}{else}{l s='There is %d error.' sprintf=$nbErrors}{/if}</h3>
{foreach from=$errors item="error"} <ol style="margin: 0 0 0 20px;">
<li>{$error}</li> {foreach from=$errors item="error"}
{/foreach} <li>{$error}</li>
</ol> {/foreach}
{/if} </ol>
</div> {/if}
<br /> </div>
{if isset($warningSslMessage)} <br />
<div class="warn">{$warningSslMessage}</div> {if isset($warningSslMessage)}
{/if} <div class="warn">
<div id="login"> {$warningSslMessage}
<h1>{$shop_name}</h1> </div>
{if !isset($wrong_folder_name) && !isset($wrong_install_name)} {/if}
<form action="#" id="login_form" method="post"> <div id="login">
<div class="field"> <h1>{$shop_name}</h1>
<label for="email">{l s='Email address:'}</label> {if !isset($wrong_folder_name) && !isset($wrong_install_name)}
<input type="text" id="email" name="email" class="input email_field" tabindex="1" value="{if isset($email)}{$email|escape:'htmlall':'UTF-8'}{/if}" /> <form action="#" id="login_form" method="post">
</div> <div class="field">
<div class="field"> <label for="email">{l s='Email address:'}</label>
<label for="passwd">{l s='Password:'}</label> <input type="text" id="email" name="email" class="input email_field" value="{if isset($email)}{$email|escape:'htmlall':'UTF-8'}{/if}" />
<input id="passwd" type="password" name="passwd" class="input password_field" tabindex="2" 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" /> <label for="passwd">{l s='Password:'}</label>
<p class="fl no-margin hide ajax-loader"> <input id="passwd" type="password" name="passwd" class="input password_field" value="{if isset($password)}{$password}{/if}"/>
<img src="../img/loader.gif" alt="" /> </div>
</p>
<p class="fr no-margin"> <div class="field">
<a href="#" class="show-forgot-password">{l s='Lost password?'}</a> <input type="submit" name="submitLogin" value="{l s='Log in'}" class="button fl margin-right-5" />
</p>
<div class="clear"></div> <p class="fl no-margin hide ajax-loader">
</div> <img src="../img/loader.gif" alt="" />
<input type="hidden" name="redirect" id="redirect" value="{$redirect}"/> </p>
</form>
<form action="#" id="forgot_password_form" method="post" class="hide"> <p class="fr no-margin">
<h2 class="no-margin">{l s='Forgot your password?'}</h2> <a href="#" class="show-forgot-password">{l s='Lost password?'}</a>
<p class="bold">{l s='In order to receive your access code by email, please enter the address you provided during the registration process.'}</p> </p>
<div class="field"> <div class="clear"></div>
<label>{l s='Email address:'}</label> </div>
<input type="text" name="email_forgot" id="email_forgot" class="input email_field" /> <input type="hidden" name="redirect" id="redirect" value="{$redirect}"/>
</div> </form>
<div class="field">
<input type="submit" name="submit" value="{l s='Send'}" class="button fl margin-right-5" /> <form action="#" id="forgot_password_form" method="post" class="hide">
<p class="fl no-margin hide ajax-loader"> <h2 class="no-margin">{l s='Forgot your password?'}</h2>
<img src="../img/loader.gif" alt="" /> <p class="bold">{l s='In order to receive your access code by email, please enter the address you provided during the registration process.'}</p>
</p>
<p class="fr no-margin"> <div class="field">
<a href="#" class="show-login-form">{l s='Back to login'}</a> <label>{l s='Email address:'}</label>
</p> <input type="text" name="email_forgot" id="email_forgot" class="input email_field" />
<div class="clear"></div> </div>
</div>
</form> <div class="field">
{else} <input type="submit" name="submit" value="{l s='Send'}" class="button fl margin-right-5" />
<div class="padding-30">
<p>{l s='For security reasons, you cannot connect to the Back Office until after you have:'}</p> <p class="fl no-margin hide ajax-loader">
<ul> <img src="../img/loader.gif" alt="" />
{if isset($wrong_install_name) && $wrong_install_name == true}<li>{l s='deleted the /install folder'}</li>{/if} </p>
{if isset($wrong_folder_name) && $wrong_folder_name == true}<li>{l s='renamed the /admin folder (e.g. %s)' sprintf=$randomNb}</li>{/if}
</ul> <p class="fr no-margin">
<p><a href="{$adminUrl|escape:'htmlall':'UTF-8'}">{l s='Please then access this page by the new URL (e.g. %s)' sprintf=$adminUrl}</a></p> <a href="#" class="show-login-form">{l s='Back to login'}</a>
</div> </p>
{/if} <div class="clear"></div>
</div> </div>
<h2><a href="http://www.prestashop.com">&copy; 2005 - {$smarty.now|date_format:"%Y"} Copyright by PrestaShop. all rights reserved.</a></h2> </form>
</div> {else}
<div class="padding-30">
<p>{l s='For security reasons, you cannot connect to the Back Office until after you have:'}</p>
<ul>
{if isset($wrong_install_name) && $wrong_install_name == true}<li>{l s='deleted the /install folder'}</li>{/if}
{if isset($wrong_folder_name) && $wrong_folder_name == true}<li>{l s='renamed the /admin folder (e.g. /admin%d)' sprintf=$randomNb}</li>{/if}
</ul>
{if isset($wrong_folder_name) && $wrong_folder_name == true}<p>{l s='Please then access this page by the new URL (e.g. http://www.yoursite.com/admin%d)' sprintf=$randomNb}</p>{/if}
</div>
{/if}
</div>
<h2><a href="http://www.prestashop.com">&copy; 2005 - {$smarty.now|date_format:"%Y"} Copyright by PrestaShop. all rights reserved.</a></h2>
</div>
@@ -38,7 +38,7 @@
{foreach $addresses AS $addresse} {foreach $addresses AS $addresse}
<table border="0" cellpadding="0" cellspacing="0" class="table" style="width: 600px;"> <table border="0" cellpadding="0" cellspacing="0" class="table" style="width: 600px;">
<tr> <tr>
<th><strong>{$addresse.firstname} {$addresse.lastname} <a href="{$link->getAdminLink('AdminManufacturers')}&id_address={$addresse.id_address}&editaddresses=1"><img src="../img/admin/edit.gif"></a></strong></th> <th><strong>{$addresse.firstname} {$addresse.lastname}</strong></th>
</tr> </tr>
<tr> <tr>
<td> <td>
@@ -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,46 +321,6 @@
catch(e){} catch(e){}
return false; return false;
}); });
$('#moduleContainer').on("click", ".toggle_favorite", function()
{
var el = $(this);
var value_pref = el.data('value');
var module_pref = el.data('module');
var action_pref = 'f';
try
{
resAjax = $.ajax({
type:"POST",
url : ajaxCurrentIndex,
async: true,
data : {
ajax : "1",
token : token,
controller : "AdminModules",
action : "saveFavoritePreferences",
action_pref : action_pref,
module_pref : module_pref,
value_pref : value_pref
},
success : function(data)
{
// res.status = cache or refresh
if (data == 'OK')
{
el.parent('div').find('.toggle_favorite').toggle();
}
},
error: function(res,textStatus,jqXHR)
{
//jAlert("TECHNICAL ERROR"+res);
}
});
}
catch(e){}
return false;
});
}); });
{/literal} {/literal}
@@ -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,20 +77,9 @@
</dl> </dl>
</div> </div>
<p class="desc">{if isset($module->description) && $module->description ne ''}{l s='Description'} : {$module->description}{else}&nbsp;{/if}</p> <p class="desc">{if isset($module->description) && $module->description ne ''}{l s='Description'} : {$module->description}{else}&nbsp;{/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)}<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}{else}&nbsp;{/if}
{$module->optionsHtml}
{if isset($module->preferences) && $module->preferences['favorite'] == 1}
<a class="action_module action_unfavorite toggle_favorite" data-module="{$module->name}" data-value="0" href="#">{l s='Remove from Favorites'}</a>
<a class="action_module action_favorite toggle_favorite" data-module="{$module->name}" data-value="1" href="#" style="display: none;">{l s='Mark as Favorite'}</a>
{else}
<a class="action_module action_unfavorite toggle_favorite" data-module="{$module->name}" data-value="0" href="#" style="display: none;">{l s='Remove from Favorites'}</a>
<a class="action_module action_favorite toggle_favorite" data-module="{$module->name}" data-value="1" href="#">{l s='Mark as Favorite'}</a>
{/if}
{else}
&nbsp;
{/if}
</div> </div>
</div> </div>
</td> </td>
@@ -101,7 +90,7 @@
<a href="{$module->addons_buy_url}" target="_blank" class="button updated"><span><img src="../img/admin/cart_addons.png">&nbsp;&nbsp;{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">&nbsp;&nbsp;{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>
@@ -26,16 +26,7 @@
<div id="productBox"> <div id="productBox">
{include file='controllers/modules/header.tpl'} {include file='controllers/modules/header.tpl'}
{include file='controllers/modules/filters.tpl'} {include file='controllers/modules/filters.tpl'}
{if $upgrade_available|@count}
<div class="hint" style="display:block;">
{l s='An upgrade is available for some of your modules!'}
<ul>
{foreach from=$upgrade_available item='module'}
<li> &raquo; <a href="{$currentIndex|escape:htmlall}&token={$token|escape:htmlall}&anchor=anchor{$module.anchor|escape:htmlall}"><b>{$module.name|escape:htmlall}</b></a></li>
{/foreach}
</ul>
</div>
{/if}
<ul class="view-modules"> <ul class="view-modules">
<li class="button normal-view-disabled"><img src="themes/default/img/modules_view_layout_sidebar.png" alt="{l s='Normal view'}" border="0" /><span>{l s='Normal view'}</span></li> <li class="button normal-view-disabled"><img src="themes/default/img/modules_view_layout_sidebar.png" alt="{l s='Normal view'}" border="0" /><span>{l s='Normal view'}</span></li>
<li class="button favorites-view"><a href="index.php?controller={$smarty.get.controller|htmlentities}&token={$smarty.get.token|htmlentities}&select=favorites"><img src="themes/default/img/modules_view_table_select_row.png" alt="{l s='Favorites view'}" border="0" /><span>{l s='Favorites view'}</span></a></li> <li class="button favorites-view"><a href="index.php?controller={$smarty.get.controller|htmlentities}&token={$smarty.get.token|htmlentities}&select=favorites"><img src="themes/default/img/modules_view_table_select_row.png" alt="{l s='Favorites view'}" border="0" /><span>{l s='Favorites view'}</span></a></li>
@@ -58,7 +49,7 @@
</li> </li>
{foreach from=$list_modules_categories item=module_category key=module_category_key} {foreach from=$list_modules_categories item=module_category key=module_category_key}
<li {if isset($categoryFiltered[$module_category_key])}style="background-color:#EBEDF4"{/if} class="categoryModuleFilterLink"> <li {if isset($categoryFiltered[$module_category_key])}style="background-color:#EBEDF4"{/if} class="categoryModuleFilterLink">
<div class="categorieWidth"><a href="{$currentIndex}&token={$token}&filterCategory={$module_category_key}"><span>{$module_category.name}</span></a></div> <div class="categorieWidth"><a href="{$currentIndex}&token={$token}&{if isset($categoryFiltered[$module_category_key])}un{/if}filterCategory={$module_category_key}"><span>{$module_category.name}</span></a></div>
<div class="count">{$module_category.nb}</div> <div class="count">{$module_category.nb}</div>
</li> </li>
{/foreach} {/foreach}
@@ -31,11 +31,10 @@
<td valign="top" width="32" align="center"> <td valign="top" width="32" align="center">
<img class="imgm" alt="" src="{if isset($module->image)}{$module->image}{else}../modules/{$module->name}/{$module->logo}{/if}"> <img class="imgm" alt="" src="{if isset($module->image)}{$module->image}{else}../modules/{$module->name}/{$module->logo}{/if}">
</td> </td>
<td valign="top"> <td height="60" 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:40:'…'} {$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}
<span class="setup">{l s='Enabled'}</span> <span class="setup">{l s='Enabled'}</span>
@@ -53,7 +52,7 @@
</h3> </h3>
<p class="desc"> <p class="desc">
{if isset($module->description) && $module->description ne ''} {if isset($module->description) && $module->description ne ''}
{$module->description|truncate:86:'…'} {$module->description|truncate:100:'…'}
{else} {else}
&nbsp; &nbsp;
{/if} {/if}
@@ -67,7 +66,7 @@
{else if !isset($module->not_on_disk)} {else if !isset($module->not_on_disk)}
{$module->optionsHtml} {$module->optionsHtml}
<div class="clear">&nbsp;</div> <div class="clear">&nbsp;</div>
<a href="#" class="button action_tab_module" data-option="select_{$module->name}" class="button">{l s='Submit'}</a> <a href="#" class="button action_tab_module" data-option="select_{$module->name}" class="button">Valider</a>
{else} {else}
<a href="{$module->options.install_url}" class="button">{l s='Install'}</a> <a href="{$module->options.install_url}" class="button">{l s='Install'}</a>
{/if} {/if}
@@ -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'}&nbsp;</option> <option value="all">{l s='All modules'}&nbsp;</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>
@@ -22,9 +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
*} *}
{if isset($controller) && !empty($controller) && $controller != 'adminnotfound'}
<h1>{l s='The controller %s is missing or invalid.' sprintf=$controller}</h1> <h1>{l s='The controller %s is missing or invalid.' sprintf=$controller}</h1>
{/if}
<ul> <ul>
<li><a href="index.php">{l s='Go to the dashboard.'}</a></li> <li><a href="index.php">{l s='Go to the dashboard.'}</a></li>
<li><a href="#" onclick="window.history.back();">{l s='Back to the previous page.'}</a></li> <li><a href="#" onclick="window.history.back();">{l s='Back to the previous page.'}</a></li>
@@ -22,66 +22,59 @@
* @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
*} *}
{if $product['customizedDatas']} {if $product.customizedDatas}
<tr class="customized customized-{$product['id_order_detail']|intval}"> <tr class="customized customized-{$product.id_order_detail}">
<td align="center"> <input type="hidden" class="edit_product_id_order_detail" value="{$product.id_order_detail}" />
<input type="hidden" class="edit_product_id_order_detail" value="{$product['id_order_detail']|intval}" /> <td align="center">{if isset($product.image) && $product.image->id}{$product.image_tag}{else}--{/if}</td>
{if isset($product['image']) && $product['image']->id|intval}{$product['image_tag']}{else}--{/if}</td>
<td> <td>
<a href="index.php?controller=adminproducts&id_product={$product['product_id']|intval}&updateproduct&token={getAdminToken tab='AdminProducts'}"> <a href="index.php?controller=adminproducts&id_product={$product['product_id']}&updateproduct&token={getAdminToken tab='AdminProducts'}">
<span class="productName">{$product['product_name']} - {l s='Customized'}</span><br /> <span class="productName">{$product['product_name']} - {l s='Customized'}</span><br />
{if ($product['product_reference'])}{l s='Ref:'} {$product['product_reference']}<br />{/if} {if ($product['product_reference'])}{l s='Ref:'} {$product['product_reference']}<br />{/if}
{if ($product['product_supplier_reference'])}{l s='Ref Supplier:'} {$product['product_supplier_reference']}{/if} {if ($product['product_supplier_reference'])}{l s='Ref Supplier:'} {$product['product_supplier_reference']}{/if}
</a> </a>
</td> </td>
<td align="center"> <td align="center">
<span class="product_price_show">{displayPrice price=$product['product_price_wt'] currency=$currency->id|intval}</span> <span class="product_price_show">{displayPrice price=$product['product_price_wt'] currency=$currency->id}</span>
{if $can_edit} {if $can_edit}
<span class="product_price_edit" style="display:none;"> <span class="product_price_edit" style="display:none;">
<input type="hidden" name="product_id_order_detail" class="edit_product_id_order_detail" value="{$product['id_order_detail']|intval}" /> <input type="hidden" name="product_id_order_detail" class="edit_product_id_order_detail" value="{$product['id_order_detail']}" />
{if $currency->sign % 2}{$currency->sign}{/if}<input type="text" name="product_price_tax_excl" class="edit_product_price_tax_excl edit_product_price" value="{Tools::ps_round($product['unit_price_tax_excl'], 2)}" size="5" /> {if !($currency->sign % 2)}{$currency->sign}{/if} {l s='tax excl.'}<br /> {if $currency->sign % 2}{$currency->sign}{/if}<input type="text" name="product_price_tax_excl" class="edit_product_price_tax_excl edit_product_price" value="{Tools::ps_round($product['unit_price_tax_excl'], 2)}" size="5" /> {if !($currency->sign % 2)}{$currency->sign}{/if} {l s='tax excl.'}<br />
{if $currency->sign % 2}{$currency->sign}{/if}<input type="text" name="product_price_tax_incl" class="edit_product_price_tax_incl edit_product_price" value="{Tools::ps_round($product['unit_price_tax_incl'], 2)}" size="5" /> {if !($currency->sign % 2)}{$currency->sign}{/if} {l s='tax incl.'} {if $currency->sign % 2}{$currency->sign}{/if}<input type="text" name="product_price_tax_incl" class="edit_product_price_tax_incl edit_product_price" value="{Tools::ps_round($product['unit_price_tax_incl'], 2)}" size="5" /> {if !($currency->sign % 2)}{$currency->sign}{/if} {l s='tax incl.'}
</span> </span>
{/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">&nbsp;</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}
<td align="center" class="total_product"> <td align="center" class="total_product">
{if ($order->getTaxCalculationMethod() == $smarty.const.PS_TAX_EXC)} {if ($order->getTaxCalculationMethod() == $smarty.const.PS_TAX_EXC)}
{displayPrice price=Tools::ps_round($product['product_price'] * $product['customizationQuantityTotal'], 2) currency=$currency->id|intval} {displayPrice price=Tools::ps_round($product['product_price'] * $product['customizationQuantityTotal'], 2) currency=$currency->id}
{else} {else}
{displayPrice price=Tools::ps_round($product['product_price_wt'] * $product['customizationQuantityTotal'], 2) currency=$currency->id|intval} {displayPrice price=Tools::ps_round($product['product_price_wt'] * $product['customizationQuantityTotal'], 2) currency=$currency->id}
{/if} {/if}
</td> </td>
<td class="cancelQuantity standard_refund_fields current-edit" style="display:none" colspan="2">
&nbsp;
</td>
<td class="edit_product_fields" colspan="2" style="display:none">&nbsp;</td> <td class="edit_product_fields" colspan="2" style="display:none">&nbsp;</td>
<td class="partial_refund_fields current-edit" style="text-align:left;display:none"></td> <td class="partial_refund_fields current-edit" style="text-align:left;display:none"></td>
{if ($can_edit && !$order->hasBeenDelivered())} <td class="product_action" style="text-align:right">
<td class="product_action" style="text-align:right"> <a href="#" class="edit_product_change_link"><img src="../img/admin/edit.gif" alt="{l s='Edit'}" /></a>
<a href="#" class="edit_product_change_link"><img src="../img/admin/edit.gif" alt="{l s='Edit'}" /></a> <input type="submit" class="button" name="submitProductChange" value="{l s='Update'}" style="display: none;" />
<input type="submit" class="button" name="submitProductChange" value="{l s='Update'}" style="display: none;" /> <a href="#" class="cancel_product_change_link" style="display: none;"><img src="../img/admin/disabled.gif" alt="{l s='Cancel'}" /></a>
<a href="#" class="cancel_product_change_link" style="display: none;"><img src="../img/admin/disabled.gif" alt="{l s='Cancel'}" /></a> <a href="#" class="delete_product_line"><img src="../img/admin/delete.gif" alt="{l s='Delete'}" /></a>
<a href="#" class="delete_product_line"><img src="../img/admin/delete.gif" alt="{l s='Delete'}" /></a> </td>
</td>
{/if}
</tr> </tr>
{foreach $product['customizedDatas'] as $customizationPerAddress} {foreach $product.customizedDatas as $customizationPerAddress}
{foreach $customizationPerAddress as $customizationId => $customization} {foreach $customizationPerAddress as $customizationId => $customization}
<tr class="customized customized-{$product['id_order_detail']|intval}"> <tr class="customized customized-{$product.id_order_detail}">
<input type="hidden" class="edit_product_id_order_detail" value="{$product.id_order_detail}" />
<td colspan="2"> <td colspan="2">
<input type="hidden" class="edit_product_id_order_detail" value="{$product['id_order_detail']|intval}" />
{foreach $customization.datas as $type => $datas} {foreach $customization.datas as $type => $datas}
{if ($type == Product::CUSTOMIZE_FILE)} {if ($type == Product::CUSTOMIZE_FILE)}
<ul style="margin: 4px 0px 4px 0px; padding: 0px; list-style-type: none;"> <ul style="margin: 4px 0px 4px 0px; padding: 0px; list-style-type: none;">
{foreach from=$datas item=data} {foreach from=$datas item=data}
<li style="margin: 2px;"> <li style="margin: 2px;">
<span>{if $data['name']}{$data['name']}{else}{l s='Picture #'}{$data@iteration}{/if}{l s=':'}</span>&nbsp; <span>{if $data['name']}{$data['name']}{else}{l s='Picture #'}{$data@iteration}{/if}{l s=':'}</span>&nbsp;
<a href="displayImage.php?img={$data['value']}&name={$order->id|intval}-file{$data@iteration}" target="_blank"><img src="{$smarty.const._THEME_PROD_PIC_DIR_}{$data['value']}_small" alt="" /></a> <a href="displayImage.php?img={$data['value']}&name={$order->id}-file{$data@iteration}" target="_blank"><img src="{$smarty.const._THEME_PROD_PIC_DIR_}{$data['value']}_small" alt="" /></a>
</li> </li>
{/foreach} {/foreach}
</ul> </ul>
@@ -100,11 +93,10 @@
<span class="product_quantity_show{if (int)$customization['quantity'] > 1} red bold{/if}">{$customization['quantity']}</span> <span class="product_quantity_show{if (int)$customization['quantity'] > 1} red bold{/if}">{$customization['quantity']}</span>
{if $can_edit} {if $can_edit}
<span class="product_quantity_edit" style="display:none;"> <span class="product_quantity_edit" style="display:none;">
<input type="text" name="product_quantity[{$customizationId|intval}]" class="edit_product_quantity" value="{$customization['quantity']|htmlentities}" size="2" /> <input type="text" name="product_quantity[{$customizationId}]" class="edit_product_quantity" value="{$customization['quantity']|htmlentities}" size="2" />
</span> </span>
{/if} {/if}
</td> </td>
{if $display_warehouse}<td style="" align="center">&nbsp;</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">
@@ -112,38 +104,36 @@
</td> </td>
<td align="center" class="total_product"> <td align="center" class="total_product">
{if ($order->getTaxCalculationMethod() == $smarty.const.PS_TAX_EXC)} {if ($order->getTaxCalculationMethod() == $smarty.const.PS_TAX_EXC)}
{displayPrice price=Tools::ps_round($product['product_price'] * $customization['quantity'], 2) currency=$currency->id|intval} {displayPrice price=Tools::ps_round($product['product_price'] * $customization['quantity'], 2) currency=$currency->id}
{else} {else}
{displayPrice price=Tools::ps_round($product['product_price_wt'] * $customization['quantity'], 2) currency=$currency->id|intval} {displayPrice price=Tools::ps_round($product['product_price_wt'] * $customization['quantity'], 2) currency=$currency->id}
{/if} {/if}
</td> </td>
<td align="center" class="cancelCheck standard_refund_fields current-edit" style="display:none"> <td align="center" class="cancelCheck standard_refund_fields current-edit" style="display:none">
<input type="hidden" name="totalQtyReturn" id="totalQtyReturn" value="{$customization['quantity_returned']|intval}" /> <input type="hidden" name="totalQtyReturn" id="totalQtyReturn" value="{$customization['quantity_returned']}" />
<input type="hidden" name="totalQty" id="totalQty" value="{$customization['quantity']|intval}" /> <input type="hidden" name="totalQty" id="totalQty" value="{$customization['quantity']}" />
<input type="hidden" name="productName" id="productName" value="{$product['product_name']}" /> <input type="hidden" name="productName" id="productName" value="{$product['product_name']}" />
{if ((!$order->hasBeenDelivered() OR Configuration::get('PS_ORDER_RETURN')) AND (int)($customization['quantity_returned']) < (int)($customization['quantity']))} {if ((!$order->hasBeenDelivered() OR Configuration::get('PS_ORDER_RETURN')) AND (int)($customization['quantity_returned']) < (int)($customization['quantity']))}
<input type="checkbox" name="id_customization[{$customizationId|intval}]" id="id_customization[{$customizationId|intval}]" value="{$product['id_order_detail']|intval}" onchange="setCancelQuantity(this, {$customizationId|intval}, {$customization['quantity'] - $product['customizationQuantityTotal'] - $product['product_quantity_reinjected']})" {if ($product['product_quantity_return'] + $product['product_quantity_refunded'] >= $product['product_quantity'])}disabled="disabled" {/if}/> <input type="checkbox" name="id_order_detail[{$product['id_order_detail']}]" id="id_order_detail[{$product['id_order_detail']}]" value="{$product['id_order_detail']}" onchange="setCancelQuantity(this, {$product['id_order_detail']}, {$customization['quantity'] - $product['customizationQuantityTotal'] - $product['product_quantity_reinjected']})" {if ($product['product_quantity_return'] + $product['product_quantity_refunded'] >= $product['product_quantity'])}disabled="disabled" {/if}/>
{else} {else}
-- --
{/if} {/if}
</td> </td>
<td class="cancelQuantity standard_refund_fields current-edit" style="display:none"> <td class="cancelQuantity standard_refund_fields current-edit" style="display:none">
{if ($customization['quantity_returned'] + $customization['quantity_refunded'] >= $customization['quantity'])} {if ($customization['quantity_returned'] + $customization['quantity_refunded'] >= $customization['quantity'])}
<input type="hidden" name="cancelCustomizationQuantity[{$customizationId|intval}]" value="0" /> <input type="hidden" name="cancelQuantity[{$product['id_order_detail']}]" value="0" />
{elseif (!$order->hasBeenDelivered() OR Configuration::get('PS_ORDER_RETURN'))} {elseif (!$order->hasBeenDelivered() OR Configuration::get('PS_ORDER_RETURN'))}
<input type="text" id="cancelQuantity_{$customizationId|intval}" name="cancelCustomizationQuantity[{$customizationId|intval}]" size="2" onclick="selectCheckbox(this);" value="" />0/{$customization['quantity']-$customization['quantity_refunded']} <input type="text" id="cancelQuantity_{$product['id_order_detail']}" name="cancelQuantity[{$product['id_order_detail']}]" size="2" onclick="selectCheckbox(this);" value="" />0/{$customization['quantity']-$customization['quantity_refunded']}
{/if} {/if}
</td> </td>
<td class="partial_refund_fields current-edit" style="text-align:left;display:none"> <td class="partial_refund_fields current-edit" style="text-align:left;display:none">
<div style="width:40%;margin-top:5px;float:left">{l s='Quantity:'}</div> <div style="width:60%;margin-top:2px;float:left"><input type="text" size="3" name="partialRefundProductQuantity[{$product['id_order_detail']|intval}]" value="0" /> <div style="width:40%;margin-top:5px;float:left">{l s='Quantity:'}</div> <div style="width:60%;margin-top:2px;float:left"><input type="text" size="3" name="partialRefundProductQuantity[{$product['id_order_detail']}]" value="0" />
0/{$customization['quantity']-$customization['quantity_refunded']} 0/{$customization['quantity']-$customization['quantity_refunded']}
</div> </div>
<div style="width:40%;margin-top:5px;float:left">{l s='Amount:'}</div> <div style="width:60%;margin-top:2px;float:left">{$currency->prefix}<input type="text" size="3" name="partialRefundProduct[{$product['id_order_detail']|intval}]" />{$currency->suffix}</div> <div style="width:40%;margin-top:5px;float:left">{l s='Amount:'}</div> <div style="width:60%;margin-top:2px;float:left">{$currency->prefix}<input type="text" size="3" name="partialRefundProduct[{$product['id_order_detail']}]" />{$currency->suffix}</div>
<td class="edit_product_fields" colspan="2" style="display:none"></td>
<td class="product_action" style="text-align:right">
</td> </td>
{if ($can_edit && !$order->hasBeenDelivered())}
<td class="edit_product_fields" colspan="2" style="display:none"></td>
<td class="product_action" style="text-align:right"></td>
{/if}
</tr> </tr>
{/foreach} {/foreach}
{/foreach} {/foreach}
@@ -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}
@@ -110,7 +110,7 @@
{if !isset($document->is_delivery)} {if !isset($document->is_delivery)}
<tr id="invoiceNote{$document->id}" style="display:none" class="current-edit"> <tr id="invoiceNote{$document->id}" style="display:none" class="current-edit">
<td colspan="5"> <td colspan="5">
<form action="{$current_index}&viewOrder&id_order={$order->id}{if isset($smarty.get.token)}&token={$smarty.get.token|escape:'htmlall':'UTF-8'}{/if}" method="post"> <form action="{$current_index}&viewOrder&id_order={$order->id}&token={$smarty.get.token|escape:'htmlall':'UTF-8'}" method="post">
<p> <p>
<label for="editNote{$document->id}" class="t">{l s='Note'}</label> <label for="editNote{$document->id}" class="t">{l s='Note'}</label>
<input type="hidden" name="id_order_invoice" value="{$document->id}" /> <input type="hidden" name="id_order_invoice" value="{$document->id}" />
@@ -130,7 +130,7 @@
<td colspan="5" class="center"> <td colspan="5" class="center">
<h3>{l s='No documents are available'}</h3> <h3>{l s='No documents are available'}</h3>
{if isset($invoice_management_active) && $invoice_management_active} {if isset($invoice_management_active) && $invoice_management_active}
<p><a class="button" href="{$current_index}&viewOrder&submitGenerateInvoice&id_order={$order->id}{if isset($smarty.get.token)}&token={$smarty.get.token|escape:'htmlall':'UTF-8'}{/if}">{l s='Generate invoice'}</a></p> <p><a class="button" href="{$current_index}&viewOrder&submitGenerateInvoice&id_order={$order->id}&token={$smarty.get.token|escape:'htmlall':'UTF-8'}">{l s='Generate invoice'}</a></p>
{/if} {/if}
</td> </td>
</tr> </tr>
@@ -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">&nbsp;</td>{/if} {if ($order->hasBeenPaid())}<td style="display:none;" align="center" class="productQuantity">&nbsp;</td>{/if}
{if $display_warehouse}<td style="" align="center">&nbsp;</td>{/if}
{if ($order->hasBeenDelivered())}<td style="display:none;" align="center" class="productQuantity">&nbsp;</td>{/if} {if ($order->hasBeenDelivered())}<td style="display:none;" align="center" class="productQuantity">&nbsp;</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']}
@@ -24,11 +24,11 @@
*} *}
<table class="table" width="100%" cellspacing="0" cellpadding="0" id="shipping_table"> <table class="table" width="100%" cellspacing="0" cellpadding="0" id="shipping_table">
<colgroup> <colgroup>
<col width="15%"/> <col width="15%">
<col width="15%"/> <col width="15%">
<col width=""/> <col width="">
<col width="10%"/> <col width="10%">
<col width="20%"/> <col width="20%">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
@@ -46,7 +46,7 @@
<td>{dateFormat date=$line.date_add full=true}</td> <td>{dateFormat date=$line.date_add full=true}</td>
<td>{$line.type}</td> <td>{$line.type}</td>
<td>{$line.carrier_name}</td> <td>{$line.carrier_name}</td>
<td class="weight">{$line.weight|string_format:"%.3f"} {Configuration::get('PS_WEIGHT_UNIT')}</td> <td>{$line.weight|string_format:"%.3f"} {Configuration::get('PS_WEIGHT_UNIT')}</td>
<td> <td>
{if $order->getTaxCalculationMethod() == $smarty.const.PS_TAX_INC} {if $order->getTaxCalculationMethod() == $smarty.const.PS_TAX_INC}
{displayPrice price=$line.shipping_cost_tax_incl currency=$currency->id} {displayPrice price=$line.shipping_cost_tax_incl currency=$currency->id}
@@ -55,7 +55,7 @@
{/if} {/if}
</td> </td>
<td> <td>
<span id="shipping_number_show">{if $line.url && $line.tracking_number}<a target="_blank" href="{$line.url|replace:'@':$line.tracking_number}">{$line.tracking_number}</a>{else}{$line.tracking_number}{/if}</span> <span id="shipping_number_show">{if $line.url && $line.tracking_number}<a href="{$line.url|replace:'@':$line.tracking_number}">{$line.tracking_number}</a>{else}{$line.tracking_number}{/if}</span>
{if $line.can_edit} {if $line.can_edit}
<form style="display: inline;" method="post" action="{$link->getAdminLink('AdminOrders')|escape:'htmlall':'UTF-8'}&vieworder&id_order={$order->id|escape:'htmlall':'UTF-8'}"> <form style="display: inline;" method="post" action="{$link->getAdminLink('AdminOrders')|escape:'htmlall':'UTF-8'}&vieworder&id_order={$order->id|escape:'htmlall':'UTF-8'}">
<span class="shipping_number_edit" style="display:none;"> <span class="shipping_number_edit" style="display:none;">
@@ -24,25 +24,20 @@
*} *}
<script type="text/javascript"> <script type="text/javascript">
var id_cart = {$cart->id|intval}; var id_cart = {$cart->id|intval};
var id_customer = 0; var id_customer = '';
var changed_shipping_price = false; var changed_shipping_price = false;
var shipping_price_selected_carrier = ''; var shipping_price_selected_carrier = '';
var current_index = '{$current}&token={$token}'; var current_index = '{$current}&token={$token}';
var admin_cart_link = '{$link->getAdminLink('AdminCarts')|addslashes}'; var admin_cart_link = '{$link->getAdminLink('AdminCarts')}';
var cart_quantity = new Array(); var cart_quantity = new Array();
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.'}';
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.'}';
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}
@@ -105,7 +100,7 @@
$('#show_old_carts').click(); $('#show_old_carts').click();
$('#payment_module_name').change(); $('#payment_module_name').change();
$.ajaxSetup({ type:"post" }); $.ajaxSetup({ type:"post" });
$("#voucher").autocomplete('{$link->getAdminLink('AdminCartRules')|addslashes}', { $("#voucher").autocomplete('{$link->getAdminLink('AdminCartRules')}', {
minChars: 3, minChars: 3,
max: 15, max: 15,
width: 250, width: 250,
@@ -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: {
@@ -162,7 +157,7 @@
free_shipping = 1; free_shipping = 1;
$.ajax({ $.ajax({
type:"POST", type:"POST",
url: "{$link->getAdminLink('AdminCarts')|addslashes}", url: "{$link->getAdminLink('AdminCarts')}",
async: true, async: true,
dataType: "json", dataType: "json",
data : { data : {
@@ -222,7 +217,7 @@
e.preventDefault(); e.preventDefault();
$.ajax({ $.ajax({
type:"POST", type:"POST",
url: "{$link->getAdminLink('AdminCarts')|addslashes}", url: "{$link->getAdminLink('AdminCarts')}",
async: true, async: true,
dataType: "json", dataType: "json",
data : { data : {
@@ -259,7 +254,7 @@
{ {
$.ajax({ $.ajax({
type:"POST", type:"POST",
url: "{$link->getAdminLink('AdminCarts')|addslashes}", url: "{$link->getAdminLink('AdminCarts')}",
async: true, async: true,
dataType: "json", dataType: "json",
data : { data : {
@@ -293,7 +288,7 @@
{ {
$.ajax({ $.ajax({
type:"POST", type:"POST",
url: "{$link->getAdminLink('AdminCarts')|addslashes}", url: "{$link->getAdminLink('AdminCarts')}",
async: true, async: true,
dataType: "json", dataType: "json",
data : { data : {
@@ -329,7 +324,7 @@
{ {
$.ajax({ $.ajax({
type:"POST", type:"POST",
url: "{$link->getAdminLink('AdminCarts')|addslashes}", url: "{$link->getAdminLink('AdminCarts')}",
async: true, async: true,
dataType: "json", dataType: "json",
data : { data : {
@@ -356,7 +351,7 @@
$('#id_cart').val(id_cart); $('#id_cart').val(id_cart);
$.ajax({ $.ajax({
type:"POST", type:"POST",
url: "{$link->getAdminLink('AdminCarts')|addslashes}", url: "{$link->getAdminLink('AdminCarts')}",
async: false, async: false,
dataType: "json", dataType: "json",
data : { data : {
@@ -383,7 +378,7 @@
{ {
$.ajax({ $.ajax({
type:"POST", type:"POST",
url: "{$link->getAdminLink('AdminCarts')|addslashes}", url: "{$link->getAdminLink('AdminCarts')}",
async: true, async: true,
dataType: "json", dataType: "json",
data : { data : {
@@ -406,7 +401,7 @@
{ {
$.ajax({ $.ajax({
type:"POST", type:"POST",
url: "{$link->getAdminLink('AdminCarts')|addslashes}", url: "{$link->getAdminLink('AdminCarts')}",
async: true, async: true,
dataType: "json", dataType: "json",
data : { data : {
@@ -431,7 +426,7 @@
{ {
$.ajax({ $.ajax({
type:"POST", type:"POST",
url : "{$link->getAdminLink('AdminOrders')|escape:'html'}", url : "{$link->getAdminLink('AdminOrders')}",
async: true, async: true,
dataType: "json", dataType: "json",
data : { data : {
@@ -469,11 +464,10 @@
$('#summary_part').show(); $('#summary_part').show();
var address_link = $('#new_address').attr('href'); var address_link = $('#new_address').attr('href');
id_customer = idCustomer; id_customer = idCustomer;
id_cart = 0;
$('#new_address').attr('href', address_link.replace(/id_customer=[0-9]+/, 'id_customer='+id_customer)); $('#new_address').attr('href', address_link.replace(/id_customer=[0-9]+/, 'id_customer='+id_customer));
$.ajax({ $.ajax({
type:"POST", type:"POST",
url : "{$link->getAdminLink('AdminCarts')|addslashes}", url : "{$link->getAdminLink('AdminCarts')}",
async: false, async: false,
dataType: "json", dataType: "json",
data : { data : {
@@ -510,6 +504,7 @@
} }
displaySummary(res); displaySummary(res);
resetBind(); resetBind();
updateCurrencySign();
} }
}); });
} }
@@ -538,7 +533,7 @@
$('#products_part').show(); $('#products_part').show();
$.ajax({ $.ajax({
type:"POST", type:"POST",
url: "{$link->getAdminLink('AdminOrders')|addslashes}", url: "{$link->getAdminLink('AdminOrders')}",
async: true, async: true,
dataType: "json", dataType: "json",
data : { data : {
@@ -656,27 +651,26 @@
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+'" />&nbsp;<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+'&nbsp;<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() {
var customized_desc = ''; var customized_desc = '';
if (this.datas[1].length) if(this.datas[1].length)
{ {
$.each(this.datas[1],function() { $.each(this.datas[1],function() {
customized_desc += this.name + ': ' + this.value + '<br />'; customized_desc += this.name+':'+this.value+'<br />';
id_customization = this.id_customization; id_customization = this.id_customization;
}); });
} }
if (this.datas[0] && this.datas[0].length) if(this.datas[0] && this.datas[0].length)
{ {
$.each(this.datas[0],function() { $.each(this.datas[0],function() {
customized_desc += this.name + ': <img src="' + pic_dir + this.value + '_small" /><br />'; customized_desc += this.name+':<img src="'+pic_dir+this.value+'_small" /><br />';
id_customization = this.id_customization; id_customization = this.id_customization;
}); });
} }
@@ -699,15 +693,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 +711,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 +738,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);
@@ -783,7 +765,7 @@
{ {
$.ajax({ $.ajax({
type:"POST", type:"POST",
url: "{$link->getAdminLink('AdminCarts')|addslashes}", url: "{$link->getAdminLink('AdminCarts')}",
async: true, async: true,
dataType: "json", dataType: "json",
data : { data : {
@@ -797,21 +779,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);
} }
}); });
} }
@@ -839,7 +821,7 @@
{ {
$.ajax({ $.ajax({
type:"POST", type:"POST",
url: "{$link->getAdminLink('AdminCarts')|addslashes}", url: "{$link->getAdminLink('AdminCarts')}",
async: true, async: true,
dataType: "json", dataType: "json",
data : { data : {
@@ -862,7 +844,7 @@
{ {
$.ajax({ $.ajax({
type:"POST", type:"POST",
url: "{$link->getAdminLink('AdminCarts')|addslashes}", url: "{$link->getAdminLink('AdminCarts')}",
async: true, async: true,
dataType: "json", dataType: "json",
data : { data : {
@@ -885,7 +867,7 @@
{ {
$.ajax({ $.ajax({
type:"POST", type:"POST",
url: "{$link->getAdminLink('AdminCarts')|addslashes}", url: "{$link->getAdminLink('AdminCarts')}",
async: true, async: true,
dataType: "json", dataType: "json",
data : { data : {
@@ -907,11 +889,16 @@
}); });
} }
function updateCurrencySign()
{
$('.currency_sign').html(currencies[id_currency]);
}
function sendMailToCustomer() function sendMailToCustomer()
{ {
$.ajax({ $.ajax({
type:"POST", type:"POST",
url: "{$link->getAdminLink('AdminOrders')|addslashes}", url: "{$link->getAdminLink('AdminOrders')}",
async: true, async: true,
dataType: "json", dataType: "json",
data : { data : {
@@ -939,33 +926,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,15 +950,13 @@
$('#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()
{ {
$.ajax({ $.ajax({
type:"POST", type:"POST",
url: "{$link->getAdminLink('AdminCarts')|addslashes}", url: "{$link->getAdminLink('AdminCarts')}",
async: true, async: true,
dataType: "json", dataType: "json",
data : { data : {
@@ -1022,7 +985,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 +1000,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 +1160,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>&nbsp;<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>&nbsp;<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 +1185,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>&nbsp;<span class="currency_sign"></span>&nbsp;
</p> </p>
<p> <p>
<label for="free_shipping">{l s='Free shipping'}</label> <label for="free_shipping">{l s='Free shipping'}</label>
@@ -1246,12 +1209,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">
@@ -27,7 +27,7 @@
{block name="override_tpl"} {block name="override_tpl"}
<script type="text/javascript"> <script type="text/javascript">
var admin_order_tab_link = "{$link->getAdminLink('AdminOrders')|addslashes}"; var admin_order_tab_link = "{$link->getAdminLink('AdminOrders')}";
var id_order = {$order->id}; var id_order = {$order->id};
var id_lang = {$current_id_lang}; var id_lang = {$current_id_lang};
var id_currency = {$order->id_currency}; var id_currency = {$order->id_currency};
@@ -59,13 +59,13 @@
{assign var="hook_invoice" value={hook h="displayInvoice" id_order=$order->id}} {assign var="hook_invoice" value={hook h="displayInvoice" id_order=$order->id}}
{if ($hook_invoice)} {if ($hook_invoice)}
<div style="float: right; margin: -40px 40px 10px 0;">{$hook_invoice}</div><br class="clear" /> <div style="float: right; margin: -40px 40px 10px 0;">{$hook_invoice}</div><br class="clear" />';
{/if} {/if}
<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}
@@ -113,7 +113,9 @@
<form action="{$currentIndex}&vieworder&token={$smarty.get.token}" method="post"> <form action="{$currentIndex}&vieworder&token={$smarty.get.token}" method="post">
<select id="id_order_state" name="id_order_state"> <select id="id_order_state" name="id_order_state">
{foreach from=$states item=state} {foreach from=$states item=state}
<option value="{$state['id_order_state']}"{if $state['id_order_state'] == $currentState->id} selected="selected" disabled="disabled"{/if}>{$state['name']|stripslashes}</option> {if $state['id_order_state'] != $currentState->id}
<option value="{$state['id_order_state']}">{$state['name']|stripslashes}</option>
{/if}
{/foreach} {/foreach}
</select> </select>
<input type="hidden" name="id_order" value="{$order->id}" /> <input type="hidden" name="id_order" value="{$order->id}" />
@@ -124,10 +126,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 +155,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 +172,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))}
@@ -264,8 +266,8 @@
{if (!$order->valid && sizeof($currencies) > 1)} {if (!$order->valid && sizeof($currencies) > 1)}
<form method="post" action="{$currentIndex}&vieworder&id_order={$order->id}&token={$smarty.get.token|escape:'htmlall':'UTF-8'}"> <form method="post" action="{$currentIndex}&vieworder&id_order={$order->id}&token={$smarty.get.token|escape:'htmlall':'UTF-8'}">
<p class="warn">{l s='Do not forget to update your exchange rate before making this change.'}</p> <p class="warn">{l s='Don\'t forget to update your conversion rate before making this change.'}</p>
<label>{l s='Do not forget to update your exchange rate before making this change.'}</label> <label>{l s='Don\'t forget to update your conversion rate before making this change.'}</label>
<select name="new_currency"> <select name="new_currency">
{foreach from=$currencies item=currency_change} {foreach from=$currencies item=currency_change}
{if $currency_change['id_currency'] != $order->id_currency} {if $currency_change['id_currency'] != $order->id_currency}
@@ -299,12 +301,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 +327,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 +406,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 +594,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 +752,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 +788,8 @@
</fieldset> </fieldset>
{/if} {/if}
</div> </div>
<div class="clear">&nbsp;</div> <div class="clear">&nbsp;</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}
@@ -25,20 +25,15 @@
{extends file="helpers/view/view.tpl"} {extends file="helpers/view/view.tpl"}
{block name="override_tpl"} {block name="override_tpl"}
{if !$shop_context} {if !$shop_context}
<div class="warn">{l s='You have more than one shop and must select one to configure payment.'}</div> <div class="warn">{l s='You have more than one shop and must select one to configure payment.'}</div>
{else} {else}
{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 />
<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}
@@ -49,5 +44,5 @@
<br /> <br />
<div class='warn'>{l s='No payment module installed'}</div> <div class='warn'>{l s='No payment module installed'}</div>
{/if} {/if}
{/if} {/if}
{/block} {/block}
@@ -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}
&nbsp;<img src="{$ps_base_uri}modules/{$module->name}/logo.gif" alt="{$module->name}" title="{$module->displayName}"/> &nbsp;<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>&nbsp;&nbsp;&nbsp; </select>&nbsp;&nbsp;&nbsp;
<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">&nbsp;</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>", "");
line = line.replace(/<\/tbody>/gi, ""); line = line.replace("</tbody>", "");
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();
@@ -43,7 +43,7 @@
$('document').ready( function() { $('document').ready( function() {
$(".check_product_name") $(".check_product_name")
.autocomplete( .autocomplete(
'{$link->getAdminLink('AdminProducts', true)|addslashes}', { '{$link->getAdminLink('AdminProducts', true)}', {
minChars: 3, minChars: 3,
max: 10, max: 10,
width: $(".check_product_name").width(), width: $(".check_product_name").width(),
@@ -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:'} !&lt;;&gt;;?=+#&quot;&deg;{}_$%<span class="hint-pointer">&nbsp;</span></span> <span class="hint" name="help_box">{l s='Forbidden characters:'} !&lt;;&gt;;?=+#&quot;&deg;{}_$%<span class="hint-pointer">&nbsp;</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>
@@ -25,7 +25,7 @@
<script type="text/javascript"> <script type="text/javascript">
var Customer = new Object(); var Customer = new Object();
var product_url = '{$link->getAdminLink('AdminProducts', true)|addslashes}'; var product_url = '{$link->getAdminLink('AdminProducts', true)}';
var ecotax_tax_excl = parseFloat({$ecotax_tax_excl}); var ecotax_tax_excl = parseFloat({$ecotax_tax_excl});
$(document).ready(function () { $(document).ready(function () {
Customer = { Customer = {
@@ -56,7 +56,7 @@ $(document).ready(function () {
Customer.showLoader(); Customer.showLoader();
jQuery.ajax({ jQuery.ajax({
"type": "POST", "type": "POST",
"url": "{$link->getAdminLink('AdminCustomers')|addslashes}", "url": "{$link->getAdminLink('AdminCustomers')}",
"async": true, "async": true,
"dataType": "json", "dataType": "json",
"data": { "data": {
@@ -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'}&nbsp;"<a class="link" href="get-file-admin.php?file='+msg+'&filename='+fileName+'">'+fileName+'</a>"&nbsp;{l s='has successfully been uploaded'}' + $('#upload-confirmation div').prepend('<span>{l s='The file'}&nbsp;"<a class="link" href="get-file-admin.php?file='+msg+'&filename='+fileName+'">'+fileName+'</a>"&nbsp;{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();
@@ -160,10 +159,7 @@
<input type="hidden" id="virtual_product_filename" name="virtual_product_filename" value="{$up_filename}" /> <input type="hidden" id="virtual_product_filename" name="virtual_product_filename" value="{$up_filename}" />
{/if} {/if}
<div class="conf"> <div class="conf">
<script> <a class="delete_virtual_product" id="delete_downloadable_product" onclick="return confirm('{l s='Delete this file'}')" href="{$currentIndex}&deleteVirtualProduct=true&token={$token}&id_product={$product->id}" class="red">
delete_this_file = '{l s='Delete this file'}';
</script>
<a class="delete_virtual_product" id="delete_downloadable_product" href="{$currentIndex}&deleteVirtualProduct=true&token={$token}&id_product={$product->id}" class="red">
<img src="../img/admin/delete.gif" alt="{l s='Delete this file'}"/> <img src="../img/admin/delete.gif" alt="{l s='Delete this file'}"/>
</a> </a>
</div> </div>
@@ -177,7 +173,7 @@
</td> </td>
<td class="col-right"> <td class="col-right">
{$product->productDownload->getHtmlLink(false, true)} {$product->productDownload->getHtmlLink(false, true)}
<a href="{$currentIndex}&deleteVirtualProduct=true&token={$token}&id_product={$product->id}" class="red delete_virtual_product"> <a onclick="return confirm('{l s='Delete this file'})')" href="{$currentIndex}&deleteVirtualProduct=true&token={$token}&id_product={$product->id}" class="red delete_virtual_product">
<img src="../img/admin/delete.gif" alt="{l s='Delete this file'}"/> <img src="../img/admin/delete.gif" alt="{l s='Delete this file'}"/>
</a> </a>
</td> </td>
@@ -231,7 +227,7 @@
{else} {else}
<div class="hint clear" style="display: block;width: 70%;">{l s='You cannot edit your file here because you used combinations. Please edit this file in the Combinations tab.'}</div> <div class="hint clear" style="display: block;width: 70%;">{l s='You cannot edit your file here because you used combinations. Please edit this file in the Combinations tab.'}</div>
<br /> <br />
{if isset($error_product_download)}{$error_product_download}{/if} {$error_product_download}
{/if} {/if}
</table> </table>
</div> </div>
@@ -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.'}");
else else
AddRequestSql(table); AddRequestSql(table);
}); });
@@ -0,0 +1,105 @@
{*
* 2007-2013 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* 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
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* 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
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2013 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*}
{$content}
<br /><br />
<h2>{l s='Fees by carrier, geographical zone and ranges'}</h2>
<form action="{$action_fees}" id="fees" name="fees" method="post">
<fieldset>
<legend><img src="../img/admin/delivery.gif" />{l s='Fees'}</legend>
{if empty($carriers)}
{l s='If you only have free carriers, there\'s no need to configure delivery prices.'}
{else}
<b>{l s='Carrier:'} </b>
<select name="id_carrier2" onchange="$('#fees').attr('action', $('#fees').attr('action')+'&id_carrier='+$(this).attr('value')+'#fees'); $('#fees').submit();">
{foreach $carriers AS $carrier}
<option value="{$carrier['id_carrier']|intval}" {if $carrier['id_carrier'] == $id_carrier} selected="selected"{/if}>{$carrier['name']}</option>
{/foreach}
</select><br />
<table class="table space" cellpadding="0" cellspacing="0">
<tr>
<th>{l s='Zone / Range'}</th>
{if !$carrierSelected->is_free}
{foreach $ranges AS $range}
<th style="font-size: 11px;">{$range['delimiter1']|floatval}{$suffix} {l s='to'} {$range['delimiter2']|floatval}{$suffix}</th>
{/foreach}
{/if}
</tr>
{if sizeof($ranges) && !$carrierSelected->is_free}
{if sizeof($zones) > 1}
<tr>
<th style="height: 30px;">{l s='All'}</th>
{foreach $ranges AS $range}
<td class="center">
{$currency->getSign('left')}
<input type="text" id="fees_all_{$range[$rangeIdentifier]}" onchange="this.value = this.value.replace(/,/g, '.');" onkeyup="if ((event.keyCode||event.which) != 9){ spreadFees({$range[$rangeIdentifier]})}" style="width: 45px;" />
{$currency->getSign('right')} {l s='(tax excl.)'}
</td>
{/foreach}
</tr>
{/if}
{foreach $zones AS $zone}
<tr>
<th style="height: 30px;">{$zone['name']}</th>
{foreach $ranges AS $range}
{if isset($deliveryArray[$zone['id_zone']][$id_carrier][$range[$rangeIdentifier]])}
{$price = $deliveryArray[$zone['id_zone']][$id_carrier][$range[$rangeIdentifier]]}
{else}
{$price = '0.00'}
{/if}
<td class="center">
{$currency->getSign('left')}
<input
type="text"
class="fees_{$range[$rangeIdentifier]}"
onchange="this.value = this.value.replace(/,/g, '.');" name="fees_{$zone['id_zone']}_{$range[$rangeIdentifier]}" onkeyup="clearAllFees({$range[$rangeIdentifier]})"
value="{$price|string_format:"%.6f"}"
style="width: 45px;"
/>
{$currency->getSign('right')} {l s='(tax excl.)'}
</td>
{/foreach}
</tr>
{/foreach}
{/if}
<tr>
<td colspan="{$ranges|sizeof + 1}" class="center" style="border-bottom: none; height: 40px;">
<input type="hidden" name="submitFees{$table}" value="1" />
{if sizeof($ranges) && !$carrierSelected->is_free}
<input type="submit" value="{l s=' Save '}" class="button" />
{else if $carrierSelected->is_free}
{l s='This is a free carrier'}
{else}
{l s='No ranges is set for this carrier'}
{/if}
</td>
</tr>
</table>
{/if}
<input type="hidden" name="id_carrier" value="{$id_carrier}" />
</fieldset>
</form>
@@ -24,9 +24,9 @@
*} *}
<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)'}'); 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}">
<img src="../img/admin/delete.gif" alt="{$action}" /> <img src="../img/admin/delete.gif" alt="{$action}" />
</a> </a>
@@ -186,7 +186,7 @@ $("#multishop-tree").jstree({
'plugins': ["themes","json_data","cookies","contextmenu"], 'plugins': ["themes","json_data","cookies","contextmenu"],
'json_data': { 'json_data': {
'ajax': { 'ajax': {
'url': "{$link->getAdminLink('AdminShop')|addslashes}", 'url': "{$link->getAdminLink('AdminShop')}",
'data': function(n) 'data': function(n)
{ {
return { return {
@@ -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}{$table}{/if}{if $identifier && $id}&{$identifier}={$id}{/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>
@@ -25,7 +25,7 @@
<br/> <br/>
<div class="blocEngine"> <div class="blocEngine">
<form action="{$smarty.server.REQUEST_URI|escape}" method="post" id="settings_form" name="settings_form"> <form action="{$current}&token={$token}" method="post" id="settings_form" name="settings_form">
<h3 class="icon-{l s='Settings'}">{l s='Settings'}</h3> <h3 class="icon-{l s='Settings'}">{l s='Settings'}</h3>
<div class="rowForm"> <div class="rowForm">
@@ -30,15 +30,15 @@
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')
{ {
$("#conf_id_PS_SHOP_STATE_ID").fadeOut(); $("#conf_id_PS_SHOP_STATE_ID").fadeOut();
$('#PS_SHOP_STATE_ID option[value=0]').attr("selected", "selected"); $('#id_state option[value=0]').attr("selected", "selected");
} }
else else
{ {
@@ -30,44 +30,55 @@
<h2>{$supplier->name}</h2> <h2>{$supplier->name}</h2>
<h3>{l s='Number of products:'} {count($products)}</h3> <h3>{l s='Number of products:'} {count($products)}</h3>
<table border="0" cellpadding="0" cellspacing="0" class="table" width="100%">
<tr>
<th>{l s='Product name'}</th>
<th>{l s='Attribute name'}</th>
<th>{l s='Supplier Reference'}</th>
<th>{l s='Wholesale price'}</th>
<th>{l s='Reference'}</th>
<th>{l s='EAN13'}</th>
<th>{l s='UPC'}</th>
{if $stock_management && $shopContext != Shop::CONTEXT_ALL}<th class="right">{l s='Available Quantity'}</th>{/if}
</tr>
{foreach $products AS $product} {foreach $products AS $product}
<hr />
{if !$product->hasAttributes()} {if !$product->hasAttributes()}
<tr> <table border="0" cellpadding="0" cellspacing="0" class="table" style="">
<td><a href="?tab=AdminProducts&id_product={$product->id}&updateproduct&token={getAdminToken tab='AdminProducts'}">{$product->name}</a></td> <tr>
<td>{l s='N/A'}</td> <th width="450">{l s='Name'} {$product->name}</th>
<td>{if empty($product->product_supplier_reference)}{l s='N/A'}{else}{$product->product_supplier_reference}{/if}</td> {if !empty($product->product_supplier_reference)}<th width="190">{l s='Supplier Reference:'} {$product->product_supplier_reference}</th>{/if}
<td>{if empty($product->product_supplier_price_te)}0{else}{$product->product_supplier_price_te}{/if}</td> {if !empty($product->product_supplier_price_te)}<th width="190">{l s='Wholesale price:'} {$product->product_supplier_price_te}</th>{/if}
<td>{if empty($product->reference)}{l s='N/A'}{else}{$product->reference}{/if}</td> {if !empty($product->reference)}<th width="150">{l s='Reference:'} {$product->reference}</th>{/if}
<td>{if empty($product->ean13)}{l s='N/A'}{else}{$product->ean13}{/if}</td> {if !empty($product->ean13)}<th width="120">{l s='EAN13:'} {$product->ean13}</th>{/if}
<td>{if empty($product->upc)}{l s='N/A'}{else}{$product->upc}{/if}</td> {if !empty($product->upc)}<th width="120">{l s='UPC:'} {$product->upc}</th>{/if}
{if $stock_management && $shopContext != Shop::CONTEXT_ALL}<td class="right" width="150">{$product->quantity}</td>{/if} {if $stock_management}<th class="right" width="150">{l s='Available Quantity:'} {$product->quantity}</th>{/if}
</tr>
{else}
{foreach $product->combination AS $id_product_attribute => $product_attribute}
<tr {if $id_product_attribute %2}class="alt_row"{/if} >
<td><a href="?tab=AdminProducts&id_product={$product->id}&updateproduct&token={getAdminToken tab='AdminProducts'}">{$product->name}</a></td>
<td>{if empty($product_attribute.attributes)}{l s='N/A'}{else}{$product_attribute.attributes}{/if}</td>
<td>{if empty($product_attribute.product_supplier_reference)}{l s='N/A'}{else}{$product_attribute.product_supplier_reference}{/if}</td>
<td>{if empty($product_attribute.product_supplier_price_te)}0{else}{$product_attribute.product_supplier_price_te}{/if}</td>
<td>{if empty($product_attribute.reference)}{l s='N/A'}{else}{$product_attribute.reference}{/if}</td>
<td>{if empty($product_attribute.ean13)}{l s='N/A'}{else}{$product_attribute.ean13}{/if}</td>
<td>{if empty($product_attribute.upc)}{l s='N/A'}{else}{$product_attribute.upc}{/if}</td>
{if $stock_management && $shopContext != Shop::CONTEXT_ALL}<td class="right">{$product_attribute.quantity}</td>{/if}
</tr> </tr>
{/foreach} </table>
{else}
<h3><a href="?tab=AdminProducts&id_product={$product->id}&updateproduct&token={getAdminToken tab='AdminProducts'}">{$product->name}</a></h3>
<table border="0" cellpadding="0" cellspacing="0" class="table" style="width:100%;">
<colgroup>
<col>
<col width="190">
<col width="190">
<col width="80">
<col width="80">
<col width="80">
<col width="80">
</colgroup>
<tr>
<th style="height:40px;">{l s='Attribute name'}</th>
<th>{l s='Supplier Reference'}</th>
<th >{l s='Wholesale price'}</th>
<th>{l s='Reference'}</th>
<th>{l s='EAN13'}</th>
<th>{l s='UPC'}</th>
{if $stock_management && $shopContext != Shop::CONTEXT_ALL}<th class="right">{l s='Available Quantity'}</th>{/if}
</tr>
{foreach $product->combination AS $id_product_attribute => $product_attribute}
<tr {if $id_product_attribute %2}class="alt_row"{/if} >
<td>{$product_attribute.attributes}</td>
<td>{$product_attribute.product_supplier_reference}</td>
<td>{$product_attribute.product_supplier_price_te}</td>
<td>{$product_attribute.reference}</td>
<td>{$product_attribute.ean13}</td>
<td>{$product_attribute.upc}</td>
{if $stock_management && $shopContext != Shop::CONTEXT_ALL}<td class="right">{$product_attribute.quantity}</td>{/if}
</tr>
{/foreach}
</table>
{/if} {/if}
{/foreach} {/foreach}
</table>
{/block} {/block}
@@ -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.'}');
return false; return false;
} }
@@ -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);
@@ -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"/>&nbsp; <input type="image" src="../img/admin/list-prev2.gif" onclick="getE('submitFilter{$table}').value=1"/>&nbsp;
<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};"/>&nbsp; <input type="image" src="../img/admin/list-next.gif" onclick="getE('submitFilter{$table}').value={$page + 1};"/>&nbsp;
<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}

Some files were not shown because too many files have changed in this diff Show More