diff --git a/admin-dev/tabs/AdminTags.php b/admin-dev/tabs/AdminTags.php deleted file mode 100644 index 8c61ddb4a..000000000 --- a/admin-dev/tabs/AdminTags.php +++ /dev/null @@ -1,136 +0,0 @@ - -* @copyright 2007-2011 PrestaShop SA -* @version Release: $Revision: 6844 $ -* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) -* International Registered Trademark & Property of PrestaShop SA -*/ - -class AdminTags extends AdminTab -{ - public function __construct() - { - $this->table = 'tag'; - $this->className = 'Tag'; - $this->edit = true; - $this->delete = true; - - $this->fieldsDisplay = array( - 'id_tag' => array('title' => $this->l('ID'), 'align' => 'center', 'width' => 25, 'filter_key' => 'a!id_seller_message'), - 'lang' => array('title' => $this->l('Language'), 'filter_key' => 'l!name'), - 'name' => array('title' => $this->l('Name'), 'width' => 200, 'filter_key' => 'a!name'), - 'products' => array('title' => $this->l('Products'), 'align' => 'right', 'havingFilter' => true)); - - $this->_select = 'l.name as lang, COUNT(pt.id_product) as products'; - $this->_join = ' - LEFT JOIN `'._DB_PREFIX_.'product_tag` pt ON (a.`id_tag` = pt.`id_tag`) - LEFT JOIN `'._DB_PREFIX_.'lang` l ON (l.`id_lang` = a.`id_lang`)'; - $this->_group = 'GROUP BY a.name, a.id_lang'; - - parent::__construct(); - } - - public function postProcess() - { - if ($this->tabAccess['edit'] === '1' AND Tools::getValue('submitAdd'.$this->table)) - if ($id = (int)(Tools::getValue($this->identifier)) AND $obj = new $this->className($id) AND Validate::isLoadedObject($obj)) - $obj->setProducts($_POST['products']); - return parent::postProcess(); - } - - public function displayForm($isMainTab = true) - { - parent::displayForm(); - - if (!($obj = $this->loadObject(true))) - return; - $products1 = $obj->getProducts(true); - $products2 = $obj->getProducts(false); - - echo ' -
- '.($obj->id ? '' : '').' -
'.$this->l('Tag').' - -
- * -
- -
- * -
-

'.$this->l('Products').'

- - - - - -
-

- - '.$this->l('Remove').' >> - -
-

- - << '.$this->l('Add').' - - -
-
 
-
- -
-
* '.$this->l('Required field').'
-
-
- '; - } -} - - diff --git a/admin-dev/themes/default/admin.css b/admin-dev/themes/default/admin.css index 107079c7f..b434063a8 100644 --- a/admin-dev/themes/default/admin.css +++ b/admin-dev/themes/default/admin.css @@ -19,6 +19,8 @@ input[type="text"],input[type="password"],input[type="file"],textarea {border:1p select { border:1px solid #ccc;} select[disabled="disabled"], input[disabled="disabled"],textarea[disabled="disabled"] {border: 1px solid #CCCCCC;color: #AAAAAA} .header_module{background:url(header_module.png);padding-left: 0.5em;padding-top: 0.8em;height:20px;color: #812143;border:solid 1px #CCC;} +.double_select select{width:300px;height:160px;} +.double_select a{text-align:center;display:block;border:1px solid #aaa;text-decoration:none;background-color:#fafafa;color:#123456;margin:2px;padding:2px} /*BUTTON*/ .button{background: -moz-linear-gradient(center top , #F9F9F9, #E3E3E3) repeat scroll 0 0 transparent; diff --git a/admin-dev/themes/template/tags/form.tpl b/admin-dev/themes/template/tags/form.tpl new file mode 100644 index 000000000..98ef449b4 --- /dev/null +++ b/admin-dev/themes/template/tags/form.tpl @@ -0,0 +1,87 @@ +{* +* 2007-2011 PrestaShop +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to license@prestashop.com so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade PrestaShop to newer +* versions in the future. If you wish to customize PrestaShop for your +* needs please refer to http://www.prestashop.com for more information. +* +* @author PrestaShop SA +* @copyright 2007-2011 PrestaShop SA +* @version Release: $Revision$ +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*} +{extends file="helper/form/form.tpl"} + +{block name="other_input"} + {if $key eq 'selects'} +
+

{l s='Products'}

+ + + + + +
+ + {l s='double click to move to other column'}  +

+ + {l s='Remove'} >> + +
+ + {l s='double click to move to other column'}  +

+ + << {l s='Add'} + + +
+
+
 
+ + + {/if} +{/block} diff --git a/controllers/admin/AdminTagsController.php b/controllers/admin/AdminTagsController.php new file mode 100644 index 000000000..9b0164be7 --- /dev/null +++ b/controllers/admin/AdminTagsController.php @@ -0,0 +1,106 @@ + +* @copyright 2007-2011 PrestaShop SA +* @version Release: $Revision: 6844 $ +* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ + +class AdminTagsControllerCore extends AdminController +{ + public function __construct() + { + $this->table = 'tag'; + $this->className = 'Tag'; + $this->addRowAction('edit'); + $this->addRowAction('delete'); + $this->bulk_actions = array( + 'delete' => array('text' => $this->l('Delete selected'), + 'confirm' => $this->l('Delete selected items?')) + ); + + $this->fieldsDisplay = array( + 'id_tag' => array('title' => $this->l('ID'), 'align' => 'center', 'width' => 25, 'filter_key' => 'a!id_seller_message'), + 'lang' => array('title' => $this->l('Language'), 'filter_key' => 'l!name'), + 'name' => array('title' => $this->l('Name'), 'width' => 200, 'filter_key' => 'a!name'), + 'products' => array('title' => $this->l('Products'), 'align' => 'right', 'havingFilter' => true)); + + $this->_select = 'l.name as lang, COUNT(pt.id_product) as products'; + $this->_join = ' + LEFT JOIN `'._DB_PREFIX_.'product_tag` pt ON (a.`id_tag` = pt.`id_tag`) + LEFT JOIN `'._DB_PREFIX_.'lang` l ON (l.`id_lang` = a.`id_lang`)'; + $this->_group = 'GROUP BY a.name, a.id_lang'; + + parent::__construct(); + } + + public function postProcess() + { + if ($this->tabAccess['edit'] === '1' AND Tools::getValue('submitAdd'.$this->table)) + if ($id = (int)(Tools::getValue($this->identifier)) AND $obj = new $this->className($id) AND Validate::isLoadedObject($obj)) + $obj->setProducts($_POST['products']); + return parent::postProcess(); + } + + public function initForm() + { + if (!($obj = $this->loadObject(true))) + return; + + $this->fields_form = array( + 'legend' => array( + 'title' => $this->l('Tag') + ), + 'input' => array( + array( + 'type' => 'text', + 'label' => $this->l('Name:'), + 'name' => 'name', + 'required' => true + ), + array( + 'type' => 'select', + 'label' => $this->l('Language:'), + 'name' => 'id_lang', + 'required' => true, + 'options' => array( + 'query' => Language::getLanguages(false), + 'id' => 'id_lang', + 'name' => 'name' + ) + ), + ), + 'selects' => array( + 'products' => $obj->getProducts(true), + 'products_unselected' => $obj->getProducts(false) + ), + 'submit' => array( + 'title' => $this->l(' Save '), + 'class' => 'button' + ) + ); + + return parent::initForm(); + } +} + +