Merge branch 'dispatch_modules' into development

This commit is contained in:
vAugagneur
2013-02-04 18:20:24 +01:00
22 changed files with 767 additions and 83 deletions
+107 -6
View File
@@ -194,13 +194,13 @@ a.module_toggle_all{color: #268CCD;}
.multishop_toolbar .chzn-container .chzn-results .shop{padding-left: 30px;background-color: #EAF2FC;}
/*toolbarBox*/
.toolbarBox { background-color: #F8F8F8; border: 1px solid #CCCCCC; margin-bottom:10px; padding: 5px 0; border-radius:3px; -moz-border-radius:3px; -webkit-border-radius:3px;}
.toolbarBox {background-color: #F8F8F8; border: 1px solid #CCCCCC; margin-bottom:10px; padding: 5px 0; border-radius:3px; -moz-border-radius:3px; -webkit-border-radius:3px;-o-border-radius:3px;position:relative}
.toolbarBox .pageTitle { margin-left:10px; line-height:48px}
.toolbarBox .pageTitle h3 {font-size: 2em; font-weight: normal; line-height: 52px; margin: 0; padding: 0; text-shadow:0 1px 0 #fff;}
.toolbarBox ul.cc_button {float:right;margin:0 5px 0 0;padding:0;}
.toolbarBox ul.cc_button li {color: #666666; float: left; height: 48px; list-style: none outside none; padding: 1px 1px 3px 4px; text-align: center;}
.toolbarBox a.toolbar_btn { border:1px solid #f8f8f8; min-width:50px; border-width: 1px; font-size:11px;cursor: pointer; display: block; float: left; padding: 3px 5px; white-space: nowrap; text-shadow: 0 1px 0 #ffffff;}
.toolbarBox a.toolbar_btn:hover { background-color:#fff; border:1px inset #ccc; border-radius:3px;}
.toolbarBox a.toolbar_btn:hover { background-color:#fff; border:1px inset #ccc; border-radius:3px;-moz-border-radius:3px; -webkit-border-radius:3px;-o-border-radius:3px;}
.toolbarBox .toolbar_btn span{ display: block;float: none;height: 32px;margin: 0 auto;width: 32px; /*hacking ie7*/ margin:0 !ie; position:relative !ie;}
.toolbarBox .process-icon-delete { background-image: url('../img/process-icon-delete.png');}
.toolbarBox .process-icon-duplicate { background-image: url('../img/process-icon-duplicate.png');}
@@ -233,6 +233,76 @@ a.module_toggle_all{color: #268CCD;}
.toolbarBox .process-icon-standardRefund{ background-image: url('../img/process-icon-standard-refund.png');}
.toolbarBox .process-icon-help{ background-image: url('../img/process-icon-help.png');}
.toolbarBox .process-icon-help-new{ background-image: url('../img/process-icon-help-new.png');}
.toolbarBox .process-icon-modules-list{ background-image: url('../img/process-icon-modules-list.png');}
.toolbarBox #modules_list_container {
background: none repeat scroll 0 0 #FFF;
border: solid 1px #CCC;
display: block;
float: right;
height: auto;
width: 300px;
position: absolute;
right: 13px;
top: 63px;
z-index: 100;
padding: 10px;
box-shadow: 1px 5px 5px #CCCCCC;
-moz-box-shadow: 1px 5px 10px #CCCCCC;
-webkit-box-shadow: 1px 5px 10px #CCCCCC;
opacity: 1;
}
.toolbarBox #modules_list_container #modules_list_container_content
{
max-height: 500px;
overflow: auto;
}
.toolbarBox #modules_list_container #modules_list_container_tab {margin-top: 10px;width: auto;height: auto; }
.toolbarBox #modules_list_container #modules_list_container_tab table {width: 100%;border-spacing: 0px; }
.toolbarBox #modules_list_container #modules_list_container_tab tr { height: auto}
.toolbarBox #modules_list_container #modules_list_container_tab tr.rowalt {background-color: #EEE}
.toolbarBox #modules_list_container #modules_list_container_tab #tab_module_switch {margin-bottom: 10px;}
.toolbarBox #modules_list_container #modules_list_loader {margin-top: 10px}
.toolbarBox #modules_list_container .nav-tabs-modules:after {clear: both;}
.toolbarBox #modules_list_container .nav-tabs-modules > li {height: 19px;}
.toolbarBox #modules_list_container .nav-tabs-modules > li > a {
padding-right: 12px;
padding-left: 12px;
margin-right: 2px;
line-height: 14px;
}
.toolbarBox #modules_list_container .nav-tabs-modules > li > a {
padding-top: 8px;
padding-bottom: 7px;
border: 1px solid transparent;
-webkit-border-radius: 4px 4px 0 0;
-moz-border-radius: 4px 4px 0 0;
-o-border-radius: 4px 4px 0 0;
border-radius: 4px 4px 0 0;
}
.toolbarBox #modules_list_container .nav-tabs-modules > li > a:hover {
border-color: #C0C0C0;
background-color: #ffffff;
}
.toolbarBox #modules_list_container .nav-tabs-modules > li > a {border: 1px solid #ddd;border-bottom:none;}
.toolbarBox #modules_list_container .nav-tabs-modules > .active > a,
.toolbarBox #modules_list_container .nav-tabs-modules > .active > a:hover {
color: #555555;
cursor: default;
background-color: #EEE;
border: 1px solid #ddd;
border-bottom-color: transparent;
}
div.fix-toolbar {border-bottom: 1px solid #E0E0E0;position:fixed;top:0;opacity:0.9;z-index:500;}
@@ -264,7 +334,8 @@ div.fix-toolbar {border-bottom: 1px solid #E0E0E0;position:fixed;top:0;opacity:0
#productBox { position:relative; width:100%; float:left;}
/*tab-pane*/
form#product_form, form#access_form, form#cart_rule_form { background-color:#ebedf4; border:1px solid #ccced7; min-height:404px; padding: 5px 10px 10px; margin-left:140px;}
form#product_form, form#access_form, form#cart_rule_form, #modules_tab_list { background-color:#ebedf4; border:1px solid #ccced7; min-height:404px; padding: 5px 10px 10px; margin-left:140px;}
#modules_tab_list {min-height: inherit}
#content form.adminstockmanagement {margin-left:0px;}
form#product_form h3 { font-size:14px; font-weight:normal;}
form#product_form h4 { font-size:18px; font-weight:normal;}
@@ -423,7 +494,7 @@ form#product_form h4 { font-size:18px; font-weight:normal;}
#moduleContainer .table tr th { height:40px;}
#moduleContainer .table tr td { font-size:12px; vertical-align:top; padding: 5px 7px 0; border-top:1px solid #ccc; border-bottom:none;}
#moduleContainer .table tr:first-child {border-top:1px solid #ccc}
#moduleContainer .table tr td .imgm {width:32px;}
#moduleContainer .table tr td .imgm , #modules_list_container_tab .imgm {width:32px;}
#moduleContainer .moduleDesc { font-size:12px; position:relative; margin-bottom:10px;}
#moduleContainer .moduleDesc h3 { color:#3A6EA7; margin:0;}
#moduleContainer .moduleDesc .metadata { float:left; display:block; margin:5px 0;}
@@ -435,8 +506,8 @@ form#product_form h4 { font-size:18px; font-weight:normal;}
#moduleContainer .setup {background-color:#6db300; font-weight:bold; font-size:10px; color:#fff; text-transform:uppercase; position:relative; left:10px; padding:0px 4px; display: inline-block; border-radius:3px;}
#moduleContainer .setup.non-install { background-color:#ec7000;}
#moduleContainer .setup.must-have { background-color: #ec7000;}
#moduleContainer .setup.off{ background-color:#ccc;}
#moduleContainer .row-actions-module span { padding-right:5px;}
#moduleContainer .setup.off{ background-color:#ccc; color:#666666}
#moduleContainer .row-actions-module span {padding-right:5px;}
#moduleContainer .row-actions-module span a { font-size:12px;}
#moduleContainer .button.uninstalled,
#moduleContainer .button.installed { float:right; clear:both; margin-top:15px; font-size:12px;}
@@ -446,6 +517,36 @@ form#product_form h4 { font-size:18px; font-weight:normal;}
#moduleContainer .moduleGridDesc h3 { color:#3A6EA7; margin:0;}
#moduleContainer ul.listing-grid-module li select { position:absolute; top:0; right:0px; }
/*TAB MODULES LIST*/
#modules_list_container_tab table tr th { height:40px;}
#modules_list_container_tab table tr td { font-size:12px; padding: 3px 3px 3px; border-top:1px solid #ccc; border-bottom:none;}
#modules_list_container_tab table tr td tr td {border: none}
#modules_list_container_tab table tr:first-child {border-top:1px solid #ccc}
#modules_list_container_tab .imgm {width:32px;}
#modules_list_container_tab .moduleDesc { font-size:12px;}
#modules_list_container_tab .moduleDesc h3 { color:#3A6EA7;margin: 0;font-size: 1.1em;text-align: left}
#modules_list_container_tab .moduleDesc .metadata { float:left; display:block; margin:5px 0;}
#modules_list_container_tab .moduleDesc .metadata dl { float:left; margin:0; padding-right:10px;}
#modules_list_container_tab .moduleDesc .metadata dl dt, .moduleDesc .metadata dl dd { float:left; margin:0; padding:0;}
#modules_list_container_tab .moduleDesc .metadata dl dd { padding-right:10px;}
#modules_list_container_tab .moduleDesc .metadata dl dt { font-weight:bold; padding-right:5px;}
#modules_list_container_tab .moduleDesc p.desc { color:#666; font-family: Georgia; font-style: italic; font-size:12px; display:block; clear:both;text-align: left}
#modules_list_container_tab .setup {background-color:#6db300; font-weight:bold; font-size:10px; color:#fff; text-transform:uppercase; position:relative; padding:2px 3px; display: inline-block; border-radius:3px;}
#modules_list_container_tab .row-actions-module {float: right;}
#modules_list_container_tab .setup.non-install { background-color:#ec7000;}
#modules_list_container_tab .setup.must-have { background-color: #ec7000;}
#modules_list_container_tab .setup.off{ background-color:#ccc; color:#666666}
#modules_list_container_tab .row-actions-module span { padding-right:5px;}
#modules_list_container_tab .row-actions-module span a { font-size:12px;}
#modules_list_container_tab ul.listing-grid-module { position:relative; margin:0; padding:0;}
#modules_list_container_tab ul.listing-grid-module li { float:left; border:1px solid #ccc; width:400px; min-height:30px; margin:10px; padding:5px; border-radius:4px;}
#modules_list_container_tab .moduleGridDesc { position:relative; display:block; height:30px;}
#modules_list_container_tab .moduleGridDesc h3 { color:#3A6EA7; margin:0;}
#modules_list_container_tab ul.listing-grid-module li select { position:absolute; top:0; right:0px; }
.default_modules_list_display_type #modules_list_container_content li table tr td{border: none}
.default_modules_list_display_type #modules_list_container_content li table {border: solid 1px #ccc; height: 115px}
/*MODULE POSITION*/
.blocLiveEdit { float:right; clear:right; background-color: #EBEDF4; border: 1px solid #C2C4D9;display: block; width:250px;}
.blocLiveEdit h2 { background: transparent url('../img/live_edit.png') no-repeat scroll 10px 10px; height: 40px; line-height: 50px;margin: 0; padding: 0 10px; text-indent: 40px;}
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

@@ -1,12 +1,10 @@
<div id="productBox">
{include file='controllers/modules/header.tpl'}
<ul class="view-modules">
<li class="button normal-view"><a href="index.php?controller={$smarty.get.controller|htmlentities}&token={$smarty.get.token|htmlentities}"><img src="themes/default/img/modules_view_layout_sidebar.png" alt="{l s='Normal view'}" border="0" /><span>{l s='Normal view'}</span></a></li>
<li class="button favorites-view-disabled"><img src="themes/default/img/modules_view_table_select_row.png" alt="{l s='Favorites view'}" border="0" /><span>{l s='Favorites view'}</span></li>
</ul>
<div id="container">
<div id="moduleContainer" style="padding:0px;margin:0px;padding-top:15px">
@@ -16,6 +14,7 @@
<col width="240px">
<col width="">
<col width="140px">
<col width="250px">
<col width="180px">
<col width="70px">
<col width="70px">
@@ -27,6 +26,7 @@
<th>{l s='Module Name'}</th>
<th>{l s='Description'}</th>
<th>{l s='Status'}</th>
<th>{l s='Tab'}</th>
<th>{l s='Categories:'}</th>
<th>{l s='Interest'}</th>
<th>{l s='Favorite'}</th>
@@ -40,6 +40,22 @@
<td><span class="moduleName">{$module->displayName}</span></td>
<td><span class="moduleFavDesc">{$module->description|truncate:80:'...'}</span></td>
<td>{if isset($module->id) && $module->id gt 0}<span class="setup">{l s='Installed'}</span>{else}<span class="setup non-install">{l s='Not Installed'}</span>{/if}</td>
<td>
{assign var="module_name" value=$module->name}
<select class="chosen moduleTabPreferencesChoise" name="t_{$module->name}" multiple="multiple">
{foreach $tabs AS $t}
{if $t.active}
<option {if isset($tab_modules_preferences.$module_name) && in_array($t.id_tab, $tab_modules_preferences.$module_name)} selected="selected" {/if} class="group" value="{$t.id_tab}">{if $t.name eq ''}{$t.class_name}{else}{$t.name}{/if}</option>
{foreach from=$t.sub_tabs item=t2}
{if $t2.active}
{assign var="id_tab" value=$t.id_tab}
<option {if isset($tab_modules_preferences.$module_name) && in_array($t2.id_tab, $tab_modules_preferences.$module_name)} selected="selected" {/if} value="{$t2.id_tab}">&nbsp;&nbsp;&nbsp;{if $t2.name eq ''}{$t2.class_name}{else}{$t2.name|escape:'htmlall':'UTF-8'}{/if}</option>
{/if}
{/foreach}
{/if}
{/foreach}
</select>
</td>
<td>{$module->categoryName}</td>
<td>
<select name="i_{$module->name}" class="moduleFavorite" style="width:50px">
@@ -296,7 +296,40 @@
$('#module_install_filter').change(function() { setFilter(); });
$('#module_status_filter').change(function() { setFilter(); });
$('#country_module_value_filter').change(function() { setFilter(); });
$('.moduleTabPreferencesChoise').change(function()
{
var value_pref = $(this).val();
var module_pref = $(this).attr('name');
module_pref = module_pref.substring(2, module_pref.length);
$.ajax({
type:"POST",
url : ajaxCurrentIndex,
async: true,
data : {
ajax : "1",
token : token,
controller : "AdminModules",
action : "saveTabModulePreferences",
module_pref : module_pref,
value_pref : value_pref
},
success : function(data)
{
// res.status = cache or refresh
if (data == 'OK')
$('#r_' + module_pref).html(confirmPreferencesSaved);
},
error: function(res,textStatus,jqXHR)
{
//jAlert("TECHNICAL ERROR"+res);
}
});
});
// Method to save favorites preferences
$('.moduleFavorite').change(function()
{
@@ -0,0 +1,81 @@
{*
* 2007-2013 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-2013 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*}
<tr class="{$class_row}">
<td>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="60" valign="top" width="75">
<img class="imgm" alt="" src="{if isset($module->image)}{$module->image}{else}../modules/{$module->name}/{$module->logo}{/if}">
</td>
<td height="60" width="220" valign="top">
<div class="moduleDesc" id="anchor{$module->name|ucfirst}">
<h3>{$module->displayName|truncate:40:'…'} {$module->version}
</h3>
<p class="desc">
{if isset($module->description) && $module->description ne ''}
{$module->description|truncate:100:'…'}
{else}
&nbsp;
{/if}
</p>
</div>
</td>
</tr>
<tr>
<td border="0" height="20" width="75" style="text-align:center" valign="bottom">
{if isset($module->id) && $module->id gt 0 }
{if $module->active}
<span class="setup">{l s='Enabled'}</span>
{else}
<span class="setup off">{l s='Disabled'}</span>
{/if}
{else}
{if isset($module->type) && $module->type == 'addonsMustHave'}
<span class="setup must-have">{l s='Must Have'}</span>
{else}
<span class="setup off">{l s='Not installed'}</span>
{/if}
{/if}
</td>
<td class="tab_modules_actions_row" height="20" border="0" width="220" valign="bottom">
<div style="float:right">
{if isset($module->type) && $module->type == 'addonsMustHave'}
<a href="{$module->addons_buy_url}" target="_blank" class="button updated">
<span><img src="../img/admin/cart_addons.png">&nbsp;&nbsp;{displayPrice price=$module->price currency=$module->id_currency}</span></a>
{else if !isset($module->not_on_disk)}
{$module->optionsHtml}
<a href="#" class="button action_tab_module" data-option="select_{$module->name}" class="button">Valider</a>
{else}
<a href="{$module->options.install_url}" class="button action_tab_module">{l s='Install'}</a>
{/if}
</div>
</td>
</tr>
</table>
</td>
@@ -0,0 +1,87 @@
{*
* 2007-2013 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-2013 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*}
{if isset($tab_modules_list) && !empty($tab_modules_list)}
<script type="text/javascript">
$(document).ready(function() {
$('.action_tab_module').each( function (){
$(this).click(function () {
option = $('#'+$(this).data('option')+' :selected');
if ($(option).data('onclick') != '')
{
var f = eval("(function(){ "+$(option).data('onclick')+"})");
if (f.call())
window.location.href = $(option).data('href');
}
else
window.location.href = $(option).data('href');
return false;
});
});
$('#nav_tabs_modules_installed').click( function () {
$('#tab_modules_list_not_installed').hide();
$('#tab_modules_list_installed').show();
$(this).parent('li').addClass('active');
$('#nav_tabs_modules_not_installed').parent('li').removeClass('active');
return false;
});
$('#nav_tabs_modules_not_installed').click( function () {
$('#tab_modules_list_installed').hide();
$('#tab_modules_list_not_installed').show();
$(this).parent('li').addClass('active');
$('#nav_tabs_modules_installed').parent('li').removeClass('active');
return false;
});
});
</script>
<ul class="nav-tabs-modules">
<li class="active"><a id="nav_tabs_modules_installed" href="#" onclick="">{l s='Installed'}</a></li>
<li><a href="#" id="nav_tabs_modules_not_installed" >{l s='Not Installed'}</a></li>
</ul>
<div id="modules_list_container_content" style="clear:both">
<table id="tab_modules_list_installed" style="clear:both">
{if count($tab_modules_list.installed)}
{foreach from=$tab_modules_list.installed item=module}
{include file='controllers/modules/tab_module_line.tpl' class_row={cycle values=",rowalt"}}
{/foreach}
{else}
<tr><td><b>{l s='No modules available in this section.'}</b></td></tr>
{/if}
</table>
<table id="tab_modules_list_not_installed" style="display:none;clear:both">
{if count($tab_modules_list.not_installed)}
{foreach from=$tab_modules_list.not_installed item=module}
{include file='controllers/modules/tab_module_line.tpl' class_row={cycle values=",rowalt"}}
{/foreach}
{else}
<tr><td><b>{l s='No modules available in this section.'}</b></td></tr>
{/if}
</table>
</div>
{/if}
<p style="text-align:right;text-decoration:underline"><a href="{$admin_module_favorites_view}" style="color:#666">{l s='More options'}</a></p>
@@ -28,9 +28,8 @@
{if !$shop_context}
<div class="warn">{l s='You have more than one shop and must select one to configure payment.'}</div>
{else}
<h2 class="space">{l s='Payment modules list'}</h2>
{if isset($url_modules)}
<input type="button" class="button" onclick="document.location='{$url_modules}'" value="{l s='Click to see the list of payment modules.'}" /><br>
{if isset($modules_list)}
{$modules_list}
{/if}
<br />
@@ -23,6 +23,10 @@
* International Registered Trademark & Property of PrestaShop SA
*}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7 lt-ie6 " lang="en"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8 ie7" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9 ie8" lang="en"> <![endif]-->
<!--[if gt IE 8]> <html lang="fr" class="no-js ie9" lang="en"> <![endif]-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{$iso}" lang="{$iso}">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
@@ -0,0 +1,40 @@
{*
* 2007-2013 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-2013 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*}
<h2 style="margin-top:0">{l s='Modules list'}</h2>
<div id="modules_list_container_tab" class="default_modules_list_display_type">
<ul id="modules_list_container_content" style="list-style-type:none; padding:0; margin:0;">
{if count($modules_list)}
{foreach from=$modules_list item=module}
<li style="display:block;float:left;">
{include file='controllers/modules/tab_module_line.tpl' class_row={cycle values=",row alt"}}
</li>
{/foreach}
{else}
<tr><td><b>{l s='No modules available in this section.'}</b></td></tr>
{/if}
</ul>
</div>
<div class="clear"></div>
@@ -33,6 +33,15 @@
<span class="process-icon-{if isset($btn.imgclass)}{$btn.imgclass}{else}{$k}{/if} {if isset($btn.class)}{$btn.class}{/if}" ></span>
<div {if isset($btn.force_desc) && $btn.force_desc == true } class="locked" {/if}>{$btn.desc}</div>
</a>
{if $k == 'modules-list'}
<div id="modules_list_container" style="display:none">
<div style="float:right;top:-5px">
<a href="#" onclick="$('#modules_list_container').slideUp();return false;"><img alt="X" src="../img/admin/close.png"></a>
</div>
<div id="modules_list_loader"><img src="../img/loader.gif" alt="" border="0"></div>
<div id="modules_list_container_tab" style="display:none;"></div>
</div>
{/if}
</li>
{/foreach}
</ul>
@@ -40,6 +49,7 @@
<script language="javascript" type="text/javascript">
//<![CDATA[
var submited = false
var modules_list_loaded = false;
$(function() {
//get reference on save link
btn_save = $('span[class~="process-icon-save"]').parent();
@@ -107,7 +117,48 @@
}
{/block}
}
{if isset($tab_modules_open)}
if ({$tab_modules_open})
openModulesList();
{/if}
});
{if isset($tab_modules_list)}
$('.process-icon-modules-list').parent('a').unbind().bind('click', function (){
openModulesList();
});
function openModulesList()
{
$('#modules_list_container').slideDown();
if (!modules_list_loaded)
{
$.ajax({
type:"POST",
url : '{$admin_module_ajax_url}',
async: true,
data : {
ajax : "1",
controller : "AdminModules",
action : "getTabModulesList",
tab_modules_list : '{$tab_modules_list}',
back_tab_modules_list : '{$back_tab_modules_list}'
},
success : function(data)
{
$('#modules_list_container_tab').html(data).slideDown();
$('#modules_list_loader').hide();
modules_list_loaded = true;
}
});
}
else
{
$('#modules_list_container_tab').slideDown();
$('#modules_list_loader').hide();
}
return false;
}
{/if}
//]]>
</script>
{/block}
+47 -1
View File
@@ -42,6 +42,8 @@ class TabCore extends ObjectModel
/** @var integer active */
public $active = true;
const TAB_MODULE_LIST_URL = 'api.prestashop.com/xml/tab_modules_list.xml';
/**
* @see ObjectModel::$definition
@@ -503,4 +505,48 @@ class TabCore extends ObjectModel
{
return Db::getInstance()->getValue('SELECT class_name FROM '._DB_PREFIX_.'tab WHERE id_tab = '.(int)$id_tab);
}
}
public static function getTabModulesList($id_tab)
{
$modules_list = array('default_list' => array(), 'slider_list' => array());
$xml_tab_modules_list = false;
$db_tab_module_list = Db::getInstance()->executeS('
SELECT module
FROM '._DB_PREFIX_.'tab_module_preference
WHERE `id_tab` = '.(int)$id_tab.'
AND `id_employee` = '.(int)Context::getContext()->employee->id
);
if (file_exists(_PS_ROOT_DIR_.Module::CACHE_FILE_TAB_MODULES_LIST))
$xml_tab_modules_list = @simplexml_load_file(_PS_ROOT_DIR_.Module::CACHE_FILE_TAB_MODULES_LIST);
$class_name = null;
$display_type = 'default_list';
if ($xml_tab_modules_list)
foreach($xml_tab_modules_list->tab as $tab)
{
foreach($tab->attributes() as $key => $value)
if ($key == 'class_name')
$class_name = (string)$value;
if (Tab::getIdFromClassName((string)$class_name) == $id_tab)
{
foreach($tab->attributes() as $key => $value)
if ($key == 'display_type')
$display_type = (string)$value;
foreach ($tab->children() as $module)
foreach ($module->attributes() as $k => $v)
if ($k == 'name')
$modules_list[$display_type][] = (string)$v;
}
}
//merge tab modules preferences from db with xml
foreach($db_tab_module_list as $m)
if (!in_array($m, $modules_list))
$modules_list['slider_list'][] = $m['module'];
return $modules_list;
}
}
+189 -4
View File
@@ -96,7 +96,13 @@ class AdminControllerCore extends Controller
/** @var array list to be generated */
protected $fields_list;
/** @var array modules list filters */
protected $filter_modules_list = null;
/** @var array modules list filters */
protected $modules_list = array();
/** @var array edit form to be generated */
protected $fields_form;
@@ -227,6 +233,7 @@ class AdminControllerCore extends Controller
protected $action;
protected $display;
protected $_includeContainer = true;
protected $tab_modules_list = array('default_list' => array(), 'slider_list' => array());
public $tpl_folder;
@@ -1016,7 +1023,7 @@ class AdminControllerCore extends Controller
'desc' => $this->l('Add new')
);
}
$this->addToolBarModulesListButton();
}
/**
@@ -1368,6 +1375,7 @@ class AdminControllerCore extends Controller
$this->getLanguages();
// toolbar (save, cancel, new, ..)
$this->initToolbar();
$this->initTabModuleList();
if ($this->display == 'edit' || $this->display == 'add')
{
if (!$this->loadObject(true))
@@ -1384,7 +1392,7 @@ class AdminControllerCore extends Controller
}
elseif (!$this->ajax)
{
$this->content .= $this->renderModulesList();
$this->content .= $this->renderList();
$this->content .= $this->renderOptions();
@@ -1398,6 +1406,39 @@ class AdminControllerCore extends Controller
'url_post' => self::$currentIndex.'&token='.$this->token,
));
}
/**
* init tab modules list and add button in toolbar
*/
protected function initTabModuleList()
{
if (!$this->isFresh(Module::CACHE_FILE_TAB_MODULES_LIST, 604800))
$this->refresh(Module::CACHE_FILE_TAB_MODULES_LIST, 'http://'.Tab::TAB_MODULE_LIST_URL);
$this->tab_modules_list = Tab::getTabModulesList($this->id);
if (is_array($this->tab_modules_list['default_list']) && count($this->tab_modules_list['default_list']))
$this->filter_modules_list = $tab_modules_list['default_list'];
else if (is_array($this->tab_modules_list['slider_list']) && count($this->tab_modules_list['slider_list']))
{
$this->addToolBarModulesListButton();
$this->context->smarty->assign(array(
'tab_modules_list' => implode(',', $this->tab_modules_list['slider_list']),
'admin_module_ajax_url' => $this->context->link->getAdminLink('AdminModules'),
'back_tab_modules_list' => $this->context->link->getAdminLink(Tools::getValue('controller')),
'tab_modules_open' => (int)Tools::getValue('tab_modules_open')
));
}
}
protected function addToolBarModulesListButton()
{
if (is_array($this->tab_modules_list['slider_list']) && count($this->tab_modules_list['slider_list']))
$this->toolbar_btn['modules-list'] = array(
'href' => '#',
'desc' => $this->l('Modules List')
);
}
/**
* initialize the invalid doom page of death
@@ -1424,7 +1465,17 @@ class AdminControllerCore extends Controller
'iso_is_fr' => strtoupper($this->context->language->iso_code) == 'FR',
));
}
public function renderModulesList()
{
if ($this->getModulesList($this->filter_modules_list))
{
$helper = new Helper();
return $helper->renderModulesList($this->modules_list);
}
}
/**
* Function used to render the list to display for this controller
*/
@@ -2090,6 +2141,31 @@ class AdminControllerCore extends Controller
else
$this->_listTotal = Db::getInstance()->getValue('SELECT FOUND_ROWS() AS `'._DB_PREFIX_.$this->table.'`');
}
public function getModulesList($filter_modules_list)
{
if (!is_array($filter_modules_list) && !is_null($filter_modules_list))
$filter_modules_list = array($filter_modules_list);
if (!count($filter_modules_list))
return false; //if there is no modules to display just return false;
$all_modules = Module::getModulesOnDisk(true);
$this->modules_list = array();
foreach($all_modules as $module)
{
if (in_array($module->name, $filter_modules_list))
{
$this->fillModuleData($module, 'select');
$this->modules_list[] = $module;
}
}
if (count($this->modules_list))
return true;
return false; //no module found on disk just return false;
}
public function getLanguages()
{
@@ -2787,4 +2863,113 @@ class AdminControllerCore extends Controller
// No content, return false
return false;
}
public function fillModuleData(&$module, $output_type = 'link', $back = null)
{
$obj = null;
if ($module->onclick_option)
$obj = new $module->name();
// Fill module data
$module->logo = '../../img/questionmark.png';
if (file_exists('../modules/'.$module->name.'/logo.gif'))
$module->logo = 'logo.gif';
if (file_exists('../modules/'.$module->name.'/logo.png'))
$module->logo = 'logo.png';
$module->optionsHtml = $this->displayModuleOptions($module, $output_type);
$module->options['install_url'] = self::$currentIndex.'&install='.urlencode($module->name).'&token='.$this->token.'&tab_module='.$module->tab.'&module_name='.$module->name.'&anchor=anchor'.ucfirst($module->name);
$module->options['update_url'] = self::$currentIndex.'&update='.urlencode($module->name).'&token='.$this->token.'&tab_module='.$module->tab.'&module_name='.$module->name.'&anchor=anchor'.ucfirst($module->name);
$module->options['uninstall_url'] = self::$currentIndex.'&uninstall='.urlencode($module->name).'&token='.$this->token.'&tab_module='.$module->tab.'&module_name='.$module->name.'&anchor=anchor'.ucfirst($module->name);
$module->options['uninstall_onclick'] = ((!$module->onclick_option) ?
((empty($module->confirmUninstall)) ? '' : 'return confirm(\''.addslashes($module->confirmUninstall).'\');') :
$obj->onclickOption('uninstall', $module->options['uninstall_url']));
if ((Tools::getValue('module_name') == $module->name || in_array($module->name, explode('|', Tools::getValue('modules_list')))) && (int)Tools::getValue('conf') > 0)
$module->message = $this->_conf[(int)Tools::getValue('conf')];
if ((Tools::getValue('module_name') == $module->name || in_array($module->name, explode('|', Tools::getValue('modules_list')))) && (int)Tools::getValue('conf') > 0)
unset($obj);
}
/**
* Display modules list
*
* @param $module
* @param $output_type (link or select)
* @param $back
*
* @return string
*/
protected $translationsTab = array();
public function displayModuleOptions($module, $output_type = 'link', $back = null)
{
if (!isset($this->translationsTab['Disable this module']))
{
$this->translationsTab['Disable this module'] = $this->l('Disable this module');
$this->translationsTab['Enable this module for all shops'] = $this->l('Enable this module for all shops');
$this->translationsTab['Disable'] = $this->l('Disable');
$this->translationsTab['Enable'] = $this->l('Enable');
$this->translationsTab['Reset'] = $this->l('Reset');
$this->translationsTab['Configure'] = $this->l('Configure');
$this->translationsTab['Delete'] = $this->l('Delete');
$this->translationsTab['Install'] = $this->l('Install');
$this->translationsTab['Uninstall'] = $this->l('Uninstall');
$this->translationsTab['This action will permanently remove the module from the server. Are you sure you want to do this?'] = $this->l('This action will permanently remove the module from the server. Are you sure you want to do this?');
}
$modules_options = array(
'configure-module' => array(
'href' => self::$currentIndex.'&configure='.urlencode($module->name).'&token='.$this->token.'&tab_module='.$module->tab.'&module_name='.urlencode($module->name),
'onclick' => $module->onclick_option && isset($module->onclick_option_content['configure']) ? $module->onclick_option_content['configure'] : '',
'title' => '',
'text' => $this->translationsTab['Configure'],
'cond' => $module->id && isset($module->is_configurable) && $module->is_configurable,
),
'desactive-module' => array(
'href' => self::$currentIndex.'&token='.$this->token.'&module_name='.urlencode($module->name).'&'.($module->active ? 'enable=0' : 'enable=1').'&tab_module='.$module->tab,
'onclick' => $module->active && $module->onclick_option && isset($module->onclick_option_content['desactive']) ? $module->onclick_option_content['desactive'] : '' ,
'title' => Shop::isFeatureActive() ? htmlspecialchars($module->active ? $this->translationsTab['Disable this module'] : $this->translationsTab['Enable this module for all shops']) : '',
'text' => $module->active ? $this->translationsTab['Disable'] : $this->translationsTab['Enable'],
'cond' => $module->id,
),
'reset-module' => array(
'href' => self::$currentIndex.'&token='.$this->token.'&module_name='.urlencode($module->name).'&reset&tab_module='.$module->tab,
'onclick' => $module->onclick_option && isset($module->onclick_option_content['reset']) ? $module->onclick_option_content['reset'] : '',
'title' => '',
'text' => $this->translationsTab['Reset'],
'cond' => $module->id && $module->active,
),
'delete-module' => array(
'href' => self::$currentIndex.'&delete='.urlencode($module->name).'&token='.$this->token.'&tab_module='.$module->tab.'&module_name='.urlencode($module->name),
'onclick' => $module->onclick_option && isset($module->onclick_option_content['delete']) ? $module->onclick_option_content['delete'] : 'return confirm(\''.$this->translationsTab['This action will permanently remove the module from the server. Are you sure you want to do this?'].'\');',
'title' => '',
'text' => $this->translationsTab['Delete'],
'cond' => true,
),
);
$return = '';
foreach($modules_options as $option_name => $option)
{
if ($option['cond'])
{
if ($output_type == 'link')
$return .= '<span class="'.$option_name.'">
<a class="action_module" href="'.$option['href'].(!is_null($back) ? '&back='.urlencode($back) : '').'" onclick="'.$option['onclick'].'" title="'.$option['title'].'">'.$option['text'].'</a>
</span>';
else if ($output_type == 'select')
$return .= '<option id="'.$option_name.'" data-href="'.$option['href'].(!is_null($back) ? '&back='.urlencode($back) : '').'" data-onclick="'.$option['onclick'].'">'.$option['text'].'</option>';
}
}
if ($output_type == 'select')
{
if (!$module->id)
$return = '<option data-onclick="" data-href="'.self::$currentIndex.'&install='.urlencode($module->name).'&token='.$this->token.'&tab_module='.$module->tab.'&module_name='.$module->name.'&anchor=anchor'.ucfirst($module->name).(!is_null($back) ? '&back='.urlencode($back) : '').'" >'.$this->translationsTab['Install'].'</option>'.$return;
else
$return = '<option data-onclick="" data-href="'.self::$currentIndex.'&uninstall='.urlencode($module->name).'&token='.$this->token.'&tab_module='.$module->tab.'&module_name='.$module->name.'&anchor=anchor'.ucfirst($module->name).(!is_null($back) ? '&back='.urlencode($back) : '').'" >'.$this->translationsTab['Uninstall'].'</option>'.$return;
$return = '<select id="select_'.$module->name.'">'.$return.'</select>';
}
return $return;
}
}
+10
View File
@@ -350,6 +350,16 @@ class HelperCore
return $tpl->fetch();
}
public function renderModulesList($modules_list)
{
$this->tpl_vars = array('modules_list' => $modules_list);
$tpl = $this->createTemplate('helpers/modules_list/list.tpl');
$tpl->assign($this->tpl_vars);
return $tpl->fetch();
}
public static function renderShopList()
{
+2
View File
@@ -122,6 +122,8 @@ abstract class ModuleCore
const CACHE_FILE_MODULES_LIST = '/config/xml/modules_list.xml';
const CACHE_FILE_TAB_MODULES_LIST = '/config/xml/tab_modules_list.xml';
const CACHE_FILE_DEFAULT_COUNTRY_MODULES_LIST = '/config/xml/default_country_modules_list.xml';
const CACHE_FILE_CUSTOMER_MODULES_LIST = '/config/xml/customer_modules_list.xml';
+4 -2
View File
@@ -102,12 +102,13 @@
</modules>
<modules type="partner">
<module name="authorizeaim"/>
<module name="avalaratax"/>
<module name="cashticket"/>
<module name="criteo"/>
<module name="dejala"/>
<module name="dibs"/>
<module name="ebay"/>
<module name="envoimoinscher"/>
<module name="ebay"/>
<module name="envoimoinscher"/>
<module name="ekomi"/>
<module name="fedexcarrier"/>
<module name="fianetfraud"/>
@@ -121,6 +122,7 @@
<module name="paypal"/>
<module name="reverso"/>
<module name="secuvad"/>
<module name="shipwire"/>
<module name="socolissimo"/>
<module name="treepodia"/>
<module name="trustedshops"/>
+2 -1
View File
@@ -170,9 +170,10 @@ class AdminEmailsControllerCore extends AdminController
*/
public function initContent()
{
$this->initTabModuleList();
$this->initToolbar();
$this->addToolBarModulesListButton();
unset($this->toolbar_btn['save']);
$back = $this->context->link->getAdminLink('AdminHome');
$this->toolbar_btn['back'] = array(
+68 -62
View File
@@ -232,6 +232,38 @@ class AdminModulesControllerCore extends AdminController
$this->smartyOutputContent('controllers/modules/list.tpl');
exit;
}
public function ajaxProcessGetTabModulesList()
{
$tab_modules_list = Tools::getValue('tab_modules_list');
$back = Tools::getValue('back_tab_modules_list');
if ($back)
$back .= '&tab_modules_open=1';
$modules_list = array('installed' =>array(), 'not_installed' => array());
if ($tab_modules_list)
{
$tab_modules_list = explode(',', $tab_modules_list);
$all_modules = Module::getModulesOnDisk(true, $this->logged_on_addons, $this->id_employee);
foreach($all_modules as $module)
{
if (in_array($module->name, $tab_modules_list))
{
$this->fillModuleData($module, 'select', $back);
if ($module->id)
$modules_list['installed'][] = $module;
else
$modules_list['not_installed'][] = $module;
}
}
}
$this->context->smarty->assign(array(
'tab_modules_list' => $modules_list,
'admin_module_favorites_view' => $this->context->link->getAdminLink('AdminModules').'&select=favorites'
));
$this->smartyOutputContent('controllers/modules/tab_modules_list.tpl');
exit;
}
public function ajaxProcessSetFilter()
{
@@ -265,6 +297,22 @@ class AdminModulesControllerCore extends AdminController
die('OK');
}
public function ajaxProcessSaveTabModulePreferences()
{
$values = Tools::getValue('value_pref');
$module = Tools::getValue('module_pref');
if (Validate::isModuleName($module))
{
Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'tab_module_preference` WHERE `id_employee` = '.(int)$this->id_employee.' AND `module` = \''.pSQL($module).'\'');
if (is_array($values) && count($values))
foreach($values as $value)
Db::getInstance()->execute('
INSERT INTO `'._DB_PREFIX_.'tab_module_preference` (`id_tab_module_preference`, `id_employee`, `id_tab`, `module`)
VALUES (NULL, '.(int)$this->id_employee.', '.(int)$value.', \''.pSQL($module).'\');');
}
die('OK');
}
/*
** Get current URL
**
@@ -730,6 +778,9 @@ class AdminModulesControllerCore extends AdminController
// Call appropriate module callback
if (!isset($ppmReturn))
$this->postProcessCallback();
if ($back = Tools::getValue('back'))
Tools::redirectAdmin($back);
}
/**
@@ -758,42 +809,6 @@ class AdminModulesControllerCore extends AdminController
return $html_error;
}
/*
** Display Modules Lists
**
*/
protected $translationsTab = array();
public function displayModuleOptions($module)
{
if (!isset($this->translationsTab['Disable this module']))
{
$this->translationsTab['Disable this module'] = $this->l('Disable this module');
$this->translationsTab['Enable this module for all shops'] = $this->l('Enable this module for all shops');
$this->translationsTab['Disable'] = $this->l('Disable');
$this->translationsTab['Enable'] = $this->l('Enable');
$this->translationsTab['Reset'] = $this->l('Reset');
$this->translationsTab['Configure'] = $this->l('Configure');
$this->translationsTab['Delete'] = $this->l('Delete');
$this->translationsTab['This action will permanently remove the module from the server. Are you sure you want to do this?'] = $this->l('This action will permanently remove the module from the server. Are you sure you want to do this?');
}
$return = '';
if ($module->id)
$return .= ' <span class="desactive-module"><a class="action_module" '.($module->active && $module->onclick_option && isset($module->onclick_option_content['desactive']) ? 'onclick="'.$module->onclick_option_content['desactive'].'"' : '').'
href="'.self::$currentIndex.'&token='.$this->token.'&module_name='.urlencode($module->name).'&'.($module->active ? 'enable=0' : 'enable=1').'&tab_module='.$module->tab.'" '.((Shop::isFeatureActive()) ? 'title="'.htmlspecialchars($module->active ? $this->translationsTab['Disable this module'] : $this->translationsTab['Enable this module for all shops']).'"' : '').'>'.($module->active ? $this->translationsTab['Disable'] : $this->translationsTab['Enable']).'</a></span>';
if ($module->id && $module->active)
$return .= (!empty($result) ? '|' : '').' <span class="reset-module"><a class="action_module" '.($module->onclick_option && isset($module->onclick_option_content['reset']) ? 'onclick="'.$module->onclick_option_content['reset'].'"' : '').' href="'.self::$currentIndex.'&token='.$this->token.'&module_name='.urlencode($module->name).'&reset&tab_module='.$module->tab.'">'.$this->translationsTab['Reset'].'</a></span>';
if ($module->id && isset($module->is_configurable) && $module->is_configurable)
$return .= (!empty($result) ? '|' : '').' <span class="configure-module"><a class="action_module" '.($module->onclick_option && isset($module->onclick_option_content['configure']) ? 'onclick="'.$module->onclick_option_content['configure'].'"' : '').' href="'.self::$currentIndex.'&configure='.urlencode($module->name).'&token='.$this->token.'&tab_module='.$module->tab.'&module_name='.urlencode($module->name).'">'.$this->translationsTab['Configure'].'</a></span>';
$hrefDelete = self::$currentIndex.'&delete='.urlencode($module->name).'&token='.$this->token.'&tab_module='.$module->tab.'&module_name='.urlencode($module->name);
$return .= (!empty($result) ? '|' : '').' <span class="delete-module"><a class="action_module" '.($module->onclick_option && isset($module->onclick_option_content['delete']) ? 'onclick="'.$module->onclick_option_content['delete'].'"' : '').' onclick="return confirm(\''.$this->translationsTab['This action will permanently remove the module from the server. Are you sure you want to do this?'].'\');" href="'.$hrefDelete.'">'.$this->translationsTab['Delete'].'</a></span>';
return $return;
}
public function initModulesList(&$modules)
{
foreach ($modules as $k => $module)
@@ -925,7 +940,7 @@ class AdminModulesControllerCore extends AdminController
// Module has not been filtered
return false;
}
public function initContent()
{
// Adding Css
@@ -951,7 +966,13 @@ class AdminModulesControllerCore extends AdminController
// Retrieve Modules Preferences
$modules_preferences = '';
$tab_modules_preferences = array();
$modules_preferences_tmp = Db::getInstance()->executeS('SELECT * FROM `'._DB_PREFIX_.'module_preference` WHERE `id_employee` = '.(int)$this->id_employee);
$tab_modules_preferences_tmp = Db::getInstance()->executeS('SELECT * FROM `'._DB_PREFIX_.'tab_module_preference` WHERE `id_employee` = '.(int)$this->id_employee);
foreach($tab_modules_preferences_tmp as $i => $j)
$tab_modules_preferences[$j['module']][] = $j['id_tab'];
foreach ($modules_preferences_tmp as $k => $v)
{
if ($v['interest'] == null)
@@ -971,6 +992,13 @@ class AdminModulesControllerCore extends AdminController
// Browse modules list
foreach ($modules as $km => $module)
{
//if we are in favorites view we only display installed modules
if (Tools::getValue('select') == 'favorites' && !$module->id)
{
unset($modules[$km]);
continue;
}
// Upgrade Module process, init check if a module could be upgraded
if (Module::initUpgradeModule($module))
{
@@ -1033,34 +1061,11 @@ class AdminModulesControllerCore extends AdminController
unset($modules[$km]);
else
{
$obj = null;
if ($module->onclick_option)
$obj = new $module->name();
// Fill module data
$modules[$km]->logo = '../../img/questionmark.png';
if (file_exists('../modules/'.$module->name.'/logo.gif'))
$modules[$km]->logo = 'logo.gif';
if (file_exists('../modules/'.$module->name.'/logo.png'))
$modules[$km]->logo = 'logo.png';
$modules[$km]->optionsHtml = $this->displayModuleOptions($module);
$modules[$km]->categoryName = (isset($this->list_modules_categories[$module->tab]['name']) ? $this->list_modules_categories[$module->tab]['name'] : $this->list_modules_categories['others']['name']);
$modules[$km]->options['install_url'] = self::$currentIndex.'&install='.urlencode($module->name).'&token='.$this->token.'&tab_module='.$module->tab.'&module_name='.$module->name.'&anchor=anchor'.ucfirst($module->name);
$modules[$km]->options['update_url'] = self::$currentIndex.'&update='.urlencode($module->name).'&token='.$this->token.'&tab_module='.$module->tab.'&module_name='.$module->name.'&anchor=anchor'.ucfirst($module->name);
$modules[$km]->options['uninstall_url'] = self::$currentIndex.'&uninstall='.urlencode($module->name).'&token='.$this->token.'&tab_module='.$module->tab.'&module_name='.$module->name.'&anchor=anchor'.ucfirst($module->name);
$modules[$km]->options['uninstall_onclick'] = ((!$module->onclick_option) ?
((empty($module->confirmUninstall)) ? '' : 'return confirm(\''.addslashes($module->confirmUninstall).'\');') :
$obj->onclickOption('uninstall', $modules[$km]->options['uninstall_url']));
if ((Tools::getValue('module_name') == $module->name || in_array($module->name, explode('|', Tools::getValue('modules_list')))) && (int)Tools::getValue('conf') > 0)
$modules[$km]->message = $this->_conf[(int)Tools::getValue('conf')];
if ((Tools::getValue('module_name') == $module->name || in_array($module->name, explode('|', Tools::getValue('modules_list')))) && (int)Tools::getValue('conf') > 0)
$this->fillModuleData($module);
$module->categoryName = (isset($this->list_modules_categories[$module->tab]['name']) ? $this->list_modules_categories[$module->tab]['name'] : $this->list_modules_categories['others']['name']);
if (isset($modules_preferences[$modules[$km]->name]))
$modules[$km]->preferences = $modules_preferences[$modules[$km]->name];
unset($obj);
}
unset($object);
}
@@ -1109,6 +1114,7 @@ class AdminModulesControllerCore extends AdminController
$tpl_vars['check_openssl'] = (extension_loaded('openssl') ? 'ok' : 'ko');
$tpl_vars['add_permission'] = $this->tabAccess['add'];
$tpl_vars['tab_modules_preferences'] = $tab_modules_preferences;
if ($this->logged_on_addons)
{
+1 -1
View File
@@ -222,7 +222,7 @@ class AdminPaymentControllerCore extends AdminController
}
$this->tpl_view_vars = array(
'url_modules' => isset($token_modules) ? 'index.php?tab=AdminModules&token='.$token_modules.'&&filterCategory=payments_gateways' : null,
'modules_list' => $this->renderModulesList(),
'display_restrictions' => $display_restrictions,
'lists' => $lists,
'ps_base_uri' => __PS_BASE_URI__,
@@ -36,8 +36,9 @@ abstract class AdminStatsTabControllerCore extends AdminPreferencesControllerCor
public function initContent()
{
$this->initTabModuleList();
$this->addToolBarModulesListButton();
$this->toolbar_title = $this->l('Stats', 'AdminStatsTab');
if ($this->display == 'view')
{
// Some controllers use the view action without an object
+2
View File
@@ -352,6 +352,8 @@ select optgroup option {
#content {
padding: 1.25em;
padding-bottom: 0.5em;
position: relative;
z-index: 3000;
}
#news {
+9
View File
@@ -2433,6 +2433,15 @@ CREATE TABLE `PREFIX_module_preference` (
UNIQUE KEY `employee_module` (`id_employee`, `module`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
CREATE TABLE `PREFIX_tab_module_preference` (
`id_tab_module_preference` int(11) NOT NULL auto_increment,
`id_employee` int(11) NOT NULL,
`id_tab` int(11) NOT NULL,
`module` varchar(255) NOT NULL,
PRIMARY KEY (`id_tab_module_preference`),
UNIQUE KEY `employee_module` (`id_employee`, `id_tab`, `module`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
CREATE TABLE `PREFIX_carrier_tax_rules_group_shop` (
`id_carrier` int( 11 ) unsigned NOT NULL,
`id_tax_rules_group` int(11) unsigned NOT NULL,
+8
View File
@@ -10,3 +10,11 @@ UPDATE `PREFIX_customer` c, `PREFIX_orders` o SET c.id_lang = o.id_lang WHERE c.
UPDATE `PREFIX_quick_access` SET `link` = 'index.php?controller=AdminCartRules&addcart_rule' WHERE `link` = 'index.php?tab=AdminDiscounts&adddiscount';
CREATE TABLE `PREFIX_tab_module_preference` (
`id_tab_module_preference` int(11) NOT NULL auto_increment,
`id_employee` int(11) NOT NULL,
`id_tab` int(11) NOT NULL,
`module` varchar(255) NOT NULL,
PRIMARY KEY (`id_tab_module_preference`),
UNIQUE KEY `employee_module` (`id_employee`, `id_tab`, `module`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;