public function execute($par = null) { global $wgOut, $wgScriptPath; $queryWithoutPrefix = isset($_REQUEST["queryWithoutPrefix"]) ? stripslashes($_REQUEST["queryWithoutPrefix"]) : ""; $query = isset($_REQUEST["query"]) ? stripslashes($_REQUEST["query"]) : ""; $endpoint = isset($_REQUEST["endpoint"]) ? stripslashes(trim($_REQUEST["endpoint"])) : "http://dbpedia.org/sparql"; $output = isset($_REQUEST["output"]) ? stripslashes($_REQUEST["output"]) : ""; $titleRequest = isset($_REQUEST["titleRequest"]) ? stripslashes($_REQUEST["titleRequest"]) : ""; $description = isset($_REQUEST["description"]) ? stripslashes($_REQUEST["description"]) : ""; // $wgOut->addHTML( isset($_REQUEST["query"])?stripslashes($_REQUEST["query"]):"Vide"); // $wgOut->addHTML(print_r($_REQUEST,true)); // $wgOut->addHTML(print_r($queryWithoutPrefix,true)); // $wgOut->addHTML(print_r($query,true)); // $wgOut->addHTML(print_r($output,true)); if ($query != "" && $output == "save" && $titleRequest != "") { if ($this->pageExists($titleRequest)) { $wgOut->addHTML("<h2>" . wfMsg('specialsparqlquery_error_title_exists_yet') . "</h2> \n"); $wgOut->addHTML(); } else { $this->savePage($titleRequest, $this->template($query, $description)); $wgOut->addWikiText(wfMsg('specialsparqlquery_your_query_saved_here') . "[[{$titleRequest}]]"); } } if ($query == "" || $output == "save" || $output == "wiki") { $wgOut->addWikiText(wfMsg('specialsparqlquery_mainpage')); $wgOut->addHTML("<pre>" . htmlentities($this->prefix(), ENT_QUOTES, 'UTF-8') . "</pre>"); $wgOut->addHTML("<form method='post' name='formQuery'>"); $wgOut->addHTML("<input type='hidden' name='output' value='wiki'>"); $wgOut->addHTML("<input type='hidden' name='prefix' value='" . htmlentities($this->prefix(), ENT_QUOTES, 'UTF-8') . " '>"); $wgOut->addHTML("<input type='hidden' name='query' >"); $wgOut->addHTML(wfMsg('specialsparqlquery_endpointsparql') . " : <input type='text' name='endpoint' size='50' value='" . $endpoint . " '>"); $wgOut->addHTML("<textarea name='queryWithoutPrefix' cols='25' rows='15'>"); $strQuery = $queryWithoutPrefix != "" ? $queryWithoutPrefix : $this->exampleSparql(0); $wgOut->addHTML($strQuery); $wgOut->addHTML("</textarea>"); $wgOut->addHTML("<br/>"); $wgOut->addHTML("<script language='javascript' type='text/javascript' src='" . $wgScriptPath . "/extensions/LinkedWiki/js/bordercloud.js'></script>"); $wgOut->addHTML("<SCRIPT>\r\n<!-- \r\nfunction validAndSendQuery(){\r\n\tvar query = document.formQuery.prefix.value + ' ' + document.formQuery.queryWithoutPrefix.value;\r\n\tif(! document.formQuery.toXML.checked){\r\n\t\tdocument.formQuery.query.value= query;\r\n\t\tdocument.formQuery.submit();\r\n\t}else{\t\t\r\n\t\twindow.open('" . $endpoint . "?query=' + escape(query.replace('\\n','')));\r\n\t}\r\n}\r\nfunction validWithJS(){\r\n\tvar query = document.formQuery.prefix.value + ' ' + document.formQuery.queryWithoutPrefix.value;\r\n\r\n\tbcValidateSPARQL('" . $endpoint . "',query);\r\n}\r\n//-->\r\n</SCRIPT>"); $wgOut->addHTML("<input type='button' value='" . wfMsg('specialsparqlquery_sendquery') . "' onClick='validAndSendQuery();' />"); $wgOut->addHTML("<input type='button' value='(R&D) Validation (js)' onClick='validWithJS();' />"); $wgOut->addHTML(" Xml : <input type='checkbox' name='toXML' />"); $wgOut->addHTML(" </form>"); $wgOut->addHTML("<div id='bc_div'></div>"); $wgOut->addHTML("<div style='display: none;'>"); $wgOut->addHTML("<img id='canvas-image-wait' src='" . $wgScriptPath . "/extensions/LinkedWiki/js/wait.png'></img>"); $wgOut->addHTML("</div>"); if ($queryWithoutPrefix != "") { $sp = new Endpoint($endpoint); $rs = $sp->query($query); $errs = $sp->getErrors(); if ($errs) { $wgOut->addHTML("<h1>ERROR(s)</h1>\n"); foreach ($errs as $err) { if (is_array($err)) { foreach ($err as $suberr) { $wgOut->addHTML("<pre>{$suberr}.</pre> \n"); } } else { if (preg_match("/bcjeton/i", $err) && (preg_match("/insert/i", $strQuery) || preg_match("/delete/i", $strQuery))) { $wgOut->addHTML("<pre>You have not the right to write in the dataset.</pre> \n"); } else { $wgOut->addHTML("<pre>{$err}.</pre> \n"); } } } } else { // //efSparqlParserFunction_simple( $querySparqlWiki,$endpoint ,$classHeaders = '',$headers = '', $debug = null) $arr = efSparqlParserFunction_simple($query, $endpoint, '', '', null); $wgOut->addWikiText($arr[0]); $wgOut->addWikiText("==" . wfMsg('specialsparqlquery_usethisquery') . "=="); $wgOut->addWikiText(wfMsg('specialsparqlquery_usethisquery_tutorial')); $wgOut->addHTML("<pre>{{#sparql:" . htmlentities($query, ENT_QUOTES, 'UTF-8') . "\n|endpoint=" . htmlentities($endpoint, ENT_QUOTES, 'UTF-8') . "}}</pre>"); } //$wgOut->addWikiText("==".wfMsg('specialsparqlquery_linkxml')."=="); //$queryurl= $endpoint."?query=".urlencode( str_replace('\n','',$query)); //$wgOut->addHTML("<a href='$queryurl'>".htmlentities( $queryurl, ENT_QUOTES, 'UTF-8')."</a>"); } } $this->setHeaders(); }
function efSparqlParserFunction_Render($parser) { //global $wgLinkedWikiLocalEndPoint,$wgLinkedWikiEndPoint,$wgLinkedWikiGraphWiki; $args = func_get_args(); // $parser, $param1 = '', $param2 = '' $countArgs = count($args); $query = isset($args[1]) ? urldecode($args[1]) : ""; $vars = array(); for ($i = 2; $i < $countArgs; $i++) { if (preg_match_all('#^([^= ]+) *= *(.*)$#i', $args[$i], $match)) { $vars[$match[1][0]] = $match[2][0]; } } if ($query != "") { $query = efWsparqlParserFunction_parserquery($query, $parser); // which endpoint? $endpoint = isset($vars["endpoint"]) ? $vars["endpoint"] : 'http://dbpedia.org/sparql'; $classHeaders = isset($vars["classHeaders"]) ? $vars["classHeaders"] : ''; $headers = isset($vars["headers"]) ? $vars["headers"] : ''; $templates = isset($vars["templates"]) ? $vars["templates"] : ''; $debug = isset($vars["debug"]) ? $vars["debug"] : null; $cache = isset($vars["cache"]) ? $vars["cache"] : "yes"; $templateBare = isset($vars["templateBare"]) ? $vars["templateBare"] : ''; $footer = isset($vars["footer"]) ? $vars["footer"] : ''; if ($cache == "no") { $parser->disableCache(); } if ($templateBare == "tableCell") { return efSparqlParserFunction_tableCell($query, $endpoint, $debug); } else { if ($templates != "") { return efSparqlParserFunction_array($query, $endpoint, $classHeaders, $headers, $templates, $footer, $debug); } else { return efSparqlParserFunction_simple($query, $endpoint, $classHeaders, $headers, $footer, $debug); } } } else { $parser->disableCache(); return "'''Error #sparql : Argument incorrect (usage : #sparql: SELECT * WHERE {?a ?b ?c .} )'''"; } }