? suggestedterms-allterms.patch Index: suggestedterms.install =================================================================== RCS file: /cvs/drupal/contributions/modules/suggestedterms/suggestedterms.install,v retrieving revision 1.2 diff -u -p -r1.2 suggestedterms.install --- suggestedterms.install 9 Oct 2008 17:16:13 -0000 1.2 +++ suggestedterms.install 20 May 2009 19:41:58 -0000 @@ -1,5 +1,10 @@ '. t("Replaces the default \'description\' text on free-tagging textfields on node edit pages with a list of taxonomy terms in that vocabulary, with appropriate labeling"). '
'; + $output = ''. t("Replaces the default \'description\' text on free-tagging textfields on node edit pages with a list of taxonomy terms in that vocabulary, with appropriate labeling") .'
'; break; } @@ -44,7 +57,7 @@ function suggestedterms_theme() { /** * Build tags for each term. - * + * * @ingroup themeable * @param $name * The term name to theme. @@ -57,31 +70,33 @@ function theme_suggestedterm($name) { } /** -* Creates all spans from vocabulary terms -* -* @return -* A string containing the clickable spans for the suggestedterms module. -*/ -function _suggestedterms_build_suggestions($vid, $sort_order) { + * Creates all spans from vocabulary terms + * + * @return + * A string containing the clickable spans for the suggestedterms module. + */ +function _suggestedterms_build_suggestions($vid, $sort_order, $show_terms) { + // use left join to display all entries, inner join to diaplay only used ones + $query_type = ($show_terms == SUGGESTEDTERMS_DISPLAY_ALL) ? " LEFT " : " INNER "; // get total terms set by admin $total_terms = variable_get('suggestedterms_maximum_displayed', 5); // get sort order set by admin switch ($sort_order) { case SUGGESTEDTERMS_SORT_POPULAR: - $query = "SELECT t.name AS name, COUNT(t.name) AS total FROM {term_data} t INNER JOIN {term_node} n ON (t.tid = n.tid) WHERE t.vid = %d GROUP BY t.name ORDER BY total desc"; + $query = "SELECT t.name AS name, COUNT(t.name) AS total FROM {term_data} t $query_type JOIN {term_node} n ON (t.tid = n.tid) WHERE t.vid = %d GROUP BY t.name ORDER BY total desc"; break; case SUGGESTEDTERMS_SORT_RECENT: - $query = "SELECT t.name AS name FROM {term_data} t INNER JOIN {term_node} n ON (t.tid = n.tid) WHERE t.vid = %d GROUP BY t.name ORDER BY t.tid desc"; + $query = "SELECT t.name AS name FROM {term_data} t $query_type JOIN {term_node} n ON (t.tid = n.tid) WHERE t.vid = %d GROUP BY t.name ORDER BY t.tid desc"; break; default: - $query = "SELECT t.name AS name FROM {term_data} t INNER JOIN {term_node} n ON (t.tid = n.tid) WHERE t.vid = %d GROUP BY t.name ORDER BY t.name"; + $query = "SELECT t.name AS name FROM {term_data} t $query_type JOIN {term_node} n ON (t.tid = n.tid) WHERE t.vid = %d GROUP BY t.name ORDER BY t.name"; break; } $query_result = ($total_terms > 0) ? db_query_range($query, $vid, 0, $total_terms) : db_query($query, $vid); $terms = array(); - while($record = db_fetch_object($query_result)) { + while ($record = db_fetch_object($query_result)) { $terms[] = theme('suggestedterm', check_plain($record->name)); } return implode(', ', $terms); @@ -93,14 +108,16 @@ function _suggestedterms_build_suggestio function suggestedterms_form_alter(&$form, $form_state, $form_id) { if ((isset($form['type']) && $form['type']['#value'] .'_node_form' == $form_id) && isset($form['taxonomy']['tags'])) { $path = drupal_get_path('module', 'suggestedterms'); - drupal_add_js($path . '/suggestedterms.js'); + drupal_add_js($path .'/suggestedterms.js'); + //Added this to be able to display all terms, including the ones that are not used by a node + $show_terms = variable_get('suggestedterms_display_all', SUGGESTEDTERMS_DISPLAY_ALL); // If multiple vocabularies, loop over each. foreach ($form['taxonomy']['tags'] as $vid => $thisindex) { // If free-tagging taxonomy is true, add new links for each free-tag textfield. $sort_order = variable_get('suggestedterms_sort_order', SUGGESTEDTERMS_SORT_NAME); switch ($sort_order) { case SUGGESTEDTERMS_SORT_POPULAR: - $tag_description = 'Most popular terms'; + $tag_description = 'Most popular terms'; break; case SUGGESTEDTERMS_SORT_RECENT: @@ -112,7 +129,7 @@ function suggestedterms_form_alter(&$for break; } // Build the suggested terms and set in description tag. - $form['taxonomy']['tags'][$vid]['#description'] .= "