diff --git a/core/includes/bootstrap.inc b/core/includes/bootstrap.inc index ab06260..40a38d6 100644 --- a/core/includes/bootstrap.inc +++ b/core/includes/bootstrap.inc @@ -2736,6 +2736,9 @@ function language_name($langcode) { return $language->name; } + if (empty($langcode)) { + $langcode = 'empty'; + } return t('Unknown (@langcode)', array('@langcode' => $langcode)); } diff --git a/core/modules/node/node.admin.inc b/core/modules/node/node.admin.inc index e197f60..bbb21ca 100644 --- a/core/modules/node/node.admin.inc +++ b/core/modules/node/node.admin.inc @@ -104,8 +104,8 @@ function node_filters() { ) + node_type_get_names(), ); - // Language filter if the site is multilingual. - if (language_multilingual()) { + // Language filter if language support is present. + if (node_is_multilanguage()) { $languages = language_list(TRUE); $language_options = array(LANGUAGE_NONE => t('- None -')); foreach ($languages as $langcode => $language) { @@ -395,6 +395,27 @@ function node_admin_content($form, $form_state) { } /** + * Decides we are in multilanguage context. + * + * When the node table has more than one language we are in this context. + * + * @return bool + * TRUE when having more than 1 language in our nodes table. + * + * @see node_filter_form() + * @see node_admin_nodes() + * + */ +function node_is_multilanguage() { + static $multilanguage; + + if (!isset($multilanguage)) { + $multilanguage = count(db_query("SELECT DISTINCT language FROM {node}")->fetchAll()) > 1; + } + return $multilanguage; +} + +/** * Returns the admin form object to node_admin_content(). * * @see node_multiple_delete_confirm() @@ -433,10 +454,8 @@ function node_admin_nodes() { '#submit' => array('node_admin_nodes_submit'), ); - // Enable language column if translation module is enabled or if we have any - // node with language. - $multilanguage = (module_exists('translation') || db_query_range("SELECT 1 FROM {node} WHERE language <> :language", 0, 1, array(':language' => LANGUAGE_NONE))->fetchField()); - + // Enable language column when having more than one language for nodes. + $multilanguage = node_is_multilanguage(); // Build the sortable table header. $header = array( 'title' => array('data' => t('Title'), 'field' => 'n.title'),