From b71f392458b089f343de902afa3a40745dd27bc5 Mon Sep 17 00:00:00 2001 From: Michael Erdmann Date: Fri, 31 May 2024 16:40:54 +0200 Subject: [PATCH 1/5] remove obsolete files --- .project | 22 -- DefaultSettings.php | 288 ------------------ .../Proxy/SolrProxy/ConfigLoader.php | 221 -------------- 3 files changed, 531 deletions(-) delete mode 100644 .project delete mode 100644 DefaultSettings.php delete mode 100644 src/FacetedSearch/Proxy/SolrProxy/ConfigLoader.php diff --git a/.project b/.project deleted file mode 100644 index 3621393..0000000 --- a/.project +++ /dev/null @@ -1,22 +0,0 @@ - - - enhanced-retrieval - - - - - - org.eclipse.wst.validation.validationbuilder - - - - - org.eclipse.dltk.core.scriptbuilder - - - - - - org.eclipse.php.core.PHPNature - - diff --git a/DefaultSettings.php b/DefaultSettings.php deleted file mode 100644 index b3b6acf..0000000 --- a/DefaultSettings.php +++ /dev/null @@ -1,288 +0,0 @@ - array of namespaces-IDs, e.g. - * - * $fsgNamespaceConstraint = [ - * 'sysop' => [ 0, 10, 14 ] // sysop users may only see Main, Template and Category pages - * ]; - * - * Please note: You CANNOT use Mediawiki constants like NS_MAIN here. - * 'user' is default group if a user is in no other group. - */ -global $fsgNamespaceConstraint; -$fsgNamespaceConstraint = []; - -global $fsgCustomConstraint; -$fsgCustomConstraint = [ - /** - * Returns re-written query. - * - * @param string $query - * The SOLR query URL. - * @param array $userGroups - * All groups a user is member of - * @param string $userName - * The username (login) - */ - function ($query, $userGroups, $userName) { - return $query; - } -]; - -/** - * Use statistics logging - */ -global $fsgUseStatistics; -$fsgUseStatistics = false; - -/** - * If this variable is , a search in the MediaWiki search field is redirected - * to the faceted search special page. - * If , Enhanced Retrieval is installed. - */ -global $fsgFacetedSearchForMW; -$fsgFacetedSearchForMW = true; - -/** - * This is the pattern for the link that leads to the creation of new pages. - * Faceted Search checks if the entered search term is the name of an existing - * article. If this is not the case it offers a link for creating this article. - * The variable {article} will be replace by the actual article name. - * The link will be appended to the base URL like "http://localhost/mediawiki/index.php" - */ -global $fsgCreateNewPageLink; -$fsgCreateNewPageLink = "/{article}?action=edit"; - -/** - * If this variable is , changed pages will be indexed incrementally i.e. - * when they are saved, moved or deleted. - * Setting it to can make sense for example during the installation when - * SOLR is not yet running. - */ -global $fsgEnableIncrementalIndexer; -$fsgEnableIncrementalIndexer = true; - -/** - * If this variable is , SMW's pre-defined properties will be indexed too. - * - * Single properties can be excluded from the facets via [[Ignore as facet::true]] - */ -global $fsgIndexPredefinedProperties; -$fsgIndexPredefinedProperties = true; - -/** - * Activates boosting - */ -global $fsgActivateBoosting; -$fsgActivateBoosting=false; - -/** - * The default boost index for all pages which are not boosted otherwise - */ -global $fsgDefaultBoost; -$fsgDefaultBoost = 1.0; - -/** - * All pages belonging to the categories are boosted by the given value. - * - * DO NOT add category prefix before the page title. - */ -global $fsgCategoryBoosts; -$fsgCategoryBoosts = array( - // 'People' => 2.0 -); - -/** - * All pages using one of the templates are boosted by the given value. - * - * DO NOT add template prefix before the page title. - */ -global $fsgTemplateBoosts; -$fsgTemplateBoosts = array( - //'MyTemplate' => 5.5 -); - -/** - * All pages in the namespaces are boosted by the given value - * Use the namespace numbers here, not their names. - */ -global $fsgNamespaceBoosts; -$fsgNamespaceBoosts = array( - // SMW_NS_PROPERTY => 3.0 -); - -/* End of BOOSTING properties ****************************************/ - - -/** - * All pages listed here are ignored by EnhancedRetrieval - * - * Please specify prefixed page title, e.g. Property:Name or Category:People - */ -global $fsgBlacklistPages; -$fsgBlacklistPages = array( - // 'Category:People' -); - -/** - * Set of properties which are requested on search hits. Change this only - * if you want to extend the search - */ -global $fsgExtraPropertiesToRequest; -$fsgExtraPropertiesToRequest = []; - -/** - * Show/hide UI parts - */ -global $fsgShowSortOrder, $fsgShowCategories, $fsgShowNamespaces; -$fsgShowSortOrder = true; -$fsgShowCategories = true; -$fsgShowNamespaces = true; - -/** - * Numeric property clusters - * - * Example: - * $fsgNumericPropertyClusters['smwh_BaujahrMin_xsdvalue_d'] = [ - * 'min' => -9999, - * 'max' => 9999, - * 'lowerBound' => 1700, - * 'upperBound' => 2030, - * 'interval' => 10 ]; - * means that the given property gets a minimum cluster value of -9999, a maximum of 9999 - * and 33 x 10year-clusters from 1700 - 2030. min and max is optional. - */ -global $fsgNumericPropertyClusters; -$fsgNumericPropertyClusters = []; - -/** - * DateTime property clusters - * - * Example: - * $fsgDateTimePropertyClusters['smwh_Freigegeben__am_xsdvalue_dt'] = - * [ 'min' => '1990-01-01-00:00:00', 'max' => '2030-12-31-23:59:59' ]; - */ -global $fsgDateTimePropertyClusters; -$fsgDateTimePropertyClusters = []; - -/** - * User configurable category drop-down of the form ["label" => "Category"]. - * The first entry determines the default. - * The entry with an empty key '' represents "no selected category filter". - */ -global $fsgCategoryFilter; -$fsgCategoryFilter = []; - -/** - * Annotations already shown in snippet - * - * Maps category names to a list of property names. - * Articles from these categories show the values - * of the given properties in the snippets (if values exist) - * - * Example: - * $fsgAnnotationsInSnippet['Dokument' => [ 'Abteilung', 'Dokumentart' ] ]; - */ -global $fsgAnnotationsInSnippet; -$fsgAnnotationsInSnippet = []; - -/** - * Show the article properties button under each search result. - */ -global $fsgShowArticleProperties; -$fsgShowArticleProperties = true; - -/** - * Show the SOLR search score as a tooltip for the SHOW DETAILS link of each search result. - */ -global $fsgShowSolrScore; -$fsgShowSolrScore = false; - -/** - * Show in overlay - */ -global $fsgShowFileInOverlay; -$fsgShowFileInOverlay = ['pdf']; - -/** - * Index subobjects - */ -global $fsgIndexSubobjects; -$fsgIndexSubobjects = true; - -/** - * Facets shown per category - */ -global $fsgShownFacets; -$fsgShownFacets = [ - //'Person' => ['Name', 'Country', 'Gender', 'Age'], - //'Company' => ['CEO', 'Country', 'BusinessArea'] -]; - -/** - * List of properties for which ER will offer a selection dialog for OR - */ -global $fsgFacetsWithOR; -$fsgFacetsWithOR = []; - -/** - * Categories which should be shown in title of search hit - */ -global $fsgCategoriesToShowInTitle; -$fsgCategoriesToShowInTitle = []; - -/** - * List of categories to show in the category facet (if empty all categories are shown) - */ -global $fsgShownCategoryFacets; -$fsgShownCategoryFacets = []; - -/** - * boolean property indicating that a search result should be highlighted (promoted) - * use the SOLR field name here, e.g. 'smwh_HatInventarbeschrieb_xsdvalue_b' or false to turn it off - */ -global $fsgPromotionProperty; -$fsgPromotionProperty = false; - -/** - * boolean property indicating that a search result should be grayed out (demoted) - * use the SOLR field name here, e.g. 'smwh_HatInventarbeschrieb_xsdvalue_b' or false to turn it off - */ -global $fsgDemotionProperty; -$fsgDemotionProperty = false; - -/** - * max. number of hits per page - */ -global $fsgHitsPerPage; -$fsgHitsPerPage = 10; - -/** - * Sort order default. Possible values: score, newest, oldest, ascending, descending - */ -global $fsgDefaultSortOrder; -$fsgDefaultSortOrder = "score"; - -/** - * Indexes the image URL as separate attribute - */ -global $fsgIndexImageURL; -$fsgIndexImageURL = false; - -/** - * Properties which have custom content in the facet dialog - */ -global $fsgFacetsDialogWithCustomContent; -$fsgFacetsDialogWithCustomContent = []; \ No newline at end of file diff --git a/src/FacetedSearch/Proxy/SolrProxy/ConfigLoader.php b/src/FacetedSearch/Proxy/SolrProxy/ConfigLoader.php deleted file mode 100644 index 018459a..0000000 --- a/src/FacetedSearch/Proxy/SolrProxy/ConfigLoader.php +++ /dev/null @@ -1,221 +0,0 @@ -loadConfiguration(); - } - - private $localVariablesFile = ''; - private $envJsonFile = ''; - private $envDefaultJsonFile = ''; - - private $configVariables = []; - - /** - * @param array $configVariables - * list of config-variables that must be defined in (one of) the config files - * used to verify a ConfigLoader properly fetched expected variables - */ - public function __construct( - array $configVariables = []) { - global $IP; - $this->envDefaultJsonFile = "$IP/env-default.json"; - $this->envJsonFile = "$IP/env.json"; - $this->localVariablesFile = "$IP/LocalVariables.php"; - - $this->configVariables = $configVariables; - } - - public function loadConfiguration() { - //$this->logger->debug("Starting loading configuration files."); - - $ed = $this->loadEnvDefault(); - $ej = $this->loadEnvJson(); - $lv = $this->loadLocalVariables(); - - $this->checkConfig(); - } - - /** - * loads env-default.json and then env.json - */ - public function loadEnv() { - $ed = $this->loadEnvDefault(); - $ej = $this->loadEnvJson(); - - if(!$ed && !$ej ) { - $msg = "No configuration files found."; - $this->error($msg); - die($msg); - } - } - - private function loadEnvDefault() { - return $this->loadJsonFile($this->envDefaultJsonFile); - } - - private function loadEnvJson() { - - $mw = $this->loadJsonFile($this->envJsonFile); - $apps = $this->loadJsonFile($this->envJsonFile); - return $mw && $apps; - } - - private function loadJsonFile($fileName = '', $appId = '') { - if ($fileName) { - if(file_exists($fileName) && is_readable($fileName)) { - //$this->logger->debug("Loading $fileName"); - try { - $jsonString = file_get_contents($fileName); - $json = json_decode($jsonString, true); - - if($json) { - $this->processApps($json, $appId); - } else { - return false; - } - } catch (\Exception $e) { - $this->error("Cannot read configuration file '$fileName': " . $e->getMessage()); - return false; - } - } else { - $this->error("Failed to load $fileName"); - return false; - } - } - return true; - } - - /** - * @param array $json maps an appId (e,g, MW) to a config-array - */ - private function processApps($json = [], $appFilter = '') { - foreach ($json as $app => $value) { - - if( !$appFilter || $appFilter && $app == $appFilter ) { - $this->makeGlobals($value); - } - } - } - - /** - * @param array $json maps config variables to their values - */ - private function makeGlobals($json = []) { - foreach ($json as $key => $value) { - $GLOBALS[$key] = $value; - } - } - - private function loadLocalVariables() { - return $this->loadPhpFile($this->localVariablesFile); - } - - private function loadPhpFile($fileName = '') { - if ($fileName) { - if(file_exists($fileName) && is_readable($fileName)) { - //$this->logger->debug("Loading $fileName"); - try { - @require $fileName; - return true; - } catch (\Exception $e) { - $this->error("Cannot read configuration file '$fileName': " . $e->getMessage()); - return false; - } - } else { - $this->error("Failed to load $fileName"); - return false; - } - } else { - return true; - } - } - - private function checkConfig() { - foreach ($this->configVariables as $var ) { - $this->checkIfConfigured($var); - } - } - - private function checkIfConfigured($var) { - if (!isset($GLOBALS[$var])) { - $msg = "'$var' is not configured in any of the configuration files."; - $this->error($msg); - die($msg); - } - } - - private function error($msg) { - //echo "$msg\n"; - //trigger_error($msg); - //$this->logger->error($msg); - } - - public static function test() { - $mwPath = __DIR__ . '/../../../../..'; - $ds = "$mwPath/LocalVariables.php"; - $configVariables = [ - 'wgServerHTTP', - 'wgScriptPath' - ]; - - $loader = new ConfigLoader($mwPath, $ds, $configVariables); - $loader->loadConfig(); - } -} - -// ConfigLoader::test(); -// echo "--------------------------------------\n"; -// var_dump($GLOBALS); From 38d1c4e6f2b1aba0edb96e8696d893e9004830ce Mon Sep 17 00:00:00 2001 From: Michael Erdmann Date: Fri, 31 May 2024 17:10:12 +0200 Subject: [PATCH 2/5] some small changes --- scripts/FacetedSearch/FS_DateFacetClusterer.js | 10 +++++----- skin/faceted_search.css | 5 ++--- src/FacetedSearch/FSIncrementalUpdater.php | 2 ++ src/FacetedSearch/FSIndexerInterface.php | 1 - src/FacetedSearch/FSSolrIndexer.php | 15 ++++++++------- src/FacetedSearch/FSSolrSMWDB.php | 5 ++--- 6 files changed, 19 insertions(+), 19 deletions(-) diff --git a/scripts/FacetedSearch/FS_DateFacetClusterer.js b/scripts/FacetedSearch/FS_DateFacetClusterer.js index 6d50c46..7ca48d1 100644 --- a/scripts/FacetedSearch/FS_DateFacetClusterer.js +++ b/scripts/FacetedSearch/FS_DateFacetClusterer.js @@ -117,7 +117,7 @@ FacetedSearch.classes.DateFacetClusterer = function (facetName, plainName) { if (dateTimePropertyClusters['max']) { var clusterMax = dateTimePropertyClusters['max']; clusterMax = parseInt(clusterMax.replace(/-|:/g,'')); - if (max > clusterMax) { + if (Number(max) > clusterMax) { max = clusterMax; } } @@ -125,14 +125,14 @@ FacetedSearch.classes.DateFacetClusterer = function (facetName, plainName) { if (dateTimePropertyClusters['min']) { var clusterMin = dateTimePropertyClusters['min']; clusterMin = parseInt(clusterMin.replace(/-|:/g,'')); - if (min < clusterMin) { + if (Number(min) < clusterMin) { min = clusterMin; } } } - var incr = findIncrement(min, max); + var incr = findIncrement(Number(min), Number(max)); mIncrementField = incr.getIncrementField(); @@ -153,9 +153,9 @@ FacetedSearch.classes.DateFacetClusterer = function (facetName, plainName) { /** * Calculates a the best suited increment for ranges between the data/time * values min and max that are given as strings that represent long values. - * @param {long} min + * @param {Number} min * Lower bound of date/time - * @param {long} max + * @param {Number} max * Upper bound of date/time * * @return {Object} diff --git a/skin/faceted_search.css b/skin/faceted_search.css index 9f4fa45..706bb8e 100644 --- a/skin/faceted_search.css +++ b/skin/faceted_search.css @@ -22,7 +22,7 @@ #fs_query_button, .fs_category_filter, .fs_sort_order { margin-top: 5px; margin-bottom: 5px; - padding: 0px; + padding: 0; } #search_button { @@ -217,8 +217,7 @@ a.xfsAddFacetOperation { } div.xfs_additional_property_table { - border: 1px solid; - border-color: lightgray; + border: 1px solid lightgray; display: block; width: 100%; } diff --git a/src/FacetedSearch/FSIncrementalUpdater.php b/src/FacetedSearch/FSIncrementalUpdater.php index 36970b9..e679153 100644 --- a/src/FacetedSearch/FSIncrementalUpdater.php +++ b/src/FacetedSearch/FSIncrementalUpdater.php @@ -3,6 +3,7 @@ use Exception; use ForeignTitle; +use MediaWiki\Linker\LinkTarget; use MediaWiki\MediaWikiServices; use MediaWiki\Page\ProperPageIdentity; use MediaWiki\Permissions\Authority; @@ -10,6 +11,7 @@ use MediaWiki\Revision\SlotRecord; use MediaWiki\Storage\EditResult; use MediaWiki\User\UserIdentity; +use Parser; use SMW\SemanticData; use SMWStore; use StatusValue; diff --git a/src/FacetedSearch/FSIndexerInterface.php b/src/FacetedSearch/FSIndexerInterface.php index 316cd8b..11a4c47 100644 --- a/src/FacetedSearch/FSIndexerInterface.php +++ b/src/FacetedSearch/FSIndexerInterface.php @@ -1,7 +1,6 @@ $value) { - $optionAtts .= "$name='$value' "; + foreach($options[$field] as $name => $option) { + $optionAtts .= "$name='$option' "; } } if (isset($options['*']) && !array_key_exists($field, $options)) { - foreach($options['*'] as $name => $value) { - $optionAtts .= "$name='$value' "; + foreach($options['*'] as $name => $option) { + $optionAtts .= "$name='$option' "; } } @@ -236,7 +236,8 @@ public function updateIndex(array $document, array $options, bool $debugMode = f * @param mixed $title Title or filepath * Title object of document (must be of type NS_FILE) * or a filepath in the filesystem - * @return [ text => extracted text of document, xml => full XML-response of Tika ] + * @return array e.g. [ text => extracted text of document, xml => full XML-response of Tika ] + * @throws Exception */ public function extractDocument($title) { if ($title instanceof Title) { @@ -265,7 +266,7 @@ public function extractDocument($title) { // do not index unknown formats if ($contentType == 'application/octet-stream') { - return; + return []; } // send document to Tika and extract text @@ -273,7 +274,7 @@ public function extractDocument($title) { if ( PHP_SAPI === 'cli' && !defined('UNITTEST_MODE')) { throw new Exception(sprintf("\nWARN Empty file path for '%s'. Can not index document properly.\n", $title->getPrefixedText())); } - return; + return []; } $result = $this->postCommandReturn(self::EXTRACT_CMD, file_get_contents($filepath), $contentType, $rc); diff --git a/src/FacetedSearch/FSSolrSMWDB.php b/src/FacetedSearch/FSSolrSMWDB.php index 08f619f..a2e3960 100644 --- a/src/FacetedSearch/FSSolrSMWDB.php +++ b/src/FacetedSearch/FSSolrSMWDB.php @@ -11,7 +11,6 @@ use SMW\DIProperty as SMWDIProperty; use SMW\DIWikiPage as SMWDIWikiPage; use SMW\PropertyRegistry; -use SMW\Services\ServicesFactory as ApplicationFactory; use SMWDataItem; use SMWDITime; use Title; @@ -197,7 +196,7 @@ private function getTextFromFile( WikiPage $wikiPage, array &$doc, array &$messa $this->retrieveFileSystemPath($db, $pageNamespace, $pageDbKey, $doc); } $docData = $this->extractDocument( $pageTitle ); - if( $docData ) { + if( array_key_exists('text', $docData) ) { $text = $docData['text'] ?? ''; } } catch( Exception $e ) { @@ -214,7 +213,7 @@ private function getTextFromFile( WikiPage $wikiPage, array &$doc, array &$messa */ private function calculateBoosting(WikiPage $wikiPage, array &$options, array $doc) { global $fsgActivateBoosting; - if (! isset($fsgActivateBoosting) || $fsgActivateBoosting === false) { + if (! isset($fsgActivateBoosting) || !$fsgActivateBoosting ) { return; } From 2ff6503cf17a67ef79f30da3889c8662c8d02267 Mon Sep 17 00:00:00 2001 From: Michael Erdmann Date: Fri, 31 May 2024 17:10:33 +0200 Subject: [PATCH 3/5] add missing messages for user-prefs --- src/FacetedSearch/Languages/FSMessages.php | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/FacetedSearch/Languages/FSMessages.php b/src/FacetedSearch/Languages/FSMessages.php index a1335de..460594e 100644 --- a/src/FacetedSearch/Languages/FSMessages.php +++ b/src/FacetedSearch/Languages/FSMessages.php @@ -38,9 +38,14 @@ 'facetedsearch-desc' => 'EnhancedRetrieval provides faceted search for MediaWiki and SMW. It requires [https://www.diqa.de/de/Power-Search_for_MediaWiki DIQA powersearch] as backend.', 'fs_facetedsearchspecial' => 'FacetedSearch', // Name of the special page for Faceted Search 'fs_specialpage_group' => 'Faceted Search', + + // Messages for the user preferences dialog 'prefs-enhanced-retrieval' => 'FacetedSearch', + 'prefs-Standard-Sortierung-Facetten' => 'Sort Order of Facettes', + 'sort-alphabetically' => 'Sort facettes alphabetically', + 'sort-by-count' => 'Sort facettes by number of matches', - //--- Messages for the special page --- + // Messages for the special page 'fs_title' => 'Faceted Search', 'fs_search' => 'Find', 'fs_categories' => 'Categories', @@ -126,9 +131,14 @@ 'facetedsearch-desc' => 'EnhancedRetrieval ermöglicht facettierte Suche in Mediawiki. Es benötigt die [https://www.diqa.de/de/Power-Search_for_MediaWiki DIQA-Powersuche] als Backend.', 'fs_facetedsearchspecial' => 'Facettierte Suche', // Name of the special page for Faceted Search 'fs_specialpage_group' => 'Facettierte Suche', - 'prefs-enhanced-retrieval' => 'Facettierte Suche', - //--- Messages for the special page --- + // Messages for the user preferences dialog + 'prefs-enhanced-retrieval' => 'Facettierte Suche', + 'prefs-Standard-Sortierung-Facetten' => 'Sortierung der Facetten', + 'sort-alphabetically' => 'Alphabetisch sortieren', + 'sort-by-count' => 'Nach Häufigkeit sortieren', + + // Messages for the special page 'fs_title' => 'Facettensuche', 'fs_search' => 'Finde', 'fs_categories' => 'Kategorien', @@ -156,7 +166,7 @@ 'more' => 'mehr', 'less' => 'weniger', 'noFacetFilter' => '(Keine Facetten ausgewählt.)', - 'noFacetsFound' => '(Keine Facetten gefunden)', + 'noFacetsFound' => '(Keine Facetten gefunden)', 'underspecifiedSearch' => 'Ihre aktuelle Suche hat zu viele Treffer. Bitte verfeinern Sie sie!', 'session_lost' => 'Browser-Session ist abgelaufen. Bitte loggen Sie sich neu ein.', 'removeFilter' => 'Diese Facette enfernen', From 364ccb8e403846272598af3c05c2acd9dba09f63 Mon Sep 17 00:00:00 2001 From: Michael Erdmann Date: Fri, 31 May 2024 17:10:49 +0200 Subject: [PATCH 4/5] update ER version to 2.5.1 --- INSTALL | 4 ++-- extension.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/INSTALL b/INSTALL index 762fdad..a2f5f6d 100644 --- a/INSTALL +++ b/INSTALL @@ -1,9 +1,9 @@ -== Enhanced Retrieval Extension 2.5 == +== Enhanced Retrieval Extension 2.3 == === Requirements === * PHP 7.x * Composer -* MediaWiki 1.38+ +* MediaWiki 1.37.x * SMW 3.x * Apache SOLR server v8.30+ diff --git a/extension.json b/extension.json index ef2b51b..5015280 100644 --- a/extension.json +++ b/extension.json @@ -7,7 +7,7 @@ "descriptionmsg": "facetedsearch-desc", "license-name": "GPL-2.0-or-later", "type": "other", - "version": "2.5", + "version": "2.5.1", "manifest_version": 2, "requires": { "MediaWiki": ">= 1.38", From f9d67396f78766129d3013c8a640f7e4256d5859 Mon Sep 17 00:00:00 2001 From: Michael Erdmann Date: Fri, 31 May 2024 17:29:34 +0200 Subject: [PATCH 5/5] align and fix version numbers and dependencies --- ChangeLog | 5 +++-- INSTALL | 8 ++++---- extension.json | 4 ++-- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index b148d00..9a91d6d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,14 +2,15 @@ Enhanced Retrieval extension ChangeLog ====================================== VERSION 3.0 -* updated extension.json for MW1.38 +* updated extension.json for MW1.39 * renamed global config variable * from $SOLRhost, $SOLRport, $SOLRuser, $SOLRpass, $SOLRcore * to $fsgSolrHost, $fsgSolrPort, $fsgSolrUser, $fsgSolrPass, $fsgSolrCore * removed $fsgCustomConstraint config variable * removed unused config variables -** $fsgScriptPath + * $fsgScriptPath * $fsgIP +* Enhanced Retrieval now has a user preference dialog VERSION 2.3 - Got rid of separate proxy implementation. Instead, the proxy now is a REST endpoint of MW. diff --git a/INSTALL b/INSTALL index a2f5f6d..f9b403b 100644 --- a/INSTALL +++ b/INSTALL @@ -1,10 +1,10 @@ -== Enhanced Retrieval Extension 2.3 == +== Enhanced Retrieval Extension 3.0 == === Requirements === -* PHP 7.x +* PHP 7.4.x * Composer -* MediaWiki 1.37.x -* SMW 3.x +* MediaWiki 1.39.x (LTS) +* SMW 3.x or 4.x * Apache SOLR server v8.30+ You can setup your own Solr server. Please use the SOLR-schema given in: diff --git a/extension.json b/extension.json index 5015280..378203c 100644 --- a/extension.json +++ b/extension.json @@ -7,10 +7,10 @@ "descriptionmsg": "facetedsearch-desc", "license-name": "GPL-2.0-or-later", "type": "other", - "version": "2.5.1", + "version": "3.0.1", "manifest_version": 2, "requires": { - "MediaWiki": ">= 1.38", + "MediaWiki": ">= 1.39", "platform": { "php": ">= 7.4" }