public function executeEntities($request) { $this->setResponseFormat(); $entity_ids = explode(",", $request->getParameter('entity_ids')); $this->data = EntityTable::getEntitiesAndRelsForMap($entity_ids); if ($request->getParameter('format') == "json") { return $this->renderText(json_encode($this->data)); } else { return 'Xml'; } }
public function executeInterlocksMap($request) { $this->checkEntity($request, false, false); $num = $request->getParameter("num", 6); $degree1_num = $request->getParameter("degree1_num", 10); $order1 = $this->entity['primary_ext'] == 'Person' ? 1 : 2; $order2 = $this->entity['primary_ext'] == 'Person' ? 2 : 1; $options = array('cat1_ids' => RelationshipTable::POSITION_CATEGORY . ',' . RelationshipTable::MEMBERSHIP_CATEGORY, 'order1' => $order1, 'cat2_ids' => RelationshipTable::POSITION_CATEGORY . ',' . RelationshipTable::MEMBERSHIP_CATEGORY, 'order2' => $order2, 'page' => 1, 'num' => $num); $interlocks = EntityApi::getSecondDegreeNetwork($this->entity['id'], $options); $degree1_ids = array(); $degree2_ids = array(); $degree1_scores = array(); foreach ($interlocks as $i) { $new_degree1_ids = explode(",", $i["degree1_ids"]); foreach ($new_degree1_ids as $id) { $degree1_scores[$id] = isset($degree1_scores[$id]) ? $degree1_scores[$id] + 1 : 1; } $degree1_ids = array_merge($degree1_ids, $new_degree1_ids); $degree2_ids[] = $i["id"]; } arsort($degree1_scores); $degree1_ids = array_keys($degree1_scores); $degree1_ids = array_slice($degree1_ids, 0, $degree1_num); $entity_ids = array_unique(array_merge(array($this->entity["id"]), $degree1_ids, $degree2_ids)); $cats = array(RelationshipTable::POSITION_CATEGORY, RelationshipTable::MEMBERSHIP_CATEGORY); $data = EntityTable::getEntitiesAndRelsForMap($entity_ids, $cats); /* foreach ($data["entities"] as $i => $entity) { $data["entities"][$i]["url"] = preg_replace("/map$/", "interlocksMap", $entity["url"]); } */ $entities = array(); foreach ($data["entities"] as $e) { array_push($entities, $e); } $this->data = json_encode(array("entities" => $entities, "rels" => $data["rels"])); $this->degree1_ids = $degree1_ids; $this->degree2_ids = $degree2_ids; }