static function getLinkFor(&$Tab, $fk_object = 0, $element = '', $tag = '', $level = 1) { global $db; if ($level > 5 || strlen($tag) <= 1) { return false; } $res = $db->query("SELECT fk_object, type_object, comment \n\t\t\t\tFROM " . MAIN_DB_PREFIX . "twiiit WHERE \n\t\t\t\t(fk_object = " . (int) $fk_object . " AND type_object='" . $db->escape($element) . "')\n\t\t\t\tOR comment LIKE '%" . $db->escape($tag) . "%'"); while ($obj = $db->fetch_object($res)) { $TTag = TTwiiit::extractTags($obj->comment, array('/@(\\w+)/', '/#(\\w+)/')); if ($obj->fk_object > 0 && !empty($obj->type_object)) { $TTag[] = TTwiiit::getTag($element, TTwiiit::getRef($obj->fk_object, $obj->type_object)); } $TTagRel = TTwiiit::extractTags($obj->comment, array('/:(\\w+)/')); if (empty($TTagRel)) { $TTagRel = array(' '); } //var_dump($tag,$TTag,$TTagRel); foreach ($TTag as $t) { if ($tag == $t || strlen($tag) <= 1) { continue; } foreach ($TTagRel as $rel) { if (empty($rel)) { continue; } $checksum = md5($tag . '.' . $t . '.' . $rel); if (!isset($Tab[$checksum])) { $Tab[$checksum] = array('from' => $tag, 'to' => $t, 'label' => $rel); TTwiiit::getLinkFor($Tab, 0, '', $t, $level + 1); } } } } }
function _graph($fk_object, $ref, $element) { $TLink = array(); TTwiiit::getLinkFor($TLink, $fk_object, $element, TTwiiit::getTag($element, $ref)); return $TLink; }