Exemple #1
0
/**
 * Intializes Data Import Extension.
 * Called from SMW during initialization.
 */
function smwfDISetupExtension()
{
    global $wgHooks, $wgExtensionCredits, $wgAutoloadClasses, $wgSpecialPages;
    global $smwgDIIP, $wgSpecialPageGroups, $wgRequest, $smwgEnableDataImportExtension, $wgContLang;
    if (defined('DO_MAINTENANCE')) {
        require_once $smwgDIIP . '/specials/WebServices/SMW_WSStorage.php';
        if (!WSStorage::getDatabase()->isInitialized()) {
            return true;
        }
    }
    global $smwgQuerySources;
    $smwgQuerySources['webservice'] = 'SMWWSSMWStore';
    require_once $smwgDIIP . '/specials/WebServices/smwstoragelayer/SMW_WSSMWStore.php';
    //so that other extensions like the gardening framework know about
    //the Data Import Extension
    $smwgEnableDataImportExtension = true;
    require_once $smwgDIIP . '/specials/WebServices/SMW_WebServiceManager.php';
    require_once $smwgDIIP . '/specials/TermImport/SMW_TermImportManager.php';
    global $wgParser;
    $wgParser->setFunctionHook('webServiceUsage', 'wsuf_Render');
    $spns_text = $wgContLang->getNsText(NS_SPECIAL);
    // register AddHTMLHeader functions for special pages
    // to include javascript and css files (only on special page requests).
    if (stripos($wgRequest->getRequestURL(), $spns_text . ":") !== false || stripos($wgRequest->getRequestURL(), $spns_text . "%3A") !== false) {
        $wgHooks['BeforePageDisplay'][] = 'smwDITIAddHTMLHeader';
        $wgHooks['BeforePageDisplay'][] = 'smwDIWSAddHTMLHeader';
    }
    $wgHooks['BeforePageDisplay'][] = 'smwDITBAddHTMLHeader';
    global $enableMaterialization;
    if (isset($enableMaterialization) && $enableMaterialization) {
        $wgHooks['BeforePageDisplay'][] = 'smwDIMAAddHTMLHeader';
    }
    $wgHooks['smwhACNamespaceMappings'][] = 'difRegisterAutocompletionIcons';
    smwfDIInitMessages();
    WebServiceManager::initWikiWebServiceExtension();
    TermImportManager::initTermImportFramework();
    // add some AJAX calls
    $action = $wgRequest->getVal('action');
    if ($action == 'ajax') {
        $method_prefix = smwfDIGetAjaxMethodPrefix();
        // decide according to ajax method prefix which script(s) to import
        switch ($method_prefix) {
            case '_ti_':
                require_once $smwgDIIP . '/specials/TermImport/SMW_CL.php';
                break;
            case '_wsu_':
                require_once $smwgDIIP . '/specials/WebServices/SMW_UseWebServiceAjaxAccess.php';
                break;
            case '_ws_':
                require_once $smwgDIIP . '/specials/WebServices/SMW_WebServiceRepositoryAjaxAccess.php';
                require_once $smwgDIIP . '/specials/WebServices/SMW_DefineWebServiceAjaxAccess.php';
                break;
        }
    } else {
        // otherwise register special pages
        $wgAutoloadClasses['SMWTermImportSpecial'] = $smwgDIIP . '/specials/TermImport/SMW_TermImportSpecial.php';
        $wgSpecialPages['TermImport'] = array('SMWTermImportSpecial');
        $wgSpecialPageGroups['TermImport'] = 'di_group';
        $wgAutoloadClasses['SMWWebServiceRepositorySpecial'] = $smwgDIIP . '/specials/WebServices/SMW_WebServiceRepositorySpecial.php';
        $wgSpecialPages['DataImportRepository'] = array('SMWWebServiceRepositorySpecial');
        $wgSpecialPageGroups['DataImportRepository'] = 'di_group';
        $wgAutoloadClasses['SMWDefineWebServiceSpecial'] = $smwgDIIP . '/specials/WebServices/SMW_DefineWebServiceSpecial.php';
        $wgSpecialPages['DefineWebService'] = array('SMWDefineWebServiceSpecial');
        $wgSpecialPageGroups['DefineWebService'] = 'di_group';
        $wgAutoloadClasses['SMWUseWebServiceSpecial'] = $smwgDIIP . '/specials/WebServices/SMW_UseWebServiceSpecial.php';
        $wgSpecialPages['UseWebService'] = array('SMWUseWebServiceSpecial');
        $wgSpecialPageGroups['UseWebService'] = 'di_group';
        // Register Credits
        $wgExtensionCredits['parserhook'][] = array('name' => 'Data Import Extension', 'version' => SMW_DI_VERSION, 'author' => "Thomas Schweitzer, Ingo Steinbauer, Sascha Wagner and Daniel Hansch. Owned by [http://www.ontoprise.de ontoprise GmbH].", 'url' => 'http://smwforum.ontoprise.com/smwforum/index.php/Help:Data_Import_Extension', 'description' => 'Allows to import data from a lot of different sources.');
    }
    //load the Gardening Bots
    require_once "{$smwgDIIP}/specials/TermImport/SMW_TermImportBot.php";
    require_once "{$smwgDIIP}/specials/TermImport/SMW_TermImportUpdateBot.php";
    require_once "{$smwgDIIP}/specials/WebServices/SMW_WSCacheBot.php";
    require_once "{$smwgDIIP}/specials/WebServices/SMW_WSUpdateBot.php";
    $wgSpecialPages['Ask'] = array('SMWWSSMWAskPage');
    return true;
}