/** * 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; }