Exemplo n.º 1
0
 function execute($query)
 {
     global $wgOut;
     wfProfileIn('SpecialURIResolver::execute (SMW)');
     if (is_null($query) || trim($query) === '') {
         if (stristr($_SERVER['HTTP_ACCEPT'], 'RDF')) {
             $wgOut->redirect(SpecialPage::getTitleFor('ExportRDF')->getFullURL(array('stats' => '1')), '303');
         } else {
             $this->setHeaders();
             $wgOut->addHTML('<p>' . wfMessage('smw_uri_doc', 'http://www.w3.org/2001/tag/issues.html#httpRange-14')->parse() . '</p>');
         }
     } else {
         $query = SMWExporter::decodeURI($query);
         $query = str_replace('_', '%20', $query);
         $query = urldecode($query);
         $title = Title::newFromText($query);
         // In case the title doesn't exists throw an error page
         if ($title === null) {
             $wgOut->showErrorPage('badtitle', 'badtitletext');
         } else {
             $wgOut->redirect(stristr($_SERVER['HTTP_ACCEPT'], 'RDF') ? SpecialPage::getTitleFor('ExportRDF', $title->getPrefixedText())->getFullURL(array('xmlmime' => 'rdf')) : $title->getFullURL(), '303');
         }
     }
     wfProfileOut('SpecialURIResolver::execute (SMW)');
 }
Exemplo n.º 2
0
 function execute($query)
 {
     global $wgOut;
     wfProfileIn('SpecialURIResolver::execute (SMW)');
     if ($query === '') {
         if (stristr($_SERVER['HTTP_ACCEPT'], 'RDF')) {
             $wgOut->redirect(SpecialPage::getTitleFor('ExportRDF')->getFullURL('stats=1'), '303');
         } else {
             $this->setHeaders();
             $wgOut->addHTML('<p>' . wfMsg('smw_uri_doc') . "</p>");
         }
     } else {
         $query = SMWExporter::decodeURI($query);
         $query = str_replace("_", "%20", $query);
         $query = urldecode($query);
         $title = Title::newFromText($query);
         $wgOut->redirect(stristr($_SERVER['HTTP_ACCEPT'], 'RDF') ? SpecialPage::getTitleFor('ExportRDF', $title->getPrefixedText())->getFullURL('xmlmime=rdf') : $title->getFullURL(), '303');
     }
     wfProfileOut('SpecialURIResolver::execute (SMW)');
 }
Exemplo n.º 3
0
 public static function createLink($link_mode, $uri)
 {
     global $smwgNamespace;
     $pos = strpos($uri, $smwgNamespace);
     if ($pos !== false) {
         $uri = SMWExporter::decodeURI($uri);
         $len = strlen($smwgNamespace);
         $page = substr($uri, $len);
         $page = str_replace("_", " ", $page);
         $is_category = strpos($page, "Category:") === false && strpos($page, "Category%3A") === false ? false : true;
         $link = "";
         if ($link_mode) {
             if ($is_category) {
                 $link = "[[:" . $page . "]]";
             } else {
                 $link = "[[" . $page . "]]";
             }
         } else {
             $link = $page;
         }
         return $link;
     }
     return $uri;
 }
Exemplo n.º 4
0
function efSparqlParserFunction_uri2Link($uri, $nowiki = false)
{
    //TODO : $title ??? CLEAN ?
    global $wgServer;
    $result = "";
    //$fromPatternThisWiki = "#^". str_replace( '.', '\.', $wgServer).".*:URIResolver/(.*)$#i";
    $fromPatternThisWiki = "#^" . str_replace('.', '\\.', $wgServer) . ".*:URIResolver/(?:(.*):(.*)|(.*))\$#i";
    $titleObj = null;
    $title = "";
    $forCategory = "";
    $isKnow = true;
    if (preg_match_all($fromPatternThisWiki, $uri, $match)) {
        $uri = SMWExporter::decodeURI($uri);
        $uri = str_replace("_", "%20", $uri);
        $uri = urldecode($uri);
        preg_match_all($fromPatternThisWiki, $uri, $match);
        if ($match[1][0] == '') {
            //no namespace
            $titleObj = Title::newFromText($match[3][0]);
            $title = $match[3][0];
        } else {
            global $wgContLang;
            $ns = $wgContLang->getNsIndex($match[1][0]);
            if (!$ns) {
                $isKnow = false;
            } else {
                $titleObj = Title::newFromText($match[2][0], $ns);
                $title = $match[2][0];
                if ($ns == NS_CATEGORY) {
                    $forCategory = ":";
                }
            }
        }
    } else {
        $isKnow = false;
    }
    if ($isKnow) {
        if ($nowiki) {
            if ($titleObj != null) {
                $result = $titleObj->getText();
            } else {
                $result = $title;
            }
        } else {
            if ($titleObj != null) {
                $result = "[[" . $forCategory . $titleObj->getPrefixedDBkey() . "|" . $titleObj->getText() . "]]";
            } else {
                $result = "[[" . $forCategory . $title . "]]";
            }
        }
    } else {
        $result = str_replace("=", "{{equal}}", $uri);
    }
    return $result;
}