security update link,module_filters,search_api_solr,ubercart,views

This commit is contained in:
2019-04-24 16:39:12 +02:00
parent 0aea7a0db1
commit 514f3bd89e
497 changed files with 9038 additions and 3662 deletions

View File

@@ -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;
}
}
}
}

View File

@@ -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"

View File

@@ -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';

View File

@@ -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"

View File

@@ -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"

View File

@@ -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)) {

View File

@@ -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);
}
/**

View File

@@ -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

View File

@@ -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;

View File

@@ -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

View File

@@ -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

View File

@@ -18,3 +18,9 @@
text-transform: uppercase;
color: #888;
}
#module-filter-modules {
position: relative;
}
#module-filter-modules table {
position: absolute;
}

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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));
};

View File

@@ -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) {

View File

@@ -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();
}
});
});

View File

@@ -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',

View File

@@ -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"

View File

@@ -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');
}
/**

View File

@@ -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));
}

View File

@@ -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'];

View File

@@ -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);
}
}
}