<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://open-csp.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Test</id>
	<title>CSP Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://open-csp.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Test"/>
	<link rel="alternate" type="text/html" href="https://open-csp.org/Special:Contributions/Test"/>
	<updated>2026-04-29T16:37:35Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://open-csp.org/index.php?title=QandA/can-open-csp-be-used-with-page-forms&amp;diff=1805</id>
		<title>QandA/can-open-csp-be-used-with-page-forms</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=QandA/can-open-csp-be-used-with-page-forms&amp;diff=1805"/>
		<updated>2022-10-24T15:10:41Z</updated>

		<summary type="html">&lt;p&gt;Test: User:Test&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This question has two answers, depending on why you ask this question.&lt;br /&gt;
&lt;br /&gt;
==Yes, technically it can==&lt;br /&gt;
It is perfectly ok to install Page Forms in an Open CSP wiki and use it in the way you are used to. There may be valid reasons to do this and you won&#039;t be obstructed in doing that.&lt;br /&gt;
&lt;br /&gt;
==You cannot take advantage of important Open CSP features==&lt;br /&gt;
Due to limitations in Page Forms you will not be able to use Page Forms in an Open CSP wiki in the way that is intended with Open CSP. &lt;br /&gt;
&lt;br /&gt;
===Page Forms doesn&#039;t support multiple slots===&lt;br /&gt;
Page Forms acts on the main slot of a page, the slot that you can edit with &#039;edit source&#039;. However, with Page Forms you typically edit the structured data of a page, metadata or properties and in an Open CSP this structured dat is stored in a different slot than the &#039;main&#039; slot. Page forms doesn&#039;t allow to choose the slot to write to or read from.&lt;/div&gt;</summary>
		<author><name>Test</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=QandA/can-open-csp-be-used-with-page-forms&amp;diff=1804</id>
		<title>QandA/can-open-csp-be-used-with-page-forms</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=QandA/can-open-csp-be-used-with-page-forms&amp;diff=1804"/>
		<updated>2022-10-24T15:10:30Z</updated>

		<summary type="html">&lt;p&gt;Test: User:Test&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This question has two answers, depending on why you ask this question.&lt;br /&gt;
&lt;br /&gt;
==Yes, technically it can==&lt;br /&gt;
It is perfectly ok to install Page Forms in an Open CSP wiki and use it in the way you are used to. There may be valid reasons to do this and you won&#039;t be obstructed in doing that.&lt;br /&gt;
&lt;br /&gt;
==You cannot take advantage of important Open CSP features==&lt;br /&gt;
Due to limitations in Page Forms you will not be able to use Page Forms in an Open CSP wiki in the way that is intended with Open CSP. &lt;br /&gt;
&lt;br /&gt;
===Page Forms doesn&#039;t support multiple slots===&lt;br /&gt;
Page Forms acts on the main slot of a page, the slot that you can edit with &#039;edit source&#039;. However, with Page Forms you typically edit the structured data of a page, metadata or properties and in an Open CSP this structured dat is stored in a different slot than the &#039;main&#039; slot. Page forms doesn&#039;t allow to choose the slot to write to or read from.&lt;/div&gt;</summary>
		<author><name>Test</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=QandA/asdf_asf_asdf&amp;diff=1803</id>
		<title>QandA/asdf asf asdf</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=QandA/asdf_asf_asdf&amp;diff=1803"/>
		<updated>2022-10-24T15:06:37Z</updated>

		<summary type="html">&lt;p&gt;Test: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;asdf asdf asdf&lt;br /&gt;
 asdf asdf&lt;/div&gt;</summary>
		<author><name>Test</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=QandA/asdf_asf_asdf&amp;diff=1802</id>
		<title>QandA/asdf asf asdf</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=QandA/asdf_asf_asdf&amp;diff=1802"/>
		<updated>2022-10-24T15:03:37Z</updated>

		<summary type="html">&lt;p&gt;Test: Created page with &amp;quot;asdf asdf asdf&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;asdf asdf asdf&lt;/div&gt;</summary>
		<author><name>Test</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=QandA/how-can-i-install-open-csp&amp;diff=1801</id>
		<title>QandA/how-can-i-install-open-csp</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=QandA/how-can-i-install-open-csp&amp;diff=1801"/>
		<updated>2022-10-24T15:02:32Z</updated>

		<summary type="html">&lt;p&gt;Test: User:Test&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;At this moment there is one way to install Open CSP yourself.&lt;br /&gt;
