Index: modules/block/block.admin.inc =================================================================== RCS file: /cvs/drupal/drupal/modules/block/block.admin.inc,v retrieving revision 1.34 diff -u -p -r1.34 block.admin.inc --- modules/block/block.admin.inc 3 Feb 2009 18:55:30 -0000 1.34 +++ modules/block/block.admin.inc 4 Feb 2009 21:58:25 -0000 @@ -154,8 +154,31 @@ function block_admin_configure(&$form_st '#value' => $delta, ); - $edit = db_fetch_array(db_query("SELECT pages, visibility, custom, title FROM {block} WHERE module = '%s' AND delta = '%s'", $module, $delta)); - + $edit = db_fetch_array(db_query("SELECT pages, visibility, custom, title, languages FROM {block} WHERE module = '%s' AND delta = '%s'", $module, $delta)); + if ($edit) { + $edit['languages'] = unserialize($edit['languages']); + } + + // Multilingual system. + if (module_exists('locale')) { + $form['language'] = array( + '#type' => 'fieldset', + '#title' => t('Multilingual settings'), + '#collapsible' => TRUE, + '#weight' => -1, + ); + $options = array('' => t('All languages')); + $options += locale_language_list('name'); + + $form['language']['languages'] = array( + '#type' => 'select', + '#title' => t('Language'), + '#default_value' => $edit['languages'], + '#options' => $options, + '#multiple' => TRUE, + ); + } + $form['block_settings'] = array( '#type' => 'fieldset', '#title' => t('Block specific settings'), @@ -280,7 +303,8 @@ function block_admin_configure_validate( function block_admin_configure_submit($form, &$form_state) { if (!form_get_errors()) { - db_query("UPDATE {block} SET visibility = %d, pages = '%s', custom = %d, title = '%s' WHERE module = '%s' AND delta = '%s'", $form_state['values']['visibility'], trim($form_state['values']['pages']), $form_state['values']['custom'], $form_state['values']['title'], $form_state['values']['module'], $form_state['values']['delta']); + $languages = is_array($form_state['values']['languages']) ? serialize($form_state['values']['languages']) : ''; + db_query("UPDATE {block} SET visibility = %d, pages = '%s', custom = %d, title = '%s', languages = '%s' WHERE module = '%s' AND delta = '%s'", $form_state['values']['visibility'], trim($form_state['values']['pages']), $form_state['values']['custom'], $form_state['values']['title'], $languages, $form_state['values']['module'], $form_state['values']['delta']); db_query("DELETE FROM {block_role} WHERE module = '%s' AND delta = '%s'", $form_state['values']['module'], $form_state['values']['delta']); foreach (array_filter($form_state['values']['roles']) as $rid) { db_query("INSERT INTO {block_role} (rid, module, delta) VALUES (%d, '%s', '%s')", $rid, $form_state['values']['module'], $form_state['values']['delta']);