$xs = new XMLStringer(false);
$attrs = array('href' => $mention['url'],
- 'class' => 'url');
+ 'class' => 'h-card '.$mention['type']);
if (!empty($mention['title'])) {
$attrs['title'] = $mention['title'];
}
- $xs->elementStart('span', 'vcard');
- $xs->elementStart('a', $attrs);
- $xs->element('span', 'fn nickname '.$mention['type'], $mention['text']);
- $xs->elementEnd('a');
- $xs->elementEnd('span');
+ $xs->element('a', $attrs, $mention['text']);
$output = $xs->getString();
return substr($matches[0],0,$left) . $result . substr($matches[0],$right);
}
-if (version_compare(PHP_VERSION, '5.3.0', 'ge')) {
- // lambda implementation in a separate file; PHP 5.2 won't parse it.
- require_once INSTALLDIR . "/lib/curry.php";
-} else {
- function curry($fn) {
- $args = func_get_args();
- array_shift($args);
- $id = uniqid('_partial');
- $GLOBALS[$id] = array($fn, $args);
- return create_function('',
- '$args = func_get_args(); '.
- 'return call_user_func_array('.
- '$GLOBALS["'.$id.'"][0],'.
- 'array_merge('.
- '$args,'.
- '$GLOBALS["'.$id.'"][1]));');
- }
-}
+require_once INSTALLDIR . "/lib/curry.php";
function common_linkify($url) {
// It comes in special'd, so we unspecial it before passing to the stringifying
$f = File::getKV('url', $longurl);
- if (empty($f)) {
+ if (!$f instanceof File) {
if (common_config('attachments', 'process_links')) {
// XXX: this writes to the database. :<
- $f = File::processNew($longurl);
+ try {
+ $f = File::processNew($longurl);
+ } catch (ServerException $e) {
+ $f = null;
+ }
}
}
- if (!empty($f)) {
- if ($f->getEnclosure()) {
+ if ($f instanceof File) {
+ try {
+ $enclosure = $f->getEnclosure();
$is_attachment = true;
$attachment_id = $f->id;
$thumb = File_thumbnail::getKV('file_id', $f->id);
- if (!empty($thumb)) {
- $has_thumb = true;
- }
+ $has_thumb = ($thumb instanceof File_thumbnail);
+ } catch (ServerException $e) {
+ // There was not enough metadata available
}
}
$dateStr = date('d F Y H:i:s', strtotime($dt));
$d = new DateTime($dateStr, $_utc);
$d->setTimezone($_siteTz);
- return $d->format(DATE_RFC850);
+ // TRANS: Human-readable full date-time specification (formatting on http://php.net/date)
+ return $d->format(_('l, d-M-Y H:i:s T'));
}
function common_date_w3dtf($dt)
if (Event::handle('StartShortenUrl',
array($long_url, $shortenerName, &$shortenedUrl))) {
if ($shortenerName == 'internal') {
- $f = File::processNew($long_url);
- if (empty($f)) {
- return $long_url;
- } else {
- $shortenedUrl = common_local_url('redirecturl',
- array('id' => $f->id));
+ try {
+ $f = File::processNew($long_url);
+ $shortenedUrl = common_local_url('redirecturl', array('id' => $f->id));
if ((mb_strlen($shortenedUrl) < mb_strlen($long_url)) || $force) {
return $shortenedUrl;
} else {
return $long_url;
}
+ } catch (ServerException $e) {
+ return $long_url;
}
} else {
return $long_url;
common_debug(sprintf("%s: %d %d", $comment, $mtotal, round($ttotal * 1000000)));
}
+
+function common_strip_html($html, $trim=true, $save_whitespace=false)
+{
+ if (!$save_whitespace) {
+ $html = preg_replace('/\s+/', ' ', $html);
+ }
+ $text = html_entity_decode(strip_tags($html), ENT_QUOTES, 'UTF-8');
+ return $trim ? trim($text) : $text;
+}