diff options
Diffstat (limited to 'engine')
| -rw-r--r-- | engine/lib/elgglib.php | 11 | ||||
| -rw-r--r-- | engine/lib/output.php | 57 | ||||
| -rw-r--r-- | engine/lib/social.php | 119 | ||||
| -rw-r--r-- | engine/start.php | 2 | 
4 files changed, 69 insertions, 120 deletions
| diff --git a/engine/lib/elgglib.php b/engine/lib/elgglib.php index 5b224e0be..675c0143e 100644 --- a/engine/lib/elgglib.php +++ b/engine/lib/elgglib.php @@ -2265,6 +2265,17 @@ function elgg_init() {  	// Trigger the shutdown:system event upon PHP shutdown.  	register_shutdown_function('__elgg_shutdown_hook'); + +	// Sets a blacklist of words in the current language. +	// This is a comma separated list in word:blacklist. +	// @todo possibly deprecate +	$CONFIG->wordblacklist = array(); +	$list = explode(',', elgg_echo('word:blacklist')); +	if ($list) { +		foreach ($list as $l) { +			$CONFIG->wordblacklist[] = trim($l); +		} +	}  }  /** diff --git a/engine/lib/output.php b/engine/lib/output.php index 640ada1cf..28e520e56 100644 --- a/engine/lib/output.php +++ b/engine/lib/output.php @@ -263,3 +263,60 @@ function elgg_strip_tags($string) {  	return $string;  } + +/** +  * Filters a string into an array of significant words +  * +  * @deprecated 1.8 +  * @param string $string +  * @return array +  */ +function filter_string($string) { +	elgg_deprecated_notice('filter_string() was deprecated!', 1.8); + +	// Convert it to lower and trim +	$string = strtolower($string); +	$string = trim($string); + +	// Remove links and email addresses +	// match protocol://address/path/file.extension?some=variable&another=asf% +	$string = preg_replace("/\s([a-zA-Z]+:\/\/[a-z][a-z0-9\_\.\-]*[a-z]{2,6}[a-zA-Z0-9\/\*\-\?\&\%\=]*)([\s|\.|\,])/iu"," ", $string); +	// match www.something.domain/path/file.extension?some=variable&another=asf% +	$string = preg_replace("/\s(www\.[a-z][a-z0-9\_\.\-]*[a-z]{2,6}[a-zA-Z0-9\/\*\-\?\&\%\=]*)([\s|\.|\,])/iu"," ", $string); +	// match name@address +	$string = preg_replace("/\s([a-zA-Z][a-zA-Z0-9\_\.\-]*[a-zA-Z]*\@[a-zA-Z][a-zA-Z0-9\_\.\-]*[a-zA-Z]{2,6})([\s|\.|\,])/iu"," ", $string); + +	// Sanitise the string; remove unwanted characters +	$string = preg_replace('/\W/ui', ' ', $string); + +	// Explode it into an array +	$terms = explode(' ',$string); + +	// Remove any blacklist terms +	//$terms = array_filter($terms, 'remove_blacklist'); + +	return $terms; +} + +/** + * Returns true if the word in $input is considered significant + * + * @deprecated 1.8 + * @param string $input + * @return true|false + */ +function remove_blacklist($input) { +	elgg_deprecated_notice('remove_blacklist() was deprecated!', 1.8); + +	global $CONFIG; + +	if (!is_array($CONFIG->wordblacklist)) { +		return $input; +	} + +	if (strlen($input) < 3 || in_array($input,$CONFIG->wordblacklist)) { +		return false; +	} + +	return true; +}
\ No newline at end of file diff --git a/engine/lib/social.php b/engine/lib/social.php deleted file mode 100644 index 381c7ea4f..000000000 --- a/engine/lib/social.php +++ /dev/null @@ -1,119 +0,0 @@ -<?php -/** - * Elgg Social - * Functions and objects which provide powerful social aspects within Elgg - * - * @package Elgg - * @subpackage Core - * @author Curverider - * @link http://elgg.org/ - -/** -  * Filters a string into an array of significant words -  * -  * @param string $string -  * @return array -  */ -function filter_string($string) { -	// Convert it to lower and trim -	$string = strtolower($string); -	$string = trim($string); - -	// Remove links and email addresses -	// match protocol://address/path/file.extension?some=variable&another=asf% -	$string = preg_replace("/\s([a-zA-Z]+:\/\/[a-z][a-z0-9\_\.\-]*[a-z]{2,6}[a-zA-Z0-9\/\*\-\?\&\%\=]*)([\s|\.|\,])/iu"," ", $string); -	// match www.something.domain/path/file.extension?some=variable&another=asf% -	$string = preg_replace("/\s(www\.[a-z][a-z0-9\_\.\-]*[a-z]{2,6}[a-zA-Z0-9\/\*\-\?\&\%\=]*)([\s|\.|\,])/iu"," ", $string); -	// match name@address -	$string = preg_replace("/\s([a-zA-Z][a-zA-Z0-9\_\.\-]*[a-zA-Z]*\@[a-zA-Z][a-zA-Z0-9\_\.\-]*[a-zA-Z]{2,6})([\s|\.|\,])/iu"," ", $string); - -	// Sanitise the string; remove unwanted characters -	$string = preg_replace('/\W/ui', ' ', $string); - -	// Explode it into an array -	$terms = explode(' ',$string); - -	// Remove any blacklist terms -	//$terms = array_filter($terms, 'remove_blacklist'); - -	return $terms; -} - -/** - * Returns true if the word in $input is considered significant - * - * @param string $input - * @return true|false - */ -function remove_blacklist($input) { -	global $CONFIG; - -	if (!is_array($CONFIG->wordblacklist)) { -		return $input; -	} - -	if (strlen($input) < 3 || in_array($input,$CONFIG->wordblacklist)) { -		return false; -	} - -	return true; -} - - -/** - * Initialise. - * - * Sets a blacklist of words in the current language. This is a comma separated list in word:blacklist. - */ -function social_init() { -	global $CONFIG; - -	$CONFIG->wordblacklist = array(); - -	$list = explode(',', elgg_echo('word:blacklist')); -	if ($list) { -		foreach ($list as $l) { -			$CONFIG->wordblacklist[] = trim($l); -		} -	} else { -		// Fallback - shouldn't happen -		$CONFIG->wordblacklist = array( -			'and', -			'the', -			'then', -			'but', -			'she', -			'his', -			'her', -			'him', -			'one', -			'not', -			'also', -			'about', -			'now', -			'hence', -			'however', -			'still', -			'likewise', -			'otherwise', -			'therefore', -			'conversely', -			'rather', -			'consequently', -			'furthermore', -			'nevertheless', -			'instead', -			'meanwhile', -			'accordingly', -			'this', -			'seems', -			'what', -			'whom', -			'whose', -			'whoever', -			'whomever', -		); -	} -} - -register_elgg_event_handler("init","system","social_init");
\ No newline at end of file diff --git a/engine/start.php b/engine/start.php index 18be0181d..4bc1abd45 100644 --- a/engine/start.php +++ b/engine/start.php @@ -98,7 +98,7 @@ $lib_files = array(  	'memcache.php', 'metadata.php', 'metastrings.php', 'notification.php',  	'objects.php', 'opendd.php', 'pagehandler.php',  	'pageowner.php', 'pam.php', 'plugins.php', 'query.php', -	'relationships.php', 'river.php', 'sites.php', 'social.php', +	'relationships.php', 'river.php', 'sites.php',  	'statistics.php', 'system_log.php', 'tags.php', 'usersettings.php',  	'users.php', 'version.php', 'widgets.php', 'xml.php', 'xml-rpc.php'  ); | 
