Merge remote-tracking branch 'upstream/master' into nightly
Conflicts: lib/util.php
This commit is contained in:
commit
19df5c9b50
|
@ -337,21 +337,21 @@ class ApiSearchAtomAction extends ApiPrivateAuthAction
|
||||||
// @todo: Here is where we'd put in a link to an atom feed for threads
|
// @todo: Here is where we'd put in a link to an atom feed for threads
|
||||||
|
|
||||||
$source = null;
|
$source = null;
|
||||||
|
$source_link = null;
|
||||||
|
|
||||||
$ns = $notice->getSource();
|
$ns = $notice->getSource();
|
||||||
if ($ns instanceof Notice_source) {
|
if ($ns instanceof Notice_source) {
|
||||||
if (!empty($ns->name) && !empty($ns->url)) {
|
$source = $ns->code;
|
||||||
$source = '<a href="'
|
if (!empty($ns->url)) {
|
||||||
. htmlspecialchars($ns->url)
|
$source_link = $ns->url;
|
||||||
. '" rel="nofollow">'
|
if (!empty($ns->name)) {
|
||||||
. htmlspecialchars($ns->name)
|
$source = $ns->name;
|
||||||
. '</a>';
|
}
|
||||||
} else {
|
|
||||||
$source = $ns->code;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->element("twitter:source", null, $source);
|
$this->element("twitter:source", null, $source);
|
||||||
|
$this->element("twitter:source_link", null, $source_link);
|
||||||
|
|
||||||
$this->elementStart('author');
|
$this->elementStart('author');
|
||||||
|
|
||||||
|
|
|
@ -2123,11 +2123,7 @@ class Notice extends Managed_DataObject
|
||||||
if (!empty($ns->url)) {
|
if (!empty($ns->url)) {
|
||||||
$noticeInfoAttr['source_link'] = $ns->url;
|
$noticeInfoAttr['source_link'] = $ns->url;
|
||||||
if (!empty($ns->name)) {
|
if (!empty($ns->name)) {
|
||||||
$noticeInfoAttr['source'] = '<a href="'
|
$noticeInfoAttr['source'] = $ns->name;
|
||||||
. htmlspecialchars($ns->url)
|
|
||||||
. '" rel="nofollow">'
|
|
||||||
. htmlspecialchars($ns->name)
|
|
||||||
. '</a>';
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -964,7 +964,7 @@ class DB_Error extends PEAR_Error
|
||||||
{
|
{
|
||||||
if (is_int($code)) {
|
if (is_int($code)) {
|
||||||
$this->PEAR_Error('DB Error: ' . DB::errorMessage($code), $code,
|
$this->PEAR_Error('DB Error: ' . DB::errorMessage($code), $code,
|
||||||
$mode, $level, $debuginfo);
|
$mode, $level, $debuginfo, common_log(LOG_ERR, var_export($debuginfo,true)));
|
||||||
} else {
|
} else {
|
||||||
$this->PEAR_Error("DB Error: $code", DB_ERROR,
|
$this->PEAR_Error("DB Error: $code", DB_ERROR,
|
||||||
$mode, $level, $debuginfo);
|
$mode, $level, $debuginfo);
|
||||||
|
|
|
@ -556,6 +556,11 @@ abstract class ActivityHandlerPlugin extends Plugin
|
||||||
if ($nli->notice->scope != 0 && $nli->notice->scope != 1) {
|
if ($nli->notice->scope != 0 && $nli->notice->scope != 1) {
|
||||||
$class .= ' limited-scope';
|
$class .= ' limited-scope';
|
||||||
}
|
}
|
||||||
|
try {
|
||||||
|
$class .= ' notice-source-'.common_to_alphanumeric($this->notice->source);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
// either source or what we filtered out was a zero-length string
|
||||||
|
}
|
||||||
$nli->out->elementStart('li', array('class' => $class,
|
$nli->out->elementStart('li', array('class' => $class,
|
||||||
'id' => 'notice-' . $id));
|
'id' => 'notice-' . $id));
|
||||||
}
|
}
|
||||||
|
|
|
@ -337,22 +337,22 @@ class ApiAction extends Action
|
||||||
$twitter_status['in_reply_to_status_id'] = $in_reply_to;
|
$twitter_status['in_reply_to_status_id'] = $in_reply_to;
|
||||||
|
|
||||||
$source = null;
|
$source = null;
|
||||||
|
$source_link = null;
|
||||||
|
|
||||||
$ns = $notice->getSource();
|
$ns = $notice->getSource();
|
||||||
if ($ns instanceof Notice_source) {
|
if ($ns instanceof Notice_source) {
|
||||||
if (!empty($ns->name) && !empty($ns->url)) {
|
$source = $ns->code;
|
||||||
$source = '<a href="'
|
if (!empty($ns->url)) {
|
||||||
. htmlspecialchars($ns->url)
|
$source_link = $ns->url;
|
||||||
. '" rel="nofollow">'
|
if (!empty($ns->name)) {
|
||||||
. htmlspecialchars($ns->name)
|
$source = $ns->name;
|
||||||
. '</a>';
|
}
|
||||||
} else {
|
|
||||||
$source = $ns->code;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$twitter_status['uri'] = $notice->getUri();
|
$twitter_status['uri'] = $notice->getUri();
|
||||||
$twitter_status['source'] = $source;
|
$twitter_status['source'] = $source;
|
||||||
|
$twitter_status['source_link'] = $source_link;
|
||||||
$twitter_status['id'] = intval($notice->id);
|
$twitter_status['id'] = intval($notice->id);
|
||||||
|
|
||||||
$replier_profile = null;
|
$replier_profile = null;
|
||||||
|
|
|
@ -184,7 +184,8 @@ class ResultItem
|
||||||
var $id;
|
var $id;
|
||||||
var $from_user_id;
|
var $from_user_id;
|
||||||
var $iso_language_code;
|
var $iso_language_code;
|
||||||
var $source;
|
var $source = null;
|
||||||
|
var $source_link = null;
|
||||||
var $profile_image_url;
|
var $profile_image_url;
|
||||||
var $created_at;
|
var $created_at;
|
||||||
|
|
||||||
|
@ -234,7 +235,8 @@ class ResultItem
|
||||||
|
|
||||||
$this->iso_language_code = Profile_prefs::getConfigData($this->profile, 'site', 'language');
|
$this->iso_language_code = Profile_prefs::getConfigData($this->profile, 'site', 'language');
|
||||||
|
|
||||||
$this->source = $this->getSourceLink($this->notice->source);
|
// set source and source_link
|
||||||
|
$this->setSourceData();
|
||||||
|
|
||||||
$this->profile_image_url = $this->profile->avatarUrl(AVATAR_STREAM_SIZE);
|
$this->profile_image_url = $this->profile->avatarUrl(AVATAR_STREAM_SIZE);
|
||||||
|
|
||||||
|
@ -242,34 +244,43 @@ class ResultItem
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show the source of the notice
|
* Set the notice's source data (api/app name and URL)
|
||||||
*
|
*
|
||||||
* Either the name (and link) of the API client that posted the notice,
|
* Either the name (and link) of the API client that posted the notice,
|
||||||
* or one of other other channels.
|
* or one of other other channels. Uses the local notice object.
|
||||||
*
|
*
|
||||||
* @param string $source the source of the Notice
|
* @return void
|
||||||
*
|
|
||||||
* @return string a fully rendered source of the Notice
|
|
||||||
*/
|
*/
|
||||||
function getSourceLink($source)
|
function setSourceData()
|
||||||
{
|
{
|
||||||
// Gettext translations for the below source types are available.
|
$source = null;
|
||||||
$source_name = _($source);
|
$source_link = null;
|
||||||
|
|
||||||
switch ($source) {
|
switch ($source) {
|
||||||
case 'web':
|
case 'web':
|
||||||
case 'xmpp':
|
case 'xmpp':
|
||||||
case 'mail':
|
case 'mail':
|
||||||
case 'omb':
|
case 'omb':
|
||||||
case 'api':
|
case 'api':
|
||||||
|
// Gettext translations for the below source types are available.
|
||||||
|
$source = _($this->notice->source);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
$ns = Notice_source::getKV($source);
|
$ns = Notice_source::getKV($this->notice->source);
|
||||||
if ($ns instanceof Notice_source) {
|
if ($ns instanceof Notice_source) {
|
||||||
$source_name = '<a href="' . $ns->url . '">' . $ns->name . '</a>';
|
$source = $ns->code;
|
||||||
|
if (!empty($ns->url)) {
|
||||||
|
$source_link = $ns->url;
|
||||||
|
if (!empty($ns->name)) {
|
||||||
|
$source = $ns->name;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $source_name;
|
$this->source = $source;
|
||||||
|
$this->source_link = $source_link;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -229,8 +229,10 @@ class NoticeListItem extends Widget
|
||||||
if ($this->notice->scope != 0 && $this->notice->scope != 1) {
|
if ($this->notice->scope != 0 && $this->notice->scope != 1) {
|
||||||
$class .= ' limited-scope';
|
$class .= ' limited-scope';
|
||||||
}
|
}
|
||||||
if (!empty($this->notice->source)) {
|
try {
|
||||||
$class .= ' notice-source-'.$this->notice->source;
|
$class .= ' notice-source-'.common_to_alphanumeric($this->notice->source);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
// either source or what we filtered out was a zero-length string
|
||||||
}
|
}
|
||||||
$id_prefix = (strlen($this->id_prefix) ? $this->id_prefix . '-' : '');
|
$id_prefix = (strlen($this->id_prefix) ? $this->id_prefix . '-' : '');
|
||||||
$this->out->elementStart($this->item_tag, array('class' => $class,
|
$this->out->elementStart($this->item_tag, array('class' => $class,
|
||||||
|
|
13
lib/util.php
13
lib/util.php
|
@ -581,7 +581,20 @@ function common_canonical_email($email)
|
||||||
return $email;
|
return $email;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
function common_purify($html, array $args=array())
|
function common_purify($html, array $args=array())
|
||||||
|
=======
|
||||||
|
function common_to_alphanumeric($str)
|
||||||
|
{
|
||||||
|
$filtered = preg_replace('/[^A-Za-z0-9]\s*/', '', $str);
|
||||||
|
if (strlen($filtered) < 1) {
|
||||||
|
throw new Exception('Filtered string was zero-length.');
|
||||||
|
}
|
||||||
|
return $filtered;
|
||||||
|
}
|
||||||
|
|
||||||
|
function common_purify($html)
|
||||||
|
>>>>>>> upstream/master
|
||||||
{
|
{
|
||||||
require_once INSTALLDIR.'/extlib/HTMLPurifier/HTMLPurifier.auto.php';
|
require_once INSTALLDIR.'/extlib/HTMLPurifier/HTMLPurifier.auto.php';
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user