diff --git a/database/database.mysql b/database/database.mysql index dfe3f7a74e50d498f12a109510bfdf5583d37d49..d48390b76318172044c967bcc8441e19a3646340 100644 --- a/database/database.mysql +++ b/database/database.mysql @@ -595,6 +595,7 @@ CREATE TABLE vocabulary ( vid int(10) unsigned NOT NULL auto_increment, name varchar(255) NOT NULL default '', description longtext, + help varchar(255) NOT NULL default '', relations tinyint(3) unsigned NOT NULL default '0', hierarchy tinyint(3) unsigned NOT NULL default '0', multiple tinyint(3) unsigned NOT NULL default '0', diff --git a/database/database.pgsql b/database/database.pgsql index 187ee0a767ee8af8ba3e105ae43607569c8654db..58649530cab3c1e8a0abb63b2d117ee92c9e72a8 100644 --- a/database/database.pgsql +++ b/database/database.pgsql @@ -545,6 +545,7 @@ CREATE TABLE vocabulary ( vid SERIAL, name varchar(255) NOT NULL default '', description text default '', + help varchar(255) NOT NULL default '', relations smallint NOT NULL default '0', hierarchy smallint NOT NULL default '0', multiple smallint NOT NULL default '0', diff --git a/database/updates.inc b/database/updates.inc index fffa8e1301cfb63f18c06024cf85215c38e61cd2..837c881eed7d1ea66cba5ce32abf3ba0a5df5570 100644 --- a/database/updates.inc +++ b/database/updates.inc @@ -54,7 +54,8 @@ "2004-03-11: first update since Drupal 4.4.0 release" => "update_80", "2004-02-20" => "update_81", "2004-02-27" => "update_82", - "2004-04-15" => "update_83" + "2004-04-15" => "update_83", + "2004-04-21" => "update_84" ); function update_32() { @@ -922,6 +923,17 @@ function update_83() { return $ret; } +function update_84() { + $ret = array(); + if ($GLOBALS["db_type"] == "mysql") { + $ret[] = update_sql("ALTER TABLE vocabulary ADD help VARCHAR(255) NOT NULL DEFAULT '' AFTER description;"); + } + else { + /* Needs PostgreSQL equivalent */ + } + return $ret; +} + function update_sql($sql) { $edit = $_POST["edit"]; $result = db_query($sql); diff --git a/modules/taxonomy.module b/modules/taxonomy.module index e6d1b9a791c37b7884b5473ff73e102d2ce60904..a3060579227d6243acd976daa8b897ec5b8ab0e9 100644 --- a/modules/taxonomy.module +++ b/modules/taxonomy.module @@ -70,6 +70,7 @@ function taxonomy_form_vocabulary($edit = array()) { $form .= form_textfield(t("Vocabulary name"), "name", $edit["name"], 50, 64, t("Required") .". ". t("The name for this vocabulary. Example: 'Topic'") ."."); $form .= form_textarea(t("Description"), "description", $edit["description"], 60, 5, t("Optional") .". ". t("Description of the vocabulary, can be used by modules.")); + $form .= form_textfield(t("Help text"), "help", $edit["help"], 50, 255, t("Optional") .". ". t("Instructions to present to the user when choosing a term.") ."."); $form .= form_select(t("Types"), "nodes", explode(",", $edit["nodes"]), $nodetypes, t("Required") .". ". t("A list of node types you want to associate this vocabulary with."), "", 1); $form .= form_checkbox(t("Related terms"), "relations", 1, $edit["relations"], t("Optional") .". ". t("Allows <a href=\"%help-url\">related terms</a> in this vocabulary.", array("%help-url" => url("admin/taxonomy/help", NULL, NULL, "related-terms")))); $form .= form_radios(t("Hierarchy"), "hierarchy", $edit["hierarchy"], array(t("Disabled"), t("Single"), t("Multiple")), t("Optional") .". ". t("Allows <a href=\"%help-url\">a tree-like hierarchy</a> between terms of this vocabulary.", array("%help-url" => url("admin/taxonomy/help", NULL, NULL, "hierarchy"))), "", 0); @@ -91,7 +92,7 @@ function taxonomy_save_vocabulary($edit) { $edit["nodes"] = array(); } - $data = array("name" => $edit["name"], "nodes" => implode(",", $edit["nodes"]), "description" => $edit["description"], "multiple" => $edit["multiple"], "required" => $edit["required"], "hierarchy" => $edit["hierarchy"], "relations" => $edit["relations"], "weight" => $edit["weight"]); + $data = array("name" => $edit["name"], "nodes" => implode(",", $edit["nodes"]), "description" => $edit["description"], "help" => $edit["help"], "multiple" => $edit["multiple"], "required" => $edit["required"], "hierarchy" => $edit["hierarchy"], "relations" => $edit["relations"], "weight" => $edit["weight"]); if ($edit["vid"] && $edit["name"]) { db_query("UPDATE {vocabulary} SET ". _prepare_update($data) ." WHERE vid = %d", $edit["vid"]); module_invoke_all("taxonomy", "update", "vocabulary", $edit); @@ -298,22 +299,19 @@ function taxonomy_overview() { return theme("table", $header, $rows); } -function taxonomy_form($vocabulary_id, $value = 0, $error = array()) { +function taxonomy_form($vocabulary_id, $value = 0, $error = array(), $help = NULL) { $vocabulary = taxonomy_get_vocabulary($vocabulary_id); + $help = ($help) ? $help : $vocabulary->help; if ($vocabulary->required) { - $descriptions = array(t("You must choose one term for this node."), t("You must choose one or more terms for this node.")); $blank = 0; } else { - $descriptions = array(t("You can choose one term for this node."), t("You can choose one or more terms for this node.")); $blank = "<". t("none") .">"; } - $multiple = intval($vocabulary->multiple); + $help .= $error['taxonomy']; - $description = $descriptions[$multiple] . $error['taxonomy']; - - return _taxonomy_term_select($vocabulary->name, 'taxonomy', $value, $vocabulary_id, $description, $multiple, $blank); + return _taxonomy_term_select($vocabulary->name, 'taxonomy', $value, $vocabulary_id, $help, intval($vocabulary->multiple), $blank); } /* diff --git a/modules/taxonomy/taxonomy.module b/modules/taxonomy/taxonomy.module index e6d1b9a791c37b7884b5473ff73e102d2ce60904..a3060579227d6243acd976daa8b897ec5b8ab0e9 100644 --- a/modules/taxonomy/taxonomy.module +++ b/modules/taxonomy/taxonomy.module @@ -70,6 +70,7 @@ function taxonomy_form_vocabulary($edit = array()) { $form .= form_textfield(t("Vocabulary name"), "name", $edit["name"], 50, 64, t("Required") .". ". t("The name for this vocabulary. Example: 'Topic'") ."."); $form .= form_textarea(t("Description"), "description", $edit["description"], 60, 5, t("Optional") .". ". t("Description of the vocabulary, can be used by modules.")); + $form .= form_textfield(t("Help text"), "help", $edit["help"], 50, 255, t("Optional") .". ". t("Instructions to present to the user when choosing a term.") ."."); $form .= form_select(t("Types"), "nodes", explode(",", $edit["nodes"]), $nodetypes, t("Required") .". ". t("A list of node types you want to associate this vocabulary with."), "", 1); $form .= form_checkbox(t("Related terms"), "relations", 1, $edit["relations"], t("Optional") .". ". t("Allows <a href=\"%help-url\">related terms</a> in this vocabulary.", array("%help-url" => url("admin/taxonomy/help", NULL, NULL, "related-terms")))); $form .= form_radios(t("Hierarchy"), "hierarchy", $edit["hierarchy"], array(t("Disabled"), t("Single"), t("Multiple")), t("Optional") .". ". t("Allows <a href=\"%help-url\">a tree-like hierarchy</a> between terms of this vocabulary.", array("%help-url" => url("admin/taxonomy/help", NULL, NULL, "hierarchy"))), "", 0); @@ -91,7 +92,7 @@ function taxonomy_save_vocabulary($edit) { $edit["nodes"] = array(); } - $data = array("name" => $edit["name"], "nodes" => implode(",", $edit["nodes"]), "description" => $edit["description"], "multiple" => $edit["multiple"], "required" => $edit["required"], "hierarchy" => $edit["hierarchy"], "relations" => $edit["relations"], "weight" => $edit["weight"]); + $data = array("name" => $edit["name"], "nodes" => implode(",", $edit["nodes"]), "description" => $edit["description"], "help" => $edit["help"], "multiple" => $edit["multiple"], "required" => $edit["required"], "hierarchy" => $edit["hierarchy"], "relations" => $edit["relations"], "weight" => $edit["weight"]); if ($edit["vid"] && $edit["name"]) { db_query("UPDATE {vocabulary} SET ". _prepare_update($data) ." WHERE vid = %d", $edit["vid"]); module_invoke_all("taxonomy", "update", "vocabulary", $edit); @@ -298,22 +299,19 @@ function taxonomy_overview() { return theme("table", $header, $rows); } -function taxonomy_form($vocabulary_id, $value = 0, $error = array()) { +function taxonomy_form($vocabulary_id, $value = 0, $error = array(), $help = NULL) { $vocabulary = taxonomy_get_vocabulary($vocabulary_id); + $help = ($help) ? $help : $vocabulary->help; if ($vocabulary->required) { - $descriptions = array(t("You must choose one term for this node."), t("You must choose one or more terms for this node.")); $blank = 0; } else { - $descriptions = array(t("You can choose one term for this node."), t("You can choose one or more terms for this node.")); $blank = "<". t("none") .">"; } - $multiple = intval($vocabulary->multiple); + $help .= $error['taxonomy']; - $description = $descriptions[$multiple] . $error['taxonomy']; - - return _taxonomy_term_select($vocabulary->name, 'taxonomy', $value, $vocabulary_id, $description, $multiple, $blank); + return _taxonomy_term_select($vocabulary->name, 'taxonomy', $value, $vocabulary_id, $help, intval($vocabulary->multiple), $blank); } /*