//added message errors and success, Norms

This commit is contained in:
lLefevre committed 2011-10-04 14:23:23 +00:00
1 parent 06a03e2169
commit af8018d0cd
2 files changed
+170 -149

No files matched your search

+37 -2
View File
@@ -25,8 +25,43 @@
*} *}
{include file='header.tpl'} {include file='header.tpl'}
{if count($warnings)}
{if isset($conf)}
<div class="conf">
<img src="../img/admin/ok2.png" alt="" />{$conf}
</div>
{/if}
{if count($errors)} {* @todo what is ??? AND $this->_includeContainer *}
<script type="text/javascript">
$(document).ready(function()
{
$('#hideError').unbind('click').click(function()
{
$('.error').hide('slow', function (){
$('.error').remove();
});
return false;
});
});
</script>
<div class="error">
<span style="float:right"><a id="hideError" href=""><img alt="X" src="../img/admin/close.png" /></a></span><img src="../img/admin/error2.png" />
{if count($errors) == 1}
{$errors[0]}
{else}
{$errors|count} {l s='errors'}
<br/>
<ol>
{foreach from=$errors item=$error}
<li>{$error}</li>
{/foreach}
</ol>
{/if}
</div>
{/if}
{if count($warnings)}
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function() { $(document).ready(function() {
$('#linkSeeMore').unbind('click').click(function(){ $('#linkSeeMore').unbind('click').click(function(){
@@ -65,7 +100,7 @@
</span> </span>
<ul style="display:none;" id="seeMore"> <ul style="display:none;" id="seeMore">
{foreach $warnings item=warning} {foreach $warnings item=warning}
<li>{$warning}</mo> <li>{$warning}</li>
{/foreach} {/foreach}
</ul> </ul>
</div> </div>
+133 -147
View File
@@ -192,7 +192,7 @@ class AdminControllerCore extends Controller
public function checkToken() public function checkToken()
{ {
$token = Tools::getValue('token'); $token = Tools::getValue('token');
return (!empty($token) AND $token === $this->token); return (!empty($token) && $token === $this->token);
} }
public function postProcess() public function postProcess()
@@ -238,10 +238,10 @@ class AdminControllerCore extends Controller
break; break;
/* Delete object */ /* Delete object */
case 'delete': case 'delete':
if (Validate::isLoadedObject($object = $this->loadObject()) AND isset($this->fieldImageSettings)) if (Validate::isLoadedObject($object = $this->loadObject()) && isset($this->fieldImageSettings))
{ {
// check if request at least one object with noZeroObject // check if request at least one object with noZeroObject
if (isset($object->noZeroObject) AND sizeof(call_user_func(array($this->className, $object->noZeroObject))) <= 1) if (isset($object->noZeroObject) && count(call_user_func(array($this->className, $object->noZeroObject))) <= 1)
$this->_errors[] = Tools::displayError('You need at least one object.').' <b>'.$this->table.'</b><br />'.Tools::displayError('You cannot delete all of the items.'); $this->_errors[] = Tools::displayError('You need at least one object.').' <b>'.$this->table.'</b><br />'.Tools::displayError('You cannot delete all of the items.');
else else
{ {
@@ -270,7 +270,7 @@ class AdminControllerCore extends Controller
if (Validate::isLoadedObject($object = $this->loadObject())) if (Validate::isLoadedObject($object = $this->loadObject()))
{ {
if ($object->toggleStatus()) if ($object->toggleStatus())
Tools::redirectAdmin(self::$currentIndex.'&conf=5'.((($id_category = (int)(Tools::getValue('id_category'))) AND Tools::getValue('id_product')) ? '&id_category='.$id_category : '').'&token='.$token); Tools::redirectAdmin(self::$currentIndex.'&conf=5'.((($id_category = (int)(Tools::getValue('id_category'))) && Tools::getValue('id_product')) ? '&id_category='.$id_category : '').'&token='.$token);
else else
$this->_errors[] = Tools::displayError('An error occurred while updating status.'); $this->_errors[] = Tools::displayError('An error occurred while updating status.');
} }
@@ -286,7 +286,7 @@ class AdminControllerCore extends Controller
$this->_errors[] = Tools::displayError('Failed to update the position.'); $this->_errors[] = Tools::displayError('Failed to update the position.');
else else
Tools::redirectAdmin(self::$currentIndex.'&'.$this->table.'Orderby=position&'.$this->table.'Orderway=asc&conf=5'.(($id_category = (int)(Tools::getValue($this->identifier))) ? ('&'.$this->identifier.'='.$id_category) : '').'&token='.$token); Tools::redirectAdmin(self::$currentIndex.'&'.$this->table.'Orderby=position&'.$this->table.'Orderway=asc&conf=5'.(($id_category = (int)(Tools::getValue($this->identifier))) ? ('&'.$this->identifier.'='.$id_category) : '').'&token='.$token);
Tools::redirectAdmin(self::$currentIndex.'&'.$this->table.'Orderby=position&'.$this->table.'Orderway=asc&conf=5'.((($id_category = (int)(Tools::getValue('id_category'))) AND Tools::getValue('id_product')) ? '&id_category='.$id_category : '').'&token='.$token); Tools::redirectAdmin(self::$currentIndex.'&'.$this->table.'Orderby=position&'.$this->table.'Orderway=asc&conf=5'.((($id_category = (int)(Tools::getValue('id_category'))) && Tools::getValue('id_product')) ? '&id_category='.$id_category : '').'&token='.$token);
break; break;
/* Delete multiple objects */ /* Delete multiple objects */
@@ -294,9 +294,9 @@ class AdminControllerCore extends Controller
if (isset($_POST[$this->table.'Box'])) if (isset($_POST[$this->table.'Box']))
{ {
$object = new $this->className(); $object = new $this->className();
if (isset($object->noZeroObject) AND if (isset($object->noZeroObject) &&
// Check if all object will be deleted // Check if all object will be deleted
(sizeof(call_user_func(array($this->className, $object->noZeroObject))) <= 1 OR sizeof($_POST[$this->table.'Box']) == sizeof(call_user_func(array($this->className, $object->noZeroObject))))) (count(call_user_func(array($this->className, $object->noZeroObject))) <= 1 || count($_POST[$this->table.'Box']) == count(call_user_func(array($this->className, $object->noZeroObject)))))
$this->_errors[] = Tools::displayError('You need at least one object.').' <b>'.$this->table.'</b><br />'.Tools::displayError('You cannot delete all of the items.'); $this->_errors[] = Tools::displayError('You need at least one object.').' <b>'.$this->table.'</b><br />'.Tools::displayError('You cannot delete all of the items.');
else else
{ {
@@ -305,9 +305,9 @@ class AdminControllerCore extends Controller
{ {
foreach (Tools::getValue($this->table.'Box') as $id) foreach (Tools::getValue($this->table.'Box') as $id)
{ {
$toDelete = new $this->className($id); $to_delete = new $this->className($id);
$toDelete->deleted = 1; $to_delete->deleted = 1;
$result = $result AND $toDelete->update(); $result = $result && $to_delete->update();
} }
} }
else else
@@ -326,24 +326,24 @@ class AdminControllerCore extends Controller
case 'save': case 'save':
/* Checking fields validity */ /* Checking fields validity */
$this->validateRules(); $this->validateRules();
if (!sizeof($this->_errors)) if (!count($this->_errors))
{ {
$id = (int)(Tools::getValue($this->identifier)); $id = (int)(Tools::getValue($this->identifier));
/* Object update */ /* Object update */
if (isset($id) AND !empty($id)) if (isset($id) && !empty($id))
{ {
if ($this->tabAccess['edit'] === '1' OR ($this->table == 'employee' AND $this->context->employee->id == Tools::getValue('id_employee') AND Tools::isSubmit('updateemployee'))) if ($this->tabAccess['edit'] === '1' || ($this->table == 'employee' && $this->context->employee->id == Tools::getValue('id_employee') && Tools::isSubmit('updateemployee')))
{ {
$object = new $this->className($id); $object = new $this->className($id);
if (Validate::isLoadedObject($object)) if (Validate::isLoadedObject($object))
{ {
/* Specific to objects which must not be deleted */ /* Specific to objects which must not be deleted */
if ($this->deleted AND $this->beforeDelete($object)) if ($this->deleted && $this->beforeDelete($object))
{ {
// Create new one with old objet values // Create new one with old objet values
$objectNew = new $this->className($object->id); $objectNew = new $this->className($object->id);
$objectNew->id = NULL; $objectNew->id = null;
$objectNew->date_add = ''; $objectNew->date_add = '';
$objectNew->date_upd = ''; $objectNew->date_upd = '';
@@ -369,7 +369,7 @@ class AdminControllerCore extends Controller
if (!$result) if (!$result)
$this->_errors[] = Tools::displayError('An error occurred while updating object.').' <b>'.$this->table.'</b> ('.Db::getInstance()->getMsgError().')'; $this->_errors[] = Tools::displayError('An error occurred while updating object.').' <b>'.$this->table.'</b> ('.Db::getInstance()->getMsgError().')';
elseif ($this->postImage($object->id) AND !sizeof($this->_errors)) else if ($this->postImage($object->id) && !count($this->_errors))
{ {
$parent_id = (int)(Tools::getValue('id_parent', 1)); $parent_id = (int)(Tools::getValue('id_parent', 1));
// Specific back redirect // Specific back redirect
@@ -404,7 +404,7 @@ class AdminControllerCore extends Controller
$this->copyFromPost($object, $this->table); $this->copyFromPost($object, $this->table);
if (!$object->add()) if (!$object->add())
$this->_errors[] = Tools::displayError('An error occurred while creating object.').' <b>'.$this->table.' ('.Db::getInstance()->getMsgError().')</b>'; $this->_errors[] = Tools::displayError('An error occurred while creating object.').' <b>'.$this->table.' ('.Db::getInstance()->getMsgError().')</b>';
elseif (($_POST[$this->identifier] = $object->id /* voluntary */) AND $this->postImage($object->id) AND !sizeof($this->_errors) AND $this->_redirect) else if (($_POST[$this->identifier] = $object->id /* voluntary */) && $this->postImage($object->id) && !count($this->_errors) && $this->_redirect)
{ {
$parent_id = (int)(Tools::getValue('id_parent', 1)); $parent_id = (int)(Tools::getValue('id_parent', 1));
$this->afterAdd($object); $this->afterAdd($object);
@@ -429,7 +429,7 @@ class AdminControllerCore extends Controller
/* Cancel all filters for this tab */ /* Cancel all filters for this tab */
case 'reset_filters': case 'reset_filters':
$filters = $this->context->cookie->getFamily($this->table.'Filter_'); $filters = $this->context->cookie->getFamily($this->table.'Filter_');
foreach ($filters AS $cookieKey => $filter) foreach ($filters as $cookieKey => $filter)
if (strncmp($cookieKey, $this->table.'Filter_', 7 + Tools::strlen($this->table)) == 0) if (strncmp($cookieKey, $this->table.'Filter_', 7 + Tools::strlen($this->table)) == 0)
{ {
$key = substr($cookieKey, 7 + Tools::strlen($this->table)); $key = substr($cookieKey, 7 + Tools::strlen($this->table));
@@ -473,10 +473,10 @@ class AdminControllerCore extends Controller
if ($this->filter) if ($this->filter)
{ {
$_POST = array_merge($this->context->cookie->getFamily($this->table.'Filter_'), (isset($_POST) ? $_POST : array())); $_POST = array_merge($this->context->cookie->getFamily($this->table.'Filter_'), (isset($_POST) ? $_POST : array()));
foreach ($_POST AS $key => $value) foreach ($_POST as $key => $value)
{ {
/* Extracting filters from $_POST on key filter_ */ /* Extracting filters from $_POST on key filter_ */
if ($value != NULL AND !strncmp($key, $this->table.'Filter_', 7 + Tools::strlen($this->table))) if ($value != null && !strncmp($key, $this->table.'Filter_', 7 + Tools::strlen($this->table)))
{ {
$key = Tools::substr($key, 7 + Tools::strlen($this->table)); $key = Tools::substr($key, 7 + Tools::strlen($this->table));
/* Table alias could be specified using a ! eg. alias!field */ /* Table alias could be specified using a ! eg. alias!field */
@@ -485,7 +485,7 @@ class AdminControllerCore extends Controller
if ($field = $this->filterToField($key, $filter)) if ($field = $this->filterToField($key, $filter))
{ {
$type = (array_key_exists('filter_type', $field) ? $field['filter_type'] : (array_key_exists('type', $field) ? $field['type'] : false)); $type = (array_key_exists('filter_type', $field) ? $field['filter_type'] : (array_key_exists('type', $field) ? $field['type'] : false));
if (($type == 'date' OR $type == 'datetime') AND is_string($value)) if (($type == 'date' || $type == 'datetime') && is_string($value))
$value = unserialize($value); $value = unserialize($value);
$key = isset($tmpTab[1]) ? $tmpTab[0].'.`'.$tmpTab[1].'`' : '`'.$tmpTab[0].'`'; $key = isset($tmpTab[1]) ? $tmpTab[0].'.`'.$tmpTab[1].'`' : '`'.$tmpTab[0].'`';
if (array_key_exists('tmpTableFilter', $field)) if (array_key_exists('tmpTableFilter', $field))
@@ -498,7 +498,7 @@ class AdminControllerCore extends Controller
/* Only for date filtering (from, to) */ /* Only for date filtering (from, to) */
if (is_array($value)) if (is_array($value))
{ {
if (isset($value[0]) AND !empty($value[0])) if (isset($value[0]) && !empty($value[0]))
{ {
if (!Validate::isDate($value[0])) if (!Validate::isDate($value[0]))
$this->_errors[] = Tools::displayError('\'from:\' date format is invalid (YYYY-MM-DD)'); $this->_errors[] = Tools::displayError('\'from:\' date format is invalid (YYYY-MM-DD)');
@@ -506,7 +506,7 @@ class AdminControllerCore extends Controller
$sqlFilter .= ' AND `'.bqSQL($key).'` >= \''.pSQL(Tools::dateFrom($value[0])).'\''; $sqlFilter .= ' AND `'.bqSQL($key).'` >= \''.pSQL(Tools::dateFrom($value[0])).'\'';
} }
if (isset($value[1]) AND !empty($value[1])) if (isset($value[1]) && !empty($value[1]))
{ {
if (!Validate::isDate($value[1])) if (!Validate::isDate($value[1]))
$this->_errors[] = Tools::displayError('\'to:\' date format is invalid (YYYY-MM-DD)'); $this->_errors[] = Tools::displayError('\'to:\' date format is invalid (YYYY-MM-DD)');
@@ -517,14 +517,14 @@ class AdminControllerCore extends Controller
else else
{ {
$sqlFilter .= ' AND '; $sqlFilter .= ' AND ';
if ($type == 'int' OR $type == 'bool') if ($type == 'int' || $type == 'bool')
$sqlFilter .= (($key == $this->identifier OR $key == '`'.$this->identifier.'`' OR $key == '`active`') ? 'a.' : '').pSQL($key).' = '.(int)($value).' '; $sqlFilter .= (($key == $this->identifier || $key == '`'.$this->identifier.'`' || $key == '`active`') ? 'a.' : '').pSQL($key).' = '.(int)($value).' ';
else if ($type == 'decimal') else if ($type == 'decimal')
$sqlFilter .= (($key == $this->identifier OR $key == '`'.$this->identifier.'`') ? 'a.' : '').pSQL($key).' = '.(float)($value).' '; $sqlFilter .= (($key == $this->identifier || $key == '`'.$this->identifier.'`') ? 'a.' : '').pSQL($key).' = '.(float)($value).' ';
else if ($type == 'select') else if ($type == 'select')
$sqlFilter .= (($key == $this->identifier OR $key == '`'.$this->identifier.'`') ? 'a.' : '').pSQL($key).' = \''.pSQL($value).'\' '; $sqlFilter .= (($key == $this->identifier || $key == '`'.$this->identifier.'`') ? 'a.' : '').pSQL($key).' = \''.pSQL($value).'\' ';
else else
$sqlFilter .= (($key == $this->identifier OR $key == '`'.$this->identifier.'`') ? 'a.' : '').pSQL($key).' LIKE \'%'.pSQL($value).'%\' '; $sqlFilter .= (($key == $this->identifier || $key == '`'.$this->identifier.'`') ? 'a.' : '').pSQL($key).' LIKE \'%'.pSQL($value).'%\' ';
} }
} }
} }
@@ -545,7 +545,7 @@ class AdminControllerCore extends Controller
$useLangFromCookie = false; $useLangFromCookie = false;
$this->_languages = Language::getLanguages(false); $this->_languages = Language::getLanguages(false);
if ($allowEmployeeFormLang) if ($allowEmployeeFormLang)
foreach ($this->_languages AS $lang) foreach ($this->_languages as $lang)
if ($this->context->cookie->employee_form_lang == $lang['id_lang']) if ($this->context->cookie->employee_form_lang == $lang['id_lang'])
$useLangFromCookie = true; $useLangFromCookie = true;
if (!$useLangFromCookie) if (!$useLangFromCookie)
@@ -561,7 +561,7 @@ class AdminControllerCore extends Controller
$(document).ready(function() { $(document).ready(function() {
id_language = '.$this->_defaultFormLanguage.'; id_language = '.$this->_defaultFormLanguage.';
languages = new Array();'; languages = new Array();';
foreach ($this->_languages AS $k => $language) foreach ($this->_languages as $k => $language)
$content .= ' $content .= '
languages['.$k.'] = { languages['.$k.'] = {
id_lang: '.(int)$language['id_lang'].', id_lang: '.(int)$language['id_lang'].',
@@ -614,7 +614,7 @@ class AdminControllerCore extends Controller
// If this is an XSS attempt, then we should only display a simple, secure page // If this is an XSS attempt, then we should only display a simple, secure page
// ${1} in the replacement string of the regexp is required, because the token may begin with a number and mix up with it (e.g. $17) // ${1} in the replacement string of the regexp is required, because the token may begin with a number and mix up with it (e.g. $17)
$url = preg_replace('/([&?]token=)[^&]*(&.*)?$/', '${1}'.$this->token.'$2', $_SERVER['REQUEST_URI']); $url = preg_replace('/([&?]token=)[^&]*(&.*)?$/', '${1}'.$this->token.'$2', $_SERVER['REQUEST_URI']);
if (false === strpos($url, '?token=') AND false === strpos($url, '&token=')) if (false === strpos($url, '?token=') && false === strpos($url, '&token='))
$url .= '&token='.$this->token; $url .= '&token='.$this->token;
if (strpos($url, '?') === false) if (strpos($url, '?') === false)
$url = str_replace('&token', '?controller=AdminHome&token', $url); $url = str_replace('&token', '?controller=AdminHome&token', $url);
@@ -633,8 +633,8 @@ class AdminControllerCore extends Controller
protected function filterToField($key, $filter) protected function filterToField($key, $filter)
{ {
foreach ($this->fieldsDisplay AS $field) foreach ($this->fieldsDisplay as $field)
if (array_key_exists('filter_key', $field) AND $field['filter_key'] == $key) if (array_key_exists('filter_key', $field) && $field['filter_key'] == $key)
return $field; return $field;
if (array_key_exists($filter, $this->fieldsDisplay)) if (array_key_exists($filter, $this->fieldsDisplay))
return $this->fieldsDisplay[$filter]; return $this->fieldsDisplay[$filter];
@@ -651,7 +651,6 @@ class AdminControllerCore extends Controller
public function display() public function display()
{ {
$this->context->smarty->assign('content', $this->content); $this->context->smarty->assign('content', $this->content);
$this->context->smarty->assign('meta_title', $this->meta_title); $this->context->smarty->assign('meta_title', $this->meta_title);
if (empty($this->template)) if (empty($this->template))
@@ -660,9 +659,7 @@ class AdminControllerCore extends Controller
$class_name = strtolower($class_name[0]).substr($class_name, 1); $class_name = strtolower($class_name[0]).substr($class_name, 1);
$default_tpl = substr($class_name, 0, -10).'.tpl'; $default_tpl = substr($class_name, 0, -10).'.tpl';
if (file_exists($this->context->smarty->template_dir.'/'.$default_tpl)) if (file_exists($this->context->smarty->template_dir.'/'.$default_tpl))
{
$this->template = $default_tpladdress; $this->template = $default_tpladdress;
}
else else
$this->template = 'content.tpl'; $this->template = 'content.tpl';
} }
@@ -673,6 +670,10 @@ class AdminControllerCore extends Controller
echo $page; echo $page;
else else
{ {
if ($conf = Tools::getValue('conf'))
$this->context->smarty->assign('conf', $this->_conf[(int)($conf)]);
$this->context->smarty->assign('errors', $this->_errors);
$this->context->smarty->assign('warnings', $this->warnings); $this->context->smarty->assign('warnings', $this->warnings);
$page = $this->context->smarty->fetch($this->template); $page = $this->context->smarty->fetch($this->template);
} }
@@ -741,7 +742,7 @@ class AdminControllerCore extends Controller
// Quick access // Quick access
$quick_access = QuickAccess::getQuickAccesses($this->context->language->id); $quick_access = QuickAccess::getQuickAccesses($this->context->language->id);
foreach ($quick_access AS $index => $quick) foreach ($quick_access as $index => $quick)
{ {
preg_match('/tab=(.+)(&.+)?$/', $quick['link'], $adminTab); preg_match('/tab=(.+)(&.+)?$/', $quick['link'], $adminTab);
if (isset($adminTab[1])) if (isset($adminTab[1]))
@@ -754,7 +755,7 @@ class AdminControllerCore extends Controller
// Tab list // Tab list
$tabs = Tab::getTabs($this->context->language->id, 0); $tabs = Tab::getTabs($this->context->language->id, 0);
foreach ($tabs AS $index => $tab) foreach ($tabs as $index => $tab)
{ {
if (Tab::checkTabRights($tab['id_tab']) === true) if (Tab::checkTabRights($tab['id_tab']) === true)
{ {
@@ -770,7 +771,7 @@ class AdminControllerCore extends Controller
$tabs[$index]['href'] = $this->context->link->getAdminLink($tab['class_name']); $tabs[$index]['href'] = $this->context->link->getAdminLink($tab['class_name']);
$sub_tabs = Tab::getTabs($this->context->language->id, $tab['id_tab']); $sub_tabs = Tab::getTabs($this->context->language->id, $tab['id_tab']);
foreach ($sub_tabs AS $index2 => $sub_tab) foreach ($sub_tabs as $index2 => $sub_tab)
{ {
// class_name is the name of the class controller // class_name is the name of the class controller
if (Tab::checkTabRights($sub_tab) === true) if (Tab::checkTabRights($sub_tab) === true)
@@ -789,7 +790,7 @@ class AdminControllerCore extends Controller
$tabs_breadcrumb = Tab::recursiveTab($this->id, $tabs_breadcrumb); $tabs_breadcrumb = Tab::recursiveTab($this->id, $tabs_breadcrumb);
$tabs_breadcrumb = array_reverse($tabs_breadcrumb); $tabs_breadcrumb = array_reverse($tabs_breadcrumb);
foreach ($tabs_breadcrumb AS $key => $item) foreach ($tabs_breadcrumb as $key => $item)
for ($i = 0; $i < (count($tabs_breadcrumb) - 1); $i++) for ($i = 0; $i < (count($tabs_breadcrumb) - 1); $i++)
$tabs_breadcrumb[$key]['token'] = Tools::getAdminToken($item['class_name'].intval($item['id_tab']).(int)$this->context->employee->id); $tabs_breadcrumb[$key]['token'] = Tools::getAdminToken($item['class_name'].intval($item['id_tab']).(int)$this->context->employee->id);
@@ -849,15 +850,12 @@ class AdminControllerCore extends Controller
* Assign smarty variables for the page main content * Assign smarty variables for the page main content
*/ */
public function initContent() public function initContent()
{
if ($this->_errors)
$this->content = $this->displayErrors();
else
{ {
if ($this->display == 'edit') if ($this->display == 'edit')
{ {
$this->content .= $this->displayForm(); $this->content .= $this->displayForm();
if ($this->tabAccess['view']){ if ($this->tabAccess['view'])
{
if (Tools::getValue('back')) if (Tools::getValue('back'))
$this->context->smarty->assign('back', Tools::safeOutput(Tools::getValue('back'))); $this->context->smarty->assign('back', Tools::safeOutput(Tools::getValue('back')));
else else
@@ -889,7 +887,6 @@ class AdminControllerCore extends Controller
$this->content .= $helper->generateList($this->_list, $this->fieldsDisplay); $this->content .= $helper->generateList($this->_list, $this->fieldsDisplay);
} }
} }
}
/** /**
* Assign smarty variables for the footer * Assign smarty variables for the footer
@@ -926,12 +923,12 @@ class AdminControllerCore extends Controller
); );
} }
public static function translate($string, $class, $addslashes = FALSE, $htmlentities = TRUE) public static function translate($string, $class, $addslashes = false, $htmlentities = true)
{ {
$class = strtolower($class); $class = strtolower($class);
// if the class is extended by a module, use modules/[module_name]/xx.php lang file // if the class is extended by a module, use modules/[module_name]/xx.php lang file
//$currentClass = get_class($this); //$currentClass = get_class($this);
if(false AND Module::getModuleNameFromClass($class)) if (false && Module::getModuleNameFromClass($class))
{ {
$string = str_replace('\'', '\\\'', $string); $string = str_replace('\'', '\\\'', $string);
return Module::findTranslation(Module::$classInModule[$class], $string, $class); return Module::findTranslation(Module::$classInModule[$class], $string, $class);
@@ -960,7 +957,7 @@ class AdminControllerCore extends Controller
* @param boolean $htmlentities if set to true(default), the return value will pass through htmlentities($string, ENT_QUOTES, 'utf-8') * @param boolean $htmlentities if set to true(default), the return value will pass through htmlentities($string, ENT_QUOTES, 'utf-8')
* @return string the translation if available, or the english default text. * @return string the translation if available, or the english default text.
*/ */
protected function l($string, $class = 'AdminTab', $addslashes = FALSE, $htmlentities = TRUE) protected function l($string, $class = 'AdminTab', $addslashes = false, $htmlentities = true)
{ {
$class = get_class($this); $class = get_class($this);
return self::translate($string, $class, $addslashes, $htmlentities); return self::translate($string, $class, $addslashes, $htmlentities);
@@ -993,7 +990,7 @@ class AdminControllerCore extends Controller
/* Server Params */ /* Server Params */
$protocol_link = (Configuration::get('PS_SSL_ENABLED')) ? 'https://' : 'http://'; $protocol_link = (Configuration::get('PS_SSL_ENABLED')) ? 'https://' : 'http://';
$protocol_content = (isset($useSSL) AND $useSSL AND Configuration::get('PS_SSL_ENABLED')) ? 'https://' : 'http://'; $protocol_content = (isset($useSSL) && $useSSL && Configuration::get('PS_SSL_ENABLED')) ? 'https://' : 'http://';
$link = new Link($protocol_link, $protocol_content); $link = new Link($protocol_link, $protocol_content);
$this->context->link = $link; $this->context->link = $link;
//define('_PS_BASE_URL_', Tools::getShopDomain(true)); //define('_PS_BASE_URL_', Tools::getShopDomain(true));
@@ -1020,29 +1017,29 @@ class AdminControllerCore extends Controller
$this->context->shop = new Shop($shopID); $this->context->shop = new Shop($shopID);
/* Filter memorization */ /* Filter memorization */
if (isset($_POST) AND !empty($_POST) AND isset($this->table)) if (isset($_POST) && !empty($_POST) && isset($this->table))
foreach ($_POST AS $key => $value) foreach ($_POST as $key => $value)
if (is_array($this->table)) if (is_array($this->table))
{ {
foreach ($this->table AS $table) foreach ($this->table as $table)
if (strncmp($key, $table.'Filter_', 7) === 0 OR strncmp($key, 'submitFilter', 12) === 0) if (strncmp($key, $table.'Filter_', 7) === 0 || strncmp($key, 'submitFilter', 12) === 0)
$this->context->cookie->$key = !is_array($value) ? $value : serialize($value); $this->context->cookie->$key = !is_array($value) ? $value : serialize($value);
} }
elseif (strncmp($key, $this->table.'Filter_', 7) === 0 OR strncmp($key, 'submitFilter', 12) === 0) else if (strncmp($key, $this->table.'Filter_', 7) === 0 || strncmp($key, 'submitFilter', 12) === 0)
$this->context->cookie->$key = !is_array($value) ? $value : serialize($value); $this->context->cookie->$key = !is_array($value) ? $value : serialize($value);
if (isset($_GET) AND !empty($_GET) AND isset($this->table)) if (isset($_GET) && !empty($_GET) && isset($this->table))
foreach ($_GET AS $key => $value) foreach ($_GET as $key => $value)
if (is_array($this->table)) if (is_array($this->table))
{ {
foreach ($this->table AS $table) foreach ($this->table as $table)
if (strncmp($key, $table.'OrderBy', 7) === 0 OR strncmp($key, $table.'Orderway', 8) === 0) if (strncmp($key, $table.'OrderBy', 7) === 0 || strncmp($key, $table.'Orderway', 8) === 0)
$this->context->cookie->$key = $value; $this->context->cookie->$key = $value;
} }
elseif (strncmp($key, $this->table.'OrderBy', 7) === 0 OR strncmp($key, $this->table.'Orderway', 12) === 0) else if (strncmp($key, $this->table.'OrderBy', 7) === 0 || strncmp($key, $this->table.'Orderway', 12) === 0)
$this->context->cookie->$key = $value; $this->context->cookie->$key = $value;
/* Manage list filtering */ /* Manage list filtering */
if (Tools::isSubmit('submitFilter'.$this->table) OR $this->context->cookie->{'submitFilter'.$this->table} !== false) if (Tools::isSubmit('submitFilter'.$this->table) || $this->context->cookie->{'submitFilter'.$this->table} !== false)
$this->filter = true; $this->filter = true;
/* Delete object image */ /* Delete object image */
@@ -1063,7 +1060,7 @@ class AdminControllerCore extends Controller
$this->_errors[] = Tools::displayError('You do not have permission to delete here.'); $this->_errors[] = Tools::displayError('You do not have permission to delete here.');
} }
/* Change object statuts (active, inactive) */ /* Change object statuts (active, inactive) */
elseif ((isset($_GET['status'.$this->table]) OR isset($_GET['status'])) AND Tools::getValue($this->identifier)) else if ((isset($_GET['status'.$this->table]) || isset($_GET['status'])) && Tools::getValue($this->identifier))
{ {
if ($this->tabAccess['edit'] === '1') if ($this->tabAccess['edit'] === '1')
$this->action = 'status'; $this->action = 'status';
@@ -1115,7 +1112,7 @@ class AdminControllerCore extends Controller
else if (Tools::isSubmit('submitFields') && $this->requiredDatabase && $this->tabAccess['add'] === '1' && $this->tabAccess['delete'] === '1') else if (Tools::isSubmit('submitFields') && $this->requiredDatabase && $this->tabAccess['add'] === '1' && $this->tabAccess['delete'] === '1')
$this->action = 'update_fields'; $this->action = 'update_fields';
else if (is_array($this->bulk_actions)) else if (is_array($this->bulk_actions))
foreach ($this->bulk_actions AS $bulk_action => $params) foreach ($this->bulk_actions as $bulk_action => $params)
{ {
if (Tools::isSubmit('submitBulk'.$bulk_action.$this->table)) if (Tools::isSubmit('submitBulk'.$bulk_action.$this->table))
{ {
@@ -1131,30 +1128,6 @@ class AdminControllerCore extends Controller
*/ */
public function displayErrors() public function displayErrors()
{ {
if ($nbErrors = count($this->_errors) AND $this->_includeContainer)
{
$content = '<script type="text/javascript">
$(document).ready(function() {
$(\'#hideError\').unbind(\'click\').click(function(){
$(\'.error\').hide(\'slow\', function (){
$(\'.error\').remove();
});
return false;
});
});
</script>
<div class="error"><span style="float:right"><a id="hideError" href=""><img alt="X" src="../img/admin/close.png" /></a></span><img src="../img/admin/error2.png" />';
if (count($this->_errors) == 1)
$content .= $this->_errors[0];
else
{
$content .= $nbErrors.' '.$this->l('errors').'<br /><ol>';
foreach ($this->_errors AS $error)
$content .= '<li>'.$error.'</li>';
$content .= '</ol>';
}
$content .= '</div>';
}
// @TODO includesubtab // @TODO includesubtab
$this->includeSubTab('displayErrors'); $this->includeSubTab('displayErrors');
return $content; return $content;
@@ -1169,7 +1142,7 @@ class AdminControllerCore extends Controller
* @param integer $start Offset in LIMIT clause * @param integer $start Offset in LIMIT clause
* @param integer $limit Row count in LIMIT clause * @param integer $limit Row count in LIMIT clause
*/ */
public function getList($id_lang, $orderBy = NULL, $orderWay = NULL, $start = 0, $limit = NULL, $id_lang_shop = false) public function getList($id_lang, $orderBy = null, $orderWay = null, $start = 0, $limit = null, $id_lang_shop = false)
{ {
/* Manage default params values */ /* Manage default params values */
if (empty($limit)) if (empty($limit))
@@ -1188,16 +1161,16 @@ class AdminControllerCore extends Controller
/* Check params validity */ /* Check params validity */
if (!Validate::isOrderBy($orderBy) OR !Validate::isOrderWay($orderWay) if (!Validate::isOrderBy($orderBy) || !Validate::isOrderWay($orderWay)
OR !is_numeric($start) OR !is_numeric($limit) || !is_numeric($start) || !is_numeric($limit)
OR !Validate::isUnsignedId($id_lang)) || !Validate::isUnsignedId($id_lang))
die(Tools::displayError('get list params is not valid')); die(Tools::displayError('get list params is not valid'));
/* Determine offset from current page */ /* Determine offset from current page */
if ((isset($_POST['submitFilter'.$this->table]) OR if ((isset($_POST['submitFilter'.$this->table]) ||
isset($_POST['submitFilter'.$this->table.'_x']) OR isset($_POST['submitFilter'.$this->table.'_x']) ||
isset($_POST['submitFilter'.$this->table.'_y'])) AND isset($_POST['submitFilter'.$this->table.'_y'])) &&
!empty($_POST['submitFilter'.$this->table]) AND !empty($_POST['submitFilter'.$this->table]) &&
is_numeric($_POST['submitFilter'.$this->table])) is_numeric($_POST['submitFilter'.$this->table]))
$start = (int)($_POST['submitFilter'.$this->table] - 1) * $limit; $start = (int)($_POST['submitFilter'.$this->table] - 1) * $limit;
@@ -1227,7 +1200,7 @@ class AdminControllerCore extends Controller
else if (Context::shop() == Shop::CONTEXT_GROUP) else if (Context::shop() == Shop::CONTEXT_GROUP)
{ {
$assos = GroupShop::getAssoTables(); $assos = GroupShop::getAssoTables();
if (isset($assos[$this->table]) AND $assos[$this->table]['type'] == 'group_shop') if (isset($assos[$this->table]) && $assos[$this->table]['type'] == 'group_shop')
{ {
$filterKey = $assos[$this->table]['type']; $filterKey = $assos[$this->table]['type'];
$idenfierShop = array($this->context->shop->getGroupID()); $idenfierShop = array($this->context->shop->getGroupID());
@@ -1276,10 +1249,10 @@ class AdminControllerCore extends Controller
* @param integer $id_lang Language id (optional) * @param integer $id_lang Language id (optional)
* @return string * @return string
*/ */
protected function getFieldValue($obj, $key, $id_lang = NULL) protected function getFieldValue($obj, $key, $id_lang = null)
{ {
if ($id_lang) if ($id_lang)
$defaultValue = ($obj->id AND isset($obj->{$key}[$id_lang])) ? $obj->{$key}[$id_lang] : ''; $defaultValue = ($obj->id && isset($obj->{$key}[$id_lang])) ? $obj->{$key}[$id_lang] : '';
else else
$defaultValue = isset($obj->{$key}) ? $obj->{$key} : ''; $defaultValue = isset($obj->{$key}) ? $obj->{$key} : '';
@@ -1299,59 +1272,59 @@ class AdminControllerCore extends Controller
/* Class specific validation rules */ /* Class specific validation rules */
$rules = call_user_func(array($className, 'getValidationRules'), $className); $rules = call_user_func(array($className, 'getValidationRules'), $className);
if ((sizeof($rules['requiredLang']) OR sizeof($rules['sizeLang']) OR sizeof($rules['validateLang']))) if ((count($rules['requiredLang']) || count($rules['sizeLang']) || count($rules['validateLang'])))
{ {
/* Language() instance determined by default language */ /* Language() instance determined by default language */
$defaultLanguage = new Language((int)(Configuration::get('PS_LANG_DEFAULT'))); $default_language = new Language((int)(Configuration::get('PS_LANG_DEFAULT')));
/* All availables languages */ /* All availables languages */
$languages = Language::getLanguages(false); $languages = Language::getLanguages(false);
} }
/* Checking for required fields */ /* Checking for required fields */
foreach ($rules['required'] AS $field) foreach ($rules['required'] as $field)
if (($value = Tools::getValue($field)) == false AND (string)$value != '0') if (($value = Tools::getValue($field)) == false && (string)$value != '0')
if (!Tools::getValue($this->identifier) OR ($field != 'passwd' AND $field != 'no-picture')) if (!Tools::getValue($this->identifier) || ($field != 'passwd' && $field != 'no-picture'))
$this->_errors[] = $this->l('the field').' <b>'.call_user_func(array($className, 'displayFieldName'), $field, $className).'</b> '.$this->l('is required'); $this->_errors[] = $this->l('the field').' <b>'.call_user_func(array($className, 'displayFieldName'), $field, $className).'</b> '.$this->l('is required');
/* Checking for multilingual required fields */ /* Checking for multilingual required fields */
foreach ($rules['requiredLang'] AS $fieldLang) foreach ($rules['requiredLang'] as $fieldLang)
if (($empty = Tools::getValue($fieldLang.'_'.$defaultLanguage->id)) === false OR $empty !== '0' AND empty($empty)) if (($empty = Tools::getValue($fieldLang.'_'.$default_language->id)) === false || $empty !== '0' && empty($empty))
$this->_errors[] = $this->l('the field').' <b>'.call_user_func(array($className, 'displayFieldName'), $fieldLang, $className).'</b> '.$this->l('is required at least in').' '.$defaultLanguage->name; $this->_errors[] = $this->l('the field').' <b>'.call_user_func(array($className, 'displayFieldName'), $fieldLang, $className).'</b> '.$this->l('is required at least in').' '.$default_language->name;
/* Checking for maximum fields sizes */ /* Checking for maximum fields sizes */
foreach ($rules['size'] AS $field => $maxLength) foreach ($rules['size'] as $field => $maxLength)
if (Tools::getValue($field) !== false AND Tools::strlen(Tools::getValue($field)) > $maxLength) if (Tools::getValue($field) !== false && Tools::strlen(Tools::getValue($field)) > $maxLength)
$this->_errors[] = $this->l('the field').' <b>'.call_user_func(array($className, 'displayFieldName'), $field, $className).'</b> '.$this->l('is too long').' ('.$maxLength.' '.$this->l('chars max').')'; $this->_errors[] = $this->l('the field').' <b>'.call_user_func(array($className, 'displayFieldName'), $field, $className).'</b> '.$this->l('is too long').' ('.$maxLength.' '.$this->l('chars max').')';
/* Checking for maximum multilingual fields size */ /* Checking for maximum multilingual fields size */
foreach ($rules['sizeLang'] AS $fieldLang => $maxLength) foreach ($rules['sizeLang'] as $fieldLang => $maxLength)
foreach ($languages AS $language) foreach ($languages as $language)
if (Tools::getValue($fieldLang.'_'.$language['id_lang']) !== false AND Tools::strlen(Tools::getValue($fieldLang.'_'.$language['id_lang'])) > $maxLength) if (Tools::getValue($fieldLang.'_'.$language['id_lang']) !== false && Tools::strlen(Tools::getValue($fieldLang.'_'.$language['id_lang'])) > $maxLength)
$this->_errors[] = $this->l('the field').' <b>'.call_user_func(array($className, 'displayFieldName'), $fieldLang, $className).' ('.$language['name'].')</b> '.$this->l('is too long').' ('.$maxLength.' '.$this->l('chars max, html chars including').')'; $this->_errors[] = $this->l('the field').' <b>'.call_user_func(array($className, 'displayFieldName'), $fieldLang, $className).' ('.$language['name'].')</b> '.$this->l('is too long').' ('.$maxLength.' '.$this->l('chars max, html chars including').')';
/* Overload this method for custom checking */ /* Overload this method for custom checking */
$this->_childValidation(); $this->_childValidation();
/* Checking for fields validity */ /* Checking for fields validity */
foreach ($rules['validate'] AS $field => $function) foreach ($rules['validate'] as $field => $function)
if (($value = Tools::getValue($field)) !== false AND ($field != 'passwd')) if (($value = Tools::getValue($field)) !== false && ($field != 'passwd'))
if (!Validate::$function($value)) if (!Validate::$function($value))
$this->_errors[] = $this->l('the field').' <b>'.call_user_func(array($className, 'displayFieldName'), $field, $className).'</b> '.$this->l('is invalid'); $this->_errors[] = $this->l('the field').' <b>'.call_user_func(array($className, 'displayFieldName'), $field, $className).'</b> '.$this->l('is invalid');
/* Checking for passwd_old validity */ /* Checking for passwd_old validity */
if (($value = Tools::getValue('passwd')) != false) if (($value = Tools::getValue('passwd')) != false)
{ {
if ($className == 'Employee' AND !Validate::isPasswdAdmin($value)) if ($className == 'Employee' && !Validate::isPasswdAdmin($value))
$this->_errors[] = $this->l('the field').' <b>'.call_user_func(array($className, 'displayFieldName'), 'passwd', $className).'</b> '.$this->l('is invalid'); $this->_errors[] = $this->l('the field').' <b>'.call_user_func(array($className, 'displayFieldName'), 'passwd', $className).'</b> '.$this->l('is invalid');
elseif ($className == 'Customer' AND !Validate::isPasswd($value)) else if ($className == 'Customer' && !Validate::isPasswd($value))
$this->_errors[] = $this->l('the field').' <b>'.call_user_func(array($className, 'displayFieldName'), 'passwd', $className).'</b> '.$this->l('is invalid'); $this->_errors[] = $this->l('the field').' <b>'.call_user_func(array($className, 'displayFieldName'), 'passwd', $className).'</b> '.$this->l('is invalid');
} }
/* Checking for multilingual fields validity */ /* Checking for multilingual fields validity */
foreach ($rules['validateLang'] AS $fieldLang => $function) foreach ($rules['validateLang'] as $fieldLang => $function)
foreach ($languages AS $language) foreach ($languages as $language)
if (($value = Tools::getValue($fieldLang.'_'.$language['id_lang'])) !== false AND !empty($value)) if (($value = Tools::getValue($fieldLang.'_'.$language['id_lang'])) !== false && !empty($value))
if (!Validate::$function($value)) if (!Validate::$function($value))
$this->_errors[] = $this->l('the field').' <b>'.call_user_func(array($className, 'displayFieldName'), $fieldLang, $className).' ('.$language['name'].')</b> '.$this->l('is invalid'); $this->_errors[] = $this->l('the field').' <b>'.call_user_func(array($className, 'displayFieldName'), $fieldLang, $className).' ('.$language['name'].')</b> '.$this->l('is invalid');
} }
@@ -1372,7 +1345,10 @@ class AdminControllerCore extends Controller
* @param object $object Object * @param object $object Object
* @return boolean * @return boolean
*/ */
protected function beforeDelete($object) { return true; } protected function beforeDelete($object)
{
return true;
}
/** /**
* Called before deletion * Called before deletion
@@ -1380,11 +1356,20 @@ class AdminControllerCore extends Controller
* @param object $object Object * @param object $object Object
* @return boolean * @return boolean
*/ */
protected function afterDelete($object, $oldId) { return true; } protected function afterDelete($object, $oldId)
{
return true;
}
protected function afterAdd($object) { return true; } protected function afterAdd($object)
{
return true;
}
protected function afterUpdate($object) { return true; } protected function afterUpdate($object)
{
return true;
}
/** /**
* Check rights to view the current tab * Check rights to view the current tab
@@ -1392,7 +1377,8 @@ class AdminControllerCore extends Controller
* @return boolean * @return boolean
*/ */
protected function afterImageUpload() { protected function afterImageUpload()
{
return true; return true;
} }
@@ -1405,27 +1391,27 @@ class AdminControllerCore extends Controller
protected function copyFromPost(&$object, $table) protected function copyFromPost(&$object, $table)
{ {
/* Classical fields */ /* Classical fields */
foreach ($_POST AS $key => $value) foreach ($_POST as $key => $value)
if (key_exists($key, $object) AND $key != 'id_'.$table) if (key_exists($key, $object) && $key != 'id_'.$table)
{ {
/* Do not take care of password field if empty */ /* Do not take care of password field if empty */
if ($key == 'passwd' AND Tools::getValue('id_'.$table) AND empty($value)) if ($key == 'passwd' && Tools::getValue('id_'.$table) && empty($value))
continue; continue;
/* Automatically encrypt password in MD5 */ /* Automatically encrypt password in MD5 */
if ($key == 'passwd' AND !empty($value)) if ($key == 'passwd' && !empty($value))
$value = Tools::encrypt($value); $value = Tools::encrypt($value);
$object->{$key} = $value; $object->{$key} = $value;
} }
/* Multilingual fields */ /* Multilingual fields */
$rules = call_user_func(array(get_class($object), 'getValidationRules'), get_class($object)); $rules = call_user_func(array(get_class($object), 'getValidationRules'), get_class($object));
if (sizeof($rules['validateLang'])) if (count($rules['validateLang']))
{ {
$languages = Language::getLanguages(false); $languages = Language::getLanguages(false);
foreach ($languages AS $language) foreach ($languages as $language)
foreach (array_keys($rules['validateLang']) AS $field) foreach (array_keys($rules['validateLang']) as $field)
if (isset($_POST[$field.'_'.(int)($language['id_lang'])])) if (isset($_POST[$field.'_'.(int)$language['id_lang']]))
$object->{$field}[(int)($language['id_lang'])] = $_POST[$field.'_'.(int)($language['id_lang'])]; $object->{$field}[(int)$language['id_lang']] = $_POST[$field.'_'.(int)($language['id_lang'])];
} }
} }
@@ -1434,17 +1420,17 @@ class AdminControllerCore extends Controller
if (!Shop::isMultiShopActivated()) if (!Shop::isMultiShopActivated())
return; return;
$shopAsso = Shop::getAssoTables(); $shop_asso = Shop::getAssoTables();
$groupShopAsso = GroupShop::getAssoTables(); $group_shop_asso = GroupShop::getAssoTables();
if (isset($shopAsso[$this->table]) && $shopAsso[$this->table]['type'] == 'shop') if (isset($shop_asso[$this->table]) && $shop_asso[$this->table]['type'] == 'shop')
$type = 'shop'; $type = 'shop';
else if (isset($groupShopAsso[$this->table]) && $groupShopAsso[$this->table]['type'] == 'group_shop') else if (isset($group_shop_asso[$this->table]) && $group_shop_asso[$this->table]['type'] == 'group_shop')
$type = 'group_shop'; $type = 'group_shop';
else else
return; return;
$assos = array(); $assos = array();
foreach ($_POST AS $k => $row) foreach ($_POST as $k => $row)
{ {
if (!preg_match('/^checkBox'.Tools::toCamelCase($type, true).'Asso_'.$this->table.'_([0-9]+)?_([0-9]+)$/Ui', $k, $res)) if (!preg_match('/^checkBox'.Tools::toCamelCase($type, true).'Asso_'.$this->table.'_([0-9]+)?_([0-9]+)$/Ui', $k, $res))
continue; continue;
@@ -1453,7 +1439,7 @@ class AdminControllerCore extends Controller
} }
Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.$this->table.'_'.$type.($id_object ? ' WHERE `'.$this->identifier.'`='.(int)$id_object : '')); Db::getInstance()->Execute('DELETE FROM '._DB_PREFIX_.$this->table.'_'.$type.($id_object ? ' WHERE `'.$this->identifier.'`='.(int)$id_object : ''));
foreach ($assos AS $asso) foreach ($assos as $asso)
Db::getInstance()->Execute('INSERT INTO '._DB_PREFIX_.$this->table.'_'.$type.' (`'.pSQL($this->identifier).'`, id_'.$type.') Db::getInstance()->Execute('INSERT INTO '._DB_PREFIX_.$this->table.'_'.$type.' (`'.pSQL($this->identifier).'`, id_'.$type.')
VALUES('.(int)$asso['id_object'].', '.(int)$asso['id_'.$type].')'); VALUES('.(int)$asso['id_object'].', '.(int)$asso['id_'.$type].')');
} }
@@ -1466,13 +1452,13 @@ class AdminControllerCore extends Controller
*/ */
protected function postImage($id) protected function postImage($id)
{ {
if (isset($this->fieldImageSettings['name']) AND isset($this->fieldImageSettings['dir'])) if (isset($this->fieldImageSettings['name']) && isset($this->fieldImageSettings['dir']))
return $this->uploadImage($id, $this->fieldImageSettings['name'], $this->fieldImageSettings['dir'].'/'); return $this->uploadImage($id, $this->fieldImageSettings['name'], $this->fieldImageSettings['dir'].'/');
else if (!empty($this->fieldImageSettings)) else if (!empty($this->fieldImageSettings))
foreach ($this->fieldImageSettings AS $image) foreach ($this->fieldImageSettings as $image)
if (isset($image['name']) AND isset($image['dir'])) if (isset($image['name']) && isset($image['dir']))
$this->uploadImage($id, $image['name'], $image['dir'].'/'); $this->uploadImage($id, $image['name'], $image['dir'].'/');
return !sizeof($this->_errors) ? true : false; return !count($this->_errors) ? true : false;
} }
protected function bulkDelete($boxes) protected function bulkDelete($boxes)
@@ -1480,9 +1466,9 @@ class AdminControllerCore extends Controller
if (is_array($boxes) && !empty($boxes)) if (is_array($boxes) && !empty($boxes))
{ {
$object = new $this->className(); $object = new $this->className();
if (isset($object->noZeroObject) AND if (isset($object->noZeroObject) &&
// Check if all object will be deleted // Check if all object will be deleted
(sizeof(call_user_func(array($this->className, $object->noZeroObject))) <= 1 OR sizeof($boxes) == sizeof(call_user_func(array($this->className, $object->noZeroObject))))) (count(call_user_func(array($this->className, $object->noZeroObject))) <= 1 || count($boxes) == count(call_user_func(array($this->className, $object->noZeroObject)))))
$this->_errors[] = Tools::displayError('You need at least one object.').' <b>'.$this->table.'</b><br />'.Tools::displayError('You cannot delete all of the items.'); $this->_errors[] = Tools::displayError('You need at least one object.').' <b>'.$this->table.'</b><br />'.Tools::displayError('You cannot delete all of the items.');
else else
{ {
@@ -1491,9 +1477,9 @@ class AdminControllerCore extends Controller
{ {
foreach ($boxes as $id) foreach ($boxes as $id)
{ {
$toDelete = new $this->className($id); $to_delete = new $this->className($id);
$toDelete->deleted = 1; $to_delete->deleted = 1;
$result = $result AND $toDelete->update(); $result = $result && $to_delete->update();
} }
} }
else else