-//////////////////////////////////////////////////////////// peer & peerscopes
-// when shortnames are needed on peers
-function plc_peer_global_hash ($api) {
- $peer_columns=array('peer_id','shortname');
- $peer_filter=array();
- $peers = $api->GetPeers($peer_filter,$peer_columns);
-
- $peer_hash=array();
- foreach ($peers as $peer) {
- $peer_hash[$peer['peer_id']]=$peer;
- }
-}
-
-function plc_peer_shortname ($peer_hash,$peer_id) {
- if ( ! $peer_id ) {
- return PLC_SHORTNAME;
- } else {
- return $peer_hash[$node['peer_id']]['shortname'];
- }
-}
-
-function plc_peer_label ($peer) {
- if (! $peer) {
- return "Local object on " . PLC_NAME . " (" . PLC_SHORTNAME . ")";
- }
- $result= $peer['peername'] . " (" . $peer['shortname'] . ")";
- $result= href(l_peer($peer['peer_id']),$result);
- return plc_foreign_text($result);
-}
-
-// to set the background to grey on foreign objects
-// return true if the peer is local
-function plc_peer_block_start ($peer_hash,$peer_id) {
- if ( ! $peer_id ) {
- print "<div>";
- return true;
- } else {
- // set two classes, one eneraic to all foreign, and one based on the peer's shortname for finer grain tuning
- printf ('<div class="plc-foreign plc-%s>"',strtolower(plc_peer_shortname($peer_hash,$peer_id)));
- return false;
- }
-}
-
-function plc_peer_block_end () {
- print "</div>\n";
-}
-
-// interpret standard syntax for peerscope
-function plc_peer_info ($api,$peerscope) {
- switch ($peerscope) {
- case '':
- $peer_filter=array();
- $peer_label="all peers";
- break;
- case 'local':
- $peer_filter=array("peer_id"=>NULL);
- $peer_label=PLC_SHORTNAME;
- break;
- case 'foreign':
- $peer_filter=array("~peer_id"=>NULL);
- $peer_label="foreign peers";
- break;
- default:
- if (is_int ($peerscope)) {
- $peer_id=intval($peerscope);
- $peers=$api->GetPeers(array("peer_id"=>$peer_id));
- } else {
- $peers=$api->GetPeers(array("shortname"=>$peerscope));
- }
- if ($peers) {
- $peer=$peers[0];
- $peer_id=$peer['peer_id'];
- $peer_filter=array("peer_id"=>$peer_id);
- $peer_label='peer "' . $peer['shortname'] . '"';
- } else {
- $peer_filter=array();
- $peer_label="[no such peer " . $peerscope . "]";
- }
- break;
- }
- return array ($peer_filter,$peer_label);
-}