Issue #1635394 by djdevin, droplet, webflo, floretan: Fixed Fatal error when filtering the content admin page by language.
parent
6f38f5333d
commit
4964fd2989
|
@ -203,4 +203,35 @@ class LocaleContentTest extends WebTestBase {
|
||||||
$this->drupalLogout();
|
$this->drupalLogout();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test filtering Node content by language.
|
||||||
|
*/
|
||||||
|
function testNodeAdminLanguageFilter() {
|
||||||
|
// User to add and remove language.
|
||||||
|
$admin_user = $this->drupalCreateUser(array('administer languages', 'access administration pages', 'access content overview', 'administer nodes', 'bypass node access'));
|
||||||
|
|
||||||
|
// Log in as admin.
|
||||||
|
$this->drupalLogin($admin_user);
|
||||||
|
|
||||||
|
// Enable multiple languages.
|
||||||
|
$this->drupalPost('admin/config/regional/language/edit/en', array('locale_translate_english' => TRUE), t('Save language'));
|
||||||
|
$this->drupalPost('admin/config/regional/language/add', array('predefined_langcode' => 'zh-hant'), t('Add language'));
|
||||||
|
|
||||||
|
// Create two nodes: English and Chinese.
|
||||||
|
$node_en = $this->drupalCreateNode(array('langcode' => 'en'));
|
||||||
|
$node_zh_hant = $this->drupalCreateNode(array('langcode' => 'zh-hant'));
|
||||||
|
|
||||||
|
$this->drupalGet('admin/content');
|
||||||
|
|
||||||
|
// Verify filtering by language.
|
||||||
|
$edit = array(
|
||||||
|
'langcode' => 'zh-hant',
|
||||||
|
);
|
||||||
|
$this->drupalPost(NULL, $edit, t('Filter'));
|
||||||
|
|
||||||
|
$this->assertLinkByHref('node/' . $node_zh_hant->nid . '/edit');
|
||||||
|
$this->assertNoLinkByHref('node/' . $node_en->nid . '/edit');
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -114,7 +114,7 @@ function node_filters() {
|
||||||
// Make locked languages appear special in the list.
|
// Make locked languages appear special in the list.
|
||||||
$language_options[$langcode] = $language->locked ? t('- @name -', array('@name' => $language->name)) : $language->name;
|
$language_options[$langcode] = $language->locked ? t('- @name -', array('@name' => $language->name)) : $language->name;
|
||||||
}
|
}
|
||||||
$filters['language'] = array(
|
$filters['langcode'] = array(
|
||||||
'title' => t('language'),
|
'title' => t('language'),
|
||||||
'options' => array(
|
'options' => array(
|
||||||
'[any]' => t('- Any -'),
|
'[any]' => t('- Any -'),
|
||||||
|
@ -140,7 +140,7 @@ function node_build_filter_query(SelectInterface $query) {
|
||||||
// Note: no exploitable hole as $key/$value have already been checked when submitted
|
// Note: no exploitable hole as $key/$value have already been checked when submitted
|
||||||
list($key, $value) = explode('-', $value, 2);
|
list($key, $value) = explode('-', $value, 2);
|
||||||
case 'type':
|
case 'type':
|
||||||
case 'language':
|
case 'langcode':
|
||||||
$query->condition('n.' . $key, $value);
|
$query->condition('n.' . $key, $value);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -176,7 +176,7 @@ function node_filter_form() {
|
||||||
$value = module_invoke('taxonomy', 'term_load', $value);
|
$value = module_invoke('taxonomy', 'term_load', $value);
|
||||||
$value = $value->name;
|
$value = $value->name;
|
||||||
}
|
}
|
||||||
elseif ($type == 'language') {
|
elseif ($type == 'langcode') {
|
||||||
$value = language_name($value);
|
$value = language_name($value);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -189,7 +189,7 @@ function node_filter_form() {
|
||||||
else {
|
else {
|
||||||
$form['filters']['current'][] = array('#markup' => t('where %property is %value', $t_args));
|
$form['filters']['current'][] = array('#markup' => t('where %property is %value', $t_args));
|
||||||
}
|
}
|
||||||
if (in_array($type, array('type', 'language'))) {
|
if (in_array($type, array('type', 'langcode'))) {
|
||||||
// Remove the option if it is already being filtered on.
|
// Remove the option if it is already being filtered on.
|
||||||
unset($filters[$type]);
|
unset($filters[$type]);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue