--- acidfree_orig.module 2007-08-14 14:02:38.000000000 -0400 +++ acidfree.module 2007-08-15 17:17:22.015625000 -0400 @@ -925,6 +925,7 @@ 1=>variable_get("acidfree_block_1_title", t('Favorite Acidfree items')), 2=>variable_get("acidfree_block_2_title", t('Random Acidfree items')), 3=>variable_get("acidfree_block_3_title", t('Add Acidfree items')), + 4=>variable_get("acidfree_block_4_title", t('Acidfree album item counts')), ); switch ($op) { case 'list': @@ -932,6 +933,7 @@ $blocks[1]['info'] = t('Acidfree item favorite selection'); $blocks[2]['info'] = t('Acidfree item random selection'); $blocks[3]['info'] = t('Add Acidfree items quick links'); + $blocks[4]['info'] = t('Acidfree album item counts'); return $blocks; case 'view': if (user_access('access content')) { @@ -975,6 +977,23 @@ $block['content'] = _acidfree_create_quick_links($node); } break; + case 4: + $vid = acidfree_get_vocab_id(); + $tree = taxonomy_get_tree($vid); + + $show_desc = variable_get('acidfree_block_4_show_desc', FALSE); + $prev_depth = -1; + foreach ($tree as $key => $term) { + $output .= "\n
  • $term->name (". taxonomy_term_count_nodes($term->tid) .')'; + $output .= $show_desc && $term->description ? ' - '. $term->description : NULL; + if ($term->depth != $prev_depth) { + if ($term->depth > $prev_depth) { $output .= "\n"; } + $prev_depth = $term->depth; + } + } + $block['content'] = ''. $output; + break; default: break; } @@ -987,32 +1006,46 @@ } case 'configure': { - $fields = array(); - if ($delta == 3) - return $fields; - $fields["acidfree_block_{$delta}_items"] = array( - '#type' => 'select', - '#title' => t('Number of items'), - '#default_value' => variable_get("acidfree_block_{$delta}_items", '5'), - '#options' => drupal_map_assoc(range(1,20)), - ); - if ($delta == 2) { - drupal_add_js(drupal_get_path('module', 'acidfree').'/acidfree.js'); - $all_albums = variable_get('acidfree_block_2_all_albums', 1); - $fields['acidfree_block_2_all_albums'] = array( - '#type' => 'checkbox', - '#title' => t('Include items from all albums'), - '#default_value' => $all_albums, - '#attributes' => array('onchange' => 'toggle_album_select(this);'), - ); - $random_selected = variable_get('acidfree_block_2_random_albums', array()); - $fields['acidfree_block_2_random_albums'] = _taxonomy_term_select( - t('Select random items from these albums'), null, $random_selected, acidfree_get_vocab_id(), t('description'), true, false); - if ($all_albums) { - $fields['acidfree_block_2_random_albums']['#attributes'] = array('disabled' => 'disabled'); - } - } - return $fields; + $fields["acidfree_block_{$delta}_items"] = array( + '#type' => 'select', + '#title' => t('Number of items'), + '#default_value' => variable_get("acidfree_block_{$delta}_items", '5'), + '#options' => drupal_map_assoc(range(1,20)), + ); + switch ($delta) { + case 3: + return array(); + + case 2: + drupal_add_js(drupal_get_path('module', 'acidfree').'/acidfree.js'); + $all_albums = variable_get('acidfree_block_2_all_albums', 1); + $fields['acidfree_block_2_all_albums'] = array( + '#type' => 'checkbox', + '#title' => t('Include items from all albums'), + '#default_value' => $all_albums, + '#attributes' => array('onchange' => 'toggle_album_select(this);'), + ); + $random_selected = variable_get('acidfree_block_2_random_albums', array()); + $fields['acidfree_block_2_random_albums'] = _taxonomy_term_select( + t('Select random items from these albums'), null, $random_selected, acidfree_get_vocab_id(), t('description'), true, false); + if ($all_albums) { + $fields['acidfree_block_2_random_albums']['#attributes'] = array('disabled' => 'disabled'); + } + + return $fields; + + case 4: + $show_desc = variable_get('acidfree_block_4_show_desc', FALSE); + $fields = array(); // Unset the default + $fields['acidfree_block_4_show_desc'] = array( + '#type' => 'checkbox', + '#title' => t('Show descriptions of albums'), + '#default_value' => $show_desc, + ); + + return $fields; + } /* end switch delta */ + } case 'save': if ($delta == 3) @@ -1021,8 +1054,12 @@ if ($delta == 2) { variable_set('acidfree_block_2_random_albums', $edit['acidfree_block_2_random_albums']); variable_set('acidfree_block_2_all_albums', $edit['acidfree_block_2_all_albums'] == 1); + break; + } + if ($delta == 4) { + variable_set('acidfree_block_4_show_desc', $edit['acidfree_block_4_show_desc']); + break; } - break; } }