diff options
author | Dries Buytaert <dries@buytaert.net> | 2003-07-10 17:46:44 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2003-07-10 17:46:44 +0000 |
commit | 337b3c9de997f4fcb27467e3d80d0f43fda7783e (patch) | |
tree | 392e4a56fa1ac3d09e9cb78998f87ab438229926 /modules/taxonomy/taxonomy.module | |
parent | 1c2fc43b51455e4895455798919e4c77e2b1bf21 (diff) | |
download | brdo-337b3c9de997f4fcb27467e3d80d0f43fda7783e.tar.gz brdo-337b3c9de997f4fcb27467e3d80d0f43fda7783e.tar.bz2 |
- Committed a slightly modified version of Slavica's table prefix patch.
Diffstat (limited to 'modules/taxonomy/taxonomy.module')
-rw-r--r-- | modules/taxonomy/taxonomy.module | 90 |
1 files changed, 45 insertions, 45 deletions
diff --git a/modules/taxonomy/taxonomy.module b/modules/taxonomy/taxonomy.module index ba6afc054..d0f79f505 100644 --- a/modules/taxonomy/taxonomy.module +++ b/modules/taxonomy/taxonomy.module @@ -99,7 +99,7 @@ function taxonomy_save_vocabulary($edit) { $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"]); if ($edit["vid"] && $edit["name"]) { - db_query("UPDATE vocabulary SET ". _prepare_update($data) ." WHERE vid = %d", $edit["vid"]); + db_query("UPDATE {vocabulary} SET ". _prepare_update($data) ." WHERE vid = %d", $edit["vid"]); module_invoke_all("taxonomy", "update", "vocabulary", $edit); $message = t("updated vocabulary '%name'.", array("%name" => $edit["name"])); } @@ -108,7 +108,7 @@ function taxonomy_save_vocabulary($edit) { } else { $data["vid"] = $edit["vid"] = db_next_id("vocabulary_vid"); - db_query("INSERT INTO vocabulary ". _prepare_insert($data, 1) ." VALUES ". _prepare_insert($data, 2)); + db_query("INSERT INTO {vocabulary} ". _prepare_insert($data, 1) ." VALUES ". _prepare_insert($data, 2)); module_invoke_all("taxonomy", "insert", "vocabulary", $edit); $message = t("created new vocabulary '%name'.", array("%name" => $edit["name"])); } @@ -121,8 +121,8 @@ function taxonomy_save_vocabulary($edit) { function taxonomy_del_vocabulary($vid) { $vocabulary = taxonomy_get_vocabulary($vid); - db_query("DELETE FROM vocabulary WHERE vid = %d", $vid); - $result = db_query("SELECT tid FROM term_data WHERE vid = %d", $vid); + db_query("DELETE FROM {vocabulary} WHERE vid = %d", $vid); + $result = db_query("SELECT tid FROM {term_data} WHERE vid = %d", $vid); while ($term = db_fetch_object($result)) { taxonomy_del_term($term->tid); } @@ -192,7 +192,7 @@ function taxonomy_save_term($edit) { if ($edit["tid"] && $edit["name"]) { $data = array("name" => $edit["name"], "description" => $edit["description"], "weight" => $edit["weight"]); - db_query("UPDATE term_data SET ". _prepare_update($data) ." WHERE tid = %d", $edit["tid"]); + db_query("UPDATE {term_data} SET ". _prepare_update($data) ." WHERE tid = %d", $edit["tid"]); module_invoke_all("taxonomy", "update", "term", $edit); $message = t("the term '%a' has been updated.", array("%a" => $edit["name"])); } @@ -202,40 +202,40 @@ function taxonomy_save_term($edit) { else { $edit["tid"] = db_next_id("term_data_tid"); $data = array("tid" => $edit["tid"], "name" => $edit["name"], "description" => $edit["description"], "vid" => $edit["vid"], "weight" => $edit["weight"]); - db_query("INSERT INTO term_data ". _prepare_insert($data, 1) ." VALUES ". _prepare_insert($data, 2)); + db_query("INSERT INTO {term_data} ". _prepare_insert($data, 1) ." VALUES ". _prepare_insert($data, 2)); module_invoke_all("taxonomy", "insert", "term", $edit); $message = t("created new term '%name'.", array("%name" => $edit["name"])); } // relations (seem very powerful, but I have to understand it completely) - db_query("DELETE FROM term_relation WHERE tid1 = %d OR tid2 = %d", $edit["tid"], $edit["tid"]); + db_query("DELETE FROM {term_relation} WHERE tid1 = %d OR tid2 = %d", $edit["tid"], $edit["tid"]); if ($edit["relations"]) { foreach ($edit["relations"] as $related_id) { if ($related_id != 0) { - db_query("INSERT INTO term_relation (tid1, tid2) VALUES (%d, %d)", $edit["tid"], $related_id); + db_query("INSERT INTO {term_relation} (tid1, tid2) VALUES (%d, %d)", $edit["tid"], $related_id); } } } // hierarchy - db_query("DELETE FROM term_hierarchy WHERE tid = %d", $edit["tid"]); + db_query("DELETE FROM {term_hierarchy} WHERE tid = %d", $edit["tid"]); if (!isset($edit["parent"])) { $edit["parent"] = 0; } if (is_array($edit["parent"])) { foreach ($edit["parent"] as $parent) { - db_query("INSERT INTO term_hierarchy (tid, parent) VALUES (%d, %d)", $edit["tid"], $parent); + db_query("INSERT INTO {term_hierarchy} (tid, parent) VALUES (%d, %d)", $edit["tid"], $parent); } } else { - db_query("INSERT INTO term_hierarchy (tid, parent) VALUES (%d, %d)", $edit["tid"], $edit["parent"][0]); + db_query("INSERT INTO {term_hierarchy} (tid, parent) VALUES (%d, %d)", $edit["tid"], $edit["parent"][0]); } - db_query("DELETE FROM term_synonym WHERE tid = %d", $edit["tid"]); + db_query("DELETE FROM {term_synonym} WHERE tid = %d", $edit["tid"]); if ($edit["synonyms"]) { foreach (explode ("\n", str_replace("\r", "", $edit["synonyms"])) as $synonym) { if ($synonym) { - db_query("INSERT INTO term_synonym (tid, name) VALUES (%d, '%s')", $edit["tid"], chop($synonym)); + db_query("INSERT INTO {term_synonym} (tid, name) VALUES (%d, '%s')", $edit["tid"], chop($synonym)); } } } @@ -248,11 +248,11 @@ function taxonomy_save_term($edit) { function taxonomy_del_term($tid) { $term = taxonomy_get_term($tid); - db_query("DELETE FROM term_data WHERE tid = %d", $tid); - db_query("DELETE FROM term_hierarchy WHERE tid = %d", $tid); - db_query("DELETE FROM term_relation WHERE tid1 = %d OR tid2 = %d", $tid, $tid); - db_query("DELETE FROM term_synonym WHERE tid = %d", $tid); - db_query("DELETE FROM term_node WHERE tid = %d", $tid); + db_query("DELETE FROM {term_data} WHERE tid = %d", $tid); + db_query("DELETE FROM {term_hierarchy} WHERE tid = %d", $tid); + db_query("DELETE FROM {term_relation} WHERE tid1 = %d OR tid2 = %d", $tid, $tid); + db_query("DELETE FROM {term_synonym} WHERE tid = %d", $tid); + db_query("DELETE FROM {term_node} WHERE tid = %d", $tid); module_invoke_all("taxonomy", "delete", "term", $term); @@ -327,10 +327,10 @@ function taxonomy_form($vocabulary_id, $value = 0) { // return array of vocabularies, as objects function taxonomy_get_vocabularies($type = '', $key = "vid") { if ($type) { - $result = db_query("SELECT * FROM vocabulary WHERE nodes LIKE '%%%s%%' ORDER BY weight, name", $type); + $result = db_query("SELECT * FROM {vocabulary} WHERE nodes LIKE '%%%s%%' ORDER BY weight, name", $type); } else { - $result = db_query("SELECT * FROM vocabulary ORDER BY weight, name"); + $result = db_query("SELECT * FROM {vocabulary} ORDER BY weight, name"); } $vocabularies = array(); while ($voc = db_fetch_object($result)) { @@ -354,7 +354,7 @@ function taxonomy_node_form($type, $node = '') { $terms = $node->taxonomy; } - $c = db_query("SELECT * FROM vocabulary WHERE nodes LIKE '%%%s%%' ORDER BY weight, name", $type); + $c = db_query("SELECT * FROM {vocabulary} WHERE nodes LIKE '%%%s%%' ORDER BY weight, name", $type); while ($vocabulary = db_fetch_object($c)) { $result[] .= taxonomy_form($vocabulary->vid, $terms); } @@ -363,14 +363,14 @@ function taxonomy_node_form($type, $node = '') { // return 1 if node identified by $nid contains a taxonomy term identified by $tid in his body or title function taxonomy_node_has_term($nid, $tid) { - $term_name = db_result(db_query("SELECT name FROM term_data WHERE tid = %d", $tid)); + $term_name = db_result(db_query("SELECT name FROM {term_data} WHERE tid = %d", $tid)); - return db_result(db_query("SELECT COUNT(n.nid) FROM node n WHERE n.nid = %d AND ((n.body LIKE '%%%s%%') OR (n.body LIKE '%%%s%%'))", $nid, $term_name, $term_name)); + return db_result(db_query("SELECT COUNT(n.nid) FROM {node} n WHERE n.nid = %d AND ((n.body LIKE '%%%s%%') OR (n.body LIKE '%%%s%%'))", $nid, $term_name, $term_name)); } // return array of terms of a node beloging to a particular vocabulary identified by $vid function taxonomy_node_get_terms_by_vocabulary($nid, $vid, $key = "tid") { - $result = db_query("SELECT t.* FROM term_data t, term_node r WHERE t.tid = r.tid AND t.vid = %d AND r.nid = %d ORDER BY weight", $vid, $nid); + $result = db_query("SELECT t.* FROM {term_data} t, {term_node} r WHERE t.tid = r.tid AND t.vid = %d AND r.nid = %d ORDER BY weight", $vid, $nid); $terms = array(); while ($term = db_fetch_object($result)) { $terms[$term->$key] = $term; @@ -383,7 +383,7 @@ function taxonomy_node_get_terms($nid, $key = "tid") { static $terms; if (!isset($terms[$nid])) { - $result = db_query("SELECT t.* FROM term_data t, term_node r WHERE r.tid = t.tid AND r.nid = %d ORDER BY weight, name", $nid); + $result = db_query("SELECT t.* FROM {term_data} t, {term_node} r WHERE r.tid = t.tid AND r.nid = %d ORDER BY weight, name", $nid); $terms[$nid] = array(); while ($term = db_fetch_object($result)) { $terms[$nid][$term->$key] = $term; @@ -398,20 +398,20 @@ function taxonomy_node_save($nid, $terms) { if ($terms) { foreach ($terms as $term) { - db_query("INSERT INTO term_node (nid, tid) VALUES (%d, %d)", $nid, $term); + db_query("INSERT INTO {term_node} (nid, tid) VALUES (%d, %d)", $nid, $term); } } } // clean up terms function taxonomy_node_delete($nid) { - db_query("DELETE FROM term_node WHERE nid = %d", $nid); + db_query("DELETE FROM {term_node} WHERE nid = %d", $nid); } // relations: return array of related terms function taxonomy_get_related($tid, $key = "tid") { if ($tid) { - $result = db_query("SELECT t.*, tid1, tid2 FROM term_relation, term_data t WHERE (t.tid = tid1 OR t.tid = tid2) AND (tid1 = %d OR tid2 = %d) AND t.tid != %d ORDER BY weight, name", $tid, $tid, $tid); + $result = db_query("SELECT t.*, tid1, tid2 FROM {term_relation} , {term_data} t WHERE (t.tid = tid1 OR t.tid = tid2) AND (tid1 = %d OR tid2 = %d) AND t.tid != %d ORDER BY weight, name", $tid, $tid, $tid); $related = array(); while ($term = db_fetch_object($result)) { $related[$term->$key] = $term; @@ -426,7 +426,7 @@ function taxonomy_get_related($tid, $key = "tid") { // hierarchy: get parent terms function taxonomy_get_parents($tid, $key = "tid") { if ($tid) { - $result = db_query("SELECT t.* FROM term_hierarchy h, term_data t WHERE h.parent = t.tid AND h.tid = %d ORDER BY weight, name", $tid); + $result = db_query("SELECT t.* FROM {term_hierarchy} h, {term_data} t WHERE h.parent = t.tid AND h.tid = %d ORDER BY weight, name", $tid); $parents = array(); while ($parent = db_fetch_object($result)) { $parents[$parent->$key] = $parent; @@ -441,10 +441,10 @@ function taxonomy_get_parents($tid, $key = "tid") { // hierarchy: get children function taxonomy_get_children($tid, $vid = 0, $key = "tid") { if ($vid) { - $result = db_query("SELECT t.* FROM term_hierarchy h, term_data t WHERE t.vid = %d AND h.tid = t.tid AND h.parent = %d ORDER BY weight, name", $vid, $tid); + $result = db_query("SELECT t.* FROM {term_hierarchy} h, {term_data} t WHERE t.vid = %d AND h.tid = t.tid AND h.parent = %d ORDER BY weight, name", $vid, $tid); } else { - $result = db_query("SELECT t.* FROM term_hierarchy h, term_data t WHERE h.tid = t.tid AND parent = %d ORDER BY weight", $tid); + $result = db_query("SELECT t.* FROM {term_hierarchy} h, {term_data} t WHERE h.tid = t.tid AND parent = %d ORDER BY weight", $tid); } $children = array(); while ($term = db_fetch_object($result)) { @@ -463,7 +463,7 @@ function taxonomy_get_tree($vocabulary_id, $parent = 0, $depth = -1, $key = "tid if (!isset($children[$vocabulary_id])) { $children[$vocabulary_id] = array(); - $result = db_query("SELECT t.*, parent FROM term_data t, term_hierarchy h WHERE t.tid = h.tid AND t.vid = %d ORDER BY weight, name", $vocabulary_id); + $result = db_query("SELECT t.*, parent FROM {term_data} t, {term_hierarchy} h WHERE t.tid = h.tid AND t.vid = %d ORDER BY weight, name", $vocabulary_id); while ($term = db_fetch_object($result)) { $children[$vocabulary_id][$term->parent][] = $term->tid; $parents[$vocabulary_id][$term->tid][] = $term->parent; @@ -488,7 +488,7 @@ function taxonomy_get_tree($vocabulary_id, $parent = 0, $depth = -1, $key = "tid // synonyms: return array of synonyms function taxonomy_get_synonyms($tid) { if ($tid) { - $result = db_query("SELECT name FROM term_synonym WHERE tid = %d", $tid); + $result = db_query("SELECT name FROM {term_synonym} WHERE tid = %d", $tid); while ($synonym = db_fetch_array($result)) { $synonyms[] = $synonym["name"]; } @@ -501,7 +501,7 @@ function taxonomy_get_synonyms($tid) { // synonyms: return original term function taxonomy_get_synonym_root($term) { - return db_fetch_object(db_query("SELECT * FROM term_synonym s, term_data t WHERE t.tid = s.tid AND s.name = '%s'", $term)); + return db_fetch_object(db_query("SELECT * FROM {term_synonym} s, {term_data} t WHERE t.tid = s.tid AND s.name = '%s'", $term)); } // given a term id, count number of published nodes in it @@ -511,10 +511,10 @@ function taxonomy_term_count_nodes($tid, $type = 0) { if (!isset($count[$type])) { // $type == 0 always evaluates true is $type is a string if (is_numeric($type)) { - $result = db_query("SELECT t.tid, COUNT(*) AS c FROM term_node t LEFT JOIN node n ON t.nid = n.nid WHERE n.status = 1 GROUP BY t.tid"); + $result = db_query("SELECT t.tid, COUNT(*) AS c FROM {term_node} t LEFT JOIN {node} n ON t.nid = n.nid WHERE n.status = 1 GROUP BY t.tid"); } else { - $result = db_query("SELECT t.tid, COUNT(*) AS c FROM term_node t, node n WHERE t.nid = n.nid AND n.status = 1 AND n.type = '%s' GROUP BY t.tid", $type); + $result = db_query("SELECT t.tid, COUNT(*) AS c FROM {term_node} t, {node} n WHERE t.nid = n.nid AND n.status = 1 AND n.type = '%s' GROUP BY t.tid", $type); } while ($term = db_fetch_object($result)) { $count[$type][$term->tid] = $term->c; @@ -532,7 +532,7 @@ function _taxonomy_term_children($tid) { static $children; if (!isset($children)) { - $result = db_query("SELECT tid, parent FROM term_hierarchy"); + $result = db_query("SELECT tid, parent FROM {term_hierarchy} "); while ($term = db_fetch_object($result)) { $children[$term->parent][] = $term->tid; } @@ -550,7 +550,7 @@ function _taxonomy_term_children($tid) { */ function taxonomy_get_vocabulary_by_name($name) { // LOWER is ANSI SQL-92 - $db_result = db_query("SELECT * FROM vocabulary WHERE LOWER('%s') LIKE LOWER(name)", trim($name)); + $db_result = db_query("SELECT * FROM {vocabulary} WHERE LOWER('%s') LIKE LOWER(name)", trim($name)); $result = array(); while ($vocabulary = db_fetch_object($db_result)) { $result[] = $vocabulary; @@ -569,7 +569,7 @@ function taxonomy_get_vocabulary_by_name($name) { */ function taxonomy_get_term_by_name($name) { // LOWER is ANSI SQL-92 - $db_result = db_query("SELECT * FROM term_data WHERE LOWER('%s') LIKE LOWER(name)", trim($name)); + $db_result = db_query("SELECT * FROM {term_data} WHERE LOWER('%s') LIKE LOWER(name)", trim($name)); $result = array(); while ($term = db_fetch_object($db_result)) { $result[] = $term; @@ -580,12 +580,12 @@ function taxonomy_get_term_by_name($name) { function taxonomy_get_vocabulary($vid) { // simple cache using a static var? - return db_fetch_object(db_query("SELECT * FROM vocabulary WHERE vid = %d", $vid)); + return db_fetch_object(db_query("SELECT * FROM {vocabulary} WHERE vid = %d", $vid)); } function taxonomy_get_term($tid) { // simple cache using a static var? - return db_fetch_object(db_query("SELECT * FROM term_data WHERE tid = %d", $tid)); + return db_fetch_object(db_query("SELECT * FROM {term_data} WHERE tid = %d", $tid)); } /* @@ -660,14 +660,14 @@ function taxonomy_select_nodes($taxonomy, $pager = 1) { if ($taxonomy->str_tids) { if ($taxonomy->operator == "or") { - $sql = "SELECT DISTINCT(n.nid), n.title, n.type, n.created, n.changed, n.uid, n.static, n.created, u.name FROM node n LEFT JOIN term_node r ON n.nid = r.nid LEFT JOIN users u ON n.uid = u.uid WHERE r.tid IN ($taxonomy->str_tids) AND n.status = '1' ORDER BY static DESC, created DESC"; - $sql_count = "SELECT COUNT(DISTINCT(n.nid)) FROM node n LEFT JOIN term_node r ON n.nid = r.nid LEFT JOIN users u ON n.uid = u.uid WHERE r.tid IN ($taxonomy->str_tids) AND n.status = '1'"; + $sql = "SELECT DISTINCT(n.nid), n.title, n.type, n.created, n.changed, n.uid, n.static, n.created, u.name FROM {node} n LEFT JOIN {term_node} r ON n.nid = r.nid LEFT JOIN {users} u ON n.uid = u.uid WHERE r.tid IN ($taxonomy->str_tids) AND n.status = '1' ORDER BY static DESC, created DESC"; + $sql_count = "SELECT COUNT(DISTINCT(n.nid)) FROM {node} n LEFT JOIN {term_node} r ON n.nid = r.nid LEFT JOIN {users} u ON n.uid = u.uid WHERE r.tid IN ($taxonomy->str_tids) AND n.status = '1'"; } else { - $sql = "SELECT n.nid, n.title, n.type, n.created, n.changed, n.uid, u.name FROM node n LEFT JOIN term_node r ON n.nid = r.nid LEFT JOIN users u ON n.uid = u.uid WHERE r.tid IN ($taxonomy->str_tids) AND n.status = '1' GROUP BY n.nid, n.title, n.type, n.created, n.changed, n.uid, u.name HAVING COUNT(n.nid) = ".count($taxonomy->tids)." ORDER BY static DESC, created DESC"; + $sql = "SELECT n.nid, n.title, n.type, n.created, n.changed, n.uid, u.name FROM {node} n LEFT JOIN {term_node} r ON n.nid = r.nid LEFT JOIN {users} u ON n.uid = u.uid WHERE r.tid IN ($taxonomy->str_tids) AND n.status = '1' GROUP BY n.nid, n.title, n.type, n.created, n.changed, n.uid, u.name HAVING COUNT(n.nid) = ".count($taxonomy->tids)." ORDER BY static DESC, created DESC"; // Special trick as we could not find anything better: - $count = db_num_rows(db_query("SELECT n.nid FROM node n LEFT JOIN term_node r ON n.nid = r.nid WHERE r.tid IN ($taxonomy->str_tids) AND n.status = '1' GROUP BY n.nid HAVING COUNT(n.nid) = ". count($taxonomy->tids))); + $count = db_num_rows(db_query("SELECT n.nid FROM {node} n LEFT JOIN {term_node} r ON n.nid = r.nid WHERE r.tid IN ($taxonomy->str_tids) AND n.status = '1' GROUP BY n.nid HAVING COUNT(n.nid) = ". count($taxonomy->tids))); $sql_count = "SELECT $count"; } |