taxonomy_menu.database.inc in Taxonomy menu 6.2
Same filename and directory in other branches
Database functions
@author Neil Hastings <http://drupal.org/user/245817> @author Mark Theunissen <http://drupal.org/user/108606> @author Afief Halumi <http://drupal.org/user/237472>
File
taxonomy_menu.database.incView source
<?php
/**
* @file
* Database functions
*
* @author Neil Hastings <http://drupal.org/user/245817>
* @author Mark Theunissen <http://drupal.org/user/108606>
* @author Afief Halumi <http://drupal.org/user/237472>
*/
/**
* helper function to insert a menu item
*
* @param $mlid
* @param $tid
* @param $vid
*/
function _taxonomy_menu_insert_menu_item($mlid, $tid, $vid) {
db_query('INSERT INTO {taxonomy_menu} (mlid, tid, vid) VALUES (%d, %d, %d)', $mlid, $tid, $vid);
}
/**
* Return the corresponding menu link id.
*
* @param $tid
* the term's id
*/
function _taxonomy_menu_get_mlid($tid, $vid) {
return db_result(db_query('SELECT mlid FROM {taxonomy_menu} WHERE tid = %d AND vid = %d', $tid, $vid));
}
/**
* Retrieve the term / menu relations for a vocab.
*
* @param $vid
* vocabulary's id
* @return
* array(tid => mlid)
*/
function _taxonomy_menu_get_menu_items($vid) {
$result = db_query('SELECT mlid, tid FROM {taxonomy_menu} WHERE vid = %d', $vid);
$menu_items = array();
while ($data = db_fetch_object($result)) {
$menu_items[$data->tid] = $data->mlid;
}
return $menu_items;
}
/**
* Delete all links associated with this vocab from both the taxonomy_menu
* table and the menu_link table.
*
* @param $vid
* vocabulary's id
*/
function _taxonomy_menu_delete_all($vid) {
$menu_terms = _taxonomy_menu_get_menu_items($vid);
if (!empty($menu_terms)) {
foreach ($menu_terms as $tid => $mlid) {
db_query('DELETE FROM {menu_links} WHERE mlid = %d', $mlid);
}
db_query('DELETE FROM {taxonomy_menu} WHERE vid = %d', $vid);
}
}
/**
* Get an array of the tid's related to the node
*
* @param $nid
* @return array of tids
*/
function _taxonomy_menu_get_node_terms($nid) {
$output = array();
$result = db_query(db_rewrite_sql('SELECT t.tid FROM {term_node} t WHERE t.nid = %d', 't', 'tid'), $nid);
while ($data = db_fetch_object($result)) {
$output[] = $data->tid;
}
return $output;
}
/**
* Get an array of the tid's from the parent
*
* @param $tid
* @return array of tid
*/
function _taxonomy_menu_get_parents($tid) {
$output = array();
$result = taxonomy_get_parents($tid);
foreach ($result as $key => $item) {
$output[] = $key;
}
return $output;
}
/**
* Delete all rows from {taxomony_menu} associated with this tid
*
* @param $vid
* @param $tid
*/
function _taxonomy_menu_delete_item($vid, $tid) {
db_query('DELETE FROM {taxonomy_menu} WHERE vid = %d AND tid = %d', $vid, $tid);
}
/**
* Get all of the tid for a given vid
*
* @param $vid
* @return array of $tid
*/
function _taxonomy_menu_get_terms($vid) {
$output = array();
$result = db_query(db_rewrite_sql('SELECT t.tid FROM {term_data} t WHERE t.vid = %d', 't', 'tid'), $vid);
while ($data = db_fetch_object($result)) {
$output[] = $data->tid;
}
return $output;
}
/**
* used to get the count without children
*
* @param $tid
*/
function _taxonomy_menu_term_count($tid) {
return db_result(db_query(db_rewrite_sql('SELECT COUNT(n.nid) AS c FROM {term_node} t INNER JOIN {node} n ON t.vid = n.vid WHERE n.status = 1 AND t.tid = %d'), $tid));
}
/**
* Get tid for a given mlid
*
* @param $mlid
* @return $tid
*/
function _taxonomy_menu_get_tid($mlid) {
return db_result(db_query('SELECT tid FROM {taxonomy_menu} WHERE mlid = %d', $mlid));
}
/**
* Get vid, tid for a given mlid
*
* @param $mlid
* @return array of vid, tid
*/
function _taxonomy_menu_get_item($mlid) {
return db_fetch_array(db_query('SELECT tid, vid FROM {taxonomy_menu} WHERE mlid = %d', $mlid));
}
/**
* Get the vocabulary for a tid
*
* @param $tid array of tids
* @return $vid
*/
function _taxonomy_menu_get_vid_by_tid($tid) {
if ($tid) {
$tids = implode(',', $tid);
$result = db_query("SELECT vid FROM {term_data} WHERE tid in (%s)", $tids);
$vids = array();
while ($data = db_fetch_object($result)) {
$vids[$data->vid] = $data->vid;
}
return $vids;
}
}
Functions
Name | Description |
---|---|
_taxonomy_menu_delete_all | Delete all links associated with this vocab from both the taxonomy_menu table and the menu_link table. |
_taxonomy_menu_delete_item | Delete all rows from {taxomony_menu} associated with this tid |
_taxonomy_menu_get_item | Get vid, tid for a given mlid |
_taxonomy_menu_get_menu_items | Retrieve the term / menu relations for a vocab. |
_taxonomy_menu_get_mlid | Return the corresponding menu link id. |
_taxonomy_menu_get_node_terms | Get an array of the tid's related to the node |
_taxonomy_menu_get_parents | Get an array of the tid's from the parent |
_taxonomy_menu_get_terms | Get all of the tid for a given vid |
_taxonomy_menu_get_tid | Get tid for a given mlid |
_taxonomy_menu_get_vid_by_tid | Get the vocabulary for a tid |
_taxonomy_menu_insert_menu_item | helper function to insert a menu item |
_taxonomy_menu_term_count | used to get the count without children |