diff -rup ../suggestedterms/suggestedterms.js ./suggestedterms.js
--- ../suggestedterms/suggestedterms.js 2008-10-10 03:52:35.000000000 +1000
+++ ./suggestedterms.js 2009-04-17 16:19:29.000000000 +1000
@@ -11,7 +11,7 @@ function suggestedterms_build_links() {
.addClass($(this).attr('class'))
.bind('click', function(event) {
event.preventDefault();
- var input = $(this).parent().siblings('input');
+ var input = $(this).parent().parent().siblings('input');
var text = $(this).text();
if (((', ' + input.val() + ',').indexOf(', ' + text + ',') < 0) && ((', ' + input.val() + ',').indexOf(', "' + text + '",') < 0)) {
if ((input.val()).length > 0) {
diff -rup ../suggestedterms/suggestedterms.module ./suggestedterms.module
--- ../suggestedterms/suggestedterms.module 2008-10-10 03:58:17.000000000 +1000
+++ ./suggestedterms.module 2009-04-17 16:26:16.000000000 +1000
@@ -9,6 +9,9 @@ define('SUGGESTEDTERMS_SORT_NAME', 1);
define('SUGGESTEDTERMS_SORT_POPULAR', 0);
define('SUGGESTEDTERMS_SORT_RECENT', 2);
+define('SUGGESTEDTERMS_DISPLAY_ALL', 1);
+define('SUGGESTEDTERMS_DISPLAY_USED', 0);
+
/**
* Implementation of hook_help().
*/
@@ -62,21 +65,23 @@ function theme_suggestedterm($name) {
* @return
* A string containing the clickable spans for the suggestedterms module.
*/
-function _suggestedterms_build_suggestions($vid, $sort_order) {
+function _suggestedterms_build_suggestions($vid, $sort_order, $display_what) {
+ // use left join to display all entries, inner join to diaplay only used ones
+ $query_type = ($display_what == 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);
@@ -94,10 +99,13 @@ function suggestedterms_form_alter(&$for
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');
+ $display_what = variable_get('suggestedterms_display_all', SUGGESTEDTERMS_DISPLAY_ALL);
+ $sort_order = variable_get('suggestedterms_sort_order', SUGGESTEDTERMS_SORT_NAME);
+ $scrollbar_height = variable_get('suggestedterms_scrollbar_height', '0');
+ $scrollbar_style = ($scrollbar_height != '0' && $scrollbar_height != '0em') ? ' style="overflow:auto; height:' . $scrollbar_height . '; width:95%;"' : '';
// 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';
@@ -112,7 +120,7 @@ function suggestedterms_form_alter(&$for
break;
}
// Build the suggested terms and set in description tag.
- $form['taxonomy']['tags'][$vid]['#description'] .= "
\n". t($tag_description) . ': ' . _suggestedterms_build_suggestions($vid, $sort_order);
+ $form['taxonomy']['tags'][$vid]['#description'] .= "
\n