2016-01-04 12:48:08 +01:00
< ? php
/*
* 2007 - 2011 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 - 2011 PrestaShop SA
* @ version Release : $Revision : 10003 $
* @ license http :// opensource . org / licenses / osl - 3.0 . php Open Software License ( OSL 3.0 )
* International Registered Trademark & Property of PrestaShop SA
*/
define ( 'PS_ADMIN_DIR' , getcwd ());
include ( PS_ADMIN_DIR . '/../config/config.inc.php' );
/* Getting cookie or logout */
require_once ( dirname ( __FILE__ ) . '/init.php' );
if ( isset ( $_GET [ 'changeParentUrl' ]))
echo '<script type="text/javascript">parent.parent.document.location.href = "' . addslashes ( urldecode ( Tools :: getValue ( 'changeParentUrl' ))) . '";</script>' ;
if ( isset ( $_GET [ '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' ));
}
function displayJavascriptAlert ( $s ){ echo '<script type="text/javascript">alert(\'' . addslashes ( $s ) . '\');</script>' ;}
if ( isset ( $_GET [ 'ajaxProductManufacturers' ]))
{
$currentIndex = 'index.php?tab=AdminCatalog' ;
$manufacturers = Manufacturer :: getManufacturers ();
if ( $manufacturers )
{
$jsonArray = array ();
foreach ( $manufacturers AS $manufacturer )
$jsonArray [] = '{"optionValue": "' . $manufacturer [ 'id_manufacturer' ] . '", "optionDisplay": "' . htmlspecialchars ( trim ( $manufacturer [ 'name' ])) . '"}' ;
die ( '[' . implode ( ',' , $jsonArray ) . ']' );
}
}
if ( isset ( $_GET [ 'ajaxReferrers' ]))
{
require ( 'tabs/AdminReferrers.php' );
}
if ( isset ( $_GET [ 'ajaxProductSuppliers' ]))
{
$currentIndex = 'index.php?tab=AdminCatalog' ;
$suppliers = Supplier :: getSuppliers ();
if ( $suppliers )
{
$jsonArray = array ();
foreach ( $suppliers AS $supplier )
$jsonArray [] = '{"optionValue": "' . $supplier [ 'id_supplier' ] . '", "optionDisplay": "' . htmlspecialchars ( trim ( $supplier [ 'name' ])) . '"}' ;
die ( '[' . implode ( ',' , $jsonArray ) . ']' );
}
}
if ( isset ( $_GET [ 'ajaxProductAccessories' ]))
{
$currentIndex = 'index.php?tab=AdminCatalog' ;
$jsonArray = array ();
$products = Db :: getInstance () -> ExecuteS ( '
SELECT p . `id_product` , pl . `name`
FROM `'._DB_PREFIX_.'product` p
NATURAL LEFT JOIN `'._DB_PREFIX_.'product_lang` pl
WHERE pl . `id_lang` = '.(int)(Tools::getValue(' id_lang ')).'
AND p . `id_product` != '.(int)(Tools::getValue(' id_product ')).'
AND p . `id_product` NOT IN (
SELECT a . `id_product_2`
FROM `'._DB_PREFIX_.'accessory` a
WHERE a . `id_product_1` = '.(int)(Tools::getValue(' id_product ')).' )
ORDER BY pl . `name` ' );
foreach ( $products AS $accessory )
$jsonArray [] = '{"value: "' . ( int )( $accessory [ 'id_product' ]) . '-' . addslashes ( $accessory [ 'name' ]) . '", "text":"' . ( int )( $accessory [ 'id_product' ]) . ' - ' . addslashes ( $accessory [ 'name' ]) . '"}' ;
die ( '[' . implode ( ',' , $jsonArray ) . ']' );
}
if ( isset ( $_GET [ 'ajaxDiscountCustomers' ]))
{
global $cookie ;
$currentIndex = 'index.php?tab=AdminDiscounts' ;
$jsonArray = array ();
$filter = Tools :: getValue ( 'filter' );
2018-02-26 12:20:35 +01:00
$filterWithIdCustomer = false ;
2018-03-08 17:24:53 +01:00
if ( strpos ( $filter , '0_' ) === 0 ) {
2016-01-04 12:48:08 +01:00
$filterArray = explode ( '_' , $filter );
2018-02-26 12:20:35 +01:00
$filter = $filterArray [ 1 ];
$filterWithIdCustomer = true ;
}
// Filter
if ( $filterWithIdCustomer === true ) {
$customerSql = ' SELECT `id_customer` , `email` , CONCAT ( `lastname` , \ ' \ ' , `firstname` ) as name
FROM `'._DB_PREFIX_.'customer`
WHERE `deleted` = 0 AND is_guest = 0 AND `id_customer` = '.(int)($filter).'
ORDER BY CONCAT ( `lastname` , \ ' \ ' , `firstname` ) ASC
LIMIT 50 ' ;
}
// Detect email address
elseif ( strpos ( $filter , '@' )) {
$customerSql = ' SELECT `id_customer` , `email` , CONCAT ( `lastname` , \ ' \ ' , `firstname` ) as name
FROM `'._DB_PREFIX_.'customer`
WHERE `deleted` = 0 AND is_guest = 0 AND `email` LIKE " %'.pSQL( $filter ).'% "
ORDER BY CONCAT ( `lastname` , \ ' \ ' , `firstname` ) ASC
LIMIT 50 ' ;
}
// Default
else {
$customerSql = ' SELECT `id_customer` , `email` , CONCAT ( `lastname` , \ ' \ ' , `firstname` ) as name
FROM `'._DB_PREFIX_.'customer`
WHERE `deleted` = 0 AND is_guest = 0 AND (
CONCAT ( `firstname` , \ ' \', `lastname`) LIKE "%' . pSQL ( $filter ) . ' % "
OR CONCAT ( `lastname` , \ ' \', `firstname`) LIKE "%' . pSQL ( $filter ) . ' % "
)
ORDER BY CONCAT ( `lastname` , \ ' \ ' , `firstname` ) ASC
LIMIT 50 ' ;
}
$customers = Db :: getInstance () -> ExecuteS ( $customerSql );
2016-01-04 12:48:08 +01:00
$groups = Db :: getInstance () -> ExecuteS ( '
SELECT g . `id_group` , gl . `name`
FROM `'._DB_PREFIX_.'group` g
LEFT JOIN `'._DB_PREFIX_.'group_lang` AS gl ON ( g . `id_group` = gl . `id_group` AND gl . `id_lang` = '.(int)($cookie->id_lang).' )
WHERE '.(Validate::isUnsignedInt($filter) ? ' g . `id_group` = '.(int)($filter) : ' gl . `name` LIKE " %'.pSQL( $filter ).'% "
'.((Validate::isBool_Id($filter) AND $filterArray[0] == 1) ? ' OR g . `id_group` = '.(int)($filterArray[1]) : ' ')).'
ORDER BY gl . `name` ASC
LIMIT 50 ' );
2018-02-26 12:20:35 +01:00
// JSON
2016-01-04 12:48:08 +01:00
$json = '{"customers" : ' ;
2018-02-26 12:20:35 +01:00
foreach ( $customers AS $customer ) {
2016-01-04 12:48:08 +01:00
$jsonArray [] = '{"value":"0_' . ( int )( $customer [ 'id_customer' ]) . '", "text":"' . addslashes ( $customer [ 'name' ]) . ' (' . addslashes ( $customer [ 'email' ]) . ')"}' ;
2018-02-26 12:20:35 +01:00
}
2016-01-04 12:48:08 +01:00
$json .= '[' . implode ( ',' , $jsonArray ) . ' ],
" groups " : ' ;
$jsonArray = array ();
2018-02-26 12:20:35 +01:00
foreach ( $groups AS $group ) {
2016-01-04 12:48:08 +01:00
$jsonArray [] = '{"value":"1_' . ( int )( $group [ 'id_group' ]) . '", "text":"' . addslashes ( $group [ 'name' ]) . '"}' ;
2018-02-26 12:20:35 +01:00
}
2016-01-04 12:48:08 +01:00
$json .= '[' . implode ( ',' , $jsonArray ) . ']}' ;
2018-02-26 12:20:35 +01:00
2016-01-04 12:48:08 +01:00
die ( $json );
}
if ( Tools :: getValue ( 'page' ) == 'prestastore' AND @ fsockopen ( 'addons.prestashop.com' , 80 , $errno , $errst , 3 ))
readfile ( 'http://addons.prestashop.com/adminmodules.php?lang=' . Language :: getIsoById ( $cookie -> id_lang ));
if ( Tools :: getValue ( 'page' ) == 'themes' AND @ fsockopen ( 'addons.prestashop.com' , 80 , $errno , $errst , 3 ))
readfile ( 'http://addons.prestashop.com/adminthemes.php?lang=' . Language :: getIsoById ( $cookie -> id_lang ));
if ( $step = ( int )( Tools :: getValue ( 'ajaxProductTab' )))
{
require_once ( dirname ( __FILE__ ) . '/tabs/AdminCatalog.php' );
$catalog = new AdminCatalog ();
$admin = new AdminProducts ();
$languages = Language :: getLanguages ( false );
$defaultLanguage = ( int )( Configuration :: get ( 'PS_LANG_DEFAULT' ));
$product = new Product (( int )( Tools :: getValue ( 'id_product' )));
if ( ! Validate :: isLoadedObject ( $product ))
die ( Tools :: displayError ( 'Product cannot be loaded' ));
$switchArray = array ( 3 => 'displayFormPrices' , 4 => 'displayFormAttributes' , 5 => 'displayFormFeatures' , 6 => 'displayFormCustomization' , 7 => 'displayFormAttachments' );
$currentIndex = 'index.php?tab=AdminCatalog' ;
if ( key_exists ( $step , $switchArray ))
$admin -> { $switchArray [ $step ]}( $product , $languages , $defaultLanguage );
}
if ( isset ( $_GET [ 'getAvailableFields' ]) and isset ( $_GET [ 'entity' ]))
{
$currentIndex = 'index.php?tab=AdminImport' ;
$jsonArray = array ();
require_once ( dirname ( __FILE__ ) . '/tabs/AdminImport.php' );
$import = new AdminImport ();
$languages = Language :: getLanguages ( false );
$defaultLanguage = ( int )( Configuration :: get ( 'PS_LANG_DEFAULT' ));
$fields = $import -> getAvailableFields ( true );
foreach ( $fields AS $field )
$jsonArray [] = '{"field":"' . addslashes ( $field ) . '"}' ;
die ( '[' . implode ( ',' , $jsonArray ) . ']' );
}
if ( array_key_exists ( 'ajaxModulesPositions' , $_POST ))
{
$id_module = ( int )( Tools :: getValue ( 'id_module' ));
$id_hook = ( int )( Tools :: getValue ( 'id_hook' ));
$way = ( int )( Tools :: getValue ( 'way' ));
$positions = Tools :: getValue ( strval ( $id_hook ));
$position = ( is_array ( $positions )) ? array_search ( $id_hook . '_' . $id_module , $positions ) : null ;
$module = Module :: getInstanceById ( $id_module );
if ( Validate :: isLoadedObject ( $module ))
if ( $module -> updatePosition ( $id_hook , $way , $position ))
die ( true );
else
die ( '{"hasError" : true, "errors" : "Can not update module position"}' );
else
die ( '{"hasError" : true, "errors" : "This module can not be loaded"}' );
}
if ( array_key_exists ( 'ajaxCategoriesPositions' , $_POST ))
{
$id_category_to_move = ( int )( Tools :: getValue ( 'id_category_to_move' ));
$id_category_parent = ( int )( Tools :: getValue ( 'id_category_parent' ));
$way = ( int )( Tools :: getValue ( 'way' ));
$positions = Tools :: getValue ( 'category' );
if ( is_array ( $positions ))
foreach ( $positions AS $key => $value )
{
$pos = explode ( '_' , $value );
if (( isset ( $pos [ 1 ]) AND isset ( $pos [ 2 ])) AND ( $pos [ 1 ] == $id_category_parent AND $pos [ 2 ] == $id_category_to_move ))
{
$position = $key ;
break ;
}
}
$category = new Category ( $id_category_to_move );
if ( Validate :: isLoadedObject ( $category ))
{
2017-09-18 17:44:09 +02:00
if ( isset ( $position ) && $category -> updatePosition ( $way , $position ))
2016-01-04 12:48:08 +01:00
{
die ( true );
}
else
die ( '{"hasError" : true, errors : "Can not update categories position"}' );
}
else
die ( '{"hasError" : true, "errors" : "This category can not be loaded"}' );
}
if ( array_key_exists ( 'ajaxCMSCategoriesPositions' , $_POST ))
{
$id_cms_category_to_move = ( int )( Tools :: getValue ( 'id_cms_category_to_move' ));
$id_cms_category_parent = ( int )( Tools :: getValue ( 'id_cms_category_parent' ));
$way = ( int )( Tools :: getValue ( 'way' ));
$positions = Tools :: getValue ( 'cms_category' );
if ( is_array ( $positions ))
foreach ( $positions AS $key => $value )
{
$pos = explode ( '_' , $value );
if (( isset ( $pos [ 1 ]) AND isset ( $pos [ 2 ])) AND ( $pos [ 1 ] == $id_cms_category_parent AND $pos [ 2 ] == $id_cms_category_to_move ))
{
$position = $key ;
break ;
}
}
$cms_category = new CMSCategory ( $id_cms_category_to_move );
if ( Validate :: isLoadedObject ( $cms_category ))
{
if ( isset ( $position ) && $cms_category -> updatePosition ( $way , $position ))
die ( true );
else
die ( '{"hasError" : true, "errors" : "Can not update cms categories position"}' );
}
else
die ( '{"hasError" : true, "errors" : "This cms category can not be loaded"}' );
}
if ( array_key_exists ( 'ajaxCMSPositions' , $_POST ))
{
$id_cms = ( int )( Tools :: getValue ( 'id_cms' ));
$id_category = ( int )( Tools :: getValue ( 'id_cms_category' ));
$way = ( int )( Tools :: getValue ( 'way' ));
$positions = Tools :: getValue ( 'cms' );
if ( is_array ( $positions ))
foreach ( $positions AS $key => $value )
{
$pos = explode ( '_' , $value );
if (( isset ( $pos [ 1 ]) AND isset ( $pos [ 2 ])) AND ( $pos [ 1 ] == $id_category AND $pos [ 2 ] == $id_cms ))
{
$position = $key ;
break ;
}
}
$cms = new CMS ( $id_cms );
if ( Validate :: isLoadedObject ( $cms ))
{
if ( isset ( $position ) && $cms -> updatePosition ( $way , $position ))
die ( true );
else
die ( '{"hasError" : true, "errors" : "Can not update cms position"}' );
}
else
die ( '{"hasError" : true, "errors" : "This cms can not be loaded"}' );
}
/* Modify product position in catalog */
if ( array_key_exists ( 'ajaxProductsPositions' , $_POST ))
{
$way = ( int )( Tools :: getValue ( 'way' ));
$id_product = ( int )( Tools :: getValue ( 'id_product' ));
$id_category = ( int )( Tools :: getValue ( 'id_category' ));
$positions = Tools :: getValue ( 'product' );
if ( is_array ( $positions ))
foreach ( $positions AS $position => $value )
{
// pos[1] = id_categ, pos[2] = id_product, pos[3]=old position
$pos = explode ( '_' , $value );
if (( isset ( $pos [ 1 ]) AND isset ( $pos [ 2 ])) AND ( $pos [ 1 ] == $id_category AND ( int ) $pos [ 2 ] === $id_product ))
{
if ( $product = new Product (( int ) $pos [ 2 ]))
if ( isset ( $position ) && $product -> updatePosition ( $way , $position ))
echo " ok position $position for product $pos[2] \r \n " ;
else
echo '{"hasError" : true, "errors" : "Can not update product ' . $id_product . ' to position ' . $position . ' "}' ;
else
echo '{"hasError" : true, "errors" : "This product (' . $id_product . ') can t be loaded"}' ;
break ;
}
}
}
if ( isset ( $_GET [ 'ajaxProductPackItems' ]))
{
$jsonArray = array ();
$products = Db :: getInstance () -> ExecuteS ( '
SELECT p . `id_product` , pl . `name`
FROM `'._DB_PREFIX_.'product` p
NATURAL LEFT JOIN `'._DB_PREFIX_.'product_lang` pl
WHERE pl . `id_lang` = '.(int)(Tools::getValue(' id_lang ')).'
AND p . `id_product` NOT IN ( SELECT DISTINCT id_product_pack FROM `'._DB_PREFIX_.'pack` )
AND p . `id_product` != '.(int)(Tools::getValue(' id_product ' )));
foreach ( $products AS $packItem )
$jsonArray [] = '{"value": "' . ( int )( $packItem [ 'id_product' ]) . '-' . addslashes ( $packItem [ 'name' ]) . '", "text":"' . ( int )( $packItem [ 'id_product' ]) . ' - ' . addslashes ( $packItem [ 'name' ]) . '"}' ;
die ( '[' . implode ( ',' , $jsonArray ) . ']' );
}
if ( isset ( $_GET [ 'ajaxStates' ]) AND isset ( $_GET [ '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 )
$list = '<option value="0">-----------</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 :: isSubmit ( 'submitCustomerNote' ) AND $id_customer = ( int ) Tools :: getValue ( 'id_customer' ))
{
$note = html_entity_decode ( Tools :: getValue ( 'note' ));
if ( ! empty ( $note ) AND ! Validate :: isCleanHtml ( $note ))
die ( 'error:validation' );
if ( ! Db :: getInstance () -> Execute ( 'UPDATE ' . _DB_PREFIX_ . 'customer SET `note` = "' . pSQL ( $note , true ) . '" WHERE id_customer = ' . ( int ) $id_customer . ' LIMIT 1' ))
die ( 'error:update' );
die ( 'ok' );
}
if ( Tools :: getValue ( 'form_language_id' ))
{
if ( ! ( $cookie -> employee_form_lang = ( int )( Tools :: getValue ( 'form_language_id' ))))
die ( 'Error while updating cookie.' );
die ( 'Form language updated.' );
}
if ( Tools :: getValue ( 'submitPublishProduct' ))
{
global $cookie ;
if ( Tools :: getIsset ( 'id_product' ))
{
$id_product = ( int )( Tools :: getValue ( 'id_product' ));
$id_tab_catalog = ( int )( Tab :: getIdFromClassName ( 'AdminCatalog' ));
$token = Tools :: getAdminToken ( 'AdminCatalog' . ( int )( $id_tab_catalog ) . ( int )( $cookie -> id_employee ));
$bo_product_url = dirname ( $_SERVER [ 'PHP_SELF' ]) . '/index.php?tab=AdminCatalog&id_product=' . $id_product . '&updateproduct&token=' . $token ;
if ( Tools :: getValue ( 'redirect' ))
die ( $bo_product_url );
$profileAccess = Profile :: getProfileAccess (( int ) $cookie -> profile , $id_tab_catalog );
if ( $profileAccess [ 'edit' ])
{
$product = new Product (( int )( Tools :: getValue ( 'id_product' )));
if ( ! Validate :: isLoadedObject ( $product ))
die ( 'error: invalid id' );
$product -> active = 1 ;
if ( $product -> save ())
die ( $bo_product_url );
else
die ( 'error: saving' );
} else {
die ( 'error: permissions' );
}
}
else
die ( 'error: parameters' );
}
if ( Tools :: getValue ( 'submitPublishCMS' ))
{
global $cookie ;
if ( Tools :: getIsset ( 'id_cms' ))
{
$id_cms = ( int )( Tools :: getValue ( 'id_cms' ));
$id_tab_cms = ( int )( Tab :: getIdFromClassName ( 'AdminCMSContent' ));
$token = Tools :: getAdminToken ( 'AdminCMSContent' . ( int )( $id_tab_cms ) . ( int )( $cookie -> id_employee ));
$bo_cms_url = dirname ( $_SERVER [ 'PHP_SELF' ]) . '/index.php?tab=AdminCMSContent&id_cms=' . ( int ) $id_cms . '&updatecms&token=' . $token ;
if ( Tools :: getValue ( 'redirect' ))
die ( $bo_cms_url );
$profileAccess = Profile :: getProfileAccess (( int ) $cookie -> profile , $id_tab_cms );
if ( $profileAccess [ 'edit' ])
{
$cms = new CMS (( int )( Tools :: getValue ( 'id_cms' )));
if ( ! Validate :: isLoadedObject ( $cms ))
die ( 'error: invalid id' );
$cms -> active = 1 ;
if ( $cms -> save ())
die ( $bo_cms_url );
else
die ( 'error: saving' );
} else {
die ( 'error: permissions' );
}
}
else
die ( 'error: parameters' );
}
if ( Tools :: isSubmit ( 'submitTrackClickOnHelp' ))
{
$label = Tools :: getValue ( 'label' );
$version = Tools :: getValue ( 'version' );
if ( ! empty ( $label ) && ! empty ( $version ))
HelpAccess :: trackClick ( $label , $version );
}
if ( Tools :: isSubmit ( 'saveImportMatchs' ))
{
$match = implode ( '|' , Tools :: getValue ( 'type_value' ));
Db :: getInstance () -> Execute ( 'INSERT INTO `' . _DB_PREFIX_ . ' import_match ` (
`id_import_match` ,
`name` ,
`match` ,
`skip`
)
VALUES (
NULL ,
\ '' . pSQL ( Tools :: getValue ( 'newImportMatchs' )) . ' \ ' ,
\ '' . pSQL ( $match ) . ' \ ' ,
\ '' . pSQL ( Tools :: getValue ( 'skip' )) . ' \ '
) ' );
die ( '{"id" : "' . Db :: getInstance () -> Insert_ID () . '"}' );
}
if ( Tools :: isSubmit ( 'deleteImportMatchs' ))
{
Db :: getInstance () -> Execute ( 'DELETE FROM `' . _DB_PREFIX_ . 'import_match` WHERE `id_import_match` = ' . ( int ) Tools :: getValue ( 'idImportMatchs' ));
}
if ( Tools :: isSubmit ( 'loadImportMatchs' ))
{
$return = Db :: getInstance () -> ExecuteS ( 'SELECT * FROM `' . _DB_PREFIX_ . 'import_match` WHERE `id_import_match` = ' . ( int ) Tools :: getValue ( 'idImportMatchs' ));
die ( '{"id" : "' . $return [ 0 ][ 'id_import_match' ] . '", "matchs" : "' . $return [ 0 ][ 'match' ] . '", "skip" : "' . $return [ 0 ][ 'skip' ] . '"}' );
}
if ( Tools :: isSubmit ( 'toggleScreencast' ))
{
global $cookie ;
$employee = new Employee ( $cookie -> id_employee );
if ( Validate :: isLoadedObject ( $employee ))
{
$employee -> bo_show_screencast = ! $employee -> bo_show_screencast ;
$employee -> update ();
}
}
if ( Tools :: isSubmit ( 'ajaxAddZipCode' ) OR Tools :: isSubmit ( 'ajaxRemoveZipCode' ))
{
require_once ( PS_ADMIN_DIR . '/tabs/AdminCounty.php' );
$zipcodes = Tools :: getValue ( 'zipcodes' );
$id_county = ( int ) Tools :: getValue ( 'id_county' );
$county = new County ( $id_county );
if ( ! Validate :: isLoadedObject ( $county ))
die ( 'error' );
if ( Tools :: isSubmit ( 'ajaxAddZipCode' ))
{
if ( $county -> isZipCodeRangePresent ( $zipcodes ))
die ( 'error:' . Tools :: displayError ( 'This Zip Code is already in use.' ));
if ( $county -> addZipCodes ( $zipcodes ))
die ( AdminCounty :: renderZipCodeList ( $county -> getZipCodes ()));
}
elseif ( Tools :: isSubmit ( 'ajaxRemoveZipCode' ) AND $county -> removeZipCodes ( $zipcodes ))
die ( AdminCounty :: renderZipCodeList ( $county -> getZipCodes ()));
die ( 'error' );
}
if ( Tools :: isSubmit ( 'helpAccess' ))
{
$item = Tools :: getValue ( 'item' );
$isoUser = Tools :: getValue ( 'isoUser' );
$country = Tools :: getValue ( 'country' );
$version = Tools :: getValue ( 'version' );
if ( isset ( $item ) AND isset ( $isoUser ) AND isset ( $country ))
die ( HelpAccess :: displayHelp ( $item , $isoUser , $country , $version ));
die ();
}
if ( Tools :: isSubmit ( 'getHookableList' ))
{
/* PrestaShop demo mode */
if ( _PS_MODE_DEMO_ )
die ( '{"hasError" : true, "errors" : ["Live Edit : This functionnality has been disabled"]}' );
/* PrestaShop demo mode*/
if ( ! strlen ( Tools :: getValue ( 'hooks_list' )))
die ( '{"hasError" : true, "errors" : ["Live Edit : no module on this page"]}' );
$modules_list = explode ( ',' , Tools :: getValue ( 'modules_list' ));
$hooks_list = explode ( ',' , Tools :: getValue ( 'hooks_list' ));
$hookableList = array ();
foreach ( $modules_list as $module )
{
$moduleInstance = Module :: getInstanceByName ( $module );
foreach ( $hooks_list as $hook_name )
{
if ( ! array_key_exists ( $hook_name , $hookableList ))
$hookableList [ $hook_name ] = array ();
if ( $moduleInstance -> isHookableOn ( $hook_name ))
array_push ( $hookableList [ $hook_name ], $module );
}
}
$hookableList [ 'hasError' ] = false ;
die ( Tools :: jsonEncode ( $hookableList ));
}
if ( Tools :: isSubmit ( 'getHookableModuleList' ))
{
/* PrestaShop demo mode */
if ( _PS_MODE_DEMO_ )
die ( '{"hasError" : true, "errors" : ["Live Edit : This functionnality has been disabled"]}' );
/* PrestaShop demo mode*/
include ( '../init.php' );
$hook_name = Tools :: getValue ( 'hook' );
$hookableModulesList = array ();
$modules = Db :: getInstance () -> ExecuteS ( 'SELECT id_module, name FROM `' . _DB_PREFIX_ . 'module` ' );
foreach ( $modules as $module )
{
if ( file_exists ( _PS_MODULE_DIR_ . $module [ 'name' ] . '/' . $module [ 'name' ] . '.php' ))
{
include_once ( _PS_MODULE_DIR_ . $module [ 'name' ] . '/' . $module [ 'name' ] . '.php' );
$mod = new $module [ 'name' ]();
if ( $mod -> isHookableOn ( $hook_name ))
$hookableModulesList [] = array ( 'id' => ( int ) $mod -> id , 'name' => $mod -> displayName , 'display' => Module :: hookExec ( $hook_name , array (), ( int ) $mod -> id ));
}
}
die ( Tools :: jsonEncode ( $hookableModulesList ));
}
if ( Tools :: isSubmit ( 'saveHook' ))
{
/* PrestaShop demo mode */
if ( _PS_MODE_DEMO_ )
die ( '{"hasError" : true, "errors" : ["Live Edit : This functionnality has been disabled"]}' );
/* PrestaShop demo mode*/
$hooks_list = explode ( ',' , Tools :: getValue ( 'hooks_list' ));
foreach ( $hooks_list as $hook )
{
Db :: getInstance () -> Execute ( 'DELETE FROM `' . _DB_PREFIX_ . 'hook_module` WHERE `id_hook` = (SELECT id_hook FROM `' . _DB_PREFIX_ . 'hook` WHERE `name` = \'' . pSQL ( $hook ) . '\' LIMIT 0, 1)' );
$hookedModules = explode ( ',' , Tools :: getValue ( $hook ));
$i = 1 ;
$value = '' ;
$ids = array ();
foreach ( $hookedModules as $module )
{
$id = explode ( '_' , $module );
if ( ! in_array ( $id [ 1 ], $ids ))
{
$ids [] = $id [ 1 ];
$value .= '(' . ( int ) $id [ 1 ] . ', (SELECT id_hook FROM `' . _DB_PREFIX_ . 'hook` WHERE `name` = \'' . pSQL ( $hook ) . '\' LIMIT 0, 1), ' . ( int ) $i . '),' ;
}
$i ++ ;
}
$value = rtrim ( $value , ',' );
Db :: getInstance () -> Execute ( 'INSERT INTO `' . _DB_PREFIX_ . 'hook_module` (`id_module`, `id_hook`, `position`) VALUES ' . $value );
}
die ( '{"hasError" : false, "errors" : ""}' );
}
if ( Tools :: isSubmit ( 'getAdminHomeElement' ))
{
$result = array ();
$protocol = Tools :: usingSecureMode () ? 'https' : 'http' ;
$isoUser = Language :: getIsoById ( intval ( $cookie -> id_lang ));
$isoCountry = Country :: getIsoById ( Configuration :: get ( 'PS_COUNTRY_DEFAULT' ));
$stream_context = @ stream_context_create ( array ( 'http' => array ( 'method' => 'GET' , 'timeout' => 5 )));
// SCREENCAST
if ( @ fsockopen ( 'www.prestashop.com' , 80 , $errno , $errst , 3 ))
$result [ 'screencast' ] = 'OK' ;
else
$result [ 'screencast' ] = 'NOK' ;
// PREACTIVATION
$content = ' | ' ;
if ( ! $content )
$result [ 'partner_preactivation' ] = 'NOK' ;
else
{
$content = explode ( '|' , $content );
if ( $content [ 0 ] == 'OK' && Validate :: isCleanHtml ( $content [ 2 ]) && Validate :: isCleanHtml ( $content [ 1 ]))
{
$result [ 'partner_preactivation' ] = $content [ 2 ];
$content [ 1 ] = explode ( '#%#' , $content [ 1 ]);
foreach ( $content [ 1 ] as $partnerPopUp )
if ( $partnerPopUp )
{
$partnerPopUp = explode ( '%%' , $partnerPopUp );
if ( ! Configuration :: get ( 'PS_PREACTIVATION_' . strtoupper ( $partnerPopUp [ 0 ])))
{
$result [ 'partner_preactivation' ] .= $partnerPopUp [ 1 ];
Configuration :: updateValue ( 'PS_PREACTIVATION_' . strtoupper ( $partnerPopUp [ 0 ]), 'TRUE' );
}
}
}
else
$result [ 'partner_preactivation' ] = 'NOK' ;
}
// DISCOVER PRESTASHOP
$content = ' | ' ;
if ( ! $content )
$result [ 'discover_prestashop' ] = 'NOK' ;
else
{
$content = explode ( '|' , $content );
if ( $content [ 0 ] == 'OK' && Validate :: isCleanHtml ( $content [ 1 ]))
$result [ 'discover_prestashop' ] = $content [ 1 ];
else
$result [ 'discover_prestashop' ] = 'NOK' ;
if ( @ fsockopen ( 'www.prestashop.com' , 80 , $errno , $errst , 3 ))
$result [ 'discover_prestashop' ] .= '<iframe frameborder="no" style="margin: 0px; padding: 0px; width: 315px; height: 290px;" src="' . $protocol . '://www.prestashop.com/rss/news2.php?v=' . _PS_VERSION_ . '&lang=' . $isoUser . '"></iframe>' ;
$content = ' | ' ;
$content = explode ( '|' , $content );
if ( $content [ 0 ] == 'OK' && Validate :: isCleanHtml ( $content [ 1 ]))
$result [ 'discover_prestashop' ] .= $content [ 1 ];
}
die ( Tools :: jsonEncode ( $result ));
}
if ( Tools :: isSubmit ( 'getChildrenCategories' ) && Tools :: getValue ( 'id_category_parent' ))
2017-09-18 17:44:09 +02:00
{
2016-01-04 12:48:08 +01:00
$children_categories = Category :: getChildrenWithNbSelectedSubCat ( Tools :: getValue ( 'id_category_parent' ), Tools :: getValue ( 'selectedCat' ), $cookie -> id_lang );
die ( Tools :: jsonEncode ( $children_categories ));
}