$title\n
";
if($values) {
ksort($values);
foreach($values as $data) {
$label = $data['label'];
$title= $data['title'];
$count = $data['count'];
$link = $data['link'];
$p = floor(($count / $max) * 100);
if ($p < 20) $class = 'tag1';
elseif ($p >= 20 and $p < 40) $class = 'tag2';
elseif ($p >= 40 and $p < 60) $class = 'tag3';
elseif ($p >= 60 and $p < 80) $class = 'tag4';
else $class = 'tag5';
$out .= "- $label
\n";
}
} else {
$out .= 'Nothing yet';
}
$out .= '
';
return $out;
}
function tagcloud($title, $data) {
$max = 0;
$tags = array();
foreach($data['result']['rows'] as $row) {
$c = $row['c'];
if($c>$max) $max = $c;
$name = $row['tagname'];
$tags[$name]['label'] = $name;
$tags[$name]['title'] = $name;
$tags[$name]['link'] = LODrTools::taglink($name);
$tags[$name]['count'] = $c;
}
return LODrTools::cloud($title, 'tag', $tags, $max);
}
function uricloud($title, $data) {
$max = 0;
$tags = array();
foreach($data['result']['rows'] as $row) {
$c = $row['c'];
if($c>$max) $max = $c;
$uri = $row['uri'];
$tags[$uri]['count'] = $c;
$tags[$uri]['label'] = LODrTools::get_label($this->store, $uri);
if ($row['rel']) {
$tags[$uri]['title'] = 'Sharing the same value for the '.$row['rel'].' property (= '.$row['val'].")";
} else {
$tags[$uri]['title'] = LODrTools::get_label($this->store, $uri);
}
$tags[$uri]['link'] = LODrTools::urilink($uri);
}
return LODrTools::cloud($title, 'uri', $tags, $max);
}
function get_label($store, $uri) {
return LODrTools::get_lang_query($store, $uri, 'rdfs:label', true);
}
function get_desc($store, $uri) {
return LODrTools::get_lang_query($store, $uri, 'rdfs:comment');
}
function get_lang_query($store, $uri, $property, $show=false) {
global $langs;
// Use session language or default ones
$lang = LODrTools::get_lang();
if($lang) $lg = array($lang);
else $lg = $langs;
// create the union / filter patterns for the prefered languages (in case more than one lang is used)
foreach($lg as $lang) {
$q .= "
{
<$uri> $property ?v .
FILTER (lang(?v) = '$lang')
} UNION ";
}
// create the query, adding a default language value
$query = "
SELECT DISTINCT ?v
WHERE {
$q {
<$uri> $property ?v .
FILTER (lang(?v) = '')
}
} LIMIT 1";
$res = $store->do_query($query);
// if no result found, must we return something ?
if(!sizeof($res['result']['rows'])) return $show ? $uri : '';
return $res['result']['rows'][0]['v'];
}
public function moat_ping($url) {
global $tagserv;
foreach($tagserv as $serv) {
$server = $serv[1];
LODrTools::get_url("${server}?import=$url");
}
}
function moat_get($server, $tag) {
$json = json_decode(LODrTools::get_url("${server}tag/$tag/json/light"));
return $json->results->bindings;
}
function sparql_get($endpoint, $tag) {
$query = "
SELECT DISTINCT ?label ?uri
WHERE {
{ ?uri ?label } UNION { ?uri ?label } .
FILTER REGEX(?label, \"^$tag$\", \"i\") .
}
";
$q = urlencode($query);
$a = urlencode('application/sparql-results+json');
$url = "$endpoint?query=$q&Accept=$a";
$res = LODrTools::get_url($url);
$json = json_decode(LODrTools::get_url($url));
return $json->results->bindings;
}
function get_lang() {
session_start();
return $_SESSION['lang'];
}
function set_lang($lang) {
session_start();
if($lang != '') {
if($lang == 'default') {
unset($_SESSION['lang']);
}
else {
$_SESSION['lang'] = $lang;
}
}
}
function lang_form() {
global $langs;
$cur = LODrTools::get_lang();
$uri = $_SERVER['REDIRECT_URL'];
$select = "";
return $select;
}
public function get_url($url, $header='0', $type=null) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if($header != 0) curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
else curl_setopt($ch, CURLOPT_HEADER, $header);
if($type) {
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $type);
}
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
function ping($uri) {
global $pings;
foreach($pings as $service) {
// XMLRPC API might be not supported on the webserver
// $request = xmlrpc_encode_request('weblogUpdates.ping', array('', $uri));
$request = "
weblogUpdates.ping
URI: $uri
$uri
";
$header = array(
'Content-Type: text/xml',
"Content-length: ".strlen($request). "\r\n",
$request
);
$res = LODrTools::get_url($service, $header, 'POST');
}
}
}
?>