@@ -265,9 +265,29 @@ function taxonomy_overview_terms(&$form_state, $vocabulary) {
if($vocabulary->tags){
// We are not calling taxonomy_get_tree because that might fail with a big
// number of tags in the freetagging vocabulary.
$results=pager_query(db_rewrite_sql('SELECT t.*, h.parent FROM {taxonomy_term_data} t INNER JOIN {taxonomy_term_hierarchy} h ON t.tid = h.tid WHERE t.vid = %d ORDER BY weight, name','t','tid'),$page_increment,0,NULL,$vocabulary->vid);
$total_entries=db_query(db_rewrite_sql('SELECT COUNT(*) FROM {taxonomy_term_data} t INNER JOIN {taxonomy_term_hierarchy} h ON t.tid = h.tid WHERE t.vid = :vid'),array(':vid'=>$vocabulary->vid));
$result=db_query(db_rewrite_sql('SELECT t.tid, t.name FROM {taxonomy_term_data} t WHERE t.tid IN ('.db_placeholders($terms['tids']).')','t','tid'),$terms['tids']);
$tids=array();// we rebuild the $tids-array so it only contains terms the user has access to.
$names=array();
while($term=db_fetch_object($result)){
$tids[]=$term->tid;
$names[]=$term->name;
}
$query=db_select('taxonomy_term_data','t');
$query->addTag('term_access');
// Load array with all tid's the user has access to in the format tid => name.
$term_results=$query
->fields('t',array('tid','name'))
->condition('tid',$terms['tids'],'IN')
->execute()
->fetchAllKeyed();
$tids=array_keys($term_results);
$names=array_values($term_results);
if($names){
$title=check_plain(implode(', ',$names));
...
...
@@ -124,20 +128,26 @@ function taxonomy_autocomplete($vid, $string = '') {
$last_string=trim(array_pop($array));
$matches=array();
if($last_string!=''){
$result=db_query_range(db_rewrite_sql("SELECT t.tid, t.name FROM {taxonomy_term_data} t WHERE t.vid = :vid AND LOWER(t.name) LIKE LOWER(:last_string)",'t','tid'),array(
':vid'=>$vid,
':last_string'=>'%'.$last_string.'%',
),0,10);
$query=db_select('taxonomy_term_data','t');
$query->addTag('term_access');
$tags=$query
->fields('t',array('tid','name'))
->condition('t.vid',$vid)
->where("LOWER(t.name) LIKE LOWER(:last_string)",array(':last_string'=>'%'.$last_string.'%'))