[-]BO : bug color parameter in List
In field list, if there is another field with 'color' => 'color_field', (and color_field column in the select), the background color is always the value of field list column 'color', never 'color_field'
the lines:
{block name="td_content"}
...
{if isset($params.color) && isset($tr[$params.color])}
<span class="color_field" style="background-color:{$tr.color};...
{/if}
must be:
{block name="td_content"}
...
{if isset($params.color) && isset($tr[$params.color])}
<span class="color_field" style="background-color:{$tr[$params.color])};...
{/if}
In the fields list, for display list, there is :
'osname' => array(
'title' => $this->l('Status'),
'color' => 'color',
...
),
'color parameter gives the name of column in _List to be used as color background.
Currently, it is the same 'color' parameter which is used for one field and the row: (ex:osname)
<span class="color_field" style="background-color:{$tr.color};...
But if there is another field with 'color' => 'color_field', (and color_field in the select), the background color is always 'color', never 'color_field'
That can be fixed with :
<span class="color_field" style="background-color:{$tr[$params.color])};...
So the background color of the row (if colorOnBackground = true) and one row's field will be the value of the column given by 'color'=>'color', and The background color of others fields will be the value of the column given by their parameter 'color'=>'<color_field>'
$this->_select = '..color ..., ... color_field2 ...';
$this->fields_list = array(
'field1' => array(
'title' => $this->l('Status'),
'color' => 'color', // will also be the bg color of the row
...
),
'field2' => array(
'title' => $this->l('Status'),
'color' => 'color_field2',
...
),
'field2' => array(
'title' => $this->l('Status'),
'color' => 'color_field3',
...
),
[*] BO : Add block "override_form_extra" in list_header.tpl
{if !$simple_header}
<form method="post" action="{$action}" class="form">
{block name="override_form_extra"}{/block}
In AdminXxxxController, If we display list which are filtered by "variable" like
index.php?controller=AdminXxxx&variable=val&token=...
When using pagination or columns filters, the controller is called without our variable.
There are two methods to retrieve our variable: cookie or form Post.
To use the second opportunity, we need to put hidden input "variable" in the form.
So we need à block in the form to override.
[*] BO : Add block "override_form_extra" in list_header.tpl
{if !$simple_header}
<form method="post" action="{$action}" class="form">
{block name="override_form_extra"}{/block}
In AdminXxxxController, If we display list which are filtered by "variable" like
index.php?controller=AdminXxxx&variable=val&token=...
When using pagination or columns filters, the controller is called without our variable.
There are two methods to retrieve our variable: cookie or form Post.
To use the second opportunity, we need to put hidden input "variable" in the form.
So we need à block in the form to override.
[*] BO : Add block "close_td" in list_content.tpl
{block name="td_content"}
.....
{/block}
{block name="close_td"}
{/block}
So now we can override "td" and "/td" tags.
So we can create
"td" "a" ... content.... "/a" "/td"
when overriding the block open-td and close-td
and we can use "a" tag with "href" rather than "onclick" to create view links in the list.
And the user can choose to open the link in another tab or window.
[*] BO : Add block "close_td" in list_content.tpl
{block name="td_content"}
.....
{/block}
{block name="close_td"}
{/block}
So now we can override "td" and "/td" tags.
So we can create
"td" "a" ... content.... "/a" "/td"
when overriding the block open-td and close-td
and we can use "a" tag with "href" rather than "onclick" to create view links in the list.
And the user can choose to open the link in another tab or window.