--- home/baz/service_links/service_links.module 2006-06-26 02:02:17.000000000 +0100 +++ var/www/headfuzz/modules/service_links/service_links.module 2006-08-23 23:11:25.000000000 +0100 @@ -45,6 +45,18 @@ '#default_value' => variable_get('service_links_node_types', array()), '#options' => node_get_types(), ); +/* New stuff. Barry Carter */ + $form['category_to_show_the_links'] = array( + '#type' => 'fieldset', + '#title' => t('What category to show up in'), + ); + $form['category_to_show_the_links']['service_links_category_types'] = array( + '#type' => 'checkboxes', + '#title' => t('Types'), + '#default_value' => variable_get('service_links_category_types', array()), + '#options' => service_links_get_cats(), + ); +/* End New stuff. Barry Carter */ $form['what_links_to_show'] = array( '#type' => 'fieldset', @@ -156,6 +168,23 @@ return $form; } +/* New stuff. Barry Carter */ +/** +* Build up a new array of taxonomy terms ready for the admin menu +*/ +function service_links_get_cats() { + $vocabularies = taxonomy_get_vocabularies(); + $types = array(); + foreach ($vocabularies as $vocabulary) { + $tree = taxonomy_get_tree($vocabulary->vid); + foreach ($tree as $term) { + $types[$term->tid] = $term->name; + } + } + return $types; +} +/* End New stuff. Barry Carter */ + /** * Implementation of hook_nodeapi(). */ @@ -164,7 +193,14 @@ case 'view': $node_type = in_array($node->type, variable_get('service_links_node_types', array()), TRUE); - if ($node_type && user_access('use service links')) { +/* New stuff. Barry Carter */ + $terms = taxonomy_node_get_terms($node->nid); + foreach ($terms as $term) { + $category_type = in_array($term->tid, variable_get('service_links_category_types', array()), FALSE); + } +/* End New stuff. Barry Carter */ + + if (($node_type || $category_type) && user_access('use service links')) { $url = url("node/$node->nid", NULL, NULL, TRUE); $title = drupal_urlencode($node->title); @@ -218,8 +254,14 @@ } $node_type = in_array($node->type, variable_get('service_links_node_types', array()), TRUE); +/* New stuff. Barry Carter */ + $terms = taxonomy_node_get_terms($node->nid); + foreach ($terms as $term) { + $category_type = in_array($term->tid, variable_get('service_links_category_types', array()), FALSE); + } +/* End New stuff. Barry Carter */ - if ($type == 'node' && $node_type && $show_links && user_access('use service links')) { + if ($type == 'node' && ( $node_type || $category_type) && $show_links && user_access('use service links')) { $url = url("node/$node->nid", NULL, NULL, TRUE); $title = drupal_urlencode($node->title); $links = _service_links_render($url, $title);