/** * Retrieves and stores incoming links for a page, and * incoming link count and pagerank of each incoming link. * * @return null */ public function site_page_update() { $db = DB::connect(); $url = $_GET['url']; for ($start = 1; $start <= 1000; $start += 100) { $params = array('start' => $start, 'query' => $url); $data = Yahoo::get_inlink_data($params); foreach ($data['ResultSet']['Result'] as $page) { $title = mysql_escape_string($page['Title']); $linking_page = mysql_escape_string($page['Url']); $pagerank = Google::get_pagerank($linking_page); $q = "SELECT COUNT(1) FROM inlink WHERE url = '{$linking_page}'"; if ($db->query($q)->fetchColumn() == 0) { $db->exec("INSERT INTO inlink VALUES('','{$url}','{$linking_page}','{$title}','{$pagerank}','0')"); } else { $db->exec("UPDATE inlink SET inlink_count='{$incoming_links}',pagerank='{$pagerank}' WHERE url = '{$linking_page}' LIMIT 1"); } // @todo this should be a part of the preceding INSERT query $inlink_count = Yahoo::get_inlink_count(array('query' => $linking_page)); $db->exec("UPDATE inlink SET inlink_count='{$inlink_count}' WHERE url = '{$linking_page}' LIMIT 1"); } } // redirect to site subpage page header('HTTP/1.1 302 Found'); header("Location: " . Options::get('base_url') . "site/page/?url=" . urlencode($url)); exit; }
/** * Updates PageRank and inlink count for the Page. * * @return null */ public function update_statistics() { $db = DB::connect(); $pagerank = Google::get_pagerank($this->url); $db->exec("INSERT INTO page_data VALUES({$this->id}, '0', NOW(), {$pagerank})"); $inlink_count = Yahoo::get_inlink_count(array('query' => $this->url)); $db->exec("INSERT INTO page_data VALUES({$this->id}, '1', NOW(), {$inlink_count})"); }