[*] BO #PSFV-94 : Added AdminManufacturerController
This commit is contained in:
@@ -1,309 +0,0 @@
|
||||
<?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: 7300 $
|
||||
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*/
|
||||
|
||||
class AdminManufacturers extends AdminTab
|
||||
{
|
||||
/** @var array countries list */
|
||||
private $countriesArray = array();
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
|
||||
$this->table = 'manufacturer';
|
||||
$this->className = 'Manufacturer';
|
||||
$this->lang = false;
|
||||
$this->edit = true;
|
||||
$this->delete = true;
|
||||
$this->context = Context::getContext();
|
||||
|
||||
// Sub tab addresses
|
||||
$countries = Country::getCountries($this->context->language->id);
|
||||
foreach ($countries AS $country)
|
||||
$this->countriesArray[$country['id_country']] = $country['name'];
|
||||
|
||||
$this->fieldsDisplayAddresses = array(
|
||||
'id_address' => array('title' => $this->l('ID'), 'align' => 'center', 'width' => 25),
|
||||
'm!manufacturer_name' => array('title' => $this->l('Manufacturer'), 'width' => 100),
|
||||
'firstname' => array('title' => $this->l('First name'), 'width' => 80),
|
||||
'lastname' => array('title' => $this->l('Last name'), 'width' => 100, 'filter_key' => 'a!name'),
|
||||
'postcode' => array('title' => $this->l('Postcode/ Zip Code'), 'align' => 'right', 'width' => 50),
|
||||
'city' => array('title' => $this->l('City'), 'width' => 150),
|
||||
'country' => array('title' => $this->l('Country'), 'width' => 100, 'type' => 'select', 'select' => $this->countriesArray, 'filter_key' => 'cl!id_country'));
|
||||
$this->_includeTabTitle = array($this->l('Manufacturers addresses'));
|
||||
$this->_joinAddresses = 'LEFT JOIN `'._DB_PREFIX_.'country_lang` cl ON
|
||||
(cl.`id_country` = a.`id_country` AND cl.`id_lang` = '.(int)$this->context->language->id.') ';
|
||||
$this->_joinAddresses .= 'LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON (a.`id_manufacturer` = m.`id_manufacturer`)';
|
||||
$this->_selectAddresses = 'cl.`name` as country, m.`name` AS manufacturer_name';
|
||||
$this->_includeTab = array('Addresses' => array('addressType' => 'manufacturer', 'fieldsDisplay' => $this->fieldsDisplayAddresses, '_join' => $this->_joinAddresses, '_select' => $this->_selectAddresses));
|
||||
$this->view = true;
|
||||
$this->_select = 'COUNT(`id_product`) AS `products`, (SELECT COUNT(ad.`id_manufacturer`) as `addresses` FROM `'._DB_PREFIX_.'address` ad WHERE ad.`id_manufacturer` = a.`id_manufacturer` AND ad.`deleted` = 0 GROUP BY ad.`id_manufacturer`) as `addresses`';
|
||||
$this->_join = 'LEFT JOIN `'._DB_PREFIX_.'product` p ON (a.`id_manufacturer` = p.`id_manufacturer`)';
|
||||
$this->_joinCount = false;
|
||||
|
||||
$this->fieldImageSettings = array('name' => 'logo', 'dir' => 'm');
|
||||
|
||||
$this->fieldsDisplay = array(
|
||||
'id_manufacturer' => array('title' => $this->l('ID'), 'align' => 'center', 'width' => 25),
|
||||
'name' => array('title' => $this->l('Name'), 'width' => 200),
|
||||
'logo' => array('title' => $this->l('Logo'), 'align' => 'center', 'image' => 'm', 'orderby' => false, 'search' => false),
|
||||
'addresses' => array('title' => $this->l('Addresses'), 'align' => 'right', 'tmpTableFilter' => true, 'width' => 20),
|
||||
'products' => array('title' => $this->l('Products'), 'align' => 'right', 'tmpTableFilter' => true, 'width' => 20),
|
||||
'active' => array('title' => $this->l('Enabled'), 'width' => 25, 'align' => 'center', 'active' => 'status', 'type' => 'bool', 'orderby' => false)
|
||||
);
|
||||
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function afterImageUpload()
|
||||
{
|
||||
/* Generate image with differents size */
|
||||
if (($id_manufacturer = (int)(Tools::getValue('id_manufacturer'))) AND isset($_FILES) AND count($_FILES) AND file_exists(_PS_MANU_IMG_DIR_.$id_manufacturer.'.jpg'))
|
||||
{
|
||||
$imagesTypes = ImageType::getImagesTypes('manufacturers');
|
||||
foreach ($imagesTypes AS $k => $imageType)
|
||||
imageResize(_PS_MANU_IMG_DIR_.$id_manufacturer.'.jpg', _PS_MANU_IMG_DIR_.$id_manufacturer.'-'.stripslashes($imageType['name']).'.jpg', (int)($imageType['width']), (int)($imageType['height']));
|
||||
}
|
||||
}
|
||||
|
||||
public function displayForm($isMainTab = true)
|
||||
{
|
||||
parent::displayForm();
|
||||
|
||||
if (!($manufacturer = $this->loadObject(true)))
|
||||
return;
|
||||
$langtags = 'cdesc2¤cdesc¤mmeta_title¤mmeta_keywords¤mmeta_description';
|
||||
|
||||
echo '
|
||||
<form action="'.self::$currentIndex.'&submitAdd'.$this->table.'=1&token='.$this->token.'" method="post" enctype="multipart/form-data">
|
||||
'.($manufacturer->id ? '<input type="hidden" name="id_'.$this->table.'" value="'.$manufacturer->id.'" />' : '').'
|
||||
<fieldset style="width: 905px;">
|
||||
<legend><img src="../img/admin/manufacturers.gif" />'.$this->l('Manufacturers').'</legend>
|
||||
<label>'.$this->l('Name').'</label>
|
||||
<div class="margin-form">
|
||||
<input type="text" size="40" name="name" value="'.htmlentities(Tools::getValue('name', $manufacturer->name), ENT_COMPAT, 'UTF-8').'" /> <sup>*</sup>
|
||||
<span class="hint" name="help_box">'.$this->l('Invalid characters:').' <>;=#{}<span class="hint-pointer"> </span></span>
|
||||
</div>';
|
||||
|
||||
echo '<br class="clear" /><label>'.$this->l('Short description').'</label>
|
||||
<div class="margin-form">';
|
||||
foreach ($this->_languages as $language)
|
||||
echo '
|
||||
<div id="cdesc2_'.$language['id_lang'].'" style="float: left;'.($language['id_lang'] != $this->_defaultFormLanguage ? 'display:none;' : '').'">
|
||||
<textarea class="rte" cols="48" rows="5" id="short_description_'.$language['id_lang'].'" name="short_description_'.$language['id_lang'].'">'.htmlentities(stripslashes($this->getFieldValue($manufacturer, 'short_description', $language['id_lang'])), ENT_COMPAT, 'UTF-8').'</textarea>
|
||||
</div>';
|
||||
$this->displayFlags($this->_languages, $this->_defaultFormLanguage, $langtags, 'cdesc2');
|
||||
echo '</div>';
|
||||
|
||||
echo '<br class="clear" /><br /><br /><label>'.$this->l('Description').'</label>
|
||||
<div class="margin-form">';
|
||||
foreach ($this->_languages as $language)
|
||||
echo '
|
||||
<div id="cdesc_'.$language['id_lang'].'" style="float: left;'.($language['id_lang'] != $this->_defaultFormLanguage ? 'display:none;' : '').'">
|
||||
<textarea class="rte" cols="48" rows="10" id="description_'.$language['id_lang'].'" name="description_'.$language['id_lang'].'">'.htmlentities(stripslashes($this->getFieldValue($manufacturer, 'description', $language['id_lang'])), ENT_COMPAT, 'UTF-8').'</textarea>
|
||||
</div>';
|
||||
$this->displayFlags($this->_languages, $this->_defaultFormLanguage, $langtags, 'cdesc');
|
||||
echo '</div>';
|
||||
|
||||
// TinyMCE
|
||||
$iso = $this->context->language->iso_code;
|
||||
$isoTinyMCE = (file_exists(_PS_ROOT_DIR_.'/js/tiny_mce/langs/'.$iso.'.js') ? $iso : 'en');
|
||||
$ad = dirname($_SERVER["PHP_SELF"]);
|
||||
echo '
|
||||
<script type="text/javascript">
|
||||
var iso = \''.$isoTinyMCE.'\' ;
|
||||
var pathCSS = \''._THEME_CSS_DIR_.'\' ;
|
||||
var ad = \''.$ad.'\' ;
|
||||
</script>
|
||||
<script type="text/javascript" src="'.__PS_BASE_URI__.'js/tiny_mce/tiny_mce.js"></script>
|
||||
<script type="text/javascript" src="'.__PS_BASE_URI__.'js/tinymce.inc.js"></script>';
|
||||
echo '<br style="clear:both;" /><br/><br/><label>'.$this->l('Logo').'</label>
|
||||
<div class="margin-form">';
|
||||
$this->displayImage($manufacturer->id, _PS_MANU_IMG_DIR_.$manufacturer->id.'.jpg', 350, NULL, NULL, true);
|
||||
echo ' <br /><input type="file" name="logo" />
|
||||
<p>'.$this->l('Upload manufacturer logo from your computer').'</p>
|
||||
</div>
|
||||
<label>'.$this->l('Meta title').'</label>
|
||||
<div class="margin-form">';
|
||||
foreach ($this->_languages as $language)
|
||||
echo '
|
||||
<div id="mmeta_title_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $this->_defaultFormLanguage ? 'block' : 'none').'; float: left;">
|
||||
<input type="text" name="meta_title_'.$language['id_lang'].'" id="meta_title_'.$language['id_lang'].'" value="'.htmlentities($this->getFieldValue($manufacturer, 'meta_title', (int)($language['id_lang'])), ENT_COMPAT, 'UTF-8').'" />
|
||||
<span class="hint" name="help_box">'.$this->l('Forbidden characters:').' <>;=#{}<span class="hint-pointer"> </span></span>
|
||||
</div>';
|
||||
$this->displayFlags($this->_languages, $this->_defaultFormLanguage, $langtags, 'mmeta_title');
|
||||
echo ' <div class="clear"></div>
|
||||
</div>
|
||||
<label>'.$this->l('Meta description').'</label>
|
||||
<div class="margin-form">';
|
||||
foreach ($this->_languages as $language)
|
||||
echo '<div id="mmeta_description_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $this->_defaultFormLanguage ? 'block' : 'none').'; float: left;">
|
||||
<input type="text" name="meta_description_'.$language['id_lang'].'" id="meta_description_'.$language['id_lang'].'" value="'.htmlentities($this->getFieldValue($manufacturer, 'meta_description', (int)($language['id_lang'])), ENT_COMPAT, 'UTF-8').'" />
|
||||
<span class="hint" name="help_box">'.$this->l('Forbidden characters:').' <>;=#{}<span class="hint-pointer"> </span></span>
|
||||
</div>';
|
||||
$this->displayFlags($this->_languages, $this->_defaultFormLanguage, $langtags, 'mmeta_description');
|
||||
echo ' <div class="clear"></div>
|
||||
</div>
|
||||
<label>'.$this->l('Meta keywords').'</label>
|
||||
<div class="margin-form">';
|
||||
foreach ($this->_languages as $language)
|
||||
echo '
|
||||
<div id="mmeta_keywords_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $this->_defaultFormLanguage ? 'block' : 'none').'; float: left;">
|
||||
<input type="text" name="meta_keywords_'.$language['id_lang'].'" id="meta_keywords_'.$language['id_lang'].'" value="'.htmlentities($this->getFieldValue($manufacturer, 'meta_keywords', (int)($language['id_lang'])), ENT_COMPAT, 'UTF-8').'" />
|
||||
<span class="hint" name="help_box">'.$this->l('Forbidden characters:').' <>;=#{}<span class="hint-pointer"> </span></span>
|
||||
</div>';
|
||||
$this->displayFlags($this->_languages, $this->_defaultFormLanguage, $langtags, 'mmeta_keywords');
|
||||
echo ' <div class="clear"></div>
|
||||
</div>
|
||||
<label>'.$this->l('Enable:').' </label>
|
||||
<div class="margin-form">
|
||||
<input type="radio" name="active" id="active_on" value="1" '.($this->getFieldValue($manufacturer, 'active') ? 'checked="checked" ' : '').'/>
|
||||
<label class="t" for="active_on"> <img src="../img/admin/enabled.gif" alt="'.$this->l('Enabled').'" title="'.$this->l('Enabled').'" /></label>
|
||||
<input type="radio" name="active" id="active_off" value="0" '.(!$this->getFieldValue($manufacturer, 'active') ? 'checked="checked" ' : '').'/>
|
||||
<label class="t" for="active_off"> <img src="../img/admin/disabled.gif" alt="'.$this->l('Disabled').'" title="'.$this->l('Disabled').'" /></label>
|
||||
</div>';
|
||||
if (Shop::isFeatureActive())
|
||||
{
|
||||
echo '<label>'.$this->l('GroupShop association:').'</label><div class="margin-form">';
|
||||
$this->displayAssoShop('group_shop');
|
||||
echo '</div>';
|
||||
}
|
||||
echo '
|
||||
<div class="margin-form">
|
||||
<input type="submit" value="'.$this->l(' Save ').'" name="submitAdd'.$this->table.'" class="button" />
|
||||
</div>
|
||||
<div class="small"><sup>*</sup> '.$this->l('Required field').'</div>
|
||||
</fieldset>
|
||||
</form>';
|
||||
}
|
||||
|
||||
public function viewmanufacturer()
|
||||
{
|
||||
if (!($manufacturer = $this->loadObject()))
|
||||
return;
|
||||
echo '<h2>'.$manufacturer->name.'</h2>';
|
||||
|
||||
$products = $manufacturer->getProductsLite($this->context->language->id);
|
||||
$addresses = $manufacturer->getAddresses($this->context->language->id);
|
||||
|
||||
echo '<h3>'.$this->l('Total addresses:').' '.sizeof($addresses).'</h3>';
|
||||
echo '<hr />';
|
||||
foreach ($addresses AS $addresse)
|
||||
echo '
|
||||
<h3></h3>
|
||||
<table border="0" cellpadding="0" cellspacing="0" class="table" style="width: 600px;">
|
||||
<tr>
|
||||
<th><b>'.$addresse['firstname'].' '.$addresse['lastname'].'</b></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div style="padding:5px; float:left; width:350px;">
|
||||
'.$addresse['address1'].'<br />
|
||||
'.($addresse['address2'] ? $addresse['address2'].'<br />' : '').'
|
||||
'.$addresse['postcode'].' '.$addresse['city'].'<br />
|
||||
'.($addresse['state'] ? $addresse['state'].'<br />' : '').'
|
||||
<b>'.$addresse['country'].'</b><br />
|
||||
</div>
|
||||
<div style="padding:5px; float:left;">
|
||||
'.($addresse['phone'] ? $addresse['phone'].'<br />' : '').'
|
||||
'.($addresse['phone_mobile'] ? $addresse['phone_mobile'].'<br />' : '').'
|
||||
</div>
|
||||
'.($addresse['other'] ? '<div style="padding:5px; clear:both;"><br /><i>'.$addresse['other'].'</i></div>' : '').'
|
||||
</td>
|
||||
</tr>
|
||||
</table>';
|
||||
if (!sizeof($addresses))
|
||||
echo 'No address for this manufacturer.';
|
||||
echo '<br /><br />';
|
||||
echo '<h3>'.$this->l('Total products:').' '.sizeof($products).'</h3>';
|
||||
foreach ($products AS $product)
|
||||
{
|
||||
$product = new Product($product['id_product'], false, $this->context->language->id);
|
||||
echo '<hr />';
|
||||
if (!$product->hasAttributes())
|
||||
{
|
||||
echo '
|
||||
<div style="float:right;">
|
||||
<a href="?tab=AdminCatalog&id_product='.$product->id.'&updateproduct&token='.Tools::getAdminToken('AdminCatalog'.(int)(Tab::getIdFromClassName('AdminCatalog')).(int)$this->context->employee->id).'" class="button">'.$this->l('Edit').'</a>
|
||||
<a href="?tab=AdminCatalog&id_product='.$product->id.'&deleteproduct&token='.Tools::getAdminToken('AdminCatalog'.(int)(Tab::getIdFromClassName('AdminCatalog')).(int)$this->context->employee->id).'" class="button" onclick="return confirm(\''.$this->l('Delete item #', __CLASS__, TRUE).$product->id.' ?\');">'.$this->l('Delete').'</a>
|
||||
</div>
|
||||
<table border="0" cellpadding="0" cellspacing="0" class="table width3">
|
||||
<tr>
|
||||
<th>'.$product->name.'</th>
|
||||
'.(!empty($product->reference) ? '<th width="150">'.$this->l('Ref:').' '.$product->reference.'</th>' : '').'
|
||||
'.(!empty($product->ean13) ? '<th width="120">'.$this->l('EAN13:').' '.$product->ean13.'</th>' : '').'
|
||||
'.(!empty($product->upc) ? '<th width="120">'.$this->l('UPC:').' '.$product->upc.'</th>' : '').'
|
||||
'.(Configuration::get('PS_STOCK_MANAGEMENT') ? '<th class="right" width="50">'.$this->l('Qty:').' '.$product->quantity.'</th>' : '').'
|
||||
</tr>
|
||||
</table>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '
|
||||
<div style="float:right;">
|
||||
<a href="?tab=AdminCatalog&id_product='.$product->id.'&updateproduct&token='.Tools::getAdminToken('AdminCatalog'.(int)(Tab::getIdFromClassName('AdminCatalog')).(int)$this->context->employee->id).'" class="button">'.$this->l('Edit').'</a>
|
||||
<a href="?tab=AdminCatalog&id_product='.$product->id.'&deleteproduct&token='.Tools::getAdminToken('AdminCatalog'.(int)(Tab::getIdFromClassName('AdminCatalog')).(int)$this->context->employee->id).'" class="button" onclick="return confirm(\''.$this->l('Delete item #', __CLASS__, TRUE).$product->id.' ?\');">'.$this->l('Delete').'</a>
|
||||
</div>
|
||||
<h3><a href="?tab=AdminCatalog&id_product='.$product->id.'&updateproduct&token='.Tools::getAdminToken('AdminCatalog'.(int)(Tab::getIdFromClassName('AdminCatalog')).(int)$this->context->employee->id).'">'.$product->name.'</a></h3>
|
||||
<table border="0" cellpadding="0" cellspacing="0" class="table" style="width: 600px;">
|
||||
<tr>
|
||||
<th>'.$this->l('Attribute name').'</th>
|
||||
<th width="80">'.$this->l('Reference').'</th>
|
||||
<th width="80">'.$this->l('EAN13').'</th>
|
||||
<th width="80">'.$this->l('UPC').'</th>
|
||||
'.(Configuration::get('PS_STOCK_MANAGEMENT') ? '<th class="right" width="40">'.$this->l('Quantity').'</th>' : '').'
|
||||
</tr>';
|
||||
/* Build attributes combinaisons */
|
||||
$combinaisons = $product->getAttributeCombinaisons($this->context->language->id);
|
||||
foreach ($combinaisons AS $k => $combinaison)
|
||||
{
|
||||
$combArray[$combinaison['id_product_attribute']]['reference'] = $combinaison['reference'];
|
||||
$combArray[$combinaison['id_product_attribute']]['ean13'] = $combinaison['ean13'];
|
||||
$combArray[$combinaison['id_product_attribute']]['upc'] = $combinaison['upc'];
|
||||
$combArray[$combinaison['id_product_attribute']]['quantity'] = $combinaison['quantity'];
|
||||
$combArray[$combinaison['id_product_attribute']]['attributes'][] = array($combinaison['group_name'], $combinaison['attribute_name'], $combinaison['id_attribute']);
|
||||
}
|
||||
$irow = 0;
|
||||
foreach ($combArray AS $id_product_attribute => $product_attribute)
|
||||
{
|
||||
$list = '';
|
||||
foreach ($product_attribute['attributes'] AS $attribute)
|
||||
$list .= $attribute[0].' - '.$attribute[1].', ';
|
||||
$list = rtrim($list, ', ');
|
||||
echo '
|
||||
<tr'.($irow++ % 2 ? ' class="alt_row"' : '').' >
|
||||
<td>'.stripslashes($list).'</td>
|
||||
<td>'.$product_attribute['reference'].'</td>
|
||||
'.(Configuration::get('PS_STOCK_MANAGEMENT') ? '<td>'.$product_attribute['ean13'].'</td><td>'.$product_attribute['upc'].'</td>' : '').'
|
||||
<td class="right">'.$product_attribute['quantity'].'</td>
|
||||
</tr>';
|
||||
}
|
||||
unset($combArray);
|
||||
echo '</table>';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -240,8 +240,18 @@
|
||||
<label for="{$id_checkbox}" class="t"><strong>{$value[$input.values.name]}</strong></label><br />
|
||||
{/foreach}
|
||||
{elseif $input.type == 'file'}
|
||||
{if $input.display_image}
|
||||
{if isset($fields_value.image) && $fields_value.image}
|
||||
<div id="image">
|
||||
{$fields_value.image}
|
||||
<p align="center">{l s='File size'} {$fields_value.size}kb</p>
|
||||
<a href="{$current}&id_category={$form_id}&token={$token}&deleteImage=1">
|
||||
<img src="../img/admin/delete.gif" alt="{l s='Delete'}" /> {l s='Delete'}
|
||||
</a>
|
||||
</div><br />
|
||||
{/if}
|
||||
{/if}
|
||||
<input type="file" name="{$input.name}" />
|
||||
<img src="{$fields_value[$input.name]}" />
|
||||
{elseif $input.type == 'password'}
|
||||
<input type="password"
|
||||
name="{$input.name}"
|
||||
@@ -252,6 +262,9 @@
|
||||
{include file='helper/form/form_group.tpl'}
|
||||
{elseif $input.type == 'shop' OR $input.type == 'group_shop'}
|
||||
{include file='helper/form/form_shop.tpl'}
|
||||
{elseif $input.type == 'categories'}
|
||||
{assign var=categories value=$input.values}
|
||||
{include file='helper/form/form_category.tpl'}
|
||||
{elseif $input.type == 'asso_shop' && isset($asso_shop) && $asso_shop}
|
||||
<label>{l s='Shop association:'}</label>
|
||||
<div class="margin-form">
|
||||
@@ -290,6 +303,15 @@
|
||||
{if $required_fields}
|
||||
<div class="small"><sup>*</sup> {l s ='Required field'}</div>
|
||||
{/if}
|
||||
{if isset($fields.tinymce) && $fields.tinymce}
|
||||
<script type="text/javascript">
|
||||
var iso = '{$iso}';
|
||||
var pathCSS = '{$path_css}';
|
||||
var ad = '{$ad}';
|
||||
</script>
|
||||
<script type="text/javascript" src="../js/tiny_mce/tiny_mce.js"></script>
|
||||
<script type="text/javascript" src="'../js/tinymce.inc.js"></script>
|
||||
{/if}
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
|
||||
+24
-34
@@ -31,20 +31,26 @@
|
||||
var id_language = {$defaultFormLanguage};
|
||||
var languages = new Array();
|
||||
|
||||
$(document).ready(function() {
|
||||
$(document).ready(function() {ldelim}
|
||||
{foreach $languages as $k => $language}
|
||||
languages[{$k}] = {
|
||||
languages[{$k}] = {ldelim}
|
||||
id_lang: {$language.id_lang},
|
||||
iso_code: '{$language.iso_code}',
|
||||
name: '{$language.name}'
|
||||
};
|
||||
{rdelim};
|
||||
{/foreach}
|
||||
displayFlags(languages, id_language, {$allowEmployeeFormLang});
|
||||
|
||||
$('input[name=name_'+id_language+']').keyup(function() {
|
||||
$('input[name=link_rewrite_'+id_language+']').val(str2url($(this).val()));
|
||||
});
|
||||
});
|
||||
{if isset($fields_value.id_state)}
|
||||
if ($('#id_country') && $('#id_state'))
|
||||
{ldelim}
|
||||
ajaxStates({$fields_value.id_state});
|
||||
$('#id_country').change(function() {ldelim}
|
||||
ajaxStates();
|
||||
{rdelim});
|
||||
{rdelim}
|
||||
{/if}
|
||||
{rdelim});
|
||||
</script>
|
||||
<script type="text/javascript" src="../js/form.js"></script>
|
||||
{/if}
|
||||
@@ -65,13 +71,17 @@
|
||||
{if $input.name == 'id_state'}
|
||||
<div id="contains_states" {if $contains_states}style="display:none;"{/if}>
|
||||
{/if}
|
||||
{block name="label"}
|
||||
{if isset($input.label)}
|
||||
<label>{$input.label} </label>
|
||||
<label>{$input.label} </label>
|
||||
{/if}
|
||||
{/block}
|
||||
{if $input.type == 'hidden'}
|
||||
<input type="hidden" name="{$input.name}" value="{$fields_value[$input.name]}" />
|
||||
{else}
|
||||
<div class="margin-form">
|
||||
{block name="start_field_block"}
|
||||
<div class="margin-form">
|
||||
{/block}
|
||||
{if $input.type == 'text'}
|
||||
{if isset($input.lang) && isset($input.attributeLang)}
|
||||
{foreach $languages as $language}
|
||||
@@ -115,6 +125,7 @@
|
||||
{if isset($input.class)}class="{$input.class}"{/if}
|
||||
{if isset($input.readonly) && $input.readonly}readonly="readonly"{/if}
|
||||
{if isset($input.disabled) && $input.disabled}disabled="disabled"{/if} />
|
||||
{if isset($input.suffix)}{$input.suffix}{/if}
|
||||
{if isset($input.hint)}<span class="hint" name="help_box">{$input.hint}<span class="hint-pointer"> </span></span>{/if}
|
||||
{/if}
|
||||
{elseif $input.type == 'select'}
|
||||
@@ -215,18 +226,8 @@
|
||||
<label for="{$id_checkbox}" class="t"><strong>{$value[$input.values.name]}</strong></label><br />
|
||||
{/foreach}
|
||||
{elseif $input.type == 'file'}
|
||||
{if $input.display_image}
|
||||
{if isset($fields_value.image) && $fields_value.image}
|
||||
<div id="image">
|
||||
{$fields_value.image}
|
||||
<p align="center">{l s='File size'} {$fields_value.size}kb</p>
|
||||
<a href="{$current}&id_category={$form_id}&token={$token}&deleteImage=1">
|
||||
<img src="../img/admin/delete.gif" alt="{l s='Delete'}" /> {l s='Delete'}
|
||||
</a>
|
||||
</div><br />
|
||||
{/if}
|
||||
{/if}
|
||||
<input type="file" name="{$input.name}" />
|
||||
<img src="{$fields_value[$input.name]}" />
|
||||
{elseif $input.type == 'password'}
|
||||
<input type="password"
|
||||
name="{$input.name}"
|
||||
@@ -234,12 +235,9 @@
|
||||
value="" />
|
||||
{elseif $input.type == 'group'}
|
||||
{assign var=groups value=$input.values}
|
||||
{include file='helper/form/form_group.tpl'}
|
||||
{include file='form_group.tpl'}
|
||||
{elseif $input.type == 'shop' OR $input.type == 'group_shop'}
|
||||
{include file='helper/form/form_shop.tpl'}
|
||||
{elseif $input.type == 'categories'}
|
||||
{assign var=categories value=$input.values}
|
||||
{include file='helper/form/form_category.tpl'}
|
||||
{include file='form_shop.tpl'}
|
||||
{elseif $input.type == 'asso_shop' && isset($asso_shop) && $asso_shop}
|
||||
<label>{l s='Shop association:'}</label>
|
||||
<div class="margin-form">
|
||||
@@ -263,7 +261,7 @@
|
||||
</p>
|
||||
{/if}
|
||||
{if isset($languages)}<div class="clear"></div>{/if}
|
||||
</div>
|
||||
{block name="end_field_block"}</div>{/block}
|
||||
{/if}
|
||||
{if $input.name == 'id_state'}
|
||||
</div>
|
||||
@@ -281,14 +279,6 @@
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
<script type="text/javascript">
|
||||
var iso = '{$iso}';
|
||||
var pathCSS = '{$theme_path_css}';
|
||||
var ad = '{$ad}';
|
||||
</script>
|
||||
<script type="text/javascript" src="../js/tiny_mce/tiny_mce.js"></script>
|
||||
<script type="text/javascript" src="../js/tinymce.inc.js"></script>
|
||||
|
||||
<br /><br />
|
||||
{if $firstCall && !$no_back}
|
||||
{if $back}
|
||||
@@ -0,0 +1,27 @@
|
||||
{*
|
||||
* 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 <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision: 9197 $
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
<a href="{$href}">
|
||||
<img src="../img/admin/edit.gif" alt="{$action}" title="{$action}" /></a>
|
||||
@@ -0,0 +1,202 @@
|
||||
{*
|
||||
* 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 <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision: 9639 $
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
{if !$simple_header}
|
||||
<link href="../css/admin.css" rel="stylesheet" type="text/css" />
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$('table.{$table} .filter').keypress(function(event){
|
||||
formSubmit(event, 'submitFilterButton{$table}')
|
||||
})
|
||||
});
|
||||
</script>
|
||||
{* Display column names and arrows for ordering (ASC, DESC) *}
|
||||
{if $is_order_position}
|
||||
<script type="text/javascript" src="../js/jquery/jquery.tablednd_0_5.js"></script>
|
||||
<script type="text/javascript">
|
||||
var token = '{$token}';
|
||||
var come_from = '{$table}';
|
||||
var alternate = {if $order_way == 'DESC'}'1'{else}'0'{/if};
|
||||
</script>
|
||||
<script type="text/javascript" src="../js/admin-dnd.js"></script>
|
||||
{/if}
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
if ($("table.{$table} .datepicker").length > 0)
|
||||
$("table.{$table} .datepicker").datepicker({
|
||||
prevText: '',
|
||||
nextText: '',
|
||||
dateFormat: 'yy-mm-dd'
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<div class="toolbarBox">
|
||||
<ul class="cc_button">
|
||||
{foreach from=$toolbar_btn item=btn key=k}
|
||||
<li>
|
||||
<a class="toolbar_btn" href="{$btn.href}" title="{$btn.desc}">
|
||||
<span class="process-icon-{$btn.imgclass|default:$k} {$btn.class|default:'' }" ></span>{$btn.desc}
|
||||
</a>
|
||||
</li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
<div class="pageTitle">{* todo : what to display as title for each items (table_lang.name ? *}
|
||||
<h3><span id="current_obj" style="font-weight: normal;">{$current_obj_name|default:' '}</span></h3>
|
||||
</div>
|
||||
</div>
|
||||
<a name="{$table}"> </a>
|
||||
<h2>{$title_list}</h2>
|
||||
|
||||
|
||||
<form method="post" action="{$action}" class="form">
|
||||
{/if}{* End if simple_header *}
|
||||
<input type="hidden" id="submitFilter{$table}" name="submitFilter{$table}" value="0"/>
|
||||
<table class="table_grid">
|
||||
{if !$simple_header}
|
||||
<tr>
|
||||
<td style="vertical-align: bottom;">
|
||||
<span style="float: left;">
|
||||
{if $page > 1}
|
||||
<input type="image" src="../img/admin/list-prev2.gif" onclick="getE('submitFilter{$table}').value=1"/>
|
||||
<input type="image" src="../img/admin/list-prev.gif" onclick="getE('submitFilter{$table}').value={$page - 1}"/>
|
||||
{/if}
|
||||
{l s='Page '}<b>{$page}</b> / {$total_pages}
|
||||
{if $page < $total_pages}
|
||||
<input type="image" src="../img/admin/list-next.gif" onclick="getE('submitFilter{$table}').value={$page + 1}"/>
|
||||
<input type="image" src="../img/admin/list-next2.gif" onclick="getE('submitFilter{$table}'').value={$total_pages}"/>
|
||||
{/if}
|
||||
| {l s='Display'}
|
||||
<select name="pagination">
|
||||
{* Choose number of results per page *}
|
||||
{foreach $pagination AS $value}
|
||||
<option value="{$value|intval}"{if $selected_pagination == $value} selected="selected" {elseif $selected_pagination == NULL && $value == $pagination[1]} selected="selected2"{/if}>{$value|intval}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
/ {$list_total} {l s='result(s)'}
|
||||
</span>
|
||||
<span style="float: right;">
|
||||
<input type="submit" name="submitReset{$table}" value="{l s='Reset'}" class="button" />
|
||||
<input type="submit" id="submitFilterButton{$table}" name="submitFilter" value="{l s='Filter'}" class="button" />
|
||||
</span>
|
||||
<span class="clear"></span>
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
<tr>
|
||||
<td{if $simple_header} style="border:none;"{/if}>
|
||||
<table
|
||||
{if $table_id} id={$table_id}{/if}
|
||||
class="table {if $table_dnd}tableDnd{/if} {$table}"
|
||||
cellpadding="0" cellspacing="0"
|
||||
style="width: 100%; margin-bottom:10px;"
|
||||
>
|
||||
<thead>
|
||||
<tr class="nodrag nodrop">
|
||||
<th style="width:10px;">
|
||||
{if $delete}
|
||||
<input type="checkbox" name="checkme" class="noborder" onclick="checkDelBoxes(this.form, '{$table}Box[]', this.checked)" />
|
||||
{/if}
|
||||
</th>
|
||||
{foreach $fields_display AS $key => $params}
|
||||
<th {if isset($params.widthColumn)} style="width: {if $params.widthColumn == 'auto'}auto{else}{$params.widthColumn}px{/if}"{/if}>{$params.title}
|
||||
{if (!isset($params.orderby) || $params.orderby) && !$simple_header}
|
||||
<br />
|
||||
<a href="{$currentIndex}&{$identifier}={$id_cat}&{$table}Orderby={$key|urlencode}&{$table}Orderway=desc&token={$token}">
|
||||
<img border="0" src="../img/admin/down{if isset($order_by) && ($key == $order_by) && ($order_way == 'DESC')}_d{/if}.gif" />
|
||||
</a>
|
||||
<a href="{$currentIndex}&{$identifier}={$id_cat}&{$table}Orderby={$key|urlencode}&{$table}Orderway=asc&token={$token}">
|
||||
<img border="0" src="../img/admin/up{if isset($order_by) && ($key == $order_by) && ($order_way == 'ASC')}_d{/if}.gif" />
|
||||
</a>
|
||||
{/if}
|
||||
</th>
|
||||
{/foreach}
|
||||
|
||||
{if $shop_link_type}
|
||||
<th style="width: 80px">
|
||||
{if $shop_link_type == 'shop'}
|
||||
{l s='shop'}
|
||||
{else}
|
||||
{l s='Group shop'}
|
||||
{/if}
|
||||
</th>
|
||||
{/if}
|
||||
{if $has_actions}
|
||||
<th style="width: 52px">{l s='Actions'}</th>
|
||||
{/if}
|
||||
</tr>
|
||||
{if !$simple_header}
|
||||
<tr class="nodrag nodrop" style="height: 35px;">
|
||||
<td class="center">
|
||||
{if $delete}
|
||||
--
|
||||
{/if}
|
||||
</td>
|
||||
|
||||
{* Filters (input, select, date or bool) *}
|
||||
{foreach $fields_display AS $key => $params}
|
||||
<td {if isset($params.align)} class="{$params.align}" {/if}>
|
||||
{if isset($params.search) && !$params.search}
|
||||
--
|
||||
{else}
|
||||
{if $params.type == 'bool'}
|
||||
<select onchange="$('#submitFilterButton{$table}').focus();$('#submitFilterButton{$table}').click();" name="{$table}Filter_{$key}">
|
||||
<option value="">--</option>
|
||||
<option value="1" {if $params.value == 1} selected="selected" {/if}>{l s='Yes'}</option>
|
||||
<option value="0" {if $params.value == 0 && $params.value != ''} selected="selected" {/if}>{l s='No'}</option>
|
||||
</select>
|
||||
{elseif $params.type == 'date' || $params.type == 'datetime'}
|
||||
{l s='From'} <input type="text" class="filter datepicker" id="{$name_id}_0" name="{$name}[0]" value="{if isset($value.0)}$value.0{/if}"{if isset($params.width)} style="width:{$params.width}px"{/if}/><br />
|
||||
{l s='To'} <input type="text" class="filter datepicker" id="{$name_id}_1" name="{$name}[1]" value="{if isset($value.1)}$value.1{/if}"{if isset($params.width)} style="width:{$params.width}px"{/if}/>
|
||||
{elseif $params.type == 'select'}
|
||||
{if isset($params.filter_key)}
|
||||
<select onchange="$('#submitFilterButton{$table}').focus();$('#submitFilterButton{$table}').click();" name="{$table}Filter_{$params.filter_key}" {if isset($params.width)} style="width:{$params.width}px"{/if}>
|
||||
<option value="" {if $params.value == 0 && $params.value != ''} selected="selected" {/if}>--</option>
|
||||
{if isset($params.select) && is_array($params.select)}
|
||||
{foreach $params.select AS $option_value => $option_display}
|
||||
<option value="{$option_value}" {if $option_display.selected == 'selected'} selected="selected"{/if}>{$option_display}</option>
|
||||
{/foreach}
|
||||
{/if}
|
||||
</select>
|
||||
{/if}
|
||||
{else}
|
||||
<input type="text" class="filter" name="{$table}Filter_{if isset($params.filter_key)}{$params.filter_key}{else}{$key}{/if}" value="{$params.value|escape:'htmlall':'UTF-8'}" {if isset($params.width)} style="width:{$params.width}px"{/if} />
|
||||
{/if}
|
||||
{/if}
|
||||
</td>
|
||||
{/foreach}
|
||||
|
||||
{if $shop_link_type}
|
||||
<td>--</td>
|
||||
{/if}
|
||||
{if $has_actions}
|
||||
<td class="center">--</td>
|
||||
{/if}
|
||||
</tr>
|
||||
{/if}
|
||||
</thead>
|
||||
@@ -0,0 +1,102 @@
|
||||
{*
|
||||
* 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 <contact@prestashop.com>
|
||||
* @copyright 2007-2011 PrestaShop SA
|
||||
* @version Release: $Revision: 9646 $
|
||||
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*}
|
||||
|
||||
<h2>{$manufacturer->name}</h2>
|
||||
|
||||
<h3>{l s='Total addresses:'} {count($addresses)}</h3>
|
||||
<hr />
|
||||
|
||||
{if !count($addresses)}
|
||||
{l s='No address for this manufacturer'}
|
||||
{else}
|
||||
{foreach $addresses AS $addresse}
|
||||
<table border="0" cellpadding="0" cellspacing="0" class="table" style="width: 600px;">
|
||||
<tr>
|
||||
<th><strong>{$addresse.firstname} {$addresse.lastname}</strong></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div style="padding:5px; float:left; width:350px;">
|
||||
{$addresse.address1}<br />
|
||||
{if $addresse.address2}{$addresse.address2}<br />{/if}
|
||||
{$addresse.postcode} {$addresse.city}<br />
|
||||
{if $addresse.state}{$addresse.state}<br />{/if}
|
||||
<b>{$addresse.country}</b><br />
|
||||
</div>
|
||||
<div style="padding:5px; float:left;">
|
||||
{if $addresse.phone}{$addresse.phone}<br />{/if}
|
||||
{if $addresse.phone_mobile}{$addresse.phone_mobile}<br />{/if}
|
||||
</div>
|
||||
{if $addresse.other}<div style="padding:5px; clear:both;"><br /><i>{$addresse.other}</i></div>{/if}
|
||||
</td>
|
||||
</tr>
|
||||
</table><br />
|
||||
{/foreach}
|
||||
{/if}
|
||||
<br /><br />
|
||||
|
||||
<h3>{l s='Total products:'} {count($products)}</h3>
|
||||
{foreach $products AS $product}
|
||||
<hr />
|
||||
{if !$product->hasAttributes()}
|
||||
<div style="float:right;">
|
||||
<a href="?tab=AdminProducts&id_product={$product->id}&updateproduct&token={getAdminToken tab='AdminProducts'}" class="button">{l s='Edit'}</a>
|
||||
<a href="?tab=AdminProducts&id_product={$product->id}&deleteproduct&token={getAdminToken tab='AdminProducts'}" class="button" onclick="return confirm('{l s='Delete item #'}{$product->id} ?');">{l s='Delete'}</a>
|
||||
</div>
|
||||
<table border="0" cellpadding="0" cellspacing="0" class="table" style="width:990px;">
|
||||
<tr>
|
||||
<th>{$product->name}</th>
|
||||
{if !empty($product->reference)}<th width="150">{l s='Ref:'} {$product->reference}</th>{/if}
|
||||
{if !empty($product->ean13)}<th width="120">{l s='EAN13:'} {$product->ean13}</th>{/if}
|
||||
{if !empty($product->upc)}<th width="120">{l s='UPC:'} {$product->upc}</th>{/if}
|
||||
</tr>
|
||||
</table>
|
||||
{else}
|
||||
<div style="float:right;">
|
||||
<a href="?tab=AdminProducts&id_product={$product->id}&updateproduct&token={getAdminToken tab='AdminProducts'}" class="button">{l s='Edit'}</a>
|
||||
<a href="?tab=AdminProducts&id_product={$product->id}&deleteproduct&token={getAdminToken tab='AdminProducts'}" class="button" onclick="return confirm('{l s='Delete item #'}{$product->id} ?');">{l s='Delete'}</a>
|
||||
</div>
|
||||
<h3><a href="?tab=AdminProducts&id_product={$product->id}&updateproduct&token={getAdminToken tab='AdminProducts'}">{$product->name}</a></h3>
|
||||
<table border="0" cellpadding="0" cellspacing="0" class="table" style="width:990px;">
|
||||
<tr>
|
||||
<th>{l s='Attribute name'}</th>
|
||||
<th width="80">{l s='Reference'}</th>
|
||||
<th width="80">{l s='EAN13'}</th>
|
||||
<th width="80">{l s='UPC'}</th>
|
||||
</tr>
|
||||
{foreach $product->combinaison AS $id_product_attribute => $product_attribute}
|
||||
<tr {if $id_product_attribute %2}class="alt_row"{/if} >
|
||||
<td>{$product_attribute.attributes}</td>
|
||||
<td>{$product_attribute.reference}</td>
|
||||
<td>{$product_attribute.ean13}</td>
|
||||
<td>{$product_attribute.upc}</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</table>
|
||||
{/if}
|
||||
{/foreach}
|
||||
<br /><br />
|
||||
<a href="{$current}&token={$token}"><img src="../img/admin/arrow2.gif" /> {l s='Back to manufacturer list'}</a><br />
|
||||
@@ -75,6 +75,7 @@ class HelperFormCore extends Helper
|
||||
if ($this->submit_action == '')
|
||||
$this->submit_action = 'submitAdd'.$this->table;
|
||||
|
||||
$iso = $this->context->language->iso_code;
|
||||
$this->context->smarty->assign(array(
|
||||
'submit_action' => $this->submit_action,
|
||||
'toolbar_btn' => $this->toolbar_btn,
|
||||
@@ -95,6 +96,9 @@ class HelperFormCore extends Helper
|
||||
'module_dir' => _MODULE_DIR_,
|
||||
'contains_states' => (isset($this->fields_value['id_country']) && isset($this->fields_value['id_state'])) ? Country::containsStates($this->fields_value['id_country']) : null,
|
||||
'asso_shop' => (isset($this->fields_form['asso_shop']) && $this->fields_form['asso_shop']) ? $this->displayAssoShop() : null,
|
||||
'iso' => file_exists(_PS_ROOT_DIR_.'/js/tiny_mce/langs/'.$iso.'.js') ? $iso : 'en',
|
||||
'path_css' => _THEME_CSS_DIR_,
|
||||
'ad' => dirname($_SERVER["PHP_SELF"])
|
||||
));
|
||||
|
||||
return $this->context->smarty->fetch(_PS_ADMIN_DIR_.'/themes/template/'.$this->tpl);
|
||||
|
||||
+118
-83
@@ -27,55 +27,61 @@
|
||||
|
||||
class ManufacturerCore extends ObjectModel
|
||||
{
|
||||
public $id;
|
||||
public $id;
|
||||
|
||||
/** @var integer manufacturer ID */
|
||||
public $id_manufacturer;//FIXME is it really usefull...?
|
||||
public $id_manufacturer;//FIXME is it really usefull...?
|
||||
|
||||
/** @var string Name */
|
||||
public $name;
|
||||
public $name;
|
||||
|
||||
/** @var string A description */
|
||||
public $description;
|
||||
public $description;
|
||||
|
||||
/** @var string A short description */
|
||||
public $short_description;
|
||||
public $short_description;
|
||||
|
||||
/** @var int Address */
|
||||
public $id_address;
|
||||
public $id_address;
|
||||
|
||||
/** @var string Object creation date */
|
||||
public $date_add;
|
||||
public $date_add;
|
||||
|
||||
/** @var string Object last modification date */
|
||||
public $date_upd;
|
||||
public $date_upd;
|
||||
|
||||
/** @var string Friendly URL */
|
||||
public $link_rewrite;
|
||||
public $link_rewrite;
|
||||
|
||||
/** @var string Meta title */
|
||||
public $meta_title;
|
||||
public $meta_title;
|
||||
|
||||
/** @var string Meta keywords */
|
||||
public $meta_keywords;
|
||||
public $meta_keywords;
|
||||
|
||||
/** @var string Meta description */
|
||||
public $meta_description;
|
||||
public $meta_description;
|
||||
|
||||
/** @var boolean active */
|
||||
public $active;
|
||||
public $active;
|
||||
|
||||
protected $fieldsRequired = array('name');
|
||||
protected $fieldsSize = array('name' => 64);
|
||||
protected $fieldsValidate = array('name' => 'isCatalogName');
|
||||
protected $fieldsRequired = array('name');
|
||||
protected $fieldsSize = array('name' => 64);
|
||||
protected $fieldsValidate = array('name' => 'isCatalogName');
|
||||
|
||||
protected $fieldsSizeLang = array('short_description' => 254, 'meta_title' => 128, 'meta_description' => 255, 'meta_description' => 255);
|
||||
protected $fieldsValidateLang = array('description' => 'isString', 'short_description' => 'isString', 'meta_title' => 'isGenericName', 'meta_description' => 'isGenericName', 'meta_keywords' => 'isGenericName');
|
||||
protected $fieldsSizeLang = array('short_description' => 254, 'meta_title' => 128, 'meta_description' => 255, 'meta_description' => 255);
|
||||
protected $fieldsValidateLang = array(
|
||||
'description' => 'isString',
|
||||
'short_description' => 'isString',
|
||||
'meta_title' => 'isGenericName',
|
||||
'meta_description' => 'isGenericName',
|
||||
'meta_keywords' => 'isGenericName'
|
||||
);
|
||||
|
||||
protected $table = 'manufacturer';
|
||||
protected $identifier = 'id_manufacturer';
|
||||
protected $table = 'manufacturer';
|
||||
protected $identifier = 'id_manufacturer';
|
||||
|
||||
protected $webserviceParameters = array(
|
||||
protected $webserviceParameters = array(
|
||||
'fields' => array(
|
||||
'active' => array(),
|
||||
'link_rewrite' => array('getter' => 'getLink', 'setter' => false),
|
||||
@@ -87,7 +93,7 @@ class ManufacturerCore extends ObjectModel
|
||||
),
|
||||
);
|
||||
|
||||
public function __construct($id = NULL, $id_lang = NULL)
|
||||
public function __construct($id = null, $id_lang = null)
|
||||
{
|
||||
parent::__construct($id, $id_lang);
|
||||
|
||||
@@ -101,11 +107,11 @@ class ManufacturerCore extends ObjectModel
|
||||
{
|
||||
$this->validateFields();
|
||||
if (isset($this->id))
|
||||
$fields['id_manufacturer'] = (int)($this->id);
|
||||
$fields['id_manufacturer'] = (int)$this->id;
|
||||
$fields['name'] = pSQL($this->name);
|
||||
$fields['date_add'] = pSQL($this->date_add);
|
||||
$fields['date_upd'] = pSQL($this->date_upd);
|
||||
$fields['active'] = (int)($this->active);
|
||||
$fields['active'] = (int)$this->active;
|
||||
return $fields;
|
||||
}
|
||||
|
||||
@@ -137,23 +143,27 @@ class ManufacturerCore extends ObjectModel
|
||||
*/
|
||||
public function deleteSelection($selection)
|
||||
{
|
||||
if (!is_array($selection) OR !Validate::isTableOrIdentifier($this->identifier) OR !Validate::isTableOrIdentifier($this->table))
|
||||
if (!is_array($selection) || !Validate::isTableOrIdentifier($this->identifier) || !Validate::isTableOrIdentifier($this->table))
|
||||
die(Tools::displayError());
|
||||
$result = true;
|
||||
foreach ($selection AS $id)
|
||||
foreach ($selection as $id)
|
||||
{
|
||||
$this->id = (int)($id);
|
||||
$this->id = (int)$id;
|
||||
$this->id_address = self::getManufacturerAddress();
|
||||
$result = $result AND $this->delete();
|
||||
$result = $result && $this->delete();
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
protected function getManufacturerAddress()
|
||||
{
|
||||
if (!(int)($this->id))
|
||||
if (!(int)$this->id)
|
||||
return false;
|
||||
$result = Db::GetInstance(_PS_USE_SQL_SLAVE_)->getRow('SELECT `id_address` FROM '._DB_PREFIX_.'address WHERE `id_manufacturer` = '.(int)($this->id));
|
||||
$result = Db::GetInstance(_PS_USE_SQL_SLAVE_)->getRow('
|
||||
SELECT `id_address`
|
||||
FROM '._DB_PREFIX_.'address
|
||||
WHERE `id_manufacturer` = '.(int)$this->id
|
||||
);
|
||||
if (!$result)
|
||||
return false;
|
||||
return $result['id_address'];
|
||||
@@ -162,50 +172,51 @@ class ManufacturerCore extends ObjectModel
|
||||
/**
|
||||
* Return manufacturers
|
||||
*
|
||||
* @param boolean $getNbProducts [optional] return products numbers for each
|
||||
* @param boolean $get_nb_products [optional] return products numbers for each
|
||||
* @return array Manufacturers
|
||||
*/
|
||||
static public function getManufacturers($getNbProducts = false, $id_lang = 0, $active = true, $p = false, $n = false, $all_group = false, $id_group_shop = false)
|
||||
public static function getManufacturers($get_nb_products = false, $id_lang = 0, $active = true, $p = false, $n = false, $all_group = false, $id_group_shop = false)
|
||||
{
|
||||
if (!$id_lang)
|
||||
$id_lang = (int)Configuration::get('PS_LANG_DEFAULT');
|
||||
if (!$id_group_shop)
|
||||
$id_group_shop = Shop::getGroupFromShop(Configuration::get('PS_SHOP_DEFAULT'));
|
||||
$sql = 'SELECT m.*, ml.`description`';
|
||||
$sql.= 'FROM `'._DB_PREFIX_.'manufacturer_group_shop` mgs
|
||||
$sql .= 'FROM `'._DB_PREFIX_.'manufacturer_group_shop` mgs
|
||||
LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON (m.id_manufacturer = mgs.id_manufacturer)
|
||||
LEFT JOIN `'._DB_PREFIX_.'manufacturer_lang` ml ON (m.`id_manufacturer` = ml.`id_manufacturer` AND ml.`id_lang` = '.(int)($id_lang).')
|
||||
LEFT JOIN `'._DB_PREFIX_.'manufacturer_lang` ml ON (m.`id_manufacturer` = ml.`id_manufacturer` AND ml.`id_lang` = '.(int)$id_lang.')
|
||||
WHERE mgs.id_group_shop='.(int)$id_group_shop.($active ? ' AND m.`active` = 1' : '');
|
||||
$sql.= ' ORDER BY m.`name` ASC'.($p ? ' LIMIT '.(((int)($p) - 1) * (int)($n)).','.(int)($n) : '');
|
||||
$sql .= ' ORDER BY m.`name` ASC'.($p ? ' LIMIT '.(((int)$p - 1) * (int)$n).','.(int)$n : '');
|
||||
$manufacturers = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql);
|
||||
if ($manufacturers === false)
|
||||
return false;
|
||||
if ($getNbProducts)
|
||||
if ($get_nb_products)
|
||||
{
|
||||
$sqlGroups = '';
|
||||
$sql_groups = '';
|
||||
if (!$all_group)
|
||||
{
|
||||
$groups = FrontController::getCurrentCustomerGroups();
|
||||
$sqlGroups = (count($groups) ? 'IN ('.implode(',', $groups).')' : '= 1');
|
||||
$sql_groups = (count($groups) ? 'IN ('.implode(',', $groups).')' : '= 1');
|
||||
}
|
||||
foreach ($manufacturers as $key => $manufacturer)
|
||||
{
|
||||
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('SELECT p.`id_product`
|
||||
FROM `'._DB_PREFIX_.'product` p
|
||||
LEFT JOIN `'._DB_PREFIX_.'manufacturer` as m ON (m.`id_manufacturer`= p.`id_manufacturer`)
|
||||
WHERE m.`id_manufacturer` = '.(int)($manufacturer['id_manufacturer']).
|
||||
WHERE m.`id_manufacturer` = '.(int)$manufacturer['id_manufacturer'].
|
||||
($active ? ' AND p.`active` = 1 ' : '').
|
||||
($all_group ? '' : ' AND p.`id_product` IN (
|
||||
SELECT cp.`id_product`
|
||||
FROM `'._DB_PREFIX_.'category_group` cg
|
||||
LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON (cp.`id_category` = cg.`id_category`)
|
||||
WHERE cg.`id_group` '.$sqlGroups.')'));
|
||||
WHERE cg.`id_group` '.$sql_groups.')'));
|
||||
|
||||
$manufacturers[$key]['nb_products'] = sizeof($result);
|
||||
$manufacturers[$key]['nb_products'] = count($result);
|
||||
}
|
||||
}
|
||||
for ($i = 0; $i < sizeof($manufacturers); $i++)
|
||||
if ((int)(Configuration::get('PS_REWRITING_SETTINGS')))
|
||||
$total_manufacturers = count($manufacturers);
|
||||
for ($i = 0; $i < $total_manufacturers; $i++)
|
||||
if ((int)Configuration::get('PS_REWRITING_SETTINGS'))
|
||||
$manufacturers[$i]['link_rewrite'] = Tools::link_rewrite($manufacturers[$i]['name'], false);
|
||||
else
|
||||
$manufacturers[$i]['link_rewrite'] = 0;
|
||||
@@ -223,7 +234,11 @@ class ManufacturerCore extends ObjectModel
|
||||
{
|
||||
if (!isset(self::$cacheName[$id_manufacturer]))
|
||||
self::$cacheName[$id_manufacturer] = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue('
|
||||
SELECT `name` FROM `'._DB_PREFIX_.'manufacturer` WHERE `id_manufacturer` = '.(int)($id_manufacturer).' AND `active` = 1');
|
||||
SELECT `name`
|
||||
FROM `'._DB_PREFIX_.'manufacturer`
|
||||
WHERE `id_manufacturer` = '.(int)$id_manufacturer.'
|
||||
AND `active` = 1'
|
||||
);
|
||||
return self::$cacheName[$id_manufacturer];
|
||||
}
|
||||
|
||||
@@ -234,7 +249,7 @@ class ManufacturerCore extends ObjectModel
|
||||
FROM `'._DB_PREFIX_.'manufacturer`
|
||||
WHERE `name` = \''.pSQL($name).'\'');
|
||||
if (isset($result['id_manufacturer']))
|
||||
return (int)($result['id_manufacturer']);
|
||||
return (int)$result['id_manufacturer'];
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -243,72 +258,91 @@ class ManufacturerCore extends ObjectModel
|
||||
return Tools::link_rewrite($this->name, false);
|
||||
}
|
||||
|
||||
static public function getProducts($id_manufacturer, $id_lang, $p, $n, $orderBy = NULL, $orderWay = NULL, $getTotal = false, $active = true, $active_category = true, Context $context = null)
|
||||
public static function getProducts($id_manufacturer, $id_lang, $p, $n, $order_by = null, $order_way = null, $get_total = false, $active = true, $active_category = true, Context $context = null)
|
||||
{
|
||||
if (!$context)
|
||||
$context = Context::getContext();
|
||||
if ($p < 1) $p = 1;
|
||||
if (empty($orderBy) ||$orderBy == 'position') $orderBy = 'name';
|
||||
if (empty($orderWay)) $orderWay = 'ASC';
|
||||
|
||||
if (!Validate::isOrderBy($orderBy) OR !Validate::isOrderWay($orderWay))
|
||||
if ($p < 1)
|
||||
$p = 1;
|
||||
|
||||
if (empty($order_by) || $order_by == 'position')
|
||||
$order_by = 'name';
|
||||
|
||||
if (empty($order_way)) $order_way = 'ASC';
|
||||
|
||||
if (!Validate::isOrderBy($order_by) || !Validate::isOrderWay($order_way))
|
||||
die (Tools::displayError());
|
||||
|
||||
|
||||
$groups = FrontController::getCurrentCustomerGroups();
|
||||
$sqlGroups = (count($groups) ? 'IN ('.implode(',', $groups).')' : '= 1');
|
||||
$sql_groups = count($groups) ? 'IN ('.implode(',', $groups).')' : '= 1';
|
||||
|
||||
/* Return only the number of products */
|
||||
if ($getTotal)
|
||||
if ($get_total)
|
||||
{
|
||||
$sql = '
|
||||
SELECT p.`id_product`
|
||||
FROM `'._DB_PREFIX_.'product` p
|
||||
'.$context->shop->addSqlAssociation('product', 'p').'
|
||||
WHERE p.id_manufacturer = '.(int)($id_manufacturer)
|
||||
WHERE p.id_manufacturer = '.(int)$id_manufacturer
|
||||
.($active ? ' AND p.`active` = 1' : '').'
|
||||
AND p.`id_product` IN (
|
||||
SELECT cp.`id_product`
|
||||
FROM `'._DB_PREFIX_.'category_group` cg
|
||||
LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON (cp.`id_category` = cg.`id_category`)'.
|
||||
($active_category ? ' INNER JOIN `'._DB_PREFIX_.'category` ca ON cp.`id_category` = ca.`id_category` AND ca.`active` = 1' : '').'
|
||||
WHERE cg.`id_group` '.$sqlGroups.'
|
||||
WHERE cg.`id_group` '.$sql_groups.'
|
||||
)';
|
||||
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql);
|
||||
return (int)(sizeof($result));
|
||||
return (int)count($result);
|
||||
}
|
||||
|
||||
$sql = 'SELECT p.*, sa.out_of_stock, pa.`id_product_attribute`, pl.`description`, pl.`description_short`, pl.`link_rewrite`, pl.`meta_description`, pl.`meta_keywords`, pl.`meta_title`, pl.`name`, i.`id_image`, il.`legend`, m.`name` AS manufacturer_name, tl.`name` AS tax_name, t.`rate`, DATEDIFF(p.`date_add`, DATE_SUB(NOW(), INTERVAL '.(Validate::isUnsignedInt(Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) ? Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).' DAY)) > 0 AS new,
|
||||
(p.`price` * ((100 + (t.`rate`))/100)) AS orderprice
|
||||
$sql = 'SELECT p.*, sa.out_of_stock, pa.`id_product_attribute`, pl.`description`, pl.`description_short`, pl.`link_rewrite`,
|
||||
pl.`meta_description`, pl.`meta_keywords`, pl.`meta_title`, pl.`name`, i.`id_image`, il.`legend`, m.`name` AS manufacturer_name,
|
||||
tl.`name` AS tax_name, t.`rate`, DATEDIFF(p.`date_add`, DATE_SUB(NOW(),
|
||||
INTERVAL '.(Validate::isUnsignedInt(Configuration::get('PS_NB_DAYS_NEW_PRODUCT')) ? Configuration::get('PS_NB_DAYS_NEW_PRODUCT') : 20).' DAY)) > 0 AS new,
|
||||
(p.`price` * ((100 + (t.`rate`))/100)) AS orderprice
|
||||
FROM `'._DB_PREFIX_.'product` p
|
||||
'.$context->shop->addSqlAssociation('product', 'p').'
|
||||
LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa ON (p.`id_product` = pa.`id_product` AND default_on = 1)
|
||||
LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.(int)$id_lang.$context->shop->addSqlRestrictionOnLang('pl').')
|
||||
LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_product` = p.`id_product` AND i.`cover` = 1)
|
||||
LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$id_lang.')
|
||||
LEFT JOIN `'._DB_PREFIX_.'tax_rule` tr ON (p.`id_tax_rules_group` = tr.`id_tax_rules_group`
|
||||
AND tr.`id_country` = '.(int)$context->country->id.'
|
||||
AND tr.`id_state` = 0
|
||||
AND tr.`zipcode_from` = 0)
|
||||
LEFT JOIN `'._DB_PREFIX_.'tax` t ON (t.`id_tax` = tr.`id_tax`)
|
||||
LEFT JOIN `'._DB_PREFIX_.'tax_lang` tl ON (t.`id_tax` = tl.`id_tax` AND tl.`id_lang` = '.(int)$id_lang.')
|
||||
LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON (m.`id_manufacturer` = p.`id_manufacturer`)
|
||||
LEFT JOIN `'._DB_PREFIX_.'stock_available` sa ON (sa.`id_product` = p.`id_product` AND sa.id_product_attribute = 0)
|
||||
WHERE p.`id_manufacturer` = '.(int)($id_manufacturer).($active ? ' AND p.`active` = 1' : '').'
|
||||
LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa
|
||||
ON (p.`id_product` = pa.`id_product` AND default_on = 1)
|
||||
LEFT JOIN `'._DB_PREFIX_.'product_lang` pl
|
||||
ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.(int)$id_lang.$context->shop->addSqlRestrictionOnLang('pl').')
|
||||
LEFT JOIN `'._DB_PREFIX_.'image` i
|
||||
ON (i.`id_product` = p.`id_product` AND i.`cover` = 1)
|
||||
LEFT JOIN `'._DB_PREFIX_.'image_lang` il
|
||||
ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)$id_lang.')
|
||||
LEFT JOIN `'._DB_PREFIX_.'tax_rule` tr
|
||||
ON (p.`id_tax_rules_group` = tr.`id_tax_rules_group`
|
||||
AND tr.`id_country` = '.(int)$context->country->id.'
|
||||
AND tr.`id_state` = 0
|
||||
AND tr.`zipcode_from` = 0)
|
||||
LEFT JOIN `'._DB_PREFIX_.'tax` t
|
||||
ON (t.`id_tax` = tr.`id_tax`)
|
||||
LEFT JOIN `'._DB_PREFIX_.'tax_lang` tl
|
||||
ON (t.`id_tax` = tl.`id_tax` AND tl.`id_lang` = '.(int)$id_lang.')
|
||||
LEFT JOIN `'._DB_PREFIX_.'manufacturer` m
|
||||
ON (m.`id_manufacturer` = p.`id_manufacturer`)
|
||||
LEFT JOIN `'._DB_PREFIX_.'stock_available` sa
|
||||
ON (sa.`id_product` = p.`id_product` AND sa.id_product_attribute = 0)
|
||||
WHERE p.`id_manufacturer` = '.(int)$id_manufacturer.($active ? '
|
||||
AND p.`active` = 1' : '').'
|
||||
AND p.`id_product` IN (
|
||||
SELECT cp.`id_product`
|
||||
FROM `'._DB_PREFIX_.'category_group` cg
|
||||
LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON (cp.`id_category` = cg.`id_category`)'.
|
||||
LEFT JOIN `'._DB_PREFIX_.'category_product` cp
|
||||
ON (cp.`id_category` = cg.`id_category`)'.
|
||||
($active_category ? ' INNER JOIN `'._DB_PREFIX_.'category` ca ON cp.`id_category` = ca.`id_category` AND ca.`active` = 1' : '').'
|
||||
WHERE cg.`id_group` '.$sqlGroups.'
|
||||
WHERE cg.`id_group` '.$sql_groups.'
|
||||
)
|
||||
ORDER BY '.(($orderBy == 'id_product') ? 'p.' : '').'`'.pSQL($orderBy).'` '.pSQL($orderWay).'
|
||||
ORDER BY '.(($order_by == 'id_product') ? 'p.' : '').'`'.pSQL($order_by).'` '.pSQL($order_way).'
|
||||
LIMIT '.(((int)$p - 1) * (int)$n).','.(int)$n;
|
||||
|
||||
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql);
|
||||
if (!$result)
|
||||
return false;
|
||||
if ($orderBy == 'price')
|
||||
Tools::orderbyPrice($result, $orderWay);
|
||||
if ($order_by == 'price')
|
||||
Tools::orderbyPrice($result, $order_way);
|
||||
return Product::getProductsProperties($id_lang, $result);
|
||||
}
|
||||
|
||||
@@ -316,7 +350,8 @@ class ManufacturerCore extends ObjectModel
|
||||
{
|
||||
$sql = 'SELECT p.`id_product`, pl.`name`
|
||||
FROM `'._DB_PREFIX_.'product` p
|
||||
LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.(int)$id_lang.Context::getContext()->shop->addSqlRestrictionOnLang('pl').')
|
||||
LEFT JOIN `'._DB_PREFIX_.'product_lang` pl
|
||||
ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.(int)$id_lang.Context::getContext()->shop->addSqlRestrictionOnLang('pl').')
|
||||
WHERE p.`id_manufacturer` = '.(int)$this->id;
|
||||
return Db::getInstance()->executeS($sql);
|
||||
}
|
||||
@@ -331,7 +366,7 @@ class ManufacturerCore extends ObjectModel
|
||||
$row = Db::getInstance()->getRow('
|
||||
SELECT `id_manufacturer`
|
||||
FROM '._DB_PREFIX_.'manufacturer m
|
||||
WHERE m.`id_manufacturer` = '.(int)($id_manufacturer));
|
||||
WHERE m.`id_manufacturer` = '.(int)$id_manufacturer);
|
||||
|
||||
return isset($row['id_manufacturer']);
|
||||
}
|
||||
@@ -341,21 +376,21 @@ class ManufacturerCore extends ObjectModel
|
||||
return Db::getInstance()->executeS('
|
||||
SELECT a.*, cl.name AS `country`, s.name AS `state`
|
||||
FROM `'._DB_PREFIX_.'address` AS a
|
||||
LEFT JOIN `'._DB_PREFIX_.'country_lang` AS cl ON (cl.`id_country` = a.`id_country` AND cl.`id_lang` = '.(int)($id_lang).')
|
||||
LEFT JOIN `'._DB_PREFIX_.'country_lang` AS cl ON (cl.`id_country` = a.`id_country` AND cl.`id_lang` = '.(int)$id_lang.')
|
||||
LEFT JOIN `'._DB_PREFIX_.'state` AS s ON (s.`id_state` = a.`id_state`)
|
||||
WHERE `id_manufacturer` = '.(int)($this->id).'
|
||||
WHERE `id_manufacturer` = '.(int)$this->id.'
|
||||
AND a.`deleted` = 0');
|
||||
}
|
||||
|
||||
|
||||
public function getWsAddresses()
|
||||
{
|
||||
return Db::getInstance()->executeS('
|
||||
SELECT a.id_address as id
|
||||
FROM `'._DB_PREFIX_.'address` AS a
|
||||
WHERE `id_manufacturer` = '.(int)($this->id).'
|
||||
WHERE `id_manufacturer` = '.(int)$this->id.'
|
||||
AND a.`deleted` = 0');
|
||||
}
|
||||
|
||||
|
||||
public function setWsAddresses($id_addresses)
|
||||
{
|
||||
$ids = array();
|
||||
|
||||
@@ -157,6 +157,7 @@ class AdminCategoriesControllerCore extends AdminController
|
||||
$selected_cat = '';
|
||||
|
||||
$this->fields_form = array(
|
||||
'tinymce' => true,
|
||||
'legend' => array(
|
||||
'title' => $this->l('Category'),
|
||||
'image' => '../img/admin/tab-categories.gif'
|
||||
|
||||
@@ -0,0 +1,652 @@
|
||||
<?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: 8971 $
|
||||
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*/
|
||||
|
||||
class AdminManufacturersControllerCore extends AdminController
|
||||
{
|
||||
/** @var array countries list */
|
||||
private $countries_array = array();
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->table = 'manufacturer';
|
||||
$this->className = 'Manufacturer';
|
||||
$this->lang = false;
|
||||
$this->deleted = false;
|
||||
|
||||
$this->bulk_actions = array('delete' => array('text' => $this->l('Delete selected'), 'confirm' => $this->l('Delete selected items?')));
|
||||
|
||||
$this->requiredDatabase = true;
|
||||
|
||||
$this->context = Context::getContext();
|
||||
|
||||
$this->fieldImageSettings = array(
|
||||
'name' => 'logo',
|
||||
'dir' => 'm'
|
||||
);
|
||||
|
||||
$this->fieldsDisplay = array(
|
||||
'id_manufacturer' => array(
|
||||
'title' => $this->l('ID'),
|
||||
'width' => 25
|
||||
),
|
||||
'name' => array(
|
||||
'title' => $this->l('Name'),
|
||||
'width' => 200
|
||||
),
|
||||
'logo' => array(
|
||||
'title' => $this->l('Logo'),
|
||||
'image' => 'm',
|
||||
'orderby' => false,
|
||||
'search' => false
|
||||
),
|
||||
'addresses' => array(
|
||||
'title' => $this->l('Addresses'),
|
||||
'tmpTableFilter' => true,
|
||||
'width' => 20
|
||||
),
|
||||
'products' => array(
|
||||
'title' => $this->l('Products'),
|
||||
'tmpTableFilter' => true,
|
||||
'width' => 20
|
||||
),
|
||||
'active' => array(
|
||||
'title' => $this->l('Enabled'),
|
||||
'width' => 25,
|
||||
'active' => 'status',
|
||||
'type' => 'bool',
|
||||
'orderby' => false
|
||||
)
|
||||
);
|
||||
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function initList()
|
||||
{
|
||||
$this->addRowAction('edit');
|
||||
$this->addRowAction('delete');
|
||||
$this->addRowAction('view');
|
||||
|
||||
$this->_select = '
|
||||
COUNT(`id_product`) AS `products`, (
|
||||
SELECT COUNT(ad.`id_manufacturer`) as `addresses`
|
||||
FROM `'._DB_PREFIX_.'address` ad
|
||||
WHERE ad.`id_manufacturer` = a.`id_manufacturer`
|
||||
AND ad.`deleted` = 0
|
||||
GROUP BY ad.`id_manufacturer`) as `addresses`';
|
||||
$this->_join = 'LEFT JOIN `'._DB_PREFIX_.'product` p ON (a.`id_manufacturer` = p.`id_manufacturer`)';
|
||||
$this->_group = 'GROUP BY a.`id_manufacturer`';
|
||||
|
||||
$this->context->smarty->assign('title_list', $this->l('List of manufacturers:'));
|
||||
|
||||
$this->initToolbar();
|
||||
$this->content .= parent::initList();
|
||||
|
||||
// reset actions and query vars
|
||||
$this->actions = array();
|
||||
unset($this->fieldsDisplay, $this->_select, $this->_join, $this->_group, $this->_filterHaving, $this->_filter);
|
||||
|
||||
$this->table = 'address';
|
||||
$this->identifier = 'id_address';
|
||||
$this->deleted = true;
|
||||
|
||||
$this->addRowAction('editaddresses');
|
||||
$this->addRowAction('delete');
|
||||
|
||||
$this->bulk_actions = array('delete' => array('text' => $this->l('Delete selected'), 'confirm' => $this->l('Delete selected items?')));
|
||||
|
||||
// test if a filter is applied for this list
|
||||
if (Tools::isSubmit('submitFilter'.$this->table) || $this->context->cookie->{'submitFilter'.$this->table} !== false)
|
||||
$this->filter = true;
|
||||
|
||||
// test if a filter reset request is required for this list
|
||||
if (isset($_POST['submitReset'.$this->table]))
|
||||
$this->action = 'reset_filters';
|
||||
else
|
||||
$this->action = '';
|
||||
|
||||
// Sub tab addresses
|
||||
$countries = Country::getCountries($this->context->language->id);
|
||||
foreach ($countries as $country)
|
||||
$this->countries_array[$country['id_country']] = $country['name'];
|
||||
|
||||
$this->fieldsDisplay = array(
|
||||
'id_address' => array(
|
||||
'title' => $this->l('ID'),
|
||||
'width' => 25
|
||||
),
|
||||
'manufacturer_name' => array(
|
||||
'title' => $this->l('Manufacturer'),
|
||||
'width' => 100
|
||||
),
|
||||
'firstname' => array(
|
||||
'title' => $this->l('First name'),
|
||||
'width' => 80
|
||||
),
|
||||
'lastname' => array(
|
||||
'title' => $this->l('Last name'),
|
||||
'width' => 100,
|
||||
'filter_key' => 'a!name'
|
||||
),
|
||||
'postcode' => array(
|
||||
'title' => $this->l('Postcode/ Zip Code'),
|
||||
'align' => 'right',
|
||||
'width' => 50
|
||||
),
|
||||
'city' => array(
|
||||
'title' => $this->l('City'),
|
||||
'width' => 150
|
||||
),
|
||||
'country' => array(
|
||||
'title' => $this->l('Country'),
|
||||
'width' => 100,
|
||||
'type' => 'select',
|
||||
'select' => $this->countries_array,
|
||||
'filter_key' => 'cl!id_country'
|
||||
)
|
||||
);
|
||||
|
||||
$this->_select = 'cl.`name` as country, m.`name` AS manufacturer_name';
|
||||
$this->_join = '
|
||||
LEFT JOIN `'._DB_PREFIX_.'country_lang` cl
|
||||
ON (cl.`id_country` = a.`id_country` AND cl.`id_lang` = '.(int)$this->context->language->id.') ';
|
||||
$this->_join .= '
|
||||
LEFT JOIN `'._DB_PREFIX_.'manufacturer` m
|
||||
ON (a.`id_manufacturer` = m.`id_manufacturer`)';
|
||||
$this->_where = 'AND a.`id_customer` = 0';
|
||||
|
||||
$this->context->smarty->assign('title_list', $this->l('Manufacturers addresses:'));
|
||||
|
||||
// call postProcess() for take care about actions and filters
|
||||
$this->postProcess();
|
||||
|
||||
$this->initToolbar();
|
||||
$this->content .= parent::initList();
|
||||
}
|
||||
|
||||
/**
|
||||
* Display editaddresses action link
|
||||
* @param string $token the token to add to the link
|
||||
* @param int $id the identifier to add to the link
|
||||
* @return string
|
||||
*/
|
||||
public function displayEditaddressesLink($token = null, $id)
|
||||
{
|
||||
if (!array_key_exists('editaddresses', self::$cache_lang))
|
||||
self::$cache_lang['editaddresses'] = $this->l('Edit Adresses');
|
||||
|
||||
$this->context->smarty->assign(array(
|
||||
'href' => self::$currentIndex.
|
||||
'&'.$this->identifier.'='.$id.
|
||||
'&editaddresses&token='.($token != null ? $token : $this->token),
|
||||
'action' => self::$cache_lang['editaddresses'],
|
||||
));
|
||||
|
||||
return $this->context->smarty->fetch(_PS_ADMIN_DIR_.'/themes/template/manufacturers/list_action_edit_adresses.tpl');
|
||||
}
|
||||
|
||||
public function initForm()
|
||||
{
|
||||
$lang_tags = 'short_description¤description¤meta_title¤meta_keywords¤meta_description';
|
||||
$this->fields_form = array(
|
||||
'tinymce' => true,
|
||||
'legend' => array(
|
||||
'title' => $this->l('Manufacturers'),
|
||||
'image' => '../img/admin/manufacturers.gif'
|
||||
),
|
||||
'input' => array(
|
||||
array(
|
||||
'type' => 'text',
|
||||
'label' => $this->l('Name:'),
|
||||
'name' => 'name',
|
||||
'size' => 40,
|
||||
'required' => true,
|
||||
'hint' => $this->l('Invalid characters:').' <>;=#{}'
|
||||
),
|
||||
array(
|
||||
'type' => 'textarea',
|
||||
'label' => $this->l('Short description:'),
|
||||
'name' => 'short_description',
|
||||
'lang' => true,
|
||||
'attributeLang' => $lang_tags,
|
||||
'cols' => 60,
|
||||
'rows' => 10,
|
||||
'class' => 'rte',
|
||||
'hint' => $this->l('Invalid characters:').' <>;=#{}'
|
||||
),
|
||||
array(
|
||||
'type' => 'textarea',
|
||||
'label' => $this->l('Description:'),
|
||||
'name' => 'description',
|
||||
'lang' => true,
|
||||
'attributeLang' => $lang_tags,
|
||||
'cols' => 60,
|
||||
'rows' => 10,
|
||||
'class' => 'rte',
|
||||
'hint' => $this->l('Invalid characters:').' <>;=#{}'
|
||||
),
|
||||
array(
|
||||
'type' => 'file',
|
||||
'label' => $this->l('Logo:'),
|
||||
'name' => 'logo',
|
||||
'display_image' => true,
|
||||
'p' => $this->l('Upload manufacturer logo from your computer')
|
||||
),
|
||||
array(
|
||||
'type' => 'text',
|
||||
'label' => $this->l('Meta title:'),
|
||||
'name' => 'meta_title',
|
||||
'lang' => true,
|
||||
'attributeLang' => $lang_tags,
|
||||
'hint' => $this->l('Forbidden characters:').' <>;=#{}'
|
||||
),
|
||||
array(
|
||||
'type' => 'text',
|
||||
'label' => $this->l('Meta description:'),
|
||||
'name' => 'meta_description',
|
||||
'lang' => true,
|
||||
'attributeLang' => $lang_tags,
|
||||
'hint' => $this->l('Forbidden characters:').' <>;=#{}'
|
||||
),
|
||||
array(
|
||||
'type' => 'text',
|
||||
'label' => $this->l('Meta keywords:'),
|
||||
'name' => 'meta_keywords',
|
||||
'lang' => true,
|
||||
'attributeLang' => $lang_tags,
|
||||
'hint' => $this->l('Forbidden characters:').' <>;=#{}'
|
||||
),
|
||||
array(
|
||||
'type' => 'radio',
|
||||
'label' => $this->l('Enable:'),
|
||||
'name' => 'active',
|
||||
'required' => false,
|
||||
'class' => 't',
|
||||
'is_bool' => true,
|
||||
'values' => array(
|
||||
array(
|
||||
'id' => 'active_on',
|
||||
'value' => 1,
|
||||
'label' => $this->l('Enabled')
|
||||
),
|
||||
array(
|
||||
'id' => 'active_off',
|
||||
'value' => 0,
|
||||
'label' => $this->l('Disabled')
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
/*
|
||||
* Where it used? You can not insert into a table or in the fields of a table
|
||||
*/
|
||||
if (Shop::isFeatureActive())
|
||||
{
|
||||
$this->fields_form['input'][] = array(
|
||||
'type' => 'group_shop',
|
||||
'label' => $this->l('Shop association:'),
|
||||
'name' => 'checkBoxShopAsso',
|
||||
'values' => Shop::getTree()
|
||||
);
|
||||
}
|
||||
|
||||
$this->fields_form['submit'] = array(
|
||||
'title' => $this->l(' Save '),
|
||||
'class' => 'button'
|
||||
);
|
||||
|
||||
if (!($manufacturer = $this->loadObject(true)))
|
||||
return;
|
||||
|
||||
$image = cacheImage(_PS_MANU_IMG_DIR_.'/'.$manufacturer->id.'.jpg', $this->table.'_'.(int)$manufacturer->id.'.'.$this->imageType, 350, $this->imageType, true);
|
||||
|
||||
$this->fields_value = array(
|
||||
'image' => $image ? $image : false,
|
||||
'size' => $image ? filesize(_PS_MANU_IMG_DIR_.'/'.$manufacturer->id.'.jpg') / 1000 : false
|
||||
);
|
||||
|
||||
foreach ($this->_languages as $language)
|
||||
{
|
||||
$this->fields_value['short_description_'.$language['id_lang']] = htmlentities(stripslashes($this->getFieldValue(
|
||||
$manufacturer,
|
||||
'short_description',
|
||||
$language['id_lang']
|
||||
)), ENT_COMPAT, 'UTF-8');
|
||||
|
||||
$this->fields_value['description_'.$language['id_lang']] = htmlentities(stripslashes($this->getFieldValue(
|
||||
$manufacturer,
|
||||
'description',
|
||||
$language['id_lang']
|
||||
)), ENT_COMPAT, 'UTF-8');
|
||||
}
|
||||
|
||||
return parent::initForm();
|
||||
}
|
||||
|
||||
public function initFormAddress()
|
||||
{
|
||||
// Change table and className for addresses
|
||||
$this->table = 'address';
|
||||
$this->className = 'Address';
|
||||
$id_address = Tools::getValue('id_address');
|
||||
|
||||
// Create Object Address
|
||||
$address = new Address($id_address);
|
||||
|
||||
$this->fields_form = array(
|
||||
'legend' => array(
|
||||
'title' => $this->l('Addresses'),
|
||||
'image' => '../img/admin/contact.gif'
|
||||
)
|
||||
);
|
||||
|
||||
if (!$address->id_manufacturer || !Manufacturer::manufacturerExists($address->id_manufacturer))
|
||||
$this->fields_form['input'][] = array(
|
||||
'type' => 'select',
|
||||
'label' => $this->l('Choose the manufacturer:'),
|
||||
'name' => 'id_manufacturer',
|
||||
'options' => array(
|
||||
'query' => Manufacturer::getManufacturers(),
|
||||
'id' => 'id_manufacturer',
|
||||
'name' => 'name'
|
||||
)
|
||||
);
|
||||
else
|
||||
{
|
||||
$this->fields_form['input'][] = array(
|
||||
'type' => 'text',
|
||||
'label' => $this->l('Manufacturer:'),
|
||||
'name' => 'name',
|
||||
'disabled' => true,
|
||||
);
|
||||
|
||||
$this->fields_form['input'][] = array(
|
||||
'type' => 'hidden',
|
||||
'name' => 'id_manufacturer'
|
||||
);
|
||||
}
|
||||
|
||||
$this->fields_form['input'][] = array(
|
||||
'type' => 'hidden',
|
||||
'name' => 'alias',
|
||||
);
|
||||
$this->fields_form['input'][] = array(
|
||||
'type' => 'text',
|
||||
'label' => $this->l('Last name:'),
|
||||
'name' => 'lastname',
|
||||
'size' => 33,
|
||||
'required' => true,
|
||||
'hint' => $this->l('Invalid characters:').' 0-9!<>,;?=+()@#"�{}_$%:'
|
||||
);
|
||||
$this->fields_form['input'][] = array(
|
||||
'type' => 'text',
|
||||
'label' => $this->l('First name:'),
|
||||
'name' => 'firstname',
|
||||
'size' => 33,
|
||||
'required' => true,
|
||||
'hint' => $this->l('Invalid characters:').' 0-9!<>,;?=+()@#"�{}_$%:'
|
||||
);
|
||||
$this->fields_form['input'][] = array(
|
||||
'type' => 'text',
|
||||
'label' => $this->l('Address:'),
|
||||
'name' => 'address1',
|
||||
'size' => 33,
|
||||
'required' => true,
|
||||
);
|
||||
$this->fields_form['input'][] = array(
|
||||
'type' => 'text',
|
||||
'label' => $this->l('Address (2):'),
|
||||
'name' => 'address2',
|
||||
'size' => 33,
|
||||
'required' => false,
|
||||
);
|
||||
$this->fields_form['input'][] = array(
|
||||
'type' => 'text',
|
||||
'label' => $this->l('Postcode / Zip Code:'),
|
||||
'name' => 'postcode',
|
||||
'size' => 33,
|
||||
'required' => false,
|
||||
);
|
||||
$this->fields_form['input'][] = array(
|
||||
'type' => 'text',
|
||||
'label' => $this->l('City:'),
|
||||
'name' => 'city',
|
||||
'size' => 33,
|
||||
'required' => true,
|
||||
);
|
||||
$this->fields_form['input'][] = array(
|
||||
'type' => 'select',
|
||||
'label' => $this->l('Country:'),
|
||||
'name' => 'id_country',
|
||||
'required' => false,
|
||||
'options' => array(
|
||||
'query' => Country::getCountries($this->context->language->id),
|
||||
'id' => 'id_country',
|
||||
'name' => 'name'
|
||||
)
|
||||
);
|
||||
$this->fields_form['input'][] = array(
|
||||
'type' => 'select',
|
||||
'label' => $this->l('State:'),
|
||||
'name' => 'id_state',
|
||||
'required' => false,
|
||||
'options' => array(
|
||||
'query' => array(),
|
||||
'id' => 'id_state',
|
||||
'name' => 'name'
|
||||
)
|
||||
);
|
||||
$this->fields_form['input'][] = array(
|
||||
'type' => 'text',
|
||||
'label' => $this->l('Home phone:'),
|
||||
'name' => 'phone',
|
||||
'size' => 33,
|
||||
'required' => false,
|
||||
);
|
||||
$this->fields_form['input'][] = array(
|
||||
'type' => 'text',
|
||||
'label' => $this->l('Mobile phone:'),
|
||||
'name' => 'phone_mobile',
|
||||
'size' => 33,
|
||||
'required' => false,
|
||||
);
|
||||
$this->fields_form['input'][] = array(
|
||||
'type' => 'textarea',
|
||||
'label' => $this->l('Other:'),
|
||||
'name' => 'other',
|
||||
'cols' => 36,
|
||||
'rows' => 4,
|
||||
'required' => false,
|
||||
'hint' => $this->l('Forbidden characters:').' <>;=#{}'
|
||||
);
|
||||
$this->fields_form['submit'] = array(
|
||||
'title' => $this->l(' Save '),
|
||||
'class' => 'button'
|
||||
);
|
||||
|
||||
$this->fields_value = array(
|
||||
'name' => Manufacturer::getNameById($address->id_manufacturer),
|
||||
'alias' => 'manufacturer'
|
||||
);
|
||||
|
||||
$this->getlanguages();
|
||||
$helper = new HelperForm();
|
||||
$helper->currentIndex = self::$currentIndex;
|
||||
$helper->token = $this->token;
|
||||
$helper->table = $this->table;
|
||||
$helper->identifier = $this->identifier;
|
||||
$helper->id = $address->id;
|
||||
$helper->languages = $this->_languages;
|
||||
$helper->default_form_language = $this->default_form_language;
|
||||
$helper->allow_employee_form_lang = $this->allow_employee_form_lang;
|
||||
$helper->fields_value = $this->getFieldsValue($address);
|
||||
$helper->toolbar_btn = $this->toolbar_btn;
|
||||
$helper->tpl = 'manufacturers/form_addresses.tpl';
|
||||
$this->content .= $helper->generateForm($this->fields_form);
|
||||
}
|
||||
|
||||
public function initView()
|
||||
{
|
||||
if (!($manufacturer = $this->loadObject()))
|
||||
return;
|
||||
|
||||
$addresses = $manufacturer->getAddresses($this->context->language->id);
|
||||
|
||||
$products = $manufacturer->getProductsLite($this->context->language->id);
|
||||
$total_product = count($products);
|
||||
for ($i = 0; $i < $total_product; $i++)
|
||||
{
|
||||
$products[$i] = new Product($products[$i]['id_product'], false, $this->context->language->id);
|
||||
/* Build attributes combinaisons */
|
||||
$combinaisons = $products[$i]->getAttributeCombinaisons($this->context->language->id);
|
||||
foreach ($combinaisons as $k => $combinaison)
|
||||
{
|
||||
$comb_array[$combinaison['id_product_attribute']]['reference'] = $combinaison['reference'];
|
||||
$comb_array[$combinaison['id_product_attribute']]['ean13'] = $combinaison['ean13'];
|
||||
$comb_array[$combinaison['id_product_attribute']]['upc'] = $combinaison['upc'];
|
||||
$comb_array[$combinaison['id_product_attribute']]['quantity'] = $combinaison['quantity'];
|
||||
$comb_array[$combinaison['id_product_attribute']]['attributes'][] = array(
|
||||
$combinaison['group_name'],
|
||||
$combinaison['attribute_name'],
|
||||
$combinaison['id_attribute']
|
||||
);
|
||||
}
|
||||
|
||||
if (isset($comb_array))
|
||||
{
|
||||
foreach ($comb_array as $key => $product_attribute)
|
||||
{
|
||||
$list = '';
|
||||
foreach ($product_attribute['attributes'] as $attribute)
|
||||
$list .= $attribute[0].' - '.$attribute[1].', ';
|
||||
$comb_array[$key]['attributes'] = rtrim($list, ', ');
|
||||
}
|
||||
isset($comb_array) ? $products[$i]->combinaison = $comb_array : '';
|
||||
unset($comb_array);
|
||||
}
|
||||
}
|
||||
|
||||
$this->context->smarty->assign(array(
|
||||
'manufacturer' => $manufacturer,
|
||||
'addresses' => $addresses,
|
||||
'products' => $products
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* AdminController::init() override
|
||||
* @see AdminController::init()
|
||||
*/
|
||||
public function init()
|
||||
{
|
||||
parent::init();
|
||||
|
||||
if (Tools::isSubmit('editaddresses'))
|
||||
$this->display = 'editaddresses';
|
||||
else if (Tools::isSubmit('addaddress'))
|
||||
$this->display = 'addaddress';
|
||||
else if (Tools::isSubmit('submitAddaddress'))
|
||||
$this->action = 'save';
|
||||
else if (Tools::isSubmit('deleteaddress'))
|
||||
$this->action = 'delete';
|
||||
else if (is_array($this->bulk_actions))
|
||||
{
|
||||
foreach ($this->bulk_actions as $bulk_action => $params)
|
||||
{
|
||||
if (Tools::isSubmit('submitBulk'.$bulk_action.$this->table))
|
||||
{
|
||||
$this->action = 'bulk'.$bulk_action;
|
||||
$this->boxes = Tools::getValue($this->table.'Box');
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ($this->ajax && method_exists($this, 'ajaxPreprocess'))
|
||||
$this->ajaxPreProcess();
|
||||
}
|
||||
}
|
||||
|
||||
public function initContent()
|
||||
{
|
||||
if ($this->display == 'edit' || $this->display == 'add')
|
||||
{
|
||||
if (!($this->object = $this->loadObject(true)))
|
||||
return;
|
||||
$this->content .= $this->initForm();
|
||||
}
|
||||
else if ($this->display == 'editaddresses' || $this->display == 'addaddress')
|
||||
$this->content .= $this->initFormAddress();
|
||||
else if ($this->display == 'view')
|
||||
$this->content .= $this->initView();
|
||||
else
|
||||
{
|
||||
$this->content .= $this->initList();
|
||||
$this->content .= $this->initOptions();
|
||||
}
|
||||
|
||||
$this->context->smarty->assign(array(
|
||||
'table' => $this->table,
|
||||
'current' => self::$currentIndex,
|
||||
'token' => $this->token,
|
||||
'content' => $this->content
|
||||
));
|
||||
}
|
||||
|
||||
public function postProcess()
|
||||
{
|
||||
if (Tools::getValue('submitAddaddress') || Tools::isSubmit('deleteaddress'))
|
||||
{
|
||||
$this->table = 'address';
|
||||
$this->className = 'Address';
|
||||
$this->identifier = 'id_address';
|
||||
$this->deleted = true;
|
||||
}
|
||||
parent::postProcess();
|
||||
}
|
||||
|
||||
public function afterImageUpload()
|
||||
{
|
||||
/* Generate image with differents size */
|
||||
if (($id_manufacturer = (int)Tools::getValue('id_manufacturer')) &&
|
||||
isset($_FILES) &&
|
||||
count($_FILES) &&
|
||||
file_exists(_PS_MANU_IMG_DIR_.$id_manufacturer.'.jpg'))
|
||||
{
|
||||
$images_types = ImageType::getImagesTypes('manufacturers');
|
||||
foreach ($images_types as $k => $image_type)
|
||||
imageResize(
|
||||
_PS_MANU_IMG_DIR_.$id_manufacturer.'.jpg',
|
||||
_PS_MANU_IMG_DIR_.$id_manufacturer.'-'.stripslashes($image_type['name']).'.jpg',
|
||||
(int)$image_type['width'],
|
||||
(int)$image_type['height']
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user