Well, I’ll show in here, to receive any comment first.
<?php
function stripAlias($alias) {
// let add-ons overwrite the default behavior
$results = $this->invokeEvent('OnStripAlias', array ('alias'=>$alias));
if (!empty($results)) {
// if multiple plugins are registered, only the last one is used
return end($results);
} else {
// default behavior: strip invalid characters and replace spaces with dashes.
$alias = strip_tags($alias); // strip HTML
$alias = preg_replace('/[^\.A-Za-z0-9 _-]/', '', $alias); // strip non-alphanumeric characters
$alias = preg_replace('/\s+/', '-', $alias); // convert white-space to dash
$alias = preg_replace('/-+/', '-', $alias); // convert multiple dashes to one
$alias = trim($alias, '-'); // trim excess
return $alias;
}
}
<?php
function stripAlias($alias, $allowedChars = array()) {
// let add-ons overwrite the default behavior
$results = $this->invokeEvent('OnStripAlias', array ('alias'=>$alias));
if (!empty($results)) {
// if multiple plugins are registered, only the last one is used
return end($results);
} else {
$allowedChar = (!empty($allowedChars) ? '|\\' . @implode('\\', $allowedChars): '');
// default behavior: strip invalid characters and replace spaces with dashes.
$alias = strip_tags($alias); // strip HTML
$alias = preg_replace('/[^\.A-Za-z0-9 _-'.$allowedChar.']/', '', $alias); // strip non-alphanumeric characters, except any allowed characters
$alias = preg_replace('/\s+/', '-', $alias); // convert white-space to dash
$alias = preg_replace('/-+/', '-', $alias); // convert multiple dashes to one
$alias = trim($alias, '-'); // trim excess
return $alias;
}
}
eg:
<?php
$modx->stripAlias($alias, array('/', '#'));
Please comment...