'.$url.''; } } class AIA_SEOKeywords extends AIA_SEOKeywordsUI{ static public function rank_text($rank_value){ return self::is_empty_rank_value($rank_value) ? '(無)' : $rank_value; } static public function is_empty_rank_value($rank){ return !self::is_not_empty_rank_value($rank); } static public function is_not_empty_rank_value($rank){ return $rank!=SEO_KEYWORDS_NO_RANK_VALUE; } static public function get_hashkey($kw, $url=''){ $url = $url ? self::get_normalized_url($url) : ''; return md5($kw.'#--#--#'.$url); } static public function get_normalized_url($url){ if(strpos($url,'?')!==false){ return null; # so far, there is no urls with querystring in https://docs.google.com/spreadsheets/d/16mln7o6jd_zsTvVZmQNc3FnZpKHsteMUzIIwevgzu0U/edit#gid=714924679 } $l = strlen($url)-1; $last = substr($url,$l); if($last==='/'){ $url = substr($url,0,$l); } return$url; } static public function get_all_keywords($orderby=' CASE g_newest_rank WHEN '.SEO_KEYWORDS_NO_RANK_VALUE.' THEN 999 ELSE g_newest_rank END '){ global$wpdb; return $wpdb->get_results('SELECT * FROM '.TBL_SEO_RANK_KEYWORDS.' ORDER BY '.$orderby); } static public function get_keyword_url_pair_by_hashkey($hashkey){ global$wpdb; $sql='SELECT * FROM '.TBL_SEO_RANK_KEYWORDS.' WHERE hashkey="'.$hashkey.'"'; return $wpdb->get_row($sql); } static public function get_logs_by_hashkey($hashkey, $orderby=' log_datetime DESC '){ global$wpdb; return $wpdb->get_results('SELECT * FROM '.TBL_SEO_RANK_GOOGLE_LOGS.' WHERE hashkey="'.$hashkey.'" ORDER BY '.$orderby); } static protected function get_logs_by_($type,$value){ global$wpdb; $mapping = array('KW'=>'kw','URL'=>'url'); $field = isset($mapping[$type]) ? $mapping[$type] : ''; if(!$field){return null;} return $wpdb->get_results('SELECT * FROM '.TBL_SEO_RANK_GOOGLE_LOGS . ' INNER JOIN '.TBL_SEO_RANK_KEYWORDS.' USING(`hashkey`) WHERE `'.$field.'`="'.$value.'"'); } static public function get_logs_by_keyword($keyword){ return self::get_logs_by_('KW', $keyword); } static public function get_logs_by_url($url){ return self::get_logs_by_('URL', $url); } }