// fix update view.tpl in AdminCustomerController and Added new helper : HelperView

git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@9908 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
lLefevre committed 2011-11-05 22:03:08 +00:00
1 parent ced2e2f229
commit ebadf3e961
6 files changed
+194 -76

No files matched your search

+56 -51
View File
@@ -23,7 +23,11 @@
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA * International Registered Trademark & Property of PrestaShop SA
*} *}
<script type="text/javascript">
{extends file="helper/view/view.tpl"}
{block name="override_tpl"}
<script type="text/javascript">
function saveCustomerNote() function saveCustomerNote()
{ {
$('#note_feedback').html('<img src="../img/loader.gif" />').show(); $('#note_feedback').html('<img src="../img/loader.gif" />').show();
@@ -49,9 +53,9 @@
} }
}); });
} }
</script> </script>
<fieldset style="width:400px;float: left"> <fieldset style="width:400px;float: left">
<div style="float: right"> <div style="float: right">
<a href="{$current}&addcustomer&id_customer={$customer->id}&token={$token}"> <a href="{$current}&addcustomer&id_customer={$customer->id}&token={$token}">
<img src="../img/admin/edit.gif" /> <img src="../img/admin/edit.gif" />
@@ -68,9 +72,9 @@
{l s='Last visit:'} {if $customer_stats['last_visit']}{$last_visit}{else}{l s='never'}{/if}<br /> {l s='Last visit:'} {if $customer_stats['last_visit']}{$last_visit}{else}{l s='never'}{/if}<br />
{if $count_better_customers != '-'}{l s='Rank: #'} {$count_better_customers}<br />{/if} {if $count_better_customers != '-'}{l s='Rank: #'} {$count_better_customers}<br />{/if}
{if $shop_is_feature_active}{l s='Shop:'} {$name_shop}<br />{/if} {if $shop_is_feature_active}{l s='Shop:'} {$name_shop}<br />{/if}
</fieldset> </fieldset>
<fieldset style="width:300px;float:left;margin-left:50px"> <fieldset style="width:300px;float:left;margin-left:50px">
<div style="float: right"> <div style="float: right">
<a href="{$current}&addcustomer&id_customer={$customer->id}&token={$token}"> <a href="{$current}&addcustomer&id_customer={$customer->id}&token={$token}">
<img src="../img/admin/edit.gif" /> <img src="../img/admin/edit.gif" />
@@ -96,11 +100,11 @@
{/if} {/if}
</div> </div>
{/if} {/if}
</fieldset> </fieldset>
<div class="clear">&nbsp;</div> <div class="clear">&nbsp;</div>
<fieldset style="height:190px"> <fieldset style="height:190px">
<legend> <legend>
<img src="../img/admin/cms.gif" /> {l s='Add a private note'} <img src="../img/admin/cms.gif" /> {l s='Add a private note'}
</legend> </legend>
@@ -110,13 +114,13 @@
<input type="submit" id="submitCustomerNote" class="button" value="{l s=' Save '}" style="float:left;margin-top:5px" disabled="disabled" /> <input type="submit" id="submitCustomerNote" class="button" value="{l s=' Save '}" style="float:left;margin-top:5px" disabled="disabled" />
<span id="note_feedback" style="float:left;margin:10px 0 0 10px"></span> <span id="note_feedback" style="float:left;margin:10px 0 0 10px"></span>
</form> </form>
</fieldset> </fieldset>
<div class="clear">&nbsp;</div> <div class="clear">&nbsp;</div>
<h2>{l s='Messages'} ({count($messages)})</h2> <h2>{l s='Messages'} ({count($messages)})</h2>
{if count($messages)} {if count($messages)}
<table cellspacing="0" cellpadding="0" class="table"> <table cellspacing="0" cellpadding="0" class="table">
<tr> <tr>
<th class="center">{l s='Status'}</th> <th class="center">{l s='Status'}</th>
@@ -136,19 +140,19 @@
{/foreach} {/foreach}
</table> </table>
<div class="clear">&nbsp;</div> <div class="clear">&nbsp;</div>
{else} {else}
{$customer->firstname} {$customer->lastname} {l s='has never contacted you'} {$customer->firstname} {$customer->lastname} {l s='has never contacted you'}
{/if} {/if}
{* display hook specified to this page : AdminCustomers *} {* display hook specified to this page : AdminCustomers *}
{if $hook !== false} {if $hook !== false}
<div>{$hook}</div> <div>{$hook}</div>
{/if} {/if}
<div class="clear">&nbsp;</div> <div class="clear">&nbsp;</div>
<h2>{l s='Groups'} ({count($groups)})</h2> <h2>{l s='Groups'} ({count($groups)})</h2>
{if $groups AND count($groups)} {if $groups AND count($groups)}
<table cellspacing="0" cellpadding="0" class="table"> <table cellspacing="0" cellpadding="0" class="table">
<tr> <tr>
<th class="center">{l s='ID'}</th> <th class="center">{l s='ID'}</th>
@@ -163,12 +167,12 @@
</tr> </tr>
{/foreach} {/foreach}
</table> </table>
{/if} {/if}
<div class="clear">&nbsp;</div> <div class="clear">&nbsp;</div>
<h2>{l s='Orders'} ({count($orders)})</h2> <h2>{l s='Orders'} ({count($orders)})</h2>
{if $orders AND count($orders)} {if $orders AND count($orders)}
{assign var=count_ok value=count($orders_ok)} {assign var=count_ok value=count($orders_ok)}
{if $count_ok} {if $count_ok}
<div style="float:left;margin-right:20px"> <div style="float:left;margin-right:20px">
@@ -228,12 +232,12 @@
</div> </div>
<div class="clear">&nbsp;</div> <div class="clear">&nbsp;</div>
{/if} {/if}
{else} {else}
{$customer->firstname} {$customer->lastname} {l s='has not placed any orders yet'} {$customer->firstname} {$customer->lastname} {l s='has not placed any orders yet'}
{/if} {/if}
{if $products AND count($products)} {if $products AND count($products)}
<div class="clear">&nbsp;</div> <div class="clear">&nbsp;</div>
<h2>{l s='Products'} ({count($products)})</h2> <h2>{l s='Products'} ({count($products)})</h2>
<table cellspacing="0" cellpadding="0" class="table"> <table cellspacing="0" cellpadding="0" class="table">
<tr> <tr>
@@ -251,11 +255,11 @@
</tr> </tr>
{/foreach} {/foreach}
</table> </table>
{/if} {/if}
<div class="clear">&nbsp;</div> <div class="clear">&nbsp;</div>
<h2>{l s='Addresses'} ({count($addresses)})</h2> <h2>{l s='Addresses'} ({count($addresses)})</h2>
{if count($addresses)} {if count($addresses)}
<table cellspacing="0" cellpadding="0" class="table"> <table cellspacing="0" cellpadding="0" class="table">
<tr> <tr>
<th>{l s='Company'}</th> <th>{l s='Company'}</th>
@@ -286,13 +290,13 @@
</tr> </tr>
{/foreach} {/foreach}
</table> </table>
{else} {else}
{$customer->firstname} {$customer->lastname} {l s='has not registered any addresses yet'} {$customer->firstname} {$customer->lastname} {l s='has not registered any addresses yet'}
{/if} {/if}
<div class="clear">&nbsp;</div> <div class="clear">&nbsp;</div>
<h2>{l s='Discounts'} ({count($discounts)})</h2> <h2>{l s='Discounts'} ({count($discounts)})</h2>
{if count($discounts)} {if count($discounts)}
<table cellspacing="0" cellpadding="0" class="table"> <table cellspacing="0" cellpadding="0" class="table">
<tr> <tr>
<th>{l s='ID'}</th> <th>{l s='ID'}</th>
@@ -318,12 +322,12 @@
</tr> </tr>
{/foreach} {/foreach}
</table> </table>
{else} {else}
{$customer->firstname} {$customer->lastname} {l s='has no discount vouchers'}. {$customer->firstname} {$customer->lastname} {l s='has no discount vouchers'}.
{/if} {/if}
<div class="clear">&nbsp;</div> <div class="clear">&nbsp;</div>
<div style="float:left"> <div style="float:left">
<h2>{l s='Carts'} ({count($carts)})</h2> <h2>{l s='Carts'} ({count($carts)})</h2>
{if $carts AND count($carts)} {if $carts AND count($carts)}
<table cellspacing="0" cellpadding="0" class="table"> <table cellspacing="0" cellpadding="0" class="table">
@@ -347,9 +351,9 @@
{else} {else}
{l s='No cart available'}. {l s='No cart available'}.
{/if} {/if}
</div> </div>
{if count($interested)} {if count($interested)}
<div style="float:left;margin-left:20px"> <div style="float:left;margin-left:20px">
<h2>{l s='Products'} ({count($interested)})</h2> <h2>{l s='Products'} ({count($interested)})</h2>
<table cellspacing="0" cellpadding="0" class="table"> <table cellspacing="0" cellpadding="0" class="table">
@@ -362,12 +366,12 @@
{/foreach} {/foreach}
</table> </table>
</div> </div>
{/if} {/if}
<div class="clear">&nbsp;</div> <div class="clear">&nbsp;</div>
{* Last connections *} {* Last connections *}
{if count($connections)} {if count($connections)}
<h2>{l s='Last connections'}</h2> <h2>{l s='Last connections'}</h2>
<table cellspacing="0" cellpadding="0" class="table"> <table cellspacing="0" cellpadding="0" class="table">
<tr> <tr>
@@ -388,9 +392,9 @@
{/foreach} {/foreach}
</table> </table>
<div class="clear">&nbsp;</div> <div class="clear">&nbsp;</div>
{/if} {/if}
{if count($referrers)} {if count($referrers)}
<h2>{l s='Referrers'}</h2> <h2>{l s='Referrers'}</h2>
<table cellspacing="0" cellpadding="0" class="table"> <table cellspacing="0" cellpadding="0" class="table">
<tr> <tr>
@@ -407,5 +411,6 @@
{/foreach} {/foreach}
</table> </table>
<div class="clear">&nbsp;</div> <div class="clear">&nbsp;</div>
{/if} {/if}
<a href="{$current}&token={$token}"><img src="../img/admin/arrow2.gif" /> {l s='Back to customer list'}</a><br /> {/block}
@@ -0,0 +1,43 @@
{*
* 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: 8971 $
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*}
<div class="toolbar-placeholder">
<div class="toolbarBox {if $toolbar_fix}toolbarHead{/if}">
{if $show_toolbar}
{include file="toolbar.tpl" toolbar_btn=$toolbar_btn}
<div class="pageTitle">
<h3>
{block name=pageTitle}
<span id="current_obj" style="font-weight: normal;">{$title|default:'&nbsp;'}</span>
{/block}
</h3>
</div>
{/if}
<div class="leadin">{block name="leadin"}{/block}</div>
</div>
</div>
{block name="override_tpl"}{/block}
+22 -3
View File
@@ -73,6 +73,7 @@ class AdminControllerCore extends Controller
public $tpl_form_vars = array(); public $tpl_form_vars = array();
public $tpl_list_vars = array(); public $tpl_list_vars = array();
public $tpl_view_vars = array();
public $fields_value = false; public $fields_value = false;
@@ -289,6 +290,10 @@ class AdminControllerCore extends Controller
array_pop($tabs); array_pop($tabs);
$tabs[] = array('name' => sprintf($this->l('Add %s'), $this->table)); $tabs[] = array('name' => sprintf($this->l('Add %s'), $this->table));
break; break;
case 'view':
array_pop($tabs);
$tabs[] = array('name' => sprintf($this->l('View %s'), $this->table));
break;
} }
// note : this should use a tpl file // note : this should use a tpl file
foreach ($tabs AS $key => $item) foreach ($tabs AS $key => $item)
@@ -1003,17 +1008,17 @@ class AdminControllerCore extends Controller
// Template override // Template override
$tpl = $this->tpl_folder.'content.tpl'; $tpl = $this->tpl_folder.'content.tpl';
$tpl_action = $this->tpl_folder.$this->display.'.tpl'; //$tpl_action = $this->tpl_folder.$this->display.'.tpl';
// Check if action template has been override // Check if action template has been override
// new smarty : template_dir is an array. // new smarty : template_dir is an array.
// @todo : add override path to the smarty config, and checking all array item // @todo : add override path to the smarty config, and checking all array item
if (file_exists($this->context->smarty->template_dir[0].'/'.$tpl_action)) /*if (file_exists($this->context->smarty->template_dir[0].'/'.$tpl_action))
{ {
if (method_exists($this, $this->display.Tools::toCamelCase($this->className))) if (method_exists($this, $this->display.Tools::toCamelCase($this->className)))
$this->{$this->display.Tools::toCamelCase($this->className)}(); $this->{$this->display.Tools::toCamelCase($this->className)}();
$this->context->smarty->assign('content', $this->context->smarty->fetch($tpl_action)); $this->context->smarty->assign('content', $this->context->smarty->fetch($tpl_action));
} }*/
// Check if content template has been override // Check if content template has been override
if (file_exists($this->context->smarty->template_dir[0].'/'.$tpl)) if (file_exists($this->context->smarty->template_dir[0].'/'.$tpl))
@@ -1332,6 +1337,17 @@ class AdminControllerCore extends Controller
*/ */
public function initView() public function initView()
{ {
if (empty($this->toolbar_title))
$this->initToolbarTitle();
$helper = new HelperView($this);
$helper->override_folder = $this->tpl_folder;
$helper->tpl_vars = $this->tpl_view_vars;
$this->setHelperDisplay($helper);
$view = $helper->generateView();
$this->toolbar_fix = false;
return $view;
} }
/** /**
@@ -1672,7 +1688,10 @@ class AdminControllerCore extends Controller
if (isset($_GET['view'.$this->table])) if (isset($_GET['view'.$this->table]))
{ {
if ($this->tabAccess['view'] === '1') if ($this->tabAccess['view'] === '1')
{
$this->display = 'view'; $this->display = 'view';
$this->action = 'view';
}
else else
$this->_errors[] = Tools::displayError('You do not have permission to view here.'); $this->_errors[] = Tools::displayError('You do not have permission to view here.');
} }
-1
View File
@@ -63,7 +63,6 @@ class HelperCore
public function __construct() public function __construct()
{ {
$this->context = Context::getContext(); $this->context = Context::getContext();
} }
/*public function setTpl($tpl) /*public function setTpl($tpl)
+62
View File
@@ -0,0 +1,62 @@
<?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: 9194 $
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
class HelperViewCore extends Helper
{
public $id;
public $toolbar = true;
public $table;
public $token;
/** @var if not null, a title will be added on that list */
public $title = null;
public function __construct()
{
$this->base_folder = 'helper/view/';
$this->base_tpl = 'view.tpl';
parent::__construct();
}
public function generateView()
{
$this->tpl = $this->createTemplate($this->base_tpl);
$this->tpl->assign(array(
'title' => $this->title,
'current' => $this->currentIndex,
'title' => $this->title,
'token' => $this->token,
'table' => $this->table,
'show_toolbar' => $this->show_toolbar,
'toolbar_fix' => $this->toolbar_fix,
'toolbar_btn' => $this->toolbar_btn
));
return parent::generate();
}
}
+11 -21
View File
@@ -34,16 +34,8 @@ class AdminCustomersControllerCore extends AdminController
$this->lang = false; $this->lang = false;
$this->deleted = true; $this->deleted = true;
$this->addRowAction('edit');
$this->addRowAction('view');
$this->addRowAction('delete');
$this->requiredDatabase = true;
$this->context = Context::getContext(); $this->context = Context::getContext();
$this->bulk_actions = array('delete' => array('text' => $this->l('Delete selected'), 'confirm' => $this->l('Delete selected items?')));
$this->default_form_language = $this->context->language->id; $this->default_form_language = $this->context->language->id;
$genders_icon = array('default' => 'unknown.gif'); $genders_icon = array('default' => 'unknown.gif');
@@ -152,6 +144,12 @@ class AdminCustomersControllerCore extends AdminController
public function initList() public function initList()
{ {
$this->addRowAction('edit');
$this->addRowAction('view');
$this->addRowAction('delete');
$this->bulk_actions = array('delete' => array('text' => $this->l('Delete selected'), 'confirm' => $this->l('Delete selected items?')));
$this->_select = '(YEAR(CURRENT_DATE)-YEAR(`birthday`)) - (RIGHT(CURRENT_DATE, 5) < RIGHT(birthday, 5)) AS `age`, ( $this->_select = '(YEAR(CURRENT_DATE)-YEAR(`birthday`)) - (RIGHT(CURRENT_DATE, 5) < RIGHT(birthday, 5)) AS `age`, (
SELECT c.date_add FROM '._DB_PREFIX_.'guest g SELECT c.date_add FROM '._DB_PREFIX_.'guest g
LEFT JOIN '._DB_PREFIX_.'connections c ON c.id_guest = g.id_guest LEFT JOIN '._DB_PREFIX_.'connections c ON c.id_guest = g.id_guest
@@ -366,13 +364,6 @@ class AdminCustomersControllerCore extends AdminController
return parent::initForm(); return parent::initForm();
} }
public function initContent()
{
if ($this->display == 'view')
return $this->initView();
parent::initContent();
}
public function initView() public function initView()
{ {
if (!($customer = $this->loadObject())) if (!($customer = $this->loadObject()))
@@ -492,11 +483,7 @@ class AdminCustomersControllerCore extends AdminController
for ($i = 0; $i < $total_referrers; $i++) for ($i = 0; $i < $total_referrers; $i++)
$referrers[$i]['date_add'] = Tools::displayDate($referrers[$i]['date_add'], $this->default_form_language, true); $referrers[$i]['date_add'] = Tools::displayDate($referrers[$i]['date_add'], $this->default_form_language, true);
$this->context->smarty->assign(array( $this->tpl_view_vars = array(
'table' => $this->table,
'current' => self::$currentIndex,
'token' => $this->token,
'content' => $this->content,
'customer' => $customer, 'customer' => $customer,
'gender_image' => $gender_image, 'gender_image' => $gender_image,
@@ -550,7 +537,10 @@ class AdminCustomersControllerCore extends AdminController
// Referrers // Referrers
'referrers' => $referrers, 'referrers' => $referrers,
)); 'show_toolbar' => true
);
return parent::initView();
} }
public function postProcess() public function postProcess()