$xs->elementStart('span', 'vcard');
$xs->elementStart('a', $attrs);
- $xs->element('span', 'fn nickname', $mention['text']);
+ $xs->element('span', 'fn nickname mention', $mention['text']);
$xs->elementEnd('a');
$xs->elementEnd('span');
$xs = new XMLStringer();
$xs->elementStart('span', 'vcard');
$xs->elementStart('a', $attrs);
- $xs->element('span', 'fn nickname', $nickname);
+ $xs->element('span', 'fn nickname group', $nickname);
$xs->elementEnd('a');
$xs->elementEnd('span');
return $xs->getString();
function common_local_url($action, $args=null, $params=null, $fragment=null, $addSession=true)
{
- $r = Router::get();
- $path = $r->build($action, $args, $params, $fragment);
+ if (Event::handle('StartLocalURL', array(&$action, &$params, &$fragment, &$addSession, &$url))) {
+ $r = Router::get();
+ $path = $r->build($action, $args, $params, $fragment);
- $ssl = common_is_sensitive($action);
+ $ssl = common_is_sensitive($action);
- if (common_config('site','fancy')) {
- $url = common_path(mb_substr($path, 1), $ssl, $addSession);
- } else {
- if (mb_strpos($path, '/index.php') === 0) {
+ if (common_config('site','fancy')) {
$url = common_path(mb_substr($path, 1), $ssl, $addSession);
} else {
- $url = common_path('index.php'.$path, $ssl, $addSession);
+ if (mb_strpos($path, '/index.php') === 0) {
+ $url = common_path(mb_substr($path, 1), $ssl, $addSession);
+ } else {
+ $url = common_path('index.php'.$path, $ssl, $addSession);
+ }
}
+ Event::handle('EndLocalURL', array(&$action, &$params, &$fragment, &$addSession, &$url));
}
return $url;
}
// convert markup to HTML
-function common_markup_to_html($c)
+function common_markup_to_html($c, $args=null)
{
+ if (is_null($args)) {
+ $args = array();
+ }
+
+ // XXX: not very efficient
+
+ foreach ($args as $name => $value) {
+ $c = preg_replace('/%%arg.'.$name.'%%/', $value, $c);
+ }
+
+ $c = preg_replace('/%%user.(\w+)%%/e', "common_user_property('\\1')", $c);
$c = preg_replace('/%%action.(\w+)%%/e', "common_local_url('\\1')", $c);
$c = preg_replace('/%%doc.(\w+)%%/e', "common_local_url('doc', array('title'=>'\\1'))", $c);
$c = preg_replace('/%%(\w+).(\w+)%%/e', 'common_config(\'\\1\', \'\\2\')', $c);
return Markdown($c);
}
+function common_user_property($property)
+{
+ $profile = Profile::current();
+
+ if (empty($profile)) {
+ return null;
+ }
+
+ switch ($property) {
+ case 'profileurl':
+ case 'nickname':
+ case 'fullname':
+ case 'location':
+ case 'bio':
+ return $profile->$property;
+ break;
+ case 'avatar':
+ return $profile->getAvatar(AVATAR_STREAM_SIZE);
+ break;
+ case 'bestname':
+ return $profile->getBestName();
+ break;
+ default:
+ return null;
+ }
+}
+
function common_profile_uri($profile)
{
if (!$profile) {
$parts = parse_url($url);
- # If any of these parts exist, this won't work
+ // If any of these parts exist, this won't work
foreach ($bad as $badpart) {
if (array_key_exists($badpart, $parts)) {
}
}
- # We just have host and/or path
+ // We just have host and/or path
- # If it's just a host...
+ // If it's just a host...
if (array_key_exists('host', $parts) &&
(!array_key_exists('path', $parts) || strcmp($parts['path'], '/') == 0))
{
$hostparts = explode('.', $parts['host']);
- # Try to catch common idiom of nickname.service.tld
+ // Try to catch common idiom of nickname.service.tld
if ((count($hostparts) > 2) &&
(strlen($hostparts[count($hostparts) - 2]) > 3) && # try to skip .co.uk, .com.au
{
return common_nicknamize($hostparts[0]);
} else {
- # Do the whole hostname
+ // Do the whole hostname
return common_nicknamize($parts['host']);
}
} else {
if (array_key_exists('path', $parts)) {
- # Strip starting, ending slashes
+ // Strip starting, ending slashes
$path = preg_replace('@/$@', '', $parts['path']);
$path = preg_replace('@^/@', '', $path);
$path = basename($path);