diff --git a/admin-dev/themes/template/footer.tpl b/admin-dev/themes/template/footer.tpl
index 41e6f7632..d3dcb8ca6 100644
--- a/admin-dev/themes/template/footer.tpl
+++ b/admin-dev/themes/template/footer.tpl
@@ -122,6 +122,29 @@
});
return false;
});
+ if($('.help-context'))
+ {
+ $.ajax({
+ type: 'POST',
+ url: 'index.php',
+ data: {
+ 'ajax' : '1',
+ 'action' : 'helpAccess',
+ 'item' : '{$class_name}',
+ 'isoUser' : '{$iso_user}',
+ 'country' : '{$country_iso_code}',
+ 'version' : '{$smarty.const._PS_VERSION_}'
+ },
+ async : true,
+ success: function(msg) {
+ if(msg.status == 'ok' && msg.content != 'none')
+ {
+ $(".help-context").html(msg.content);
+ $(".help-context").fadeIn("slow").show();
+ }
+ }
+ });
+ }
});
diff --git a/admin-dev/themes/template/layout-ajax.tpl b/admin-dev/themes/template/layout-ajax.tpl
index 5e2183c55..629b6a4f2 100644
--- a/admin-dev/themes/template/layout-ajax.tpl
+++ b/admin-dev/themes/template/layout-ajax.tpl
@@ -23,56 +23,77 @@
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*}
-{if isset($conf)}
-
- {$conf}
-
-{/if}{if count($errors)} {* @todo what is ??? AND $this->_includeContainer *}
-
-


- {if count($errors) == 1}
- {$errors[0]}
- {else}
- {$errors|count} {l s='errors'}
-
-
- {foreach $errors AS $error}
- - {$error}
- {/foreach}
-
- {/if}
-
-{/if}{if isset($informations) && count($informations) && $informations}
-
- {foreach $informations as $info}
- {$info}
- {/foreach}
-
-{/if}{if isset($confirmations) && count($confirmations) && $confirmations}
-
- {foreach $confirmations as $conf}
- {$conf}
- {/foreach}
-
-{/if}{if count($warnings)}
-
-
-
-
-

- {if count($warnings) > 1}
- {l s='There are'} {count($warnings)} {l s='warnings'}
- {else}
- {l s='There is'} {count($warnings)} {l s='warning'}
- {/if}
-
- {l s='Click here to see more'}
- {l s='Hide warning'}
-
-
- {foreach $warnings as $warning}
- - {$warning}
- {/foreach}
-
-
-{/if}{$page}
+{if isset($json)}
+{
+ status:{$status},
+ conf:{$json},
+ informations:{$informations},
+ error:{$errors},
+ warnings:{$warnings},
+ content:{$page}
+}
+{else}
+
+ {if isset($conf)}
+
+ {$conf}
+
+ {/if}
+
+ {if count($errors)} {* @todo what is ??? AND $this->_includeContainer *}
+
+


+ {if count($errors) == 1}
+ {$errors[0]}
+ {else}
+ {$errors|count} {l s='errors'}
+
+
+ {foreach $errors AS $error}
+ - {$error}
+ {/foreach}
+
+ {/if}
+
+ {/if}
+
+ {if isset($informations) && count($informations) && $informations}
+
+ {foreach $informations as $info}
+ {$info}
+ {/foreach}
+
+ {/if}
+
+ {if isset($confirmations) && count($confirmations) && $confirmations}
+
+ {foreach $confirmations as $conf}
+ {$conf}
+ {/foreach}
+
+ {/if}
+
+ {if count($warnings)}
+
+
+
+
+

