====== Drupal自动添加标签 ====== t('quan block')); $blocks[1] = array('info' => t('cuxiao block')); return $blocks; } else if ($op == 'view') { if ($delta == 0) { //quan block $block = array( 'subject' => gen_quan_title(), 'content' => gen_quan_content() ); return $block; } elseif ($delta == 1) { $block = array( 'subject' => gen_cuxiao_title(), 'content' => gen_cuxiao_content() ); return $block; } } } /* get current page's term id */ function gdh_get_tid() { $tid = 0; if ( arg(0) == "taxonomy" && arg(1) == "term" ) { if (is_numeric(arg(2))) { $tid = arg(2); } } elseif ( arg(0) == "subdomain" && arg(1) == "homepage" ) { if (is_numeric(arg(2))) { $tid = arg(2); } } else { $tid = gdh_get_node_shop_name_tid(); } return $tid; } /* get node page shop name term id */ function gdh_get_node_shop_name_tid() { $tid = 0; if ( arg(0) == "node" && is_numeric(arg(1)) && (!arg(2))) { $nid = arg(1); $n = node_load($nid); foreach ($n->taxonomy as $term) { if ($term->vid == 1) { $tid = $term->tid; break; } } } return $tid; } /* quan block title & content */ function gen_quan_title(){ $title = ""; $tid = gdh_get_tid(); $term = taxonomy_get_term($tid); if($term->vid == 1) { $title = $term->name; $title = "最新" . $title . "优惠券"; $title = $term->name . "优惠券"; }else{ $title = "" ; } return $title; } function gen_quan_content() { $info = ""; $info .= "arg(0): " . arg(0) . "
"; $info .= "arg(1): " . arg(1) . "
"; $info .= "arg(2): " . arg(2) . "
"; $tid = gdh_get_tid(); $term = taxonomy_get_term($tid); if($term->vid == 1) { $info .= "
" . $tid; $nodes = gdh_quan_list($tid); $info = gdh_theme($nodes); }else{ $info = "" ; } return $info; } function gdh_theme($nodes) { if ($nodes) { $html_ul = ""; $html_ul = ""; return $html_ul; } } function gdh_quan_list($tid = 0 ) { $nodes = array(); $node_titles = array(); $sql = ""; $args = array(); if($tid) { $sql = 'SELECT n.nid, n.title FROM {node} as n '; $sql .= "WHERE n.type='promotion' AND n.nid in "; $sql .= '(SELECT tn.nid FROM {term_node} as tn WHERE tn.tid=%s) '; $sql .= 'AND n.nid IN '; $sql .= '(SELECT tn.nid FROM {term_node} as tn WHERE tn.tid=2) '; $sql .= 'ORDER BY created DESC LIMIT 5' ; $sql = db_rewrite_sql($sql); $args[] = $tid; $result = db_query($sql, $args); // watchdog('similarterms', $sql, NULL, WATCHDOG_INFO); while ($r = db_fetch_object($result)) { $n = node_load($r->nid); $nodes[] = $n; $node_titles[] = $n->title; } } return $nodes; # return $node_titles; # return $sql; } /* cuxiao block title & content */ function gen_cuxiao_title(){ $title = ""; $tid = gdh_get_tid(); $term = taxonomy_get_term($tid); if($term->vid == 1) { $title = $term->name; $title = "最新" . $title . "促销"; $title = $term->name . "促销"; }else{ $title = "" ; } return $title; } function gen_cuxiao_content() { $info = ""; $tid = gdh_get_tid(); $term = taxonomy_get_term($tid); if($term->vid == 1) { $info .= "
" . $tid; $nodes = gdh_cuxiao_list($tid); $info = gdh_theme($nodes); }else{ $info = "" ; } return $info; } function gdh_cuxiao_list($tid = 0 ) { $nodes = array(); $node_titles = array(); $sql = ""; $args = array(); if($tid) { $sql = 'SELECT n.nid, n.title FROM {node} as n '; $sql .= "WHERE n.type='promotion' AND n.nid in "; $sql .= '(SELECT tn.nid FROM {term_node} as tn WHERE tn.tid=%s) '; $sql .= 'AND n.nid not IN '; $sql .= '(SELECT tn.nid FROM {term_node} as tn WHERE tn.tid=2) '; $sql .= 'ORDER BY created DESC LIMIT 5' ; $sql = db_rewrite_sql($sql); $args[] = $tid; $result = db_query($sql, $args); // watchdog('similarterms', $sql, NULL, WATCHDOG_INFO); while ($r = db_fetch_object($result)) { $n = node_load($r->nid); $nodes[] = $n; $node_titles[] = $n->title; } } return $nodes; # return $node_titles; # return $sql; } function gdh_get_domain($url) { $comps = parse_url($url); $domain = ""; #$patt_domain = '/^(([a-z0-9A-Z\-]+)(\.(cc|us|com|org|net|info))?(\.cn)?)$/'; if(!$comps) { debugg ("not valid url: $url\n"); } else { $hostname = $comps['host']; $patt_ip = '/\d+(\.\d+){3}/'; $num_ip = preg_match($patt_ip, $hostname, $out_ip); $patt_domain = '/^(([a-z0-9A-Z\-]+)(\.(cc|us|com|org|net|info))?(\.cn)?)$/'; $num_domain = preg_match($patt_domain, $hostname, $out_domain); if ($num_ip || $num_domain) { $domain = $hostname; } else { $patt_domain = '/\.(([a-z0-9A-Z\-]+)(\.(cc|us|com|org|net|info))?(\.cn)?)/'; $num = preg_match($patt_domain, $hostname, $out); if($num) { $domain = $out[1]; } } } $domain = strtolower($domain); return $domain; } /** * Implementation of hook_nodeapi(). */ function gdhquancuxiao_nodeapi(&$node, $op, $teaser = NULL, $page = NULL) { switch ($op) { case 'presave': if (strcmp($node->type, 'promotion') != 0 ) { # node type not promotion } elseif (! $node->taxonomy["tags"][1] ){ $url = $node->field_url[0]["value"]; $domain = gdh_get_domain($url); $sql = "select intro.nid from {content_field_domain} as intro "; $sql .= " where intro.field_domain_value=\"$domain\" "; $sql = db_rewrite_sql($sql); $result = db_query($sql); // watchdog('similarterms', $sql, NULL, WATCHDOG_INFO); if ($r = db_fetch_object($result)) { $intro_nid = $r->nid; # $intro_node = node_load($intro_nid); $sql_tname = "select td.name from {term_data} as td, {term_node} as tn where td.vid=1 and "; $sql_tname .= " td.tid=tn.tid and tn.nid=$intro_nid "; $sql_tname = db_rewrite_sql($sql_tname); $result_tname = db_query($sql_tname); if($tname_obj = db_fetch_object($result_tname)) { $tname = $tname_obj->name; } else { var_dump ( "error 1" ); } if($tname) { $node->taxonomy["tags"][1] = $tname; } else { var_dump ( "error 2" ); } }else { # var_dump($url); # var_dump($domain); } #var_dump($node); } else { #var_dump($node->nid); } # conver chiness ,to english , in tags foreach ( $node->taxonomy["tags"] as $key => $value) { # echo "Key: $key; Value: $value
\n"; $new_tags = str_replace(',', ',', $value); $new_tags = str_replace(' ', ',', $new_tags); $node->taxonomy["tags"][$key] = $new_tags; } break; } } # vim: set expandtab tabstop=2 shiftwidth=2 autoindent smartindent ft=php :