d9ff82d up
diff --git a/nodeblock.module b/nodeblock.module
index 20c7870..87cdbf9 100755
--- a/nodeblock.module
+++ b/nodeblock.module
@@ -155,35 +155,23 @@ function nodeblock_form_alter(&$form, &$form_state, $form_id) {
         ),
     );
   }
+
   // node add/edit form
-  elseif (!empty($form['#node_edit_form'])) {    
+  elseif (!empty($form['#node_edit_form']) && nodeblock_type_enabled($form['#node']->type)) {
     $node = $form['#node'];
-    // Add translation fallback field for nodeblock and translation enabled source nodes only
-    //if (nodeblock_type_enabled($node->type) && module_exists('translation') && translation_supported_type($node->type) && empty($node->translation_source) && (empty($node->tnid) || $node->tnid == 0 || $node->tnid == $node->nid)) {
-      $form_nodeblock = array(
+
+    $form['nodeblock'] = array(
         '#type' => 'fieldset',
         '#title' => t('Node block'),
         '#collapsible' => TRUE,
         '#tree' => TRUE,
       );
-      if(variable_get('nodeblock_'. $node->type, 0) == 2){
-        $nodeblock_nodes = variable_get('nodeblock_nodes', array());
-        if(!isset($form['nodeblock'])) {
-            $form['nodeblock'] = $form_nodeblock;
-        }
-        $form['nodeblock']['settings'] = array(
-            '#type' => 'checkbox',
-            '#title' => t('Available as block'),
-        );
-      if (isset($node->nid)){
-          $form['nodeblock']['settings']['#default_value'] = $nodeblock_nodes[$node->nid];
-      }
-      $form['#submit'][] = 'nodeblock_node_submit';
 
+    $form['#submit'][] = 'nodeblock_node_submit';
+
+    // Add translation fallback field for nodeblock and translation enabled source nodes only
+    if(module_exists('translation') && translation_supported_type($node->type) && empty($node->translation_source) && (empty($node->tnid) || $node->tnid == 0 || $node->tnid == $node->nid)) {
       $nodeblock_translation_fallback = isset($node->nid) ? variable_get('nodeblock_translation_fallback_'.$node->nid, '0') : 0;
-      if(!$form['nodeblock']) {
-          $form['nodeblock'] = $form_nodeblock;
-      }
       $form['nodeblock']['translation_fallback'] = array(
         '#type' => 'checkbox',
         '#title' => t('Enable translation fallback?'),
@@ -191,6 +179,17 @@ function nodeblock_form_alter(&$form, &$form_state, $form_id) {
         '#default_value' => $nodeblock_translation_fallback,
       );
     }
+
+    if(variable_get('nodeblock_'. $node->type, 0) == 2) {
+      $nodeblock_nodes = variable_get('nodeblock_nodes', array());
+      $form['nodeblock']['settings'] = array(
+	'#type' => 'checkbox',
+	'#title' => t('Available as block'),
+      );
+      if (isset($node->nid) && isset($nodeblock_nodes[$node->nid])){
+	$form['nodeblock']['settings']['#default_value'] = $nodeblock_nodes[$node->nid];
+      }
+    }
   }
 }
 
@@ -260,7 +259,6 @@ function _nodeblock_insert_update($node) {
  * hook_block_info
  */
 function nodeblock_block_info() {
-  $nodeblock_nodes = variable_get('nodeblock_nodes', array());
   $blocks = array();
   $blocks2 = array();
   $types = node_type_get_types();
@@ -278,29 +276,20 @@ function nodeblock_block_info() {
       }
     }
   }
-  //extra functionality
-  if (!empty($nodeblock_nodes)) {
-    	$nodes = array();
-    	foreach ($nodeblock_nodes as $nid => $type) {
-    		if ($type) {
-    			$nodes[] = (int)$nid;
-    		}
-    	}
-    	if ($nodes) {
-            $request = db_select('node', 'n')
-            ->fields('n', array('nid', 'title', 'type'))
-            ->condition('n.status', 1)
-            ->condition('n.nid', $nodes ,'IN');
-            $result = $request->execute();
-    	}
-      foreach ($result as $node) {
-        if (variable_get('nodeblock_'. $node->type, 0) == 2) {
-        	$blocks[$node->nid] = array('info' => $node->title .' (nodeblock)');
-        }
+
+  $nodeblock_nodes = variable_get('nodeblock_nodes', array());
+  if ($nodeblock_nodes) {
+    $request = db_select('node', 'n')
+      ->fields('n', array('nid', 'title', 'type'))
+      ->condition('n.status', 1)
+      ->condition('n.nid', array_keys($nodeblock_nodes), 'IN');
+    $result = $request->execute();
+    foreach ($result as $node) {
+      if (variable_get('nodeblock_'. $node->type, 0) == 2) {
+	$blocks[$node->nid] = array('info' => 'nodeblock: ' . check_plain($node->title));
       }
     }
-  //end extra functionality
-
+  }
 
   return $blocks;
 }