+ {if count($warnings) > 1}
+ {l s='There are'} {count($warnings)} {l s='warnings'}
+ {else}
+ {l s='There is'} {count($warnings)} {l s='warning'}
+ {/if}
+
+ {l s='Click here to see more'}
+ {l s='Hide warning'}
+
+
+ {foreach $warnings as $warning}
+ - {$warning}
+ {/foreach}
+
+
+ {/if}
+ {$page}
+{/if}
diff --git a/admin-dev/themes/template/products/form.tpl b/admin-dev/themes/template/products/form.tpl
index b3116c76f..8e2b17cfa 100644
--- a/admin-dev/themes/template/products/form.tpl
+++ b/admin-dev/themes/template/products/form.tpl
@@ -227,7 +227,7 @@ $(document).ready(function(){
//]]>
-
diff --git a/admin-dev/themes/template/products/informations.tpl b/admin-dev/themes/template/products/informations.tpl
index 15cb241a8..83781518f 100644
--- a/admin-dev/themes/template/products/informations.tpl
+++ b/admin-dev/themes/template/products/informations.tpl
@@ -962,8 +962,88 @@ $(document).ready(function(){
}
{/if}
-{$last_content}
+
+ |
+
+
+ {foreach from=$languages item=language}
+
+
+ {l s='Forbidden characters:'} !<;>;?=+#"°{}_$%
+
+ {/foreach}
+ {l s='Tags separated by commas (e.g., dvd, dvd player, hifi)'}
+ |
+
+
+
+ |
+
+
+ {* @todo : donot use 3 foreach, but assign var *}
+ {foreach from=$accessories item=accessory}
+ {$accessory.name|htmlentitiesUTF8}{if !empty($accessory.reference)}{$accessory.reference}{/if} 
+ {/foreach}
+
+
+
+
+
+
+ {l s='Begin typing the first letters of the product name, then select the product from the drop-down list:'}
+
+ 
+
+
+ |
+
+ |
+
+
+
+
+
+
';
}
+ return $content;
}
}
diff --git a/classes/Helper.php b/classes/Helper.php
index 451fda01d..8a9531332 100755
--- a/classes/Helper.php
+++ b/classes/Helper.php
@@ -37,6 +37,7 @@ class HelperCore
public $identifier;
public $token;
public $toolbar_btn;
+ public $ps_help_context;
public $title;
public $show_toolbar = true;
public $context;
diff --git a/classes/HelperForm.php b/classes/HelperForm.php
index 6c253f835..3465aaffb 100644
--- a/classes/HelperForm.php
+++ b/classes/HelperForm.php
@@ -138,6 +138,13 @@ class HelperFormCore extends Helper
$this->tpl->assign(array(
'title' => $this->title,
'toolbar_btn' => $this->toolbar_btn,
+
+ 'ps_help_context' => $this->ps_help_context,
+ 'class_name' => get_class($this->context->controller),
+ 'iso_user' => $this->context->language->id,
+ 'country_iso_code' => $this->context->country->iso_code,
+ 'version' => _PS_VERSION_,
+
'show_toolbar' => $this->show_toolbar,
'toolbar_fix' => $this->toolbar_fix,
'submit_action' => $this->submit_action,
diff --git a/classes/HelperList.php b/classes/HelperList.php
index dcf0b5d38..a58fa5944 100644
--- a/classes/HelperList.php
+++ b/classes/HelperList.php
@@ -564,6 +564,13 @@ class HelperListCore extends Helper
'show_toolbar' => $this->show_toolbar,
'toolbar_fix' => $this->toolbar_fix,
'toolbar_btn' => $this->toolbar_btn,
+
+ 'ps_help_context' => $this->ps_help_context,
+ 'class_name' => get_class($this->context->controller),
+ 'iso_user' => $this->context->language->id,
+ 'country_iso_code' => $this->context->country->iso_code,
+ 'version' => _PS_VERSION_,
+
'table' => $this->table,
'currentIndex' => $this->currentIndex,
'action' => $action,
diff --git a/controllers/admin/AdminProductsController.php b/controllers/admin/AdminProductsController.php
index 79a2029ff..9470081be 100644
--- a/controllers/admin/AdminProductsController.php
+++ b/controllers/admin/AdminProductsController.php
@@ -297,7 +297,7 @@ class AdminProductsControllerCore extends AdminController
if (!sizeof($this->_errors))
{
$attachment->add();
- Tools::redirectAdmin(self::$currentIndex.'&id_product='.(int)(Tools::getValue($this->identifier)).'&id_category='.(int)(Tools::getValue('id_category')).'&addproduct&conf=4&tabs=6&token='.($token ? $token : $this->token));
+ $this->redirect_after = self::$currentIndex.'&id_product='.(int)(Tools::getValue($this->identifier)).'&id_category='.(int)(Tools::getValue('id_category')).'&addproduct&conf=4&tabs=6&token='.($token ? $token : $this->token);
}
else
$this->_errors[] = Tools::displayError('Invalid file');
@@ -312,7 +312,7 @@ class AdminProductsControllerCore extends AdminController
if ($this->tabAccess['edit'] === '1')
if ($id = (int)(Tools::getValue($this->identifier)))
if (Attachment::attachToProduct($id, Tools::getValue('attachments')))
- Tools::redirectAdmin(self::$currentIndex.'&id_product='.(int)$id.(isset($_POST['id_category']) ? '&id_category='.(int)$_POST['id_category'] : '').'&conf=4&add'.$this->table.'&tabs=6&token='.($token ? $token : $this->token));
+ $this->redirect_after = self::$currentIndex.'&id_product='.(int)$id.(isset($_POST['id_category']) ? '&id_category='.(int)$_POST['id_category'] : '').'&conf=4&add'.$this->table.'&tabs=6&token='.($token ? $token : $this->token);
}
/* Product duplication */
@@ -349,7 +349,7 @@ class AdminProductsControllerCore extends AdminController
{
Hook::exec('addProduct', array('product' => $product));
Search::indexation(false, $product->id);
- Tools::redirectAdmin(self::$currentIndex.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&conf=19&token='.($token ? $token : $this->token));
+ $this->redirect_after = self::$currentIndex.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&conf=19&token='.($token ? $token : $this->token);
}
}
else
@@ -368,7 +368,7 @@ class AdminProductsControllerCore extends AdminController
{
// @todo : redirect to the previous page instead of always product list
if ($object->toggleStatus())
- Tools::redirectAdmin(self::$currentIndex.'&conf=5'.((($id_category = (!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1')) && Tools::getValue('id_product')) ? '&id_category='.$id_category : '').'&token='.($token ? $token : $this->token));
+ $this->redirect_after = self::$currentIndex.'&conf=5'.((($id_category = (!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1')) && Tools::getValue('id_product')) ? '&id_category='.$id_category : '').'&token='.($token ? $token : $this->token);
else
$this->_errors[] = Tools::displayError('An error occurred while updating status.');
}
@@ -398,10 +398,10 @@ class AdminProductsControllerCore extends AdminController
$object->deleteImages();
$object->deleted = 1;
if ($object->update())
- Tools::redirectAdmin(self::$currentIndex.'&conf=1&token='.($token ? $token : $this->token).$category_url);
+ $this->redirect_after = self::$currentIndex.'&conf=1&token='.($token ? $token : $this->token).$category_url;
}
else if ($object->delete())
- Tools::redirectAdmin(self::$currentIndex.'&conf=1&token='.($token ? $token : $this->token).$category_url);
+ $this->redirect_after = self::$currentIndex.'&conf=1&token='.($token ? $token : $this->token).$category_url;
$this->_errors[] = Tools::displayError('An error occurred during deletion.');
}
}
@@ -445,7 +445,7 @@ class AdminProductsControllerCore extends AdminController
$id_category = Tools::getValue('id_category');
$category_url = empty($id_category) ? '' : '&id_category='.$id_category;
- Tools::redirectAdmin(self::$currentIndex.'&conf=2&token='.$token.$category_url);
+ $this->redirect_after = self::$currentIndex.'&conf=2&token='.$token.$category_url;
}
$this->_errors[] = Tools::displayError('An error occurred while deleting selection.');
}
@@ -487,7 +487,7 @@ class AdminProductsControllerCore extends AdminController
$productId = (int)(Tools::getValue('id_product'));
@unlink(_PS_TMP_IMG_DIR_.'/product_'.$productId.'.jpg');
@unlink(_PS_TMP_IMG_DIR_.'/product_mini_'.$productId.'.jpg');
- Tools::redirectAdmin(self::$currentIndex.'&id_product='.$image->id_product.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&addproduct&tabs=1'.'&token='.($token ? $token : $this->token));
+ $this->redirect_after = self::$currentIndex.'&id_product='.$image->id_product.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&addproduct&tabs=1'.'&token='.($token ? $token : $this->token);
}
}
@@ -495,7 +495,7 @@ class AdminProductsControllerCore extends AdminController
else if (isset($_GET['imgPosition']) && isset($_GET['imgDirection']))
{
$image->updatePosition(Tools::getValue('imgDirection'), Tools::getValue('imgPosition'));
- Tools::redirectAdmin(self::$currentIndex.'&id_product='.$image->id_product.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&add'.$this->table.'&tabs=1&token='.($token ? $token : $this->token));
+ $this->redirect_after = self::$currentIndex.'&id_product='.$image->id_product.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&add'.$this->table.'&tabs=1&token='.($token ? $token : $this->token);
}
}
else
@@ -608,7 +608,7 @@ class AdminProductsControllerCore extends AdminController
if (!empty($is_virtual))
Product::updateIsVirtual($product->id);
- Tools::redirectAdmin(self::$currentIndex.'&id_product='.$product->id.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&add'.$this->table.'&tabs=3&token='.($token ? $token : $this->token));
+ $this->redirect_after = self::$currentIndex.'&id_product='.$product->id.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&add'.$this->table.'&tabs=3&token='.($token ? $token : $this->token);
}
}
}
@@ -640,7 +640,7 @@ class AdminProductsControllerCore extends AdminController
else
Product::updateDefaultAttribute($id_product);
- Tools::redirectAdmin(self::$currentIndex.'&add'.$this->table.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&tabs=3&id_product='.$product->id.'&token='.($token ? $token : $this->token));
+ $this->redirect_after = self::$currentIndex.'&add'.$this->table.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&tabs=3&id_product='.$product->id.'&token='.($token ? $token : $this->token);
}
else
$this->_errors[] = Tools::displayError('Cannot delete attribute');
@@ -663,7 +663,7 @@ class AdminProductsControllerCore extends AdminController
$product->cache_default_attribute = 0;
$product->update();
}
- Tools::redirectAdmin(self::$currentIndex.'&add'.$this->table.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&tabs=3&id_product='.$product->id.'&token='.($token ? $token : $this->token));
+ $this->redirect_after = self::$currentIndex.'&add'.$this->table.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&tabs=3&id_product='.$product->id.'&token='.($token ? $token : $this->token);
}
else
$this->_errors[] = Tools::displayError('Cannot delete attributes');
@@ -679,7 +679,7 @@ class AdminProductsControllerCore extends AdminController
{
$product->deleteDefaultAttributes();
$product->setDefaultAttribute((int)(Tools::getValue('id_product_attribute')));
- Tools::redirectAdmin(self::$currentIndex.'&add'.$this->table.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&tabs=3&id_product='.$product->id.'&token='.($token ? $token : $this->token));
+ $this->redirect_after = self::$currentIndex.'&add'.$this->table.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&tabs=3&id_product='.$product->id.'&token='.($token ? $token : $this->token);
}
else
$this->_errors[] = Tools::displayError('Cannot make default attribute');
@@ -724,7 +724,7 @@ class AdminProductsControllerCore extends AdminController
}
}
if (!sizeof($this->_errors))
- Tools::redirectAdmin(self::$currentIndex.'&id_product='.(int)$product->id.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&add'.$this->table.'&tabs=4&conf=4&token='.($token ? $token : $this->token));
+ $this->redirect_after = self::$currentIndex.'&id_product='.(int)$product->id.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&add'.$this->table.'&tabs=4&conf=4&token='.($token ? $token : $this->token);
}
else
$this->_errors[] = Tools::displayError('Product must be created before adding features.');
@@ -767,7 +767,7 @@ class AdminProductsControllerCore extends AdminController
$this->_errors = Tools::displayError('An error occurred while updating the specific price.');
}
if (!sizeof($this->_errors))
- Tools::redirectAdmin(self::$currentIndex.'&id_product='.(int)(Tools::getValue('id_product')).'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&update'.$this->table.'&tabs=2&token='.($token ? $token : $this->token));
+ $this->redirect_after = self::$currentIndex.'&id_product='.(int)(Tools::getValue('id_product')).'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&update'.$this->table.'&tabs=2&token='.($token ? $token : $this->token);
}
else
$this->_errors[] = Tools::displayError('You do not have permission to add here.');
@@ -805,7 +805,7 @@ class AdminProductsControllerCore extends AdminController
if (!$specificPrice->add())
$this->_errors = Tools::displayError('An error occurred while updating the specific price.');
else
- Tools::redirectAdmin(self::$currentIndex.(Tools::getValue('id_category') ? '&id_category='.Tools::getValue('id_category') : '').'&id_product='.$id_product.'&add'.$this->table.'&tabs=2&conf=3&token='.($token ? $token : $this->token));
+ $this->redirect_after = self::$currentIndex.(Tools::getValue('id_category') ? '&id_category='.Tools::getValue('id_category') : '').'&id_product='.$id_product.'&add'.$this->table.'&tabs=2&conf=3&token='.($token ? $token : $this->token);
}
}
else
@@ -825,7 +825,7 @@ class AdminProductsControllerCore extends AdminController
if (!$specificPrice->delete())
$this->_errors[] = Tools::displayError('An error occurred while deleting the specific price');
else
- Tools::redirectAdmin(self::$currentIndex.(Tools::getValue('id_category') ? '&id_category='.Tools::getValue('id_category') : '').'&id_product='.$obj->id.'&add'.$this->table.'&tabs=2&conf=1&token='.($token ? $token : $this->token));
+ $this->redirect_after = self::$currentIndex.(Tools::getValue('id_category') ? '&id_category='.Tools::getValue('id_category') : '').'&id_product='.$obj->id.'&add'.$this->table.'&tabs=2&conf=1&token='.($token ? $token : $this->token);
}
}
else
@@ -842,12 +842,12 @@ class AdminProductsControllerCore extends AdminController
if (!SpecificPrice::setPriorities($priorities))
$this->_errors[] = Tools::displayError('An error occurred while updating priorities.');
else
- Tools::redirectAdmin(self::$currentIndex.'&id_product='.$obj->id.'&add'.$this->table.'&tabs=2&conf=4&token='.($token ? $token : $this->token));
+ $this->redirect_after = self::$currentIndex.'&id_product='.$obj->id.'&add'.$this->table.'&tabs=2&conf=4&token='.($token ? $token : $this->token);
}
else if (!SpecificPrice::setSpecificPriority((int)($obj->id), $priorities))
$this->_errors[] = Tools::displayError('An error occurred while setting priorities.');
else
- Tools::redirectAdmin(self::$currentIndex.(Tools::getValue('id_category') ? '&id_category='.Tools::getValue('id_category') : '').'&id_product='.$obj->id.'&add'.$this->table.'&tabs=2&conf=4&token='.($token ? $token : $this->token));
+ $this->redirect_after = self::$currentIndex.(Tools::getValue('id_category') ? '&id_category='.Tools::getValue('id_category') : '').'&id_product='.$obj->id.'&add'.$this->table.'&tabs=2&conf=4&token='.($token ? $token : $this->token);
}
/* Customization management */
else if (Tools::isSubmit('submitCustomizationConfiguration'))
@@ -866,7 +866,7 @@ class AdminProductsControllerCore extends AdminController
if (!sizeof($this->_errors) && !$product->update())
$this->_errors[] = Tools::displayError('An error occurred while updating customization configuration.');
if (!sizeof($this->_errors))
- Tools::redirectAdmin(self::$currentIndex.'&id_product='.$product->id.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&add'.$this->table.'&tabs=5&token='.($token ? $token : $this->token));
+ $this->redirect_after = self::$currentIndex.'&id_product='.$product->id.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&add'.$this->table.'&tabs=5&token='.($token ? $token : $this->token);
}
else
$this->_errors[] = Tools::displayError('Product must be created before adding customization possibilities.');
@@ -886,7 +886,7 @@ class AdminProductsControllerCore extends AdminController
if (!sizeof($this->_errors) && !$product->updateLabels())
$this->_errors[] = Tools::displayError('An error occurred while updating customization.');
if (!sizeof($this->_errors))
- Tools::redirectAdmin(self::$currentIndex.'&id_product='.$product->id.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&add'.$this->table.'&tabs=5&token='.($token ? $token : $this->token));
+ $this->redirect_after = self::$currentIndex.'&id_product='.$product->id.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&add'.$this->table.'&tabs=5&token='.($token ? $token : $this->token);
}
else
$this->_errors[] = Tools::displayError('Product must be created before adding customization possibilities.');
@@ -903,7 +903,7 @@ class AdminProductsControllerCore extends AdminController
if (!$object->updatePosition((int)(Tools::getValue('way')), (int)(Tools::getValue('position'))))
$this->_errors[] = Tools::displayError('Failed to update the position.');
else
- Tools::redirectAdmin(self::$currentIndex.'&'.$this->table.'Orderby=position&'.$this->table.'Orderway=asc&conf=5'.(($id_category = (!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1')) ? ('&id_category='.$id_category) : '').'&token='.Tools::getAdminTokenLite('AdminProducts'));
+ $this->redirect_after = self::$currentIndex.'&'.$this->table.'Orderby=position&'.$this->table.'Orderway=asc&conf=5'.(($id_category = (!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1')) ? ('&id_category='.$id_category) : '').'&token='.Tools::getAdminTokenLite('AdminProducts');
}
else if (Tools::isSubmit('submitAccountingDetails'))
$this->postProcessFormAccounting();
@@ -978,7 +978,7 @@ class AdminProductsControllerCore extends AdminController
@unlink(_PS_TMP_IMG_DIR_.'/product_'.$image->id_product.'.jpg');
@unlink(_PS_TMP_IMG_DIR_.'/product_mini_'.$image->id_product.'.jpg');
if (!$this->ajax)
- Tools::redirectAdmin($currentIndex.'&id_product='.$image->id_product.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&add'.$this->table.'&tabs=1'.'&token='.($token ? $token : $this->token));
+ $this->redirect_after = $currentIndex.'&id_product='.$image->id_product.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&add'.$this->table.'&tabs=1'.'&token='.($token ? $token : $this->token);
else
$this->content = '{"status":"ok"}';
}
@@ -1207,7 +1207,7 @@ class AdminProductsControllerCore extends AdminController
Hook::exec('updateProduct', array('product' => $object));
Search::indexation(false, $object->id);
if (Tools::getValue('resizer') == 'man' && isset($id_image) && is_int($id_image) && $id_image)
- Tools::redirectAdmin(self::$currentIndex.'&id_product='.$object->id.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&edit='.strval(Tools::getValue('productCreated')).'&id_image='.$id_image.'&imageresize&toconf=4&submitAddAndStay='.((Tools::isSubmit('submitAdd'.$this->table.'AndStay') || Tools::getValue('productCreated') == 'on') ? 'on' : 'off').'&token='.(($token ? $token : $this->token)));
+ $this->redirect_after = self::$currentIndex.'&id_product='.$object->id.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&edit='.strval(Tools::getValue('productCreated')).'&id_image='.$id_image.'&imageresize&toconf=4&submitAddAndStay='.((Tools::isSubmit('submitAdd'.$this->table.'AndStay') || Tools::getValue('productCreated') == 'on') ? 'on' : 'off').'&token='.(($token ? $token : $this->token));
// Save and preview
if (Tools::isSubmit('submitAddProductAndPreview'))
@@ -1224,14 +1224,14 @@ class AdminProductsControllerCore extends AdminController
$preview_url .= '&';
$preview_url .= 'adtoken='.$token.'&ad='.$admin_dir;
}
- Tools::redirectAdmin($preview_url);
+ $this->redirect_after = $preview_url;
} else if (Tools::isSubmit('submitAdd'.$this->table.'AndStay') || ($id_image && $id_image !== true)) // Save and stay on same form
// Save and stay on same form
if (Tools::isSubmit('submitAdd'.$this->table.'AndStay'))
- Tools::redirectAdmin(self::$currentIndex.'&id_product='.$object->id.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&addproduct&conf=4&tabs='.(int)(Tools::getValue('tabs')).'&token='.($token ? $token : $this->token));
+ $this->redirect_after = self::$currentIndex.'&id_product='.$object->id.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&addproduct&conf=4&tabs='.(int)(Tools::getValue('tabs')).'&token='.($token ? $token : $this->token);
// Default behavior (save and back)
- Tools::redirectAdmin(self::$currentIndex.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&conf=4&token='.($token ? $token : $this->token).'&onredirigeici');
+ $this->redirect_after = self::$currentIndex.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&conf=4&token='.($token ? $token : $this->token).'&onredirigeici';
}
}
else
@@ -1278,16 +1278,17 @@ class AdminProductsControllerCore extends AdminController
$preview_url .= '&adtoken='.$token.'&ad='.$admin_dir;
}
- Tools::redirectAdmin($preview_url);
+ $this->redirect_after = $preview_url;
}
if (Tools::getValue('resizer') == 'man' && isset($id_image) && is_int($id_image) && $id_image)
- Tools::redirectAdmin(self::$currentIndex.'&id_product='.$object->id.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&id_image='.$id_image.'&imageresize&toconf=3&submitAddAndStay='.(Tools::isSubmit('submitAdd'.$this->table.'AndStay') ? 'on' : 'off').'&token='.($token ? $token : $this->token));
+ $this->redirect_after = self::$currentIndex.'&id_product='.$object->id.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&id_image='.$id_image.'&imageresize&toconf=3&submitAddAndStay='.(Tools::isSubmit('submitAdd'.$this->table.'AndStay') ? 'on' : 'off').'&token='.($token ? $token : $this->token);
// Save and stay on same form
if (Tools::isSubmit('submitAdd'.$this->table.'AndStay'))
- Tools::redirectAdmin(self::$currentIndex.'&id_product='.$object->id.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&addproduct&conf=3&tabs='.(int)(Tools::getValue('tabs')).'&token='.($token ? $token : $this->token));
- // Default behavior (save and back)
- Tools::redirectAdmin(self::$currentIndex.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&conf=3&token='.($token ? $token : $this->token));
+ $this->redirect_after = self::$currentIndex.'&id_product='.$object->id.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&addproduct&conf=3&tabs='.(int)(Tools::getValue('tabs')).'&token='.($token ? $token : $this->token);
+ else
+ // Default behavior (save and back)
+ $this->redirect_after = self::$currentIndex.'&id_category='.(!empty($_REQUEST['id_category'])?$_REQUEST['id_category']:'1').'&conf=3&token='.($token ? $token : $this->token);
}
}
else
@@ -1756,10 +1757,18 @@ class AdminProductsControllerCore extends AdminController
'href' => '#todo'.$this->context->link->getAdminLink('AdminProducts').'&id_product='.$product->id, 'desc' => $this->l('Create'),
);
if($this->tabAccess['edit'])
+ {
$this->toolbar_btn['save'] = array(
- 'short' => 'Save',
- 'href' => '#todo'.$this->context->link->getAdminLink('AdminProducts').'&id_product='.$product->id, 'desc' => $this->l('Save'),
- );
+ 'short' => 'Save',
+ 'href' => '#todo'.$this->context->link->getAdminLink('AdminProducts').'&id_product='.$product->id,
+ 'desc' => $this->l('Save'),
+ );
+ $this->toolbar_btn['save-and-stay'] = array(
+ 'short' => 'SaveAndStay',
+ 'href' => '#todo'.$this->context->link->getAdminLink('AdminProducts').'&id_product='.$product->id,
+ 'desc' => $this->l('Save and stay'),
+ );
+ }
}
parent::initToolbar();
$this->context->smarty->assign('toolbar_fix', 1);
@@ -2724,23 +2733,6 @@ class AdminProductsControllerCore extends AdminController
$data->assign('images', $images);
$data->assign('imagesTypes', ImageType::getImagesTypes('products'));
- $content .= '
-
- |
- ';
- if ($product->id)
- $product->tags = Tag::getProductTags((int)$product->id);
- foreach ($this->_languages as $language)
- {
- $content .= '
-
- '.$this->l('Forbidden characters:').' !<>;?=+#"°{}_$%
- ';
- }
- $content .= ' '.$this->l('Tags separated by commas (e.g., dvd, dvd player, hifi)').'
- |
-
';
$accessories = Product::getAccessoriesLight($this->context->language->id, $product->id);
if ($postAccessories = Tools::getValue('inputAccessories'))
@@ -2750,89 +2742,17 @@ class AdminProductsControllerCore extends AdminController
if (!$this->haveThisAccessory($accessoryId, $accessories) && $accessory = Product::getAccessoryById($accessoryId))
$accessories[] = $accessory;
}
+ $data->assign('accessories', $accessories);
+ $product->tags = Tag::getProductTags($product->id);
- $content .= '
-
- |
-
- ';
- foreach ($accessories as $accessory)
- $content .= htmlentities($accessory['name'], ENT_COMPAT, 'UTF-8').(!empty($accessory['reference']) ? ' ('.$accessory['reference'].')' : '').'  ';
- $content .= '
-
-
- ';
$this->addJqueryPlugin('autocomplete');
- $content .= '
-
- '.$this->l('Begin typing the first letters of the product name, then select the product from the drop-down list:').'
-
- 
-
-
- |
-
- |
-
- |
-
- |
-
-
-
- ';
// TinyMCE
$iso_tiny_mce = $this->context->language->iso_code;
$iso_tiny_mce = (file_exists(_PS_JS_DIR_.'tiny_mce/langs/'.$iso_tiny_mce.'.js') ? $iso_tiny_mce : 'en');
$data->assign('ad', dirname($_SERVER["PHP_SELF"]));
$data->assign('iso_tiny_mce', $iso_tiny_mce);
- $content .= '
- ';
$categoryBox = Tools::getValue('categoryBox', array());
$data->assign('product', $product);
$data->assign('last_content', $content);