&lt;br /&gt;
== Install MediaWiki ==&lt;br /&gt;
The first step is to [[Mediawikiwiki:Manual:Installing MediaWiki|install MediaWiki]]. If you have done this, go to the next step.&lt;br /&gt;
&lt;br /&gt;
== Install Elasticsearch ==&lt;br /&gt;
In Open CSP Elasticsearch is used as [https://www.semantic-mediawiki.org/wiki/Help:ElasticStore Elasticstore for Semantic MediaWiki]. Having the data in Elasticsearch is a prerequisite for the use of [[Mediawikiwiki:Extension:WikiSearch|WikiSearch]].&lt;br /&gt;
&lt;br /&gt;
How to install Elasticsearch is described here: https://www.mediawiki.org/wiki/Extension:CirrusSearch#Elasticsearch.&lt;br /&gt;
&lt;br /&gt;
== Download the Open CSP extensions ==&lt;br /&gt;
Go to [[Extensions-in-open-csp|Extensions in Open CSP]] and download all the extensions that are not included with MediaWiki.&lt;br /&gt;
&lt;br /&gt;
== Configuration of settings ==&lt;br /&gt;
Our approach is to have LocalSettings.php as it is and put settings in different files. This promotes clarity and upgradability.&lt;br /&gt;
&lt;br /&gt;
=== Change LocalSettings.php ===&lt;br /&gt;
Add this to the end of LocalSettings.php and create a &#039;settings&#039; folder in the public_html with these files.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
require_once( &#039;settings/ServerSettings.php&#039; );&lt;br /&gt;
require_once( &#039;settings/AdditionalSettings.php&#039; );&lt;br /&gt;
require_once( &#039;settings/ExtensionSettings.php&#039; );&lt;br /&gt;
require_once( &#039;settings/SkinSettings.php&#039; );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configure server settings ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// Project namespace (choose your project namespace)&lt;br /&gt;
// $wgMetaNamespace = &amp;quot;Wiki&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Short URL (optional)&lt;br /&gt;
// $wgArticlePath = &amp;quot;/$1&amp;quot;;&lt;br /&gt;
// $wgUsePathInfo = true;&lt;br /&gt;
&lt;br /&gt;
// Elasticsearch (configure according your ES installation)&lt;br /&gt;
$GLOBALS[&#039;smwgElasticsearchEndpoints&#039;] = [ &#039;elasticsearch-master.helm.svc.cluster.local:9200&#039;, ];&lt;br /&gt;
$GLOBALS[&#039;smwgElasticsearchConfig&#039;][&#039;settings&#039;][&#039;data&#039;] = [ &#039;number_of_shards&#039; =&amp;gt; 2,&lt;br /&gt;
	&#039;number_of_replicas&#039; =&amp;gt; 0 ];&lt;br /&gt;
&lt;br /&gt;
// Disable jobqueue on webrequest (optional, if set to 0 create cronjob to run runJobs.php)&lt;br /&gt;
// $wgJobRunRate = 0;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configure additional settings ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// Uncomment to see Exception Details&lt;br /&gt;
//	$wgShowExceptionDetails = true;&lt;br /&gt;
&lt;br /&gt;
// Please fill in your page name here:&lt;br /&gt;
$wgSitename = &amp;quot;CSP Wiki&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Allow uploads&lt;br /&gt;
$wgEnableUploads = true;&lt;br /&gt;
// Under evaluation: Might no longer be required for FlexForm&lt;br /&gt;
$wgAllowCopyUploads = true;&lt;br /&gt;
$wgCopyUploadsFromSpecialUpload = true;&lt;br /&gt;
&lt;br /&gt;
// Use img_auth.php for all files served. (optional)&lt;br /&gt;
// $wgUploadPath = &amp;quot;/img_auth.php&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Switch off cache (optional)&lt;br /&gt;
// $wgCachePages = false;&lt;br /&gt;
// $wgMainCacheType = CACHE_NONE;&lt;br /&gt;
// $wgCacheDirectory = false;&lt;br /&gt;
// $wgParserCacheType = CACHE_NONE;&lt;br /&gt;
&lt;br /&gt;
// Enable ElasticSearch as the standard backend&lt;br /&gt;
$smwgDefaultStore = &#039;SMWElasticStore&#039;;&lt;br /&gt;
&lt;br /&gt;
// Explicitly set wgRawHtml to false, since it is unsafe.&lt;br /&gt;
$wgRawHtml = false;&lt;br /&gt;
&lt;br /&gt;
// Below are settings for a private wiki that all users can edit&lt;br /&gt;
// No need to patrol pages&lt;br /&gt;
$wgUseRCPatrol = false;&lt;br /&gt;
$wgUseNPPatrol = false;&lt;br /&gt;
&lt;br /&gt;
// Private wiki&lt;br /&gt;
$wgGroupPermissions[&#039;*&#039;][&#039;read&#039;] = false;&lt;br /&gt;
$wgGroupPermissions[&#039;*&#039;][&#039;edit&#039;] = false;&lt;br /&gt;
$wgGroupPermissions[&#039;*&#039;][&#039;createaccount&#039;] = false;&lt;br /&gt;
&lt;br /&gt;
// Give read and write rights to all registered users.&lt;br /&gt;
$wgGroupPermissions[&#039;user&#039;][&#039;read&#039;] = true;&lt;br /&gt;
$wgGroupPermissions[&#039;user&#039;][&#039;edit&#039;] = true;&lt;br /&gt;
// Give a faux permission to &#039;moderator&#039; so it will show up as a role.&lt;br /&gt;
$wgGroupPermissions[&#039;moderator&#039;][&#039;read&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
// Allow moderators edit access to the Wiki namespace.&lt;br /&gt;
$wgNamespaceProtection[NS_PROJECT] = [ &#039;edit project&#039; ];&lt;br /&gt;
$wgGroupPermissions[&#039;sysop&#039;][&#039;edit project&#039;] = true;&lt;br /&gt;
$wgGroupPermissions[&#039;moderator&#039;][&#039;edit project&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configure extension settings ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
##### Admin Links&lt;br /&gt;
wfLoadExtension( &#039;AdminLinks&#039; );&lt;br /&gt;
&lt;br /&gt;
##### CodeMirror (optional&lt;br /&gt;
// Required for source editing with CodeMirror.&lt;br /&gt;
// wfLoadExtension( &#039;WikiEditor&#039; );&lt;br /&gt;
// wfLoadExtension( &#039;CodeMirror&#039; );&lt;br /&gt;
// $wgDefaultUserOptions[&#039;usecodemirror&#039;] = 1;&lt;br /&gt;
&lt;br /&gt;
##### CSPResources&lt;br /&gt;
wfLoadExtension( &#039;CSPResources&#039; );&lt;br /&gt;
$wgCSPShowSmwIndicator = false;&lt;br /&gt;
&lt;br /&gt;
##### DataTransfer&lt;br /&gt;
wfLoadExtension( &#039;DataTransfer&#039; );&lt;br /&gt;
&lt;br /&gt;
##### DeleteBatch&lt;br /&gt;
wfLoadExtension( &#039;DeleteBatch&#039; );&lt;br /&gt;
&lt;br /&gt;
##### DisplayTitle&lt;br /&gt;
wfLoadExtension( &#039;DisplayTitle&#039; );&lt;br /&gt;
// defaults to true&lt;br /&gt;
$wgAllowDisplayTitle = true;&lt;br /&gt;
// defaults to true&lt;br /&gt;
$wgRestrictDisplayTitle = false;&lt;br /&gt;
&lt;br /&gt;
##### Echo&lt;br /&gt;
wfLoadExtension( &#039;Echo&#039; );&lt;br /&gt;
$wgEchoWatchlistNotifications = true;&lt;br /&gt;
&lt;br /&gt;
$wgExtensionFunctions[] = static function () {&lt;br /&gt;
	global $wgEchoNotifications;&lt;br /&gt;
	unset( $wgEchoNotifications[&amp;quot;thank-you-edit&amp;quot;] );&lt;br /&gt;
&lt;br /&gt;
	global $wgEchoNotificationCategories;&lt;br /&gt;
	unset( $wgEchoNotificationCategories[&amp;quot;edit-user-talk&amp;quot;] );&lt;br /&gt;
	unset( $wgEchoNotificationCategories[&amp;quot;mention&amp;quot;] );&lt;br /&gt;
	unset( $wgEchoNotificationCategories[&amp;quot;emailuser&amp;quot;] );&lt;br /&gt;
	unset( $wgEchoNotificationCategories[&amp;quot;thank-you-edit&amp;quot;] );&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
##### FlexForm (formerly: WSForm)&lt;br /&gt;
wfLoadExtension( &#039;FlexForm&#039; );&lt;br /&gt;
$wgFlexFormConfig[&#039;sec_key&#039;] = getenv( &#039;GITLAB_ENVIRONMENT_URL&#039; ) . &amp;quot;salt&amp;quot;;&lt;br /&gt;
$wgFlexFormConfig[&#039;auto_save_btn_on&#039;] = &#039;Autosave on&#039;;&lt;br /&gt;
$wgFlexFormConfig[&#039;auto_save_btn_off&#039;] = &#039;Autosave off&#039;;&lt;br /&gt;
$wgFlexFormConfig[&#039;FlexFormDefaultTheme&#039;] = &amp;quot;plain&amp;quot;;&lt;br /&gt;
$wgFlexFormConfig[&#039;CreateAndEditForms&#039;][&#039;allowedGroups&#039;] = [&amp;quot;sysop&amp;quot;,&amp;quot;moderator&amp;quot;];&lt;br /&gt;
$wgFlexFormConfig[&#039;form_timeout_limit&#039;] = 7200;&lt;br /&gt;
&lt;br /&gt;
##### Lockdown&lt;br /&gt;
wfLoadExtension( &#039;Lockdown&#039; );&lt;br /&gt;
&lt;br /&gt;
##### MultimediaViewer&lt;br /&gt;
wfLoadExtension( &#039;MultimediaViewer&#039; );&lt;br /&gt;
$wgMediaViewerIsInBeta = true;&lt;br /&gt;
&lt;br /&gt;
##### MyVariables&lt;br /&gt;
wfLoadExtension( &#039;MyVariables&#039; );&lt;br /&gt;
&lt;br /&gt;
##### NumberFormat&lt;br /&gt;
require_once &amp;quot;$IP/extensions/NumberFormat/NumberFormat.php&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
##### ParserFunctions&lt;br /&gt;
wfLoadExtension( &#039;ParserFunctions&#039; );&lt;br /&gt;
$wgPFEnableStringFunctions = true;&lt;br /&gt;
$wgPFStringLengthLimit = 80000;&lt;br /&gt;
&lt;br /&gt;
##### Realnames&lt;br /&gt;
wfLoadExtension( &#039;Realnames&#039; );&lt;br /&gt;
$wgRealnamesLinkStyle = &amp;quot;replace&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
##### RegexFun&lt;br /&gt;
require_once $IP . &#039;/extensions/RegexFun/RegexFun.php&#039;;&lt;br /&gt;
&lt;br /&gt;
##### ReplaceText&lt;br /&gt;
wfLoadExtension( &#039;ReplaceText&#039; );&lt;br /&gt;
&lt;br /&gt;
##### SSO Stack&lt;br /&gt;
###		PluggableAuth&lt;br /&gt;
###		WSAzureAuth&lt;br /&gt;
###		WSOAuth&lt;br /&gt;
$wgGroupPermissions[&#039;*&#039;][&#039;autocreateaccount&#039;] = true;&lt;br /&gt;
wfLoadExtension( &#039;PluggableAuth&#039; );&lt;br /&gt;
wfLoadExtension( &#039;WSAzureAuth&#039; );&lt;br /&gt;
wfLoadExtension( &#039;WSOAuth&#039; );&lt;br /&gt;
$wgPluggableAuth_EnableLocalLogin = true;&lt;br /&gt;
$wgPluggableAuth_Config[&#039;WikibaseSolutionsAAD&#039;] = [&lt;br /&gt;
	&#039;plugin&#039; =&amp;gt; &#039;WSOAuth&#039;,&lt;br /&gt;
	&#039;data&#039; =&amp;gt; [&lt;br /&gt;
		&#039;type&#039; =&amp;gt; &#039;azure&#039;,&lt;br /&gt;
		&#039;clientId&#039; =&amp;gt; getenv( &#039;AAD_CLIENT_ID&#039; ),&lt;br /&gt;
		&#039;clientSecret&#039; =&amp;gt; getenv( &#039;AAD_CLIENT_SECRET&#039; ),&lt;br /&gt;
		&#039;redirectUri&#039; =&amp;gt; str_replace( &amp;quot;http&amp;quot;,&lt;br /&gt;
				&amp;quot;https&amp;quot;,&lt;br /&gt;
				getenv( &#039;GITLAB_ENVIRONMENT_URL&#039; ) ) . &#039;/Special:PluggableAuthLogin&#039;&lt;br /&gt;
	],&lt;br /&gt;
	&#039;buttonLabelMessage&#039; =&amp;gt; &#039;wikibase-solutions-oauth-button-label&#039;&lt;br /&gt;
];&lt;br /&gt;
$wgOAuthAzureTenant = getenv( &#039;AAD_TENANT_ID&#039; );&lt;br /&gt;
$wgOAuthAutoPopulateGroups = [ &#039;sysop&#039;,&lt;br /&gt;
	&#039;interface-admin&#039; ];&lt;br /&gt;
&lt;br /&gt;
##### SemanticMediaWiki&lt;br /&gt;
enableSemantics( &#039;wikibase.nl&#039; );&lt;br /&gt;
$smwgConfigFileDir = $IP . &#039;/cache&#039;;&lt;br /&gt;
# Default disabled (CSP Basis#13)&lt;br /&gt;
$smwgCheckForConstraintErrors = SMW_CONSTRAINT_ERR_CHECK_NONE;&lt;br /&gt;
const NS_WIDGET = 274;&lt;br /&gt;
const NS_WIDGET_TALK = 275;&lt;br /&gt;
$smwgNamespacesWithSemanticLinks[NS_TEMPLATE] = true;&lt;br /&gt;
$smwgNamespacesWithSemanticLinks[SMW_NS_PROPERTY] = true;&lt;br /&gt;
$smwgNamespacesWithSemanticLinks[SMW_NS_CONCEPT] = true;&lt;br /&gt;
$smwgNamespacesWithSemanticLinks[NS_WIDGET] = true;&lt;br /&gt;
$smwgNamespacesWithSemanticLinks[SMW_NS_PROPERTY_TALK] = false;&lt;br /&gt;
$smwgNamespacesWithSemanticLinks[SMW_NS_CONCEPT_TALK] = false;&lt;br /&gt;
$smwgNamespacesWithSemanticLinks[NS_WIDGET_TALK] = false;&lt;br /&gt;
$smwgPageSpecialProperties = [ &#039;_MDAT&#039;,&lt;br /&gt;
	&#039;_CDAT&#039; ];&lt;br /&gt;
&lt;br /&gt;
##### SemanticExtraSpecialProperties&lt;br /&gt;
wfLoadExtension( &#039;SemanticExtraSpecialProperties&#039; );&lt;br /&gt;
$sespgEnabledPropertyList = [ &#039;_EUSER&#039;,&lt;br /&gt;
	&#039;_CUSER&#039;,&lt;br /&gt;
	&#039;_PAGEID&#039;, ];&lt;br /&gt;
&lt;br /&gt;
##### SemanticResultFormats&lt;br /&gt;
wfLoadExtension( &#039;SemanticResultFormats&#039; );&lt;br /&gt;
&lt;br /&gt;
##### SyntaxHighlight_GeSHi&lt;br /&gt;
wfLoadExtension( &#039;SyntaxHighlight_GeSHi&#039; );&lt;br /&gt;
&lt;br /&gt;
##### TemplateData&lt;br /&gt;
wfLoadExtension( &#039;TemplateData&#039; );&lt;br /&gt;
&lt;br /&gt;
##### UrlGetParameters&lt;br /&gt;
require_once $IP . &#039;/extensions/UrlGetParameters/UrlGetParameters.php&#039;;&lt;br /&gt;
&lt;br /&gt;
##### UserFunctions&lt;br /&gt;
require_once &amp;quot;$IP/extensions/UserFunctions/UserFunctions.php&amp;quot;;&lt;br /&gt;
$wgUFAllowedNamespaces = array_fill( 0,&lt;br /&gt;
	4000,&lt;br /&gt;
	true );&lt;br /&gt;
$wgUFAllowedNamespaces += array_fill( 50000,&lt;br /&gt;
	5000,&lt;br /&gt;
	true );&lt;br /&gt;
&lt;br /&gt;
##### UserMerge&lt;br /&gt;
wfLoadExtension( &#039;UserMerge&#039; );&lt;br /&gt;
$wgGroupPermissions[&#039;bureaucrat&#039;][&#039;usermerge&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
##### Variables&lt;br /&gt;
wfLoadExtension( &#039;Variables&#039; );&lt;br /&gt;
&lt;br /&gt;
##### VisualEditor&lt;br /&gt;
wfLoadExtension( &#039;VisualEditor&#039; );&lt;br /&gt;
$wgTmpDirectory = $IP . &#039;/images/temp/&#039;;&lt;br /&gt;
$wgExtraSignatureNamespaces = [ NS_MAIN ];&lt;br /&gt;
$wgVisualEditorEnableWikitext = true;&lt;br /&gt;
$wgVisualEditorEnableDiffPage = true;&lt;br /&gt;
for ( $i = 50000; $i &amp;lt; 55000; $i += 2 ) {&lt;br /&gt;
	$wgContentNamespaces[] = $i;&lt;br /&gt;
}&lt;br /&gt;
$wgVisualEditorNamespaces = array_merge( $wgContentNamespaces,&lt;br /&gt;
	[ NS_USER ] );&lt;br /&gt;
&lt;br /&gt;
##### Widgets&lt;br /&gt;
wfLoadExtension( &#039;Widgets&#039; );&lt;br /&gt;
&lt;br /&gt;
##### WSArrays&lt;br /&gt;
wfLoadExtension( &#039;WSArrays&#039; );&lt;br /&gt;
$wfEnableResultPrinter = true;&lt;br /&gt;
&lt;br /&gt;
##### WSImageVersion&lt;br /&gt;
wfLoadExtension( &#039;WSImageVersion&#039; );&lt;br /&gt;
$wgWSImageVersionVersionDescriptions = [ [ &amp;quot;product&amp;quot; =&amp;gt; &amp;quot;CSP&amp;quot;,&lt;br /&gt;
	&amp;quot;file&amp;quot; =&amp;gt; $IP . &amp;quot;/.version&amp;quot; ], ];&lt;br /&gt;
&lt;br /&gt;
##### WSPageSync&lt;br /&gt;
wfLoadExtension( &#039;WSPageSync&#039; );&lt;br /&gt;
$wgWSPageSync[&#039;filePath&#039;] = $IP . &#039;/wsps&#039;;&lt;br /&gt;
&lt;br /&gt;
##### WikiSearch (and WikiSearchFront)&lt;br /&gt;
wfLoadExtension( &#039;WikiSearch&#039; );&lt;br /&gt;
wfLoadExtension( &#039;WikiSearchFront&#039; );&lt;br /&gt;
&lt;br /&gt;
##### WSSemanticParsedText&lt;br /&gt;
wfLoadExtension( &#039;WSSemanticParsedText&#039; );&lt;br /&gt;
$smwgElasticsearchConfig[&amp;quot;indexer&amp;quot;][&amp;quot;raw.text&amp;quot;] = true;&lt;br /&gt;
&lt;br /&gt;
##### WSSlots&lt;br /&gt;
# Note: We still define and append the &#039;ws-page-props&#039; slot, because it is used on some wikis.&lt;br /&gt;
wfLoadExtension( &#039;WSSlots&#039; );&lt;br /&gt;
$wgWSSlotsDefaultSlotRoleLayout = [ &amp;quot;display&amp;quot; =&amp;gt; &amp;quot;none&amp;quot;,&lt;br /&gt;
	&amp;quot;region&amp;quot; =&amp;gt; &amp;quot;center&amp;quot;,&lt;br /&gt;
	&amp;quot;placement&amp;quot; =&amp;gt; &amp;quot;append&amp;quot;, ];&lt;br /&gt;
$wgWSSlotsDefaultContentModel = &amp;quot;wikitext&amp;quot;;&lt;br /&gt;
$wgWSSlotsDefinedSlots = [ &amp;quot;ws-base-props&amp;quot;, &amp;quot;ws-class-props&amp;quot; ];&lt;br /&gt;
$wgWSSlotsSemanticSlots = [ &amp;quot;ws-base-props&amp;quot;, &amp;quot;ws-class-props&amp;quot; ];&lt;br /&gt;
$wgWSSlotsDoPurge = true;&lt;br /&gt;
&lt;br /&gt;
##### WSSpaces&lt;br /&gt;
wfLoadExtension( &#039;WSSpaces&#039; );&lt;br /&gt;
for ( $i = 50000; $i &amp;lt; 55000; $i++ ) {&lt;br /&gt;
	$smwgNamespacesWithSemanticLinks[$i] = true;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
##### WSTools&lt;br /&gt;
wfLoadExtension( &#039;WSTools&#039; );&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configure skin settings ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
wfLoadExtension( &#039;Bootstrap&#039; );&lt;br /&gt;
wfLoadSkin( &#039;chameleon&#039; );&lt;br /&gt;
$wgDefaultSkin = &amp;quot;chameleon&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Define the location of the css and the layout xml&lt;br /&gt;
$egChameleonLayoutFile = &amp;quot;$IP/skin/wikibaseLayout.xml&amp;quot;;&lt;br /&gt;
$egChameleonExternalStyleModules = glob( $IP . &#039;/skin/scss/[^_]*.scss&#039; );&lt;br /&gt;
$wgAllowSiteCSSOnRestrictedPages = true;&lt;br /&gt;
&lt;br /&gt;
// Replace &amp;quot;Powered by SMW&amp;quot; by &amp;quot;Powered by Wikibase&amp;quot;&lt;br /&gt;
$wgFooterIcons = [ &amp;quot;copyright&amp;quot; =&amp;gt; [ &amp;quot;copyright&amp;quot; =&amp;gt; [], ],&lt;br /&gt;
	&amp;quot;poweredby&amp;quot; =&amp;gt; [ &amp;quot;wikibase&amp;quot; =&amp;gt; [ &amp;quot;src&amp;quot; =&amp;gt; &amp;quot;/skin/PoweredByWikibase.png&amp;quot;,&lt;br /&gt;
		&amp;quot;url&amp;quot; =&amp;gt; &amp;quot;https://www.wikibase-solutions.com/&amp;quot;,&lt;br /&gt;
		&amp;quot;alt&amp;quot; =&amp;gt; &amp;quot;Powered by Wikibase&amp;quot;, ], ], ];&lt;br /&gt;
$wgRightsIcon = null;&lt;br /&gt;
&lt;br /&gt;
// Logo and favicon&lt;br /&gt;
$wgFavicon = &amp;quot;/skin/favicon.png&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Common message files&lt;br /&gt;
$wgMessagesDirs[&#039;WikibaseSolutions&#039;] = __DIR__ . &#039;/../skin/i18n&#039;;&lt;br /&gt;
&lt;br /&gt;
// Style settings&lt;br /&gt;
// If you want to use container-max-widths, take this step or it won&#039;t respond:&lt;br /&gt;
// -&amp;gt; Go to skin/wikibaseLayout.xml and from &amp;lt;grid&amp;gt;, remove: &#039;class=&amp;quot;flex-fill&amp;quot; mode=&amp;quot;fluid&amp;quot;&#039;&lt;br /&gt;
// Add this to the following array: &#039;container-max-widths&#039;	=&amp;gt; &#039;(sm: 100%, md: 100%, lg: 70vw, xl:&lt;br /&gt;
// 70vw)&#039;&lt;br /&gt;
$egChameleonExternalStyleVariables = [ &#039;primary&#039; =&amp;gt; &#039;#0576a8&#039; ];&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Test</name></author>
	</entry>
	<entry>
		<id>https://open-csp.org/index.php?title=QandA/how-can-i-install-open-csp&amp;diff=1800</id>
		<title>QandA/how-can-i-install-open-csp</title>
		<link rel="alternate" type="text/html" href="https://open-csp.org/index.php?title=QandA/how-can-i-install-open-csp&amp;diff=1800"/>
		<updated>2022-10-24T15:02:23Z</updated>

		<summary type="html">&lt;p&gt;Test: User:Test&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;At this moment there is one way to install Open CSP yourself.&lt;br /&gt;
&lt;br /&gt;
== Install MediaWiki ==&lt;br /&gt;
The first step is to [[Mediawikiwiki:Manual:Installing MediaWiki|install MediaWiki]]. If you have done this, go to the next step.&lt;br /&gt;
&lt;br /&gt;
== Install Elasticsearch ==&lt;br /&gt;
In Open CSP Elasticsearch is used as [https://www.semantic-mediawiki.org/wiki/Help:ElasticStore Elasticstore for Semantic MediaWiki]. Having the data in Elasticsearch is a prerequisite for the use of [[Mediawikiwiki:Extension:WikiSearch|WikiSearch]].&lt;br /&gt;
&lt;br /&gt;
How to install Elasticsearch is described here: https://www.mediawiki.org/wiki/Extension:CirrusSearch#Elasticsearch.&lt;br /&gt;
&lt;br /&gt;
== Download the Open CSP extensions ==&lt;br /&gt;
Go to [[Extensions-in-open-csp|Extensions in Open CSP]] and download all the extensions that are not included with MediaWiki.&lt;br /&gt;
&lt;br /&gt;
== Configuration of settings ==&lt;br /&gt;
Our approach is to have LocalSettings.php as it is and put settings in different files. This promotes clarity and upgradability.&lt;br /&gt;
&lt;br /&gt;
=== Change LocalSettings.php ===&lt;br /&gt;
Add this to the end of LocalSettings.php and create a &#039;settings&#039; folder in the public_html with these files.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
require_once( &#039;settings/ServerSettings.php&#039; );&lt;br /&gt;
require_once( &#039;settings/AdditionalSettings.php&#039; );&lt;br /&gt;
require_once( &#039;settings/ExtensionSettings.php&#039; );&lt;br /&gt;
require_once( &#039;settings/SkinSettings.php&#039; );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configure server settings ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// Project namespace (choose your project namespace)&lt;br /&gt;
// $wgMetaNamespace = &amp;quot;Wiki&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Short URL (optional)&lt;br /&gt;
// $wgArticlePath = &amp;quot;/$1&amp;quot;;&lt;br /&gt;
// $wgUsePathInfo = true;&lt;br /&gt;
&lt;br /&gt;
// Elasticsearch (configure according your ES installation)&lt;br /&gt;
$GLOBALS[&#039;smwgElasticsearchEndpoints&#039;] = [ &#039;elasticsearch-master.helm.svc.cluster.local:9200&#039;, ];&lt;br /&gt;
$GLOBALS[&#039;smwgElasticsearchConfig&#039;][&#039;settings&#039;][&#039;data&#039;] = [ &#039;number_of_shards&#039; =&amp;gt; 2,&lt;br /&gt;
	&#039;number_of_replicas&#039; =&amp;gt; 0 ];&lt;br /&gt;
&lt;br /&gt;
// Disable jobqueue on webrequest (optional, if set to 0 create cronjob to run runJobs.php)&lt;br /&gt;
// $wgJobRunRate = 0;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configure additional settings ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// Uncomment to see Exception Details&lt;br /&gt;
//	$wgShowExceptionDetails = true;&lt;br /&gt;
&lt;br /&gt;
// Please fill in your page name here:&lt;br /&gt;
$wgSitename = &amp;quot;CSP Wiki&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Allow uploads&lt;br /&gt;
$wgEnableUploads = true;&lt;br /&gt;
// Under evaluation: Might no longer be required for FlexForm&lt;br /&gt;
$wgAllowCopyUploads = true;&lt;br /&gt;
$wgCopyUploadsFromSpecialUpload = true;&lt;br /&gt;
&lt;br /&gt;
// Use img_auth.php for all files served. (optional)&lt;br /&gt;
// $wgUploadPath = &amp;quot;/img_auth.php&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Switch off cache (optional)&lt;br /&gt;
// $wgCachePages = false;&lt;br /&gt;
// $wgMainCacheType = CACHE_NONE;&lt;br /&gt;
// $wgCacheDirectory = false;&lt;br /&gt;
// $wgParserCacheType = CACHE_NONE;&lt;br /&gt;
&lt;br /&gt;
// Enable ElasticSearch as the standard backend&lt;br /&gt;
$smwgDefaultStore = &#039;SMWElasticStore&#039;;&lt;br /&gt;
&lt;br /&gt;
// Explicitly set wgRawHtml to false, since it is unsafe.&lt;br /&gt;
$wgRawHtml = false;&lt;br /&gt;
&lt;br /&gt;
// Below are settings for a private wiki that all users can edit&lt;br /&gt;
// No need to patrol pages&lt;br /&gt;
$wgUseRCPatrol = false;&lt;br /&gt;
$wgUseNPPatrol = false;&lt;br /&gt;
&lt;br /&gt;
// Private wiki&lt;br /&gt;
$wgGroupPermissions[&#039;*&#039;][&#039;read&#039;] = false;&lt;br /&gt;
$wgGroupPermissions[&#039;*&#039;][&#039;edit&#039;] = false;&lt;br /&gt;
$wgGroupPermissions[&#039;*&#039;][&#039;createaccount&#039;] = false;&lt;br /&gt;
&lt;br /&gt;
// Give read and write rights to all registered users.&lt;br /&gt;
$wgGroupPermissions[&#039;user&#039;][&#039;read&#039;] = true;&lt;br /&gt;
$wgGroupPermissions[&#039;user&#039;][&#039;edit&#039;] = true;&lt;br /&gt;
// Give a faux permission to &#039;moderator&#039; so it will show up as a role.&lt;br /&gt;
$wgGroupPermissions[&#039;moderator&#039;][&#039;read&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
// Allow moderators edit access to the Wiki namespace.&lt;br /&gt;
$wgNamespaceProtection[NS_PROJECT] = [ &#039;edit project&#039; ];&lt;br /&gt;
$wgGroupPermissions[&#039;sysop&#039;][&#039;edit project&#039;] = true;&lt;br /&gt;
$wgGroupPermissions[&#039;moderator&#039;][&#039;edit project&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configure extension settings ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
##### Admin Links&lt;br /&gt;
wfLoadExtension( &#039;AdminLinks&#039; );&lt;br /&gt;
&lt;br /&gt;
##### CodeMirror (optional&lt;br /&gt;
// Required for source editing with CodeMirror.&lt;br /&gt;
// wfLoadExtension( &#039;WikiEditor&#039; );&lt;br /&gt;
// wfLoadExtension( &#039;CodeMirror&#039; );&lt;br /&gt;
// $wgDefaultUserOptions[&#039;usecodemirror&#039;] = 1;&lt;br /&gt;
&lt;br /&gt;
##### CSPResources&lt;br /&gt;
wfLoadExtension( &#039;CSPResources&#039; );&lt;br /&gt;
$wgCSPShowSmwIndicator = false;&lt;br /&gt;
&lt;br /&gt;
##### DataTransfer&lt;br /&gt;
wfLoadExtension( &#039;DataTransfer&#039; );&lt;br /&gt;
&lt;br /&gt;
##### DeleteBatch&lt;br /&gt;
wfLoadExtension( &#039;DeleteBatch&#039; );&lt;br /&gt;
&lt;br /&gt;
##### DisplayTitle&lt;br /&gt;
wfLoadExtension( &#039;DisplayTitle&#039; );&lt;br /&gt;
// defaults to true&lt;br /&gt;
$wgAllowDisplayTitle = true;&lt;br /&gt;
// defaults to true&lt;br /&gt;
$wgRestrictDisplayTitle = false;&lt;br /&gt;
&lt;br /&gt;
##### Echo&lt;br /&gt;
wfLoadExtension( &#039;Echo&#039; );&lt;br /&gt;
$wgEchoWatchlistNotifications = true;&lt;br /&gt;
&lt;br /&gt;
$wgExtensionFunctions[] = static function () {&lt;br /&gt;
	global $wgEchoNotifications;&lt;br /&gt;
	unset( $wgEchoNotifications[&amp;quot;thank-you-edit&amp;quot;] );&lt;br /&gt;
&lt;br /&gt;
	global $wgEchoNotificationCategories;&lt;br /&gt;
	unset( $wgEchoNotificationCategories[&amp;quot;edit-user-talk&amp;quot;] );&lt;br /&gt;
	unset( $wgEchoNotificationCategories[&amp;quot;mention&amp;quot;] );&lt;br /&gt;
	unset( $wgEchoNotificationCategories[&amp;quot;emailuser&amp;quot;] );&lt;br /&gt;
	unset( $wgEchoNotificationCategories[&amp;quot;thank-you-edit&amp;quot;] );&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
##### FlexForm (formerly: WSForm)&lt;br /&gt;
wfLoadExtension( &#039;FlexForm&#039; );&lt;br /&gt;
$wgFlexFormConfig[&#039;sec_key&#039;] = getenv( &#039;GITLAB_ENVIRONMENT_URL&#039; ) . &amp;quot;salt&amp;quot;;&lt;br /&gt;
$wgFlexFormConfig[&#039;auto_save_btn_on&#039;] = &#039;Autosave on&#039;;&lt;br /&gt;
$wgFlexFormConfig[&#039;auto_save_btn_off&#039;] = &#039;Autosave off&#039;;&lt;br /&gt;
$wgFlexFormConfig[&#039;FlexFormDefaultTheme&#039;] = &amp;quot;plain&amp;quot;;&lt;br /&gt;
$wgFlexFormConfig[&#039;CreateAndEditForms&#039;][&#039;allowedGroups&#039;] = [&amp;quot;sysop&amp;quot;,&amp;quot;moderator&amp;quot;];&lt;br /&gt;
$wgFlexFormConfig[&#039;form_timeout_limit&#039;] = 7200;&lt;br /&gt;
&lt;br /&gt;
##### Lockdown&lt;br /&gt;
wfLoadExtension( &#039;Lockdown&#039; );&lt;br /&gt;
&lt;br /&gt;
##### MultimediaViewer&lt;br /&gt;
wfLoadExtension( &#039;MultimediaViewer&#039; );&lt;br /&gt;
$wgMediaViewerIsInBeta = true;&lt;br /&gt;
&lt;br /&gt;
##### MyVariables&lt;br /&gt;
wfLoadExtension( &#039;MyVariables&#039; );&lt;br /&gt;
&lt;br /&gt;
##### NumberFormat&lt;br /&gt;
require_once &amp;quot;$IP/extensions/NumberFormat/NumberFormat.php&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
##### ParserFunctions&lt;br /&gt;
wfLoadExtension( &#039;ParserFunctions&#039; );&lt;br /&gt;
$wgPFEnableStringFunctions = true;&lt;br /&gt;
$wgPFStringLengthLimit = 80000;&lt;br /&gt;
&lt;br /&gt;
##### Realnames&lt;br /&gt;
wfLoadExtension( &#039;Realnames&#039; );&lt;br /&gt;
$wgRealnamesLinkStyle = &amp;quot;replace&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
##### RegexFun&lt;br /&gt;
require_once $IP . &#039;/extensions/RegexFun/RegexFun.php&#039;;&lt;br /&gt;
&lt;br /&gt;
##### ReplaceText&lt;br /&gt;
wfLoadExtension( &#039;ReplaceText&#039; );&lt;br /&gt;
&lt;br /&gt;
##### SSO Stack&lt;br /&gt;
###		PluggableAuth&lt;br /&gt;
###		WSAzureAuth&lt;br /&gt;
###		WSOAuth&lt;br /&gt;
$wgGroupPermissions[&#039;*&#039;][&#039;autocreateaccount&#039;] = true;&lt;br /&gt;
wfLoadExtension( &#039;PluggableAuth&#039; );&lt;br /&gt;
wfLoadExtension( &#039;WSAzureAuth&#039; );&lt;br /&gt;
wfLoadExtension( &#039;WSOAuth&#039; );&lt;br /&gt;
$wgPluggableAuth_EnableLocalLogin = true;&lt;br /&gt;
$wgPluggableAuth_Config[&#039;WikibaseSolutionsAAD&#039;] = [&lt;br /&gt;
	&#039;plugin&#039; =&amp;gt; &#039;WSOAuth&#039;,&lt;br /&gt;
	&#039;data&#039; =&amp;gt; [&lt;br /&gt;
		&#039;type&#039; =&amp;gt; &#039;azure&#039;,&lt;br /&gt;
		&#039;clientId&#039; =&amp;gt; getenv( &#039;AAD_CLIENT_ID&#039; ),&lt;br /&gt;
		&#039;clientSecret&#039; =&amp;gt; getenv( &#039;AAD_CLIENT_SECRET&#039; ),&lt;br /&gt;
		&#039;redirectUri&#039; =&amp;gt; str_replace( &amp;quot;http&amp;quot;,&lt;br /&gt;
				&amp;quot;https&amp;quot;,&lt;br /&gt;
				getenv( &#039;GITLAB_ENVIRONMENT_URL&#039; ) ) . &#039;/Special:PluggableAuthLogin&#039;&lt;br /&gt;
	],&lt;br /&gt;
	&#039;buttonLabelMessage&#039; =&amp;gt; &#039;wikibase-solutions-oauth-button-label&#039;&lt;br /&gt;
];&lt;br /&gt;
$wgOAuthAzureTenant = getenv( &#039;AAD_TENANT_ID&#039; );&lt;br /&gt;
$wgOAuthAutoPopulateGroups = [ &#039;sysop&#039;,&lt;br /&gt;
	&#039;interface-admin&#039; ];&lt;br /&gt;
&lt;br /&gt;
##### SemanticMediaWiki&lt;br /&gt;
enableSemantics( &#039;wikibase.nl&#039; );&lt;br /&gt;
$smwgConfigFileDir = $IP . &#039;/cache&#039;;&lt;br /&gt;
# Default disabled (CSP Basis#13)&lt;br /&gt;
$smwgCheckForConstraintErrors = SMW_CONSTRAINT_ERR_CHECK_NONE;&lt;br /&gt;
const NS_WIDGET = 274;&lt;br /&gt;
const NS_WIDGET_TALK = 275;&lt;br /&gt;
$smwgNamespacesWithSemanticLinks[NS_TEMPLATE] = true;&lt;br /&gt;
$smwgNamespacesWithSemanticLinks[SMW_NS_PROPERTY] = true;&lt;br /&gt;
$smwgNamespacesWithSemanticLinks[SMW_NS_CONCEPT] = true;&lt;br /&gt;
$smwgNamespacesWithSemanticLinks[NS_WIDGET] = true;&lt;br /&gt;
$smwgNamespacesWithSemanticLinks[SMW_NS_PROPERTY_TALK] = false;&lt;br /&gt;
$smwgNamespacesWithSemanticLinks[SMW_NS_CONCEPT_TALK] = false;&lt;br /&gt;
$smwgNamespacesWithSemanticLinks[NS_WIDGET_TALK] = false;&lt;br /&gt;
$smwgPageSpecialProperties = [ &#039;_MDAT&#039;,&lt;br /&gt;
	&#039;_CDAT&#039; ];&lt;br /&gt;
&lt;br /&gt;
##### SemanticExtraSpecialProperties&lt;br /&gt;
wfLoadExtension( &#039;SemanticExtraSpecialProperties&#039; );&lt;br /&gt;
$sespgEnabledPropertyList = [ &#039;_EUSER&#039;,&lt;br /&gt;
	&#039;_CUSER&#039;,&lt;br /&gt;
	&#039;_PAGEID&#039;, ];&lt;br /&gt;
&lt;br /&gt;
##### SemanticResultFormats&lt;br /&gt;
wfLoadExtension( &#039;SemanticResultFormats&#039; );&lt;br /&gt;
&lt;br /&gt;
##### SyntaxHighlight_GeSHi&lt;br /&gt;
wfLoadExtension( &#039;SyntaxHighlight_GeSHi&#039; );&lt;br /&gt;
&lt;br /&gt;
##### TemplateData&lt;br /&gt;
wfLoadExtension( &#039;TemplateData&#039; );&lt;br /&gt;
&lt;br /&gt;
##### UrlGetParameters&lt;br /&gt;
require_once $IP . &#039;/extensions/UrlGetParameters/UrlGetParameters.php&#039;;&lt;br /&gt;
&lt;br /&gt;
##### UserFunctions&lt;br /&gt;
require_once &amp;quot;$IP/extensions/UserFunctions/UserFunctions.php&amp;quot;;&lt;br /&gt;
$wgUFAllowedNamespaces = array_fill( 0,&lt;br /&gt;
	4000,&lt;br /&gt;
	true );&lt;br /&gt;
$wgUFAllowedNamespaces += array_fill( 50000,&lt;br /&gt;
	5000,&lt;br /&gt;
	true );&lt;br /&gt;
&lt;br /&gt;
##### UserMerge&lt;br /&gt;
wfLoadExtension( &#039;UserMerge&#039; );&lt;br /&gt;
$wgGroupPermissions[&#039;bureaucrat&#039;][&#039;usermerge&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
##### Variables&lt;br /&gt;
wfLoadExtension( &#039;Variables&#039; );&lt;br /&gt;
&lt;br /&gt;
##### VisualEditor&lt;br /&gt;
wfLoadExtension( &#039;VisualEditor&#039; );&lt;br /&gt;
$wgTmpDirectory = $IP . &#039;/images/temp/&#039;;&lt;br /&gt;
$wgExtraSignatureNamespaces = [ NS_MAIN ];&lt;br /&gt;
$wgVisualEditorEnableWikitext = true;&lt;br /&gt;
$wgVisualEditorEnableDiffPage = true;&lt;br /&gt;
for ( $i = 50000; $i &amp;lt; 55000; $i += 2 ) {&lt;br /&gt;
	$wgContentNamespaces[] = $i;&lt;br /&gt;
}&lt;br /&gt;
$wgVisualEditorNamespaces = array_merge( $wgContentNamespaces,&lt;br /&gt;
	[ NS_USER ] );&lt;br /&gt;
&lt;br /&gt;
##### Widgets&lt;br /&gt;
wfLoadExtension( &#039;Widgets&#039; );&lt;br /&gt;
&lt;br /&gt;
##### WSArrays&lt;br /&gt;
wfLoadExtension( &#039;WSArrays&#039; );&lt;br /&gt;
$wfEnableResultPrinter = true;&lt;br /&gt;
&lt;br /&gt;
##### WSImageVersion&lt;br /&gt;
wfLoadExtension( &#039;WSImageVersion&#039; );&lt;br /&gt;
$wgWSImageVersionVersionDescriptions = [ [ &amp;quot;product&amp;quot; =&amp;gt; &amp;quot;CSP&amp;quot;,&lt;br /&gt;
	&amp;quot;file&amp;quot; =&amp;gt; $IP . &amp;quot;/.version&amp;quot; ], ];&lt;br /&gt;
&lt;br /&gt;
##### WSPageSync&lt;br /&gt;
wfLoadExtension( &#039;WSPageSync&#039; );&lt;br /&gt;
$wgWSPageSync[&#039;filePath&#039;] = $IP . &#039;/wsps&#039;;&lt;br /&gt;
&lt;br /&gt;
##### WikiSearch (and WikiSearchFront)&lt;br /&gt;
wfLoadExtension( &#039;WikiSearch&#039; );&lt;br /&gt;
wfLoadExtension( &#039;WikiSearchFront&#039; );&lt;br /&gt;
&lt;br /&gt;
##### WSSemanticParsedText&lt;br /&gt;
wfLoadExtension( &#039;WSSemanticParsedText&#039; );&lt;br /&gt;
$smwgElasticsearchConfig[&amp;quot;indexer&amp;quot;][&amp;quot;raw.text&amp;quot;] = true;&lt;br /&gt;
&lt;br /&gt;
##### WSSlots&lt;br /&gt;
# Note: We still define and append the &#039;ws-page-props&#039; slot, because it is used on some wikis.&lt;br /&gt;
wfLoadExtension( &#039;WSSlots&#039; );&lt;br /&gt;
$wgWSSlotsDefaultSlotRoleLayout = [ &amp;quot;display&amp;quot; =&amp;gt; &amp;quot;none&amp;quot;,&lt;br /&gt;
	&amp;quot;region&amp;quot; =&amp;gt; &amp;quot;center&amp;quot;,&lt;br /&gt;
	&amp;quot;placement&amp;quot; =&amp;gt; &amp;quot;append&amp;quot;, ];&lt;br /&gt;
$wgWSSlotsDefaultContentModel = &amp;quot;wikitext&amp;quot;;&lt;br /&gt;
$wgWSSlotsDefinedSlots = [ &amp;quot;ws-base-props&amp;quot;, &amp;quot;ws-class-props&amp;quot; ];&lt;br /&gt;
$wgWSSlotsSemanticSlots = [ &amp;quot;ws-base-props&amp;quot;, &amp;quot;ws-class-props&amp;quot; ];&lt;br /&gt;
$wgWSSlotsDoPurge = true;&lt;br /&gt;
&lt;br /&gt;
##### WSSpaces&lt;br /&gt;
wfLoadExtension( &#039;WSSpaces&#039; );&lt;br /&gt;
for ( $i = 50000; $i &amp;lt; 55000; $i++ ) {&lt;br /&gt;
	$smwgNamespacesWithSemanticLinks[$i] = true;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
##### WSTools&lt;br /&gt;
wfLoadExtension( &#039;WSTools&#039; );&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configure skin settings ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
wfLoadExtension( &#039;Bootstrap&#039; );&lt;br /&gt;
wfLoadSkin( &#039;chameleon&#039; );&lt;br /&gt;
$wgDefaultSkin = &amp;quot;chameleon&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Define the location of the css and the layout xml&lt;br /&gt;
$egChameleonLayoutFile = &amp;quot;$IP/skin/wikibaseLayout.xml&amp;quot;;&lt;br /&gt;
$egChameleonExternalStyleModules = glob( $IP . &#039;/skin/scss/[^_]*.scss&#039; );&lt;br /&gt;
$wgAllowSiteCSSOnRestrictedPages = true;&lt;br /&gt;
&lt;br /&gt;
// Replace &amp;quot;Powered by SMW&amp;quot; by &amp;quot;Powered by Wikibase&amp;quot;&lt;br /&gt;
$wgFooterIcons = [ &amp;quot;copyright&amp;quot; =&amp;gt; [ &amp;quot;copyright&amp;quot; =&amp;gt; [], ],&lt;br /&gt;
	&amp;quot;poweredby&amp;quot; =&amp;gt; [ &amp;quot;wikibase&amp;quot; =&amp;gt; [ &amp;quot;src&amp;quot; =&amp;gt; &amp;quot;/skin/PoweredByWikibase.png&amp;quot;,&lt;br /&gt;
		&amp;quot;url&amp;quot; =&amp;gt; &amp;quot;https://www.wikibase-solutions.com/&amp;quot;,&lt;br /&gt;
		&amp;quot;alt&amp;quot; =&amp;gt; &amp;quot;Powered by Wikibase&amp;quot;, ], ], ];&lt;br /&gt;
$wgRightsIcon = null;&lt;br /&gt;
&lt;br /&gt;
// Logo and favicon&lt;br /&gt;
$wgFavicon = &amp;quot;/skin/favicon.png&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Common message files&lt;br /&gt;
$wgMessagesDirs[&#039;WikibaseSolutions&#039;] = __DIR__ . &#039;/../skin/i18n&#039;;&lt;br /&gt;
&lt;br /&gt;
// Style settings&lt;br /&gt;
// If you want to use container-max-widths, take this step or it won&#039;t respond:&lt;br /&gt;
// -&amp;gt; Go to skin/wikibaseLayout.xml and from &amp;lt;grid&amp;gt;, remove: &#039;class=&amp;quot;flex-fill&amp;quot; mode=&amp;quot;fluid&amp;quot;&#039;&lt;br /&gt;
// Add this to the following array: &#039;container-max-widths&#039;	=&amp;gt; &#039;(sm: 100%, md: 100%, lg: 70vw, xl:&lt;br /&gt;
// 70vw)&#039;&lt;br /&gt;
$egChameleonExternalStyleVariables = [ &#039;primary&#039; =&amp;gt; &#039;#0576a8&#039; ];&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Test</name></author>
	</entry>
</feed>