[*] BO #PSFV-94 : update of the displayform method by helperForm in AdminGenderController
This commit is contained in:
@@ -1,148 +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$
|
||||
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
||||
* International Registered Trademark & Property of PrestaShop SA
|
||||
*/
|
||||
|
||||
class AdminGenders extends AdminTab
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->table = 'gender';
|
||||
$this->className = 'Gender';
|
||||
$this->lang = true;
|
||||
$this->edit = true;
|
||||
$this->delete = true;
|
||||
$this->defaultImageHeight = 16;
|
||||
$this->defaultImageWidth = 16;
|
||||
|
||||
$this->fieldImageSettings = array('name' => 'image', 'dir' => 'genders');
|
||||
$this->fieldsDisplay = array(
|
||||
'id_gender' => array('title' => $this->l('ID'), 'align' => 'center', 'width' => 25),
|
||||
'name' => array('title' => $this->l('Name'), 'width' => 150, 'filter_key' => 'b!name'),
|
||||
'type' => array(
|
||||
'title' => $this->l('Type'),
|
||||
'width' => 100,
|
||||
'orderby' => false,
|
||||
'type' => 'select',
|
||||
'select' => array(0 => $this->l('Male'), 1 => $this->l('Female'), 2 => $this->l('Neutral')),
|
||||
'filter_key' => 'a!type',
|
||||
'callback' => 'displayGenderType',
|
||||
'callback_object' => $this,
|
||||
),
|
||||
'image' => array('title' => $this->l('Image'), 'align' => 'center', 'image' => 'genders', 'orderby' => false, 'search' => false),
|
||||
);
|
||||
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function displayGenderType($value, $tr)
|
||||
{
|
||||
return $this->fieldsDisplay['type']['select'][$value];
|
||||
}
|
||||
|
||||
public function displayForm($isMainTab = true)
|
||||
{
|
||||
parent::displayForm();
|
||||
|
||||
if (!($obj = $this->loadObject(true)))
|
||||
return;
|
||||
|
||||
echo '
|
||||
<form action="'.self::$currentIndex.'&submitAdd'.$this->table.'=1&token='.$this->token.'" method="post" enctype="multipart/form-data">
|
||||
'.($obj->id ? '<input type="hidden" name="id_'.$this->table.'" value="'.$obj->id.'" />' : '').'
|
||||
<fieldset><legend><img src="../img/admin/tab-genders.gif" />'.$this->l('Gender').'</legend>
|
||||
<label>'.$this->l('Name:').' </label>
|
||||
<div class="margin-form">';
|
||||
foreach ($this->_languages as $language)
|
||||
echo '
|
||||
<div id="name_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $this->_defaultFormLanguage ? 'block' : 'none').'; float: left;">
|
||||
<input size="33" type="text" name="name_'.$language['id_lang'].'" value="'.htmlentities($this->getFieldValue($obj, 'name', (int)($language['id_lang'])), ENT_COMPAT, 'UTF-8').'" /><sup> *</sup>
|
||||
<span class="hint" name="help_box">'.$this->l('Invalid characters:').' 0-9!<>,;?=+()@#"�{}_$%:<span class="hint-pointer"> </span></span>
|
||||
</div>';
|
||||
$this->displayFlags($this->_languages, $this->_defaultFormLanguage, 'name', 'name');
|
||||
echo '</div><div class="clear"> </div>';
|
||||
|
||||
echo '<label>'.$this->l('Type:').' </label>
|
||||
<div class="margin-form">
|
||||
<input type="radio" name="type" id="type_male" value="0" '.($this->getFieldValue($obj, 'type') == 0 ? 'checked="checked" ' : '').'/>
|
||||
<label class="t" for="type_male"> '.$this->l('Male').'</label>
|
||||
<input type="radio" name="type" id="type_female" value="1" '.($this->getFieldValue($obj, 'type') == 1 ? 'checked="checked" ' : '').'/>
|
||||
<label class="t" for="type_female"> '.$this->l('Female').'</label>
|
||||
<input type="radio" name="type" id="type_neutral" value="2" '.($this->getFieldValue($obj, 'type') == 2 ? 'checked="checked" ' : '').'/>
|
||||
<label class="t" for="type_neutral"> '.$this->l('Neutral').'</label>
|
||||
</div>
|
||||
<div class="clear"></div>';
|
||||
|
||||
echo '<label>'.$this->l('Image:').' </label>
|
||||
<div class="margin-form">';
|
||||
echo ' <input type="file" name="image" />';
|
||||
if ($obj->getImage())
|
||||
echo '<img src="'.$obj->getImage().'" />';
|
||||
echo '</div>
|
||||
<div class="clear"></div>
|
||||
<label>'.$this->l('Image Width:').' </label>
|
||||
<div class="margin-form">
|
||||
<input size="4" type="text" name="img_width" value="'.$this->defaultImageWidth.'" />
|
||||
<p>'.$this->l('Image width in pixel. "0" to use original size').'</p>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
<label>'.$this->l('Image Height:').' </label>
|
||||
<div class="margin-form">
|
||||
<input size="4" type="text" name="img_height" value="'.$this->defaultImageHeight.'" />
|
||||
<p>'.$this->l('Image height in pixel. "0" to use original size').'</p>
|
||||
</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><br />';
|
||||
}
|
||||
|
||||
protected function postImage($id)
|
||||
{
|
||||
if (isset($this->fieldImageSettings['name']) AND isset($this->fieldImageSettings['dir']))
|
||||
{
|
||||
if(!Validate::isInt(Tools::getValue('img_width')) || !Validate::isInt(Tools::getValue('img_height')))
|
||||
$this->_errors[] = Tools::displayError('Width and height must be a numeric');
|
||||
else
|
||||
{
|
||||
if ((int)Tools::getValue('img_width') > 0 && (int)Tools::getValue('img_height') > 0)
|
||||
{
|
||||
$width = (int)Tools::getValue('img_width');
|
||||
$height = (int)Tools::getValue('img_height');
|
||||
}
|
||||
else
|
||||
{
|
||||
$width = NULL;
|
||||
$height = NULL;
|
||||
}
|
||||
return $this->uploadImage($id, $this->fieldImageSettings['name'], $this->fieldImageSettings['dir'].'/', false, $width, $height);
|
||||
}
|
||||
}
|
||||
return !sizeof($this->_errors) ? true : false;
|
||||
}
|
||||
}
|
||||
@@ -55,7 +55,7 @@
|
||||
<script type="text/javascript" src="../js/form.js"></script>
|
||||
{/if}
|
||||
|
||||
<form action="{$current}&submitAdd{$table}=1&token={$token}" method="post">
|
||||
<form action="{$current}&submitAdd{$table}=1&token={$token}" method="post" enctype="multipart/form-data">
|
||||
{if $form_id}
|
||||
<input type="hidden" name="id_{$table}" value="{$form_id}" />
|
||||
{/if}
|
||||
@@ -172,6 +172,9 @@
|
||||
{/if}
|
||||
{elseif $input.type == 'checkbox'}
|
||||
|
||||
{elseif $input.type == 'file'}
|
||||
<input type="file" name="{$input.name}" />
|
||||
<img src="{$fields_value[$input.name]}" />
|
||||
{/if}
|
||||
{if isset($input.required) && $input.required} <sup>*</sup>{/if}
|
||||
{if isset($input.p)}
|
||||
|
||||
@@ -170,6 +170,9 @@ class AdminControllerCore extends Controller
|
||||
/** @var array Name and directory where class image are located */
|
||||
public $fieldImageSettings = array();
|
||||
|
||||
/** @var string Image type */
|
||||
public $imageType = 'jpg';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
// retro-compatibility : className for admin without controller
|
||||
@@ -968,6 +971,7 @@ class AdminControllerCore extends Controller
|
||||
$helper->shopLinkType = $this->shopLinkType;
|
||||
$helper->identifier = $this->identifier;
|
||||
$helper->token = $this->token;
|
||||
$helper->imageType = $this->imageType;
|
||||
$helper->_listSkipDelete = $this->_listSkipDelete;
|
||||
$helper->colorOnBackground = $this->colorOnBackground;
|
||||
|
||||
@@ -1388,11 +1392,11 @@ class AdminControllerCore extends Controller
|
||||
protected function getFieldValue($obj, $key, $id_lang = null)
|
||||
{
|
||||
if ($id_lang)
|
||||
$defaultValue = ($obj->id && isset($obj->{$key}[$id_lang])) ? $obj->{$key}[$id_lang] : '';
|
||||
$default_value = ($obj->id && isset($obj->{$key}[$id_lang])) ? $obj->{$key}[$id_lang] : '';
|
||||
else
|
||||
$defaultValue = isset($obj->{$key}) ? $obj->{$key} : '';
|
||||
$default_value = isset($obj->{$key}) ? $obj->{$key} : '';
|
||||
|
||||
return Tools::getValue($key.($id_lang ? '_'.$id_lang : ''), $defaultValue);
|
||||
return Tools::getValue($key.($id_lang ? '_'.$id_lang : ''), $default_value);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1597,6 +1601,42 @@ class AdminControllerCore extends Controller
|
||||
return !count($this->_errors) ? true : false;
|
||||
}
|
||||
|
||||
protected function uploadImage($id, $name, $dir, $ext = false, $width = NULL, $height = NULL)
|
||||
{
|
||||
if (isset($_FILES[$name]['tmp_name']) && !empty($_FILES[$name]['tmp_name']))
|
||||
{
|
||||
// Delete old image
|
||||
if (Validate::isLoadedObject($object = $this->loadObject()))
|
||||
$object->deleteImage();
|
||||
else
|
||||
return false;
|
||||
|
||||
|
||||
// Check image validity
|
||||
$max_size = isset($this->maxImageSize) ? $this->maxImageSize : 0;
|
||||
if ($error = checkImage($_FILES[$name], Tools::getMaxUploadSize($max_size)))
|
||||
$this->_errors[] = $error;
|
||||
elseif (!$tmpName = tempnam(_PS_TMP_IMG_DIR_, 'PS') || !move_uploaded_file($_FILES[$name]['tmp_name'], $tmpName))
|
||||
return false;
|
||||
else
|
||||
{
|
||||
$tmpName = $_FILES[$name]['tmp_name'];
|
||||
// Copy new image
|
||||
if (!imageResize($tmpName, _PS_IMG_DIR_.$dir.$id.'.'.$this->imageType, (int)$width, (int)$height, ($ext ? $ext : $this->imageType)))
|
||||
$this->_errors[] = Tools::displayError('An error occurred while uploading image.');
|
||||
if (count($this->_errors))
|
||||
return false;
|
||||
if ($this->afterImageUpload())
|
||||
{
|
||||
unlink($tmpName);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete multiple items
|
||||
*
|
||||
|
||||
@@ -1077,7 +1077,7 @@ abstract class AdminTabCore
|
||||
return false;
|
||||
else
|
||||
{
|
||||
$_FILES[$name]['tmp_name'] = $tmpName;
|
||||
$tmpName = $_FILES[$name]['tmp_name'];
|
||||
// Copy new image
|
||||
if (!imageResize($tmpName, _PS_IMG_DIR_.$dir.$id.'.'.$this->imageType, (int)$width, (int)$height, ($ext ? $ext : $this->imageType)))
|
||||
$this->_errors[] = Tools::displayError('An error occurred while uploading image.');
|
||||
|
||||
+4
-4
@@ -85,15 +85,15 @@ class GenderCore extends ObjectModel
|
||||
return ObjectModel::hydrateCollection('Gender', $results, $id_lang);
|
||||
}
|
||||
|
||||
public static function getStaticImage($id, $useUnknown = false)
|
||||
public static function getStaticImage($id, $use_unknown = false)
|
||||
{
|
||||
if (!file_exists(_PS_GENDERS_DIR_.$id.'.jpg'))
|
||||
return ($useUnknown) ? _PS_ADMIN_IMG_.'unknown.gif' : false;
|
||||
return ($use_unknown) ? _PS_ADMIN_IMG_.'unknown.gif' : false;
|
||||
return _THEME_GENDERS_DIR_.$id.'.jpg';
|
||||
}
|
||||
|
||||
public function getImage($useUnknown = false)
|
||||
public function getImage($use_unknown = false)
|
||||
{
|
||||
return Gender::getStaticImage($this->id, $useUnknown);
|
||||
return Gender::getStaticImage($this->id, $use_unknown);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,207 @@
|
||||
<?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 AdminGendersController extends AdminController
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
$this->table = 'gender';
|
||||
$this->className = 'Gender';
|
||||
$this->lang = true;
|
||||
$this->edit = true;
|
||||
$this->delete = true;
|
||||
$this->requiredDatabase = true;
|
||||
|
||||
$this->context = Context::getContext();
|
||||
|
||||
if (!Tools::getValue('realedit'))
|
||||
$this->deleted = false;
|
||||
|
||||
$this->bulk_actions = array('delete' => array('text' => $this->l('Delete selected'), 'confirm' => $this->l('Delete selected items?')));
|
||||
|
||||
$this->default_image_height = 16;
|
||||
$this->default_image_width = 16;
|
||||
|
||||
$this->fieldImageSettings = array(
|
||||
'name' => 'image',
|
||||
'dir' => 'genders'
|
||||
);
|
||||
|
||||
$this->fieldsDisplay = array(
|
||||
'id_gender' => array(
|
||||
'title' => $this->l('ID'),
|
||||
'align' => 'center',
|
||||
'width' => 25
|
||||
),
|
||||
'name' => array(
|
||||
'title' => $this->l('Name'),
|
||||
'width' => 150,
|
||||
'filter_key' => 'b!name'
|
||||
),
|
||||
'type' => array(
|
||||
'title' => $this->l('Type'),
|
||||
'width' => 100,
|
||||
'orderby' => false,
|
||||
'type' => 'select',
|
||||
'select' => array(
|
||||
0 => $this->l('Male'),
|
||||
1 => $this->l('Female'),
|
||||
2 => $this->l('Neutral')
|
||||
),
|
||||
'filter_key' => 'a!type',
|
||||
'callback' => 'displayGenderType',
|
||||
'callback_object' => $this,
|
||||
),
|
||||
'image' => array(
|
||||
'title' => $this->l('Image'),
|
||||
'align' => 'center',
|
||||
'image' => 'genders',
|
||||
'orderby' => false,
|
||||
'search' => false
|
||||
)
|
||||
);
|
||||
|
||||
$this->fields_form = array(
|
||||
'legend' => array(
|
||||
'title' => $this->l('Gender'),
|
||||
'image' => '../img/admin/tab-genders.gif'
|
||||
),
|
||||
'input' => array(
|
||||
array(
|
||||
'type' => 'text',
|
||||
'label' => $this->l('Name:'),
|
||||
'name' => 'name',
|
||||
'lang' => true,
|
||||
'attributeLang' => 'name',
|
||||
'size' => 33,
|
||||
'hint' => $this->l('Invalid characters:').' 0-9!<>,;?=+()@#"�{}_$%:',
|
||||
'required' => true
|
||||
),
|
||||
array(
|
||||
'type' => 'radio',
|
||||
'label' => $this->l('Type:'),
|
||||
'name' => 'type',
|
||||
'required' => false,
|
||||
'class' => 't',
|
||||
'values' => array(
|
||||
array(
|
||||
'id' => 'type_male',
|
||||
'value' => 0,
|
||||
'label' => $this->l('Male')
|
||||
),
|
||||
array(
|
||||
'id' => 'type_female',
|
||||
'value' => 1,
|
||||
'label' => $this->l('Female')
|
||||
),
|
||||
array(
|
||||
'id' => 'type_neutral',
|
||||
'value' => 2,
|
||||
'label' => $this->l('Neutral')
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'type' => 'file',
|
||||
'label' => $this->l('Image:'),
|
||||
'name' => 'image',
|
||||
'value' => true
|
||||
),
|
||||
array(
|
||||
'type' => 'text',
|
||||
'label' => $this->l('Image Width:'),
|
||||
'name' => 'img_width',
|
||||
'size' => 4,
|
||||
'p' => $this->l('Image width in pixel. "0" to use original size')
|
||||
),
|
||||
array(
|
||||
'type' => 'text',
|
||||
'label' => $this->l('Image Height:'),
|
||||
'name' => 'img_height',
|
||||
'size' => 4,
|
||||
'p' => $this->l('Image height in pixel. "0" to use original size')
|
||||
)
|
||||
),
|
||||
'submit' => array(
|
||||
'title' => $this->l(' Save '),
|
||||
'class' => 'button'
|
||||
)
|
||||
);
|
||||
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function initContent()
|
||||
{
|
||||
if ($this->display != 'edit' && $this->display != 'add')
|
||||
$this->display = 'list';
|
||||
else
|
||||
{
|
||||
if (!($obj = $this->loadObject(true)))
|
||||
return;
|
||||
|
||||
$this->fields_value = array(
|
||||
'img_width' => $this->default_image_width,
|
||||
'img_height' => $this->default_image_height,
|
||||
'image' => $obj->getImage()
|
||||
);
|
||||
}
|
||||
|
||||
parent::initContent();
|
||||
}
|
||||
|
||||
public function displayGenderType($value, $tr)
|
||||
{
|
||||
return $this->fieldsDisplay['type']['select'][$value];
|
||||
}
|
||||
|
||||
protected function postImage($id)
|
||||
{
|
||||
if (isset($this->fieldImageSettings['name']) && isset($this->fieldImageSettings['dir']))
|
||||
{
|
||||
if (!Validate::isInt(Tools::getValue('img_width')) || !Validate::isInt(Tools::getValue('img_height')))
|
||||
$this->_errors[] = Tools::displayError('Width and height must be a numeric');
|
||||
else
|
||||
{
|
||||
if ((int)Tools::getValue('img_width') > 0 && (int)Tools::getValue('img_height') > 0)
|
||||
{
|
||||
$width = (int)Tools::getValue('img_width');
|
||||
$height = (int)Tools::getValue('img_height');
|
||||
}
|
||||
else
|
||||
{
|
||||
$width = null;
|
||||
$height = null;
|
||||
}
|
||||
return $this->uploadImage($id, $this->fieldImageSettings['name'], $this->fieldImageSettings['dir'].'/', false, $width, $height);
|
||||
}
|
||||
}
|
||||
return !count($this->_errors) ? true : false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user