security update link,module_filters,search_api_solr,ubercart,views
This commit is contained in:
@@ -94,11 +94,27 @@ function context_theme_registry_alter(&$theme_registry) {
|
||||
*/
|
||||
function context_ctools_render_alter($info, $page, $data) {
|
||||
extract($data);
|
||||
if ($page && in_array($task['name'], array('node_view', 'node_edit'), TRUE)) {
|
||||
foreach ($contexts as $ctools_context) {
|
||||
if (in_array('node', $ctools_context->type) && !empty($ctools_context->data)) {
|
||||
context_node_condition($ctools_context->data, $task['name'] === 'node_view' ? 'view' : 'form');
|
||||
break;
|
||||
|
||||
// Check for page handlers.
|
||||
if ($page) {
|
||||
// Check for node page handler.
|
||||
if (in_array($task['name'], array('node_view', 'node_edit'), TRUE)) {
|
||||
foreach ($contexts as $ctools_context) {
|
||||
if (in_array('node', $ctools_context->type) && !empty($ctools_context->data)) {
|
||||
context_node_condition($ctools_context->data, $task['name'] === 'node_view' ? 'view' : 'form');
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Check for taxonomy term page handler.
|
||||
elseif (in_array($task['name'], array('term_view', 'term_edit'), TRUE)) {
|
||||
foreach ($contexts as $ctools_context) {
|
||||
if (in_array('taxonomy_term', $ctools_context->type) && !empty($ctools_context->data)) {
|
||||
if ($plugin = context_get_plugin('condition', 'taxonomy_term')) {
|
||||
$plugin->execute($ctools_context->data, $task['name'] === 'term_view' ? 'view' : 'form');
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -8,9 +8,8 @@ files[] = tests/context.test
|
||||
files[] = tests/context.conditions.test
|
||||
files[] = tests/context.reactions.test
|
||||
|
||||
; Information added by Drupal.org packaging script on 2016-05-18
|
||||
version = "7.x-3.7"
|
||||
; Information added by Drupal.org packaging script on 2019-02-26
|
||||
version = "7.x-3.10"
|
||||
core = "7.x"
|
||||
project = "context"
|
||||
datestamp = "1463605446"
|
||||
|
||||
datestamp = "1551220089"
|
||||
|
@@ -243,6 +243,11 @@ function context_preprocess_menu_link(&$variables) {
|
||||
// css class to the link of this menu.
|
||||
// - Do not add class twice on current page.
|
||||
if (in_array($variables['element']['#href'], $reaction_menu_paths) && $variables['element']['#href'] != $_GET['q']) {
|
||||
// Initialize classes array if not set.
|
||||
if (!isset($variables['element']['#localized_options']['attributes']['class'])) {
|
||||
$variables['element']['#localized_options']['attributes']['class'] = array();
|
||||
}
|
||||
|
||||
// Do not add the 'active' class twice in views tabs.
|
||||
if (!in_array('active', $variables['element']['#localized_options']['attributes']['class'])) {
|
||||
$variables['element']['#localized_options']['attributes']['class'][] = 'active';
|
||||
|
@@ -6,9 +6,8 @@ core = 7.x
|
||||
|
||||
files[] = plugins/context_layouts_reaction_block.inc
|
||||
|
||||
; Information added by Drupal.org packaging script on 2016-05-18
|
||||
version = "7.x-3.7"
|
||||
; Information added by Drupal.org packaging script on 2019-02-26
|
||||
version = "7.x-3.10"
|
||||
core = "7.x"
|
||||
project = "context"
|
||||
datestamp = "1463605446"
|
||||
|
||||
datestamp = "1551220089"
|
||||
|
@@ -8,9 +8,8 @@ configure = admin/structure/context
|
||||
files[] = context.module
|
||||
files[] = tests/context_ui.test
|
||||
|
||||
; Information added by Drupal.org packaging script on 2016-05-18
|
||||
version = "7.x-3.7"
|
||||
; Information added by Drupal.org packaging script on 2019-02-26
|
||||
version = "7.x-3.10"
|
||||
core = "7.x"
|
||||
project = "context"
|
||||
datestamp = "1463605446"
|
||||
|
||||
datestamp = "1551220089"
|
||||
|
@@ -16,7 +16,7 @@ class context_condition_query_string extends context_condition_path {
|
||||
*/
|
||||
function execute() {
|
||||
if ($this->condition_used()) {
|
||||
$current_query_string = $_SERVER["QUERY_STRING"];
|
||||
$current_query_string = empty($_SERVER["QUERY_STRING"]) ? '' : $_SERVER["QUERY_STRING"];
|
||||
foreach ($this->get_contexts() as $context) {
|
||||
$query_strings = $this->fetch_from_context($context, 'values');
|
||||
if ($this->match($current_query_string, $query_strings, TRUE)) {
|
||||
|
@@ -400,13 +400,17 @@ class context_reaction_block extends context_reaction {
|
||||
unset($_context_blocks);
|
||||
|
||||
foreach ($context_blocks as $r => $blocks) {
|
||||
//only render blocks in an active region
|
||||
// Only render blocks in an active region.
|
||||
if (array_key_exists($r, $active_regions)) {
|
||||
$context_blocks[$r] = _block_render_blocks($blocks);
|
||||
|
||||
// Make blocks editable if allowed.
|
||||
if ($this->is_editable_region($r)) {
|
||||
foreach ($context_blocks[$r] as $key => $block) {
|
||||
$editable = $this->is_editable_region($r);
|
||||
foreach ($context_blocks[$r] as $key => $block) {
|
||||
// Add the region property to each block.
|
||||
$context_blocks[$r][$key]->region = $r;
|
||||
|
||||
// Make blocks editable if allowed.
|
||||
if ($editable) {
|
||||
$context_blocks[$r][$key] = $this->editable_block($block);
|
||||
}
|
||||
}
|
||||
@@ -450,12 +454,9 @@ class context_reaction_block extends context_reaction {
|
||||
*/
|
||||
protected function max_block_weight() {
|
||||
$blocks = $this->get_blocks();
|
||||
$block_count = 0;
|
||||
foreach ($blocks as $region => $block_list) {
|
||||
$block_count += count($block_list);
|
||||
}
|
||||
// Add 2 to make sure there's space at either end of the block list
|
||||
return round(($block_count + 2) / 2);
|
||||
|
||||
// Add 2 to make sure there's space at either end of the block list.
|
||||
return round((count($blocks) + 2) / 2);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -68,7 +68,7 @@ DrupalContextBlockForm = function(blockForm) {
|
||||
|
||||
// Hide enabled blocks from selector that are used
|
||||
$('table.context-blockform-region tr').each(function() {
|
||||
var bid = $(this).attr('id');
|
||||
var bid = Drupal.checkPlain($(this).attr('id'));
|
||||
$('div.context-blockform-selector input[value="'+bid+'"]').parents('div.form-item').eq(0).hide();
|
||||
});
|
||||
// Show blocks in selector that are unused
|
||||
|
@@ -17,7 +17,7 @@ class context_reaction_region extends context_reaction {
|
||||
'#type' => 'fieldset',
|
||||
'#title' => "Disable Regions in {$theme->name} Theme",
|
||||
'#collapsible' => TRUE,
|
||||
'#collapsed' => !array_reduce($default, create_function('$a, $b', 'return $a || $b;')),
|
||||
'#collapsed' => !array_reduce($default, 'context_reaction_region::collapseRegion'),
|
||||
);
|
||||
$form[$theme->name]['disable'] = array(
|
||||
'#type' => 'checkboxes',
|
||||
@@ -29,6 +29,10 @@ class context_reaction_region extends context_reaction {
|
||||
}
|
||||
return $form;
|
||||
}
|
||||
|
||||
function collapseRegion($a, $b) {
|
||||
return $a || $b;
|
||||
}
|
||||
|
||||
function execute(&$page) {
|
||||
global $theme;
|
||||
|
@@ -1,27 +1,38 @@
|
||||
Module Filter 7.x-2.x, 2015-02-20
|
||||
Module Filter 7.x-2.1, 2017-06-09
|
||||
---------------------------------
|
||||
Issue #2437439 by mikhail.krainiuk, greenSkin, jayhawkfan75: Module Filter does
|
||||
not care about anchors in permission links.
|
||||
Issue #2866236 by Munavijayalakshmi, dhruveshdtripathi: Typo error in
|
||||
README.TXT file.
|
||||
Issue #2452067 by Madis: Option to show description expanded as default
|
||||
not working.
|
||||
Issue #2580791 by makbul_khan8: Coding standards and few function without
|
||||
help comments.
|
||||
Issue #2153697 by annya: Disabling option "Number of enabled modules" breaks
|
||||
tabs functionality.
|
||||
Issue #1710230 by willvincent: On | Off buttons does not change state with
|
||||
jquery_update module active.
|
||||
Added option to show description as expanded by default.
|
||||
Improved description field so when it is open, interacting with it's contents
|
||||
does not make it collapse.
|
||||
Placed collapsed/expanded images inside of module for easier, more reliable
|
||||
access.
|
||||
Added option to place version in own column.
|
||||
Issue #2113191 by joelpittet: Category tabs not working.
|
||||
|
||||
|
||||
Module Filter 7.x-2.0, 2015-02-22
|
||||
---------------------------------
|
||||
Simplifying the table rows by hiding version and requirements until a
|
||||
particular description is clicked.
|
||||
|
||||
|
||||
Module Filter 7.x-2.x, 2014-09-01
|
||||
---------------------------------
|
||||
#2235553 by greenSkin: Fixed latest jquery_update breaks module filter.
|
||||
#2304687 by mpdonadio: Fixed Remove hardcoded operations.
|
||||
#2293029 by topsitemakers: Fixed Take header offset into account when selecting
|
||||
a tab.
|
||||
#2290213 by topsitemakers: Minor typo in description - "has no affect" -> "has
|
||||
no effect".
|
||||
|
||||
|
||||
Module Filter 7.x-2.0-alpha2, 2013-12-06
|
||||
----------------------------------------
|
||||
#2141743, #2141743 by greenSkin: Fixed issues related to the new dynamically
|
||||
positioned tabs and using the dynamically positioned save button.
|
||||
|
||||
|
||||
Module Filter 7.x-2.0-alpha1, 2013-11-18
|
||||
----------------------------------------
|
||||
by greenSkin: Tabs now should always be visible while scrolling large lists of
|
||||
modules.
|
||||
#1854348 by alexweber, greenSkin: Make filter textfield wider on modules page
|
||||
|
@@ -17,8 +17,8 @@ visibility of modules that are disabled and depend on module(s) that are
|
||||
missing.
|
||||
|
||||
The update status report filter also contains four checkboxes: Up-to-Date,
|
||||
Update availabe, Security update, and Unknown. These directly affect the
|
||||
visibilty of each project; whether it is up-to-date, there is an update
|
||||
Update available, Security update, and Unknown. These directly affect the
|
||||
visibility of each project; whether it is up-to-date, there is an update
|
||||
available, a security update is available, or the status is unknown.
|
||||
|
||||
Installation
|
||||
|
@@ -18,3 +18,9 @@
|
||||
text-transform: uppercase;
|
||||
color: #888;
|
||||
}
|
||||
#module-filter-modules {
|
||||
position: relative;
|
||||
}
|
||||
#module-filter-modules table {
|
||||
position: absolute;
|
||||
}
|
||||
|
@@ -167,9 +167,6 @@ html.js #module-filter-modules table td {
|
||||
.admin-version {
|
||||
white-space: nowrap;
|
||||
}
|
||||
.admin-operations {
|
||||
float: right;
|
||||
}
|
||||
.admin-operations a.module-link {
|
||||
display: inline;
|
||||
}
|
||||
|
@@ -7,6 +7,9 @@
|
||||
#system-modules th.name {
|
||||
width: 25%;
|
||||
}
|
||||
#system-modules th.version {
|
||||
width: 10%;
|
||||
}
|
||||
#system-modules th.links {
|
||||
width: 15%;
|
||||
}
|
||||
@@ -14,12 +17,12 @@
|
||||
vertical-align: top;
|
||||
}
|
||||
#system-modules .expand.inner {
|
||||
background: transparent url(/misc/menu-collapsed.png) left 0.6em no-repeat;
|
||||
background: transparent url(../images/collapsed.png) left 0.6em no-repeat;
|
||||
margin-left: -12px;
|
||||
padding-left: 12px;
|
||||
}
|
||||
#system-modules .expanded.expand.inner {
|
||||
background: transparent url(/misc/menu-expanded.png) left 0.6em no-repeat;
|
||||
background: transparent url(../images/expanded.png) left 0.6em no-repeat;
|
||||
}
|
||||
#system-modules .description {
|
||||
cursor: pointer;
|
||||
@@ -29,6 +32,9 @@
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
#system-modules .description .inner.expanded > * {
|
||||
cursor: auto;
|
||||
}
|
||||
#system-modules .description .requirements,
|
||||
#system-modules .description .links {
|
||||
display: none;
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 105 B |
Binary file not shown.
After Width: | Height: | Size: 106 B |
@@ -265,6 +265,9 @@ $.fn.moduleFilter = function(selector, options) {
|
||||
if (Drupal.settings.moduleFilter.setFocus) {
|
||||
filterInput.focus();
|
||||
}
|
||||
if (Drupal.settings.moduleFilter.expandedDescription) {
|
||||
$('#system-modules td.description .inner.expand').addClass('expanded');
|
||||
}
|
||||
filterInput.data('moduleFilter', new Drupal.ModuleFilter.Filter(this, selector, options));
|
||||
};
|
||||
|
||||
|
@@ -57,7 +57,7 @@ Drupal.behaviors.moduleFilterTabs = {
|
||||
// Build tabs from package title rows.
|
||||
var tabs = '<ul>';
|
||||
for (var i in Drupal.settings.moduleFilter.packageIDs) {
|
||||
var id = Drupal.settings.moduleFilter.packageIDs[i];
|
||||
var id = Drupal.checkPlain(Drupal.settings.moduleFilter.packageIDs[i]);
|
||||
|
||||
var name = id;
|
||||
var tabClass = 'project-tab';
|
||||
@@ -84,9 +84,9 @@ Drupal.behaviors.moduleFilterTabs = {
|
||||
summary += '<span>' + Drupal.t('No modules were enabled or disabled within the last week.') + '</span>';
|
||||
}
|
||||
break;
|
||||
default:
|
||||
var $row = $('#' + id + '-package');
|
||||
name = $.trim($row.text());
|
||||
default:
|
||||
var $row = $('#' + id + '-package', this);
|
||||
name = Drupal.checkPlain($.trim($row.text()));
|
||||
$row.remove();
|
||||
break;
|
||||
}
|
||||
@@ -233,8 +233,8 @@ Drupal.behaviors.moduleFilterTabs = {
|
||||
}
|
||||
|
||||
if (Drupal.settings.moduleFilter.useSwitch) {
|
||||
$('td.checkbox div.form-item').hide();
|
||||
$('td.checkbox').each(function(i) {
|
||||
$('td.checkbox div.form-item', table).hide();
|
||||
$('td.checkbox', table).each(function(i) {
|
||||
var $cell = $(this);
|
||||
var $checkbox = $(':checkbox', $cell);
|
||||
var $switch = $('.toggle-enable', $cell);
|
||||
@@ -242,17 +242,14 @@ Drupal.behaviors.moduleFilterTabs = {
|
||||
if (!$(this).hasClass('disabled')) {
|
||||
if (Drupal.ModuleFilter.jQueryIsNewer()) {
|
||||
$checkbox.click();
|
||||
$switch.toggleClass('off');
|
||||
}
|
||||
else {
|
||||
$checkbox.click().change();
|
||||
$switch.toggleClass('off');
|
||||
}
|
||||
}
|
||||
});
|
||||
$checkbox.click(function() {
|
||||
if (!$switch.hasClass('disabled')) {
|
||||
$switch.toggleClass('off');
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@@ -520,7 +517,7 @@ Drupal.ModuleFilter.updateVisualAid = function(type, $row) {
|
||||
}
|
||||
|
||||
var tab = Drupal.ModuleFilter.tabs[id];
|
||||
var name = $('td:nth(1) strong', $row).text();
|
||||
var name = Drupal.checkPlain($('td:nth(1) strong', $row).text());
|
||||
switch (type) {
|
||||
case 'enable':
|
||||
if (Drupal.ModuleFilter.disabling[id + name] != undefined) {
|
||||
|
@@ -3,8 +3,13 @@
|
||||
Drupal.behaviors.moduleFilter = {
|
||||
attach: function(context) {
|
||||
$('#system-modules td.description').once('description', function() {
|
||||
$('.inner.expand', $(this)).click(function() {
|
||||
$(this).toggleClass('expanded');
|
||||
$(this).click(function() {
|
||||
$('.inner.expand', $(this)).toggleClass('expanded');
|
||||
});
|
||||
$('.inner.expand', $(this)).children().click(function(e) {
|
||||
if ($(this).parent().hasClass('expanded')) {
|
||||
e.stopPropagation();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
@@ -25,44 +25,44 @@ function module_filter_settings() {
|
||||
'#type' => 'checkbox',
|
||||
'#title' => t('Enhance the modules page with tabs'),
|
||||
'#description' => t('Alternate tabbed theme that restructures packages into tabs.'),
|
||||
'#default_value' => variable_get('module_filter_tabs', 1)
|
||||
'#default_value' => variable_get('module_filter_tabs', 1),
|
||||
);
|
||||
$form['tabs'] = array(
|
||||
'#type' => 'fieldset',
|
||||
'#title' => t('Tabs'),
|
||||
'#description' => t('Settings used with the tabs view of the modules page.'),
|
||||
'#collapsible' => TRUE,
|
||||
'#collapsed' => FALSE
|
||||
'#collapsed' => FALSE,
|
||||
);
|
||||
$form['tabs']['module_filter_count_enabled'] = array(
|
||||
'#type' => 'checkbox',
|
||||
'#title' => t('Number of enabled modules'),
|
||||
'#description' => t('Display the number of enabled modules in the active tab along with the total number of modules.'),
|
||||
'#default_value' => variable_get('module_filter_count_enabled', 1)
|
||||
'#default_value' => variable_get('module_filter_count_enabled', 1),
|
||||
);
|
||||
$form['tabs']['module_filter_visual_aid'] = array(
|
||||
'#type' => 'checkbox',
|
||||
'#title' => t('Visual aids'),
|
||||
'#description' => t('When enabling/disabling modules, the module name will display in the tab summary.<br />When filtering, a count of results for each tab will be presented.'),
|
||||
'#default_value' => variable_get('module_filter_visual_aid', 1)
|
||||
'#default_value' => variable_get('module_filter_visual_aid', 1),
|
||||
);
|
||||
$form['tabs']['module_filter_hide_empty_tabs'] = array(
|
||||
'#type' => 'checkbox',
|
||||
'#title' => t('Hide tabs with no results'),
|
||||
'#description' => t('When a filter returns no results for a tab, the tab is hidden. This is dependent on visual aids being enabled.'),
|
||||
'#default_value' => variable_get('module_filter_hide_empty_tabs', 0)
|
||||
'#default_value' => variable_get('module_filter_hide_empty_tabs', 0),
|
||||
);
|
||||
$form['tabs']['module_filter_dynamic_save_position'] = array(
|
||||
'#type' => 'checkbox',
|
||||
'#title' => t('Dynamically position Save button'),
|
||||
'#description' => t("For sites with lots of tabs, enable to help keep the 'Save configuration' button more accessible."),
|
||||
'#default_value' => variable_get('module_filter_dynamic_save_position', 1)
|
||||
'#default_value' => variable_get('module_filter_dynamic_save_position', 1),
|
||||
);
|
||||
$form['tabs']['module_filter_use_url_fragment'] = array(
|
||||
'#type' => 'checkbox',
|
||||
'#title' => t('Use URL fragment'),
|
||||
'#description' => t('Use URL fragment when navigating between tabs. This lets you use the browsers back/forward buttons to navigate through the tabs you selected.') . '<br />' . t('When the Overlay module is enabled this functionality will not be used since overlay relies on the URL fragment.'),
|
||||
'#default_value' => variable_get('module_filter_use_url_fragment', 1)
|
||||
'#default_value' => variable_get('module_filter_use_url_fragment', 1),
|
||||
);
|
||||
$form['tabs']['module_filter_use_switch'] = array(
|
||||
'#type' => 'checkbox',
|
||||
@@ -82,6 +82,18 @@ function module_filter_settings() {
|
||||
'#description' => t('When enabled, the active tab will be remembered.'),
|
||||
'#default_value' => variable_get('module_filter_remember_active_tab', 1),
|
||||
);
|
||||
$form['tabs']['module_filter_version_column'] = array(
|
||||
'#type' => 'checkbox',
|
||||
'#title' => t('Place version in own column'),
|
||||
'#description' => t("Moves the version out of the description and into it's own column"),
|
||||
'#default_value' => variable_get('module_filter_version_column', 0),
|
||||
);
|
||||
$form['tabs']['module_filter_expanded_description'] = array(
|
||||
'#type' => 'checkbox',
|
||||
'#title' => t('Expand description by default'),
|
||||
'#description' => t('When enabled, the description will be expanded by default.'),
|
||||
'#default_value' => variable_get('module_filter_expanded_description', 0),
|
||||
);
|
||||
|
||||
$form['update'] = array(
|
||||
'#type' => 'fieldset',
|
||||
|
@@ -4,7 +4,6 @@ core = 7.x
|
||||
package = Administration
|
||||
|
||||
files[] = module_filter.install
|
||||
files[] = module_filter.js
|
||||
files[] = module_filter.module
|
||||
files[] = module_filter.admin.inc
|
||||
files[] = module_filter.theme.inc
|
||||
@@ -17,9 +16,8 @@ files[] = js/module_filter_tab.js
|
||||
|
||||
configure = admin/config/user-interface/modulefilter
|
||||
|
||||
; Information added by Drupal.org packaging script on 2015-02-22
|
||||
version = "7.x-2.0"
|
||||
; Information added by Drupal.org packaging script on 2019-03-27
|
||||
version = "7.x-2.2"
|
||||
core = "7.x"
|
||||
project = "module_filter"
|
||||
datestamp = "1424631189"
|
||||
|
||||
datestamp = "1553698385"
|
||||
|
@@ -19,6 +19,8 @@ function module_filter_uninstall() {
|
||||
variable_del('module_filter_track_recent_modules');
|
||||
variable_del('module_filter_remember_active_tab');
|
||||
variable_del('module_filter_remember_update_state');
|
||||
variable_del('module_filter_version_column');
|
||||
variable_del('module_filter_expanded_description');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -18,8 +18,8 @@ function module_filter_permission() {
|
||||
return array(
|
||||
'administer module filter' => array(
|
||||
'title' => t('Administer Module Filter'),
|
||||
'description' => t('Configure how Module Filter performs.')
|
||||
)
|
||||
'description' => t('Configure how Module Filter performs.'),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ function module_filter_menu() {
|
||||
'access arguments' => array('administer module filter'),
|
||||
'page callback' => 'drupal_get_form',
|
||||
'page arguments' => array('module_filter_settings'),
|
||||
'file' => 'module_filter.admin.inc'
|
||||
'file' => 'module_filter.admin.inc',
|
||||
);
|
||||
return $items;
|
||||
}
|
||||
@@ -63,32 +63,32 @@ function module_filter_form_system_modules_alter(&$form, &$form_state, $form_id)
|
||||
'#type' => 'module_filter',
|
||||
'#attached' => array(
|
||||
'js' => array(
|
||||
drupal_get_path('module', 'module_filter') . '/js/modules.js'
|
||||
)
|
||||
)
|
||||
drupal_get_path('module', 'module_filter') . '/js/modules.js' => array('weight' => 1),
|
||||
),
|
||||
),
|
||||
);
|
||||
$checkbox_defaults = array(
|
||||
((isset($_GET['enabled'])) ? $_GET['enabled'] : 1) ? 'enabled' : '',
|
||||
((isset($_GET['disabled'])) ? $_GET['disabled'] : 1) ? 'disabled' : '',
|
||||
((isset($_GET['required'])) ? $_GET['required'] : 1) ? 'required' : '',
|
||||
((isset($_GET['unavailable'])) ? $_GET['unavailable'] : 1) ? 'unavailable' : ''
|
||||
((isset($_GET['unavailable'])) ? $_GET['unavailable'] : 1) ? 'unavailable' : '',
|
||||
);
|
||||
$form['module_filter']['show'] = array(
|
||||
'#type' => 'checkboxes',
|
||||
'#default_value' => array_filter($checkbox_defaults),
|
||||
'#options' => array('enabled' => t('Enabled'), 'disabled' => t('Disabled'), 'required' => t('Required'), 'unavailable' => t('Unavailable')),
|
||||
'#prefix' => '<div id="module-filter-show-wrapper">',
|
||||
'#suffix' => '</div>'
|
||||
'#suffix' => '</div>',
|
||||
);
|
||||
|
||||
if (variable_get('module_filter_tabs', 1)) {
|
||||
$form['module_filter']['#attached']['css'][] = drupal_get_path('module', 'module_filter') .'/css/module_filter_tab.css';
|
||||
$form['module_filter']['#attached']['css'][] = drupal_get_path('module', 'module_filter') . '/css/module_filter_tab.css';
|
||||
$form['module_filter']['#attached']['library'][] = array('system', 'jquery.bbq');
|
||||
$form['module_filter']['#attached']['js'][] = drupal_get_path('module', 'module_filter') .'/js/module_filter_tab.js';
|
||||
$form['module_filter']['#attached']['js'][drupal_get_path('module', 'module_filter') . '/js/module_filter_tab.js'] = array('weight' => 2);
|
||||
|
||||
if (!module_exists('page_actions') && variable_get('module_filter_dynamic_save_position', 1)) {
|
||||
$form['module_filter']['#attached']['css'][] = drupal_get_path('module', 'module_filter') .'/css/dynamic_position.css';
|
||||
$form['module_filter']['#attached']['js'][] = drupal_get_path('module', 'module_filter') .'/js/dynamic_position.js';
|
||||
$form['module_filter']['#attached']['css'][] = drupal_get_path('module', 'module_filter') . '/css/dynamic_position.css';
|
||||
$form['module_filter']['#attached']['js'][drupal_get_path('module', 'module_filter') . '/js/dynamic_position.js'] = array('weight' => 3);
|
||||
}
|
||||
|
||||
$form['#attached']['css'][] = drupal_get_path('module', 'module_filter') . '/css/modules.css';
|
||||
@@ -128,7 +128,7 @@ function module_filter_element_info() {
|
||||
'#process' => array('form_process_module_filter', 'ajax_process_form'),
|
||||
'#weight' => -1,
|
||||
'#tree' => TRUE,
|
||||
'#theme' => 'module_filter'
|
||||
'#theme' => 'module_filter',
|
||||
);
|
||||
return $types;
|
||||
}
|
||||
@@ -153,6 +153,18 @@ function module_filter_theme() {
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create and add new textfield element.
|
||||
*
|
||||
* @param $element
|
||||
* An associative array containing the properties and children of the
|
||||
* form actions container.
|
||||
* @param $form_state
|
||||
* The $form_state array for the form this element belongs to.
|
||||
*
|
||||
* @return
|
||||
* The processed element.
|
||||
*/
|
||||
function form_process_module_filter($element, &$form_state) {
|
||||
$element['name'] = array(
|
||||
'#type' => 'textfield',
|
||||
@@ -163,7 +175,7 @@ function form_process_module_filter($element, &$form_state) {
|
||||
'#attributes' => ((isset($element['#attributes'])) ? $element['#attributes'] : array()) + array('autocomplete' => 'off'),
|
||||
'#attached' => array(
|
||||
'css' => array(
|
||||
drupal_get_path('module', 'module_filter') . '/css/module_filter.css'
|
||||
drupal_get_path('module', 'module_filter') . '/css/module_filter.css',
|
||||
),
|
||||
'js' => array(
|
||||
'misc/jquery.cookie.js',
|
||||
@@ -182,12 +194,13 @@ function form_process_module_filter($element, &$form_state) {
|
||||
'trackRecent' => variable_get('module_filter_track_recent_modules', 1),
|
||||
'rememberActiveTab' => variable_get('module_filter_remember_active_tab', 1),
|
||||
'rememberUpdateState' => variable_get('module_filter_remember_update_state', 0),
|
||||
)
|
||||
'expandedDescription' => variable_get('module_filter_expanded_description', 0),
|
||||
),
|
||||
),
|
||||
'type' => 'setting'
|
||||
)
|
||||
)
|
||||
)
|
||||
'type' => 'setting',
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
if (isset($element['#description'])) {
|
||||
$element['name']['#description'] = $element['#description'];
|
||||
@@ -195,15 +208,18 @@ function form_process_module_filter($element, &$form_state) {
|
||||
return $element;
|
||||
}
|
||||
|
||||
/**
|
||||
* Form submission handler to filters module list.
|
||||
*/
|
||||
function module_filter_system_modules_submit_redirect($form, &$form_state) {
|
||||
$query = array();
|
||||
if (!empty($form_state['values']['module_filter']['name'])) {
|
||||
$query['filter'] = $form_state['values']['module_filter']['name'];
|
||||
}
|
||||
$query['enabled'] = (int)(!empty($form_state['values']['module_filter']['show']['enabled']));
|
||||
$query['disabled'] = (int)(!empty($form_state['values']['module_filter']['show']['disabled']));
|
||||
$query['required'] = (int)(!empty($form_state['values']['module_filter']['show']['required']));
|
||||
$query['unavailable'] = (int)(!empty($form_state['values']['module_filter']['show']['unavailable']));
|
||||
$query['enabled'] = (int) (!empty($form_state['values']['module_filter']['show']['enabled']));
|
||||
$query['disabled'] = (int) (!empty($form_state['values']['module_filter']['show']['disabled']));
|
||||
$query['required'] = (int) (!empty($form_state['values']['module_filter']['show']['required']));
|
||||
$query['unavailable'] = (int) (!empty($form_state['values']['module_filter']['show']['unavailable']));
|
||||
|
||||
$form_state['redirect'] = array(
|
||||
'admin/modules',
|
||||
@@ -211,6 +227,9 @@ function module_filter_system_modules_submit_redirect($form, &$form_state) {
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Form submission handler to track recently enabled/disabled modules
|
||||
*/
|
||||
function module_filter_system_modules_submit_recent($form, &$form_state) {
|
||||
$recent_modules = variable_get('module_filter_recent_modules', array());
|
||||
|
||||
@@ -225,6 +244,11 @@ function module_filter_system_modules_submit_recent($form, &$form_state) {
|
||||
variable_set('module_filter_recent_modules', $recent_modules);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create list of newly added modules (within a week)
|
||||
* @return
|
||||
* An array of newly added modules.
|
||||
*/
|
||||
function module_filter_new_modules() {
|
||||
// Get current list of modules.
|
||||
$files = system_rebuild_module_data();
|
||||
@@ -249,12 +273,24 @@ function module_filter_new_modules() {
|
||||
return $new_modules;
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to replace special characters with hyphen.
|
||||
* @param string $text
|
||||
* @return
|
||||
* String
|
||||
*/
|
||||
function module_filter_get_id($text) {
|
||||
$id = strtolower($text);
|
||||
$id = preg_replace('/([^a-z0-9]+)/', '-', $id);
|
||||
return trim($id, '-');
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to return true/false depending on module changed time and a week timestamp
|
||||
* @param integer $var
|
||||
* @return
|
||||
* Boolean indicating
|
||||
*/
|
||||
function module_filter_recent_filter($var) {
|
||||
return (!($var < REQUEST_TIME - 60*60*24*7));
|
||||
return (!($var < REQUEST_TIME - 60 * 60 * 24 * 7));
|
||||
}
|
||||
|
@@ -1,5 +1,9 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
*/
|
||||
|
||||
/**
|
||||
* Wrapper function for update_status().
|
||||
*
|
||||
@@ -12,20 +16,23 @@ function module_filter_update_status() {
|
||||
return array(
|
||||
'module_filter' => drupal_get_form('module_filter_update_status_form'),
|
||||
'update_report' => array(
|
||||
'#markup' => $update_report
|
||||
)
|
||||
'#markup' => $update_report,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Form builder for the module filter form.
|
||||
*/
|
||||
function module_filter_update_status_form($form, &$form_state) {
|
||||
$form['module_filter'] = array(
|
||||
'#type' => 'module_filter',
|
||||
'#attached' => array(
|
||||
'css' => array(
|
||||
drupal_get_path('module', 'module_filter') . '/css/update_status.css'
|
||||
drupal_get_path('module', 'module_filter') . '/css/update_status.css',
|
||||
),
|
||||
'js' => array(
|
||||
drupal_get_path('module', 'module_filter') . '/js/update_status.js'
|
||||
drupal_get_path('module', 'module_filter') . '/js/update_status.js',
|
||||
),
|
||||
),
|
||||
);
|
||||
@@ -34,7 +41,7 @@ function module_filter_update_status_form($form, &$form_state) {
|
||||
'#default_value' => (isset($_GET['show']) && in_array($_GET['show'], array('all', 'updates', 'security', 'unknown'))) ? $_GET['show'] : 'all',
|
||||
'#options' => array('all' => t('All'), 'updates' => t('Update available'), 'security' => t('Security update'), 'unknown' => t('Unknown')),
|
||||
'#prefix' => '<div id="module-filter-show-wrapper">',
|
||||
'#suffix' => '</div>'
|
||||
'#suffix' => '</div>',
|
||||
);
|
||||
if (module_exists('update_advanced')) {
|
||||
$options = $form['module_filter']['show']['#options'];
|
||||
|
@@ -37,6 +37,9 @@ function theme_module_filter_system_modules_tabs($variables) {
|
||||
array('data' => t('Description'), 'class' => array('description')),
|
||||
array('data' => t('Links'), 'class' => array('links')),
|
||||
);
|
||||
if (variable_get('module_filter_version_column', 0)) {
|
||||
array_splice($header, 2, 0, array(array('data' => t('Version'), 'class' => array('version'))));
|
||||
}
|
||||
$package_ids = array('all');
|
||||
$enabled['all'] = array();
|
||||
|
||||
@@ -101,11 +104,18 @@ function theme_module_filter_system_modules_tabs($variables) {
|
||||
}
|
||||
$row[] = array('class' => array('name'), 'data' => $label . '><strong>' . drupal_render($module['name']) . '</strong> <span class="module-machine-name">(' . $key . ')</span></label>');
|
||||
|
||||
if (variable_get('module_filter_version_column', 0) && $version) {
|
||||
$row[] = array('class' => array('version'), 'data' => drupal_render($module['version']));
|
||||
}
|
||||
|
||||
// Add the description, along with any modules it requires.
|
||||
if (empty($module['description']['#markup'])) {
|
||||
$module['description']['#markup'] = '<em>' . t('No description available.') . '</em>';
|
||||
}
|
||||
$description = '<span class="details"><span class="text">' . drupal_render($module['description']) . '</span></span>';
|
||||
if ($version || $requires || $required_by) {
|
||||
if ($requires || $required_by || (!variable_get('module_filter_version_column', 0) && $version)) {
|
||||
$description .= '<div class="requirements">';
|
||||
if ($version) {
|
||||
if (!variable_get('module_filter_version_column', 0) && $version) {
|
||||
$description .= '<div class="admin-requirements">' . t('Version: !module-version', array('!module-version' => drupal_render($module['version']))) . '</div>';
|
||||
}
|
||||
if ($requires) {
|
||||
@@ -136,21 +146,20 @@ function theme_module_filter_system_modules_tabs($variables) {
|
||||
$form['modules'][$package]['#printed'] = TRUE;
|
||||
}
|
||||
|
||||
if (variable_get('module_filter_count_enabled', 1)) {
|
||||
$enabled_counts = array();
|
||||
foreach ($enabled as $package_id => $value) {
|
||||
$enabled_counts[$package_id] = array(
|
||||
'enabled' => count(array_filter($value)),
|
||||
'total' => count($value),
|
||||
);
|
||||
}
|
||||
drupal_add_js(array(
|
||||
'moduleFilter' => array(
|
||||
'packageIDs' => $package_ids,
|
||||
'enabledCounts' => $enabled_counts,
|
||||
)
|
||||
), 'setting');
|
||||
//Get packages and count number of modules
|
||||
$enabled_counts = array();
|
||||
foreach ($enabled as $package_id => $value) {
|
||||
$enabled_counts[$package_id] = array(
|
||||
'enabled' => count(array_filter($value)),
|
||||
'total' => count($value),
|
||||
);
|
||||
}
|
||||
drupal_add_js(array(
|
||||
'moduleFilter' => array(
|
||||
'packageIDs' => $package_ids,
|
||||
'enabledCounts' => $enabled_counts,
|
||||
)
|
||||
), 'setting');
|
||||
|
||||
// Add first and last class to rows.
|
||||
$rows[0]['class'][] = 'first';
|
||||
@@ -165,6 +174,12 @@ function theme_module_filter_system_modules_tabs($variables) {
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Theme function for module filter operations.
|
||||
* @param $variables
|
||||
* @return
|
||||
* HTML for admin status operations.
|
||||
*/
|
||||
function theme_module_filter_operations(&$vars) {
|
||||
$links = &$vars['links'];
|
||||
$dropbutton = $vars['dropbutton'];
|
||||
@@ -174,16 +189,19 @@ function theme_module_filter_operations(&$vars) {
|
||||
if ($dropbutton) {
|
||||
hide($links[$key]);
|
||||
if (!empty($links[$key]['#href'])) {
|
||||
$operations[] = array(
|
||||
$operations[$key] = array(
|
||||
'title' => $links[$key]['#title'],
|
||||
'href' => $links[$key]['#href'],
|
||||
);
|
||||
if (isset($links[$key]['#options'])) {
|
||||
$operations[$key] += $links[$key]['#options'];
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
$data = drupal_render($links[$key]);
|
||||
if (!empty($data)) {
|
||||
$operations[] = array('data' => $data);
|
||||
$operations[$key] = array('data' => $data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user