* */ function pages_install() { register_hook('page_end', 'addon/pages/pages.php', 'pages_page_end'); } function pages_uninstall() { unregister_hook('page_end', 'addon/pages/pages.php', 'pages_page_end'); } function pages_iscommunity($url, &$pagelist) { // check every week for the status - should be enough if ($pagelist[$url]["checked"]') != 0); $pagelist[$url] = array("community" => $iscommunity, "checked" => time()); } else // Fetch from cache $iscommunity = $pagelist[$url]["community"]; return($iscommunity); } function pages_getpages($uid) { // Fetch cached pagelist from configuration $pagelist = get_pconfig($uid,'pages','pagelist'); if (sizeof($pagelist) == 0) $pagelist = array(); $contacts = q("SELECT `id`, `url`, `Name` FROM `contact` WHERE `network`= 'dfrn' AND `uid` = %d", intval($uid)); $pages = array(); // Look if the profile is a community page foreach($contacts as $contact) { if (pages_iscommunity($contact["url"], $pagelist)) $pages[] = array("url"=>$contact["url"], "Name"=>$contact["Name"], "id"=>$contact["id"]); } // Write back cached pagelist set_pconfig($uid,'pages','pagelist', $pagelist); return($pages); } function pages_page_end($a,&$b) { // Only move on if if it's the "network" module and there is a logged on user if (($a->module != "network") OR ($a->user['uid'] == 0)) return; $pages = '

'.t("Community").'

"; if (sizeof($contacts) > 0) $a->page['aside'] = $pages.$a->page['aside']; } ?>