mirror of
https://git.friendi.ca/friendica/friendica.git
synced 2025-06-17 02:45:16 +02:00
Merge remote-tracking branch 'friendika/master' into newui
This commit is contained in:
commit
9d2afc2d3c
30 changed files with 3182 additions and 484 deletions
|
@ -133,7 +133,12 @@ function contact_photo_menu($contact) {
|
|||
|
||||
$o = "";
|
||||
foreach($menu as $k=>$v){
|
||||
if ($v!="") $o .= "<li><a href='$v'>$k</a></li>\n";
|
||||
if ($v!="") {
|
||||
if(($k !== t("View recent")) && ($k !== t("Send PM")))
|
||||
$o .= "<li><a target=\"redir\" href=\"$v\">$k</a></li>\n";
|
||||
else
|
||||
$o .= "<li><a href=\"$v\">$k</a></li>\n";
|
||||
}
|
||||
}
|
||||
return $o;
|
||||
}}
|
||||
|
|
|
@ -430,7 +430,8 @@ function probe_url($url, $mode = PROBE_NORMAL) {
|
|||
$addr = $orig_url;
|
||||
$network = NETWORK_MAIL;
|
||||
$name = substr($url,0,strpos($url,'@'));
|
||||
$profile = 'http://' . substr($url,strpos($url,'@')+1);
|
||||
$phost = substr($url,strpos($url,'@')+1);
|
||||
$profile = 'http://' . $phost;
|
||||
// fix nick character range
|
||||
$vcard = array('fn' => $name, 'nick' => $name, 'photo' => gravatar_img($url));
|
||||
$notify = 'smtp ' . random_string();
|
||||
|
@ -441,8 +442,15 @@ function probe_url($url, $mode = PROBE_NORMAL) {
|
|||
$adr = imap_rfc822_parse_adrlist($x->from,'');
|
||||
elseif(stristr($x->to,$orig_url))
|
||||
$adr = imap_rfc822_parse_adrlist($x->to,'');
|
||||
if(isset($adr) && strlen($adr[0]->personal))
|
||||
$vcard['fn'] = notags($adr[0]->personal);
|
||||
if(isset($adr)) {
|
||||
foreach($adr as $feadr) {
|
||||
if((strcasecmp($feadr->mailbox,$name) == 0)
|
||||
&&(strcasecmp($feadr->host,$phost) == 0)
|
||||
&& (strlen($feadr->personal))) {
|
||||
$vcard['fn'] = notags($feadr->personal);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
imap_close($mbox);
|
||||
}
|
||||
|
|
|
@ -466,6 +466,7 @@
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
// TODO - media uploads
|
||||
function api_statuses_update(&$a, $type) {
|
||||
if (local_user()===false) return false;
|
||||
|
@ -475,7 +476,32 @@
|
|||
|
||||
// logger('api_post: ' . print_r($_POST,true));
|
||||
|
||||
$_POST['body'] = urldecode(requestdata('status'));
|
||||
if(requestdata('htmlstatus')) {
|
||||
require_once('library/HTMLPurifier.auto.php');
|
||||
require_once('include/html2bbcode.php');
|
||||
|
||||
$txt = requestdata('htmlstatus');
|
||||
if((strpos($txt,'<') !== false) || (strpos($txt,'>') !== false)) {
|
||||
|
||||
$txt = preg_replace('#<object[^>]+>.+?' . 'http://www.youtube.com/((?:v|cp)/[A-Za-z0-9\-_=]+).+?</object>#s',
|
||||
'[youtube]$1[/youtube]', $txt);
|
||||
|
||||
$txt = preg_replace('#<iframe[^>].+?' . 'http://www.youtube.com/embed/([A-Za-z0-9\-_=]+).+?</iframe>#s',
|
||||
'[youtube]$1[/youtube]', $txt);
|
||||
|
||||
$config = HTMLPurifier_Config::createDefault();
|
||||
$config->set('Cache.DefinitionImpl', null);
|
||||
|
||||
|
||||
$purifier = new HTMLPurifier($config);
|
||||
$txt = $purifier->purify($txt);
|
||||
|
||||
$_POST['body'] = html2bbcode($txt);
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
$_POST['body'] = urldecode(requestdata('status'));
|
||||
|
||||
$parent = requestdata('in_reply_to_status_id');
|
||||
if(ctype_digit($parent))
|
||||
|
|
|
@ -42,6 +42,8 @@ function stripdcode_br_cb($s) {
|
|||
|
||||
function bb2diaspora($Text,$preserve_nl = false) {
|
||||
|
||||
$ev = bbtoevent($Text);
|
||||
|
||||
// Replace any html brackets with HTML Entities to prevent executing HTML or script
|
||||
// Don't use strip_tags here because it breaks [url] search by replacing & with amp
|
||||
|
||||
|
@ -52,7 +54,6 @@ function bb2diaspora($Text,$preserve_nl = false) {
|
|||
// After we're finished processing the bbcode we'll
|
||||
// replace all of the event code with a reformatted version.
|
||||
|
||||
$ev = bbtoevent($Text);
|
||||
|
||||
if($preserve_nl)
|
||||
$Text = str_replace(array("\n","\r"), array('',''),$Text);
|
||||
|
@ -185,7 +186,10 @@ function bb2diaspora($Text,$preserve_nl = false) {
|
|||
$Text = preg_replace("/\[event\-adjust\](.*?)\[\/event\-adjust\]/is",'',$Text);
|
||||
}
|
||||
|
||||
$Text = preg_replace("/\<(.*?)(src|href)=(.*?)\&\;(.*?)\>/ism",'<$1$2=$3&$4>',$Text);
|
||||
|
||||
$Text = preg_replace('/\[(.*?)\\\\_(.*?)\]\((.*?)\)/ism','[$1_$2]($3)',$Text);
|
||||
$Text = preg_replace('/\[(.*?)\\\\\*(.*?)\]\((.*?)\)/ism','[$1*$2]($3)',$Text);
|
||||
|
||||
call_hooks('bb2diaspora',$Text);
|
||||
|
||||
|
|
|
@ -15,6 +15,13 @@ function stripcode_br_cb($s) {
|
|||
|
||||
function bbcode($Text,$preserve_nl = false) {
|
||||
|
||||
// If we find any event code, turn it into an event.
|
||||
// After we're finished processing the bbcode we'll
|
||||
// replace all of the event code with a reformatted version.
|
||||
|
||||
$ev = bbtoevent($Text);
|
||||
|
||||
|
||||
// Replace any html brackets with HTML Entities to prevent executing HTML or script
|
||||
// Don't use strip_tags here because it breaks [url] search by replacing & with amp
|
||||
|
||||
|
@ -27,11 +34,6 @@ function bbcode($Text,$preserve_nl = false) {
|
|||
if($preserve_nl)
|
||||
$Text = str_replace(array("\n","\r"), array('',''),$Text);
|
||||
|
||||
// If we find any event code, turn it into an event.
|
||||
// After we're finished processing the bbcode we'll
|
||||
// replace all of the event code with a reformatted version.
|
||||
|
||||
$ev = bbtoevent($Text);
|
||||
|
||||
// Set up the parameters for a URL search string
|
||||
$URLSearchString = "^\[\]";
|
||||
|
@ -41,7 +43,7 @@ function bbcode($Text,$preserve_nl = false) {
|
|||
// Perform URL Search
|
||||
|
||||
|
||||
$Text = preg_replace("/([^\]\=]|^)(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\.\=\_\~\#\%\$\!\+\,]+)/", '$1<a href="$2" target="external-link">$2</a>', $Text);
|
||||
$Text = preg_replace("/([^\]\=]|^)(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/", '$1<a href="$2" target="external-link">$2</a>', $Text);
|
||||
|
||||
$Text = preg_replace("/\[url\]([$URLSearchString]*)\[\/url\]/m", '<a href="$1" target="external-link">$1</a>', $Text);
|
||||
$Text = preg_replace("/\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/m", '<a href="$1" target="external-link">$2</a>', $Text);
|
||||
|
@ -157,7 +159,8 @@ function bbcode($Text,$preserve_nl = false) {
|
|||
$Text = preg_replace("/\[event\-adjust\](.*?)\[\/event\-adjust\]/ism",'',$Text);
|
||||
}
|
||||
|
||||
|
||||
// fix any escaped ampersands that may have been converted into links
|
||||
$Text = preg_replace("/\<(.*?)(src|href)=(.*?)\&\;(.*?)\>/ism",'<$1$2=$3&$4>',$Text);
|
||||
|
||||
call_hooks('bbcode',$Text);
|
||||
|
||||
|
|
|
@ -111,7 +111,7 @@ function conversation(&$a, $items, $mode, $update) {
|
|||
}
|
||||
|
||||
if($mode === 'notes') {
|
||||
$profile_owner = $a->profile['profile_uid'];
|
||||
$profile_owner = local_user();
|
||||
$page_writeable = true;
|
||||
}
|
||||
|
||||
|
@ -381,12 +381,12 @@ function conversation(&$a, $items, $mode, $update) {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
$likebuttons = '';
|
||||
$shareable = ((($profile_owner == local_user()) && ($mode != 'display') && (! $item['private'])) ? true : false);
|
||||
|
||||
if($page_writeable) {
|
||||
if($toplevelpost) {
|
||||
$likebuttons = replace_macros((($item['private'] || ($profile_owner != local_user())) ? $noshare_tpl : $like_tpl),array(
|
||||
$likebuttons = replace_macros(((($shareable)) ? $like_tpl : $noshare_tpl),array(
|
||||
'$id' => $item['id'],
|
||||
'$likethis' => t("I like this \x28toggle\x29"),
|
||||
'$nolike' => t("I don't like this \x28toggle\x29"),
|
||||
|
|
|
@ -4,7 +4,7 @@ function email_connect($mailbox,$username,$password) {
|
|||
if(! function_exists('imap_open'))
|
||||
return false;
|
||||
|
||||
$mbox = imap_open($mailbox,$username,$password);
|
||||
$mbox = @imap_open($mailbox,$username,$password);
|
||||
|
||||
return $mbox;
|
||||
}
|
||||
|
@ -14,19 +14,19 @@ function email_poll($mbox,$email_addr) {
|
|||
if(! ($mbox && $email_addr))
|
||||
return array();
|
||||
|
||||
$search1 = imap_search($mbox,'FROM "' . $email_addr . '"', SE_UID);
|
||||
$search1 = @imap_search($mbox,'FROM "' . $email_addr . '"', SE_UID);
|
||||
if(! $search1)
|
||||
$search1 = array();
|
||||
|
||||
$search2 = imap_search($mbox,'TO "' . $email_addr . '"', SE_UID);
|
||||
$search2 = @imap_search($mbox,'TO "' . $email_addr . '"', SE_UID);
|
||||
if(! $search2)
|
||||
$search2 = array();
|
||||
|
||||
$search3 = imap_search($mbox,'CC "' . $email_addr . '"', SE_UID);
|
||||
$search3 = @imap_search($mbox,'CC "' . $email_addr . '"', SE_UID);
|
||||
if(! $search3)
|
||||
$search3 = array();
|
||||
|
||||
$search4 = imap_search($mbox,'BCC "' . $email_addr . '"', SE_UID);
|
||||
$search4 = @imap_search($mbox,'BCC "' . $email_addr . '"', SE_UID);
|
||||
if(! $search4)
|
||||
$search4 = array();
|
||||
|
||||
|
@ -45,12 +45,12 @@ function construct_mailbox_name($mailacct) {
|
|||
|
||||
|
||||
function email_msg_meta($mbox,$uid) {
|
||||
$ret = (($mbox && $uid) ? imap_fetch_overview($mbox,$uid,FT_UID) : array(array()));
|
||||
$ret = (($mbox && $uid) ? @imap_fetch_overview($mbox,$uid,FT_UID) : array(array()));
|
||||
return ((count($ret)) ? $ret[0] : array());
|
||||
}
|
||||
|
||||
function email_msg_headers($mbox,$uid) {
|
||||
$raw_header = (($mbox && $uid) ? imap_fetchheader($mbox,$uid,FT_UID) : '');
|
||||
$raw_header = (($mbox && $uid) ? @imap_fetchheader($mbox,$uid,FT_UID) : '');
|
||||
$raw_header = str_replace("\r",'',$raw_header);
|
||||
$ret = array();
|
||||
$h = split("\n",$raw_header);
|
||||
|
@ -74,7 +74,7 @@ function email_msg_headers($mbox,$uid) {
|
|||
function email_get_msg($mbox,$uid) {
|
||||
$ret = array();
|
||||
|
||||
$struc = (($mbox && $uid) ? imap_fetchstructure($mbox,$uid,FT_UID) : null);
|
||||
$struc = (($mbox && $uid) ? @imap_fetchstructure($mbox,$uid,FT_UID) : null);
|
||||
|
||||
if(! $struc)
|
||||
return $ret;
|
||||
|
@ -103,8 +103,8 @@ function email_get_part($mbox,$uid,$p,$partno) {
|
|||
|
||||
// DECODE DATA
|
||||
$data = ($partno)
|
||||
? imap_fetchbody($mbox,$uid,$partno, FT_UID|FT_PEEK)
|
||||
: imap_body($mbox,$uid,FT_UID|FT_PEEK);
|
||||
? @imap_fetchbody($mbox,$uid,$partno, FT_UID|FT_PEEK)
|
||||
: @imap_body($mbox,$uid,FT_UID|FT_PEEK);
|
||||
|
||||
// Any part may be encoded, even plain text messages, so check everything.
|
||||
if ($p->encoding==4)
|
||||
|
|
|
@ -124,7 +124,7 @@ function group_public_members($gid) {
|
|||
$r = q("SELECT `contact`.`id` AS `contact-id` FROM `group_member`
|
||||
LEFT JOIN `contact` ON `contact`.`id` = `group_member`.`contact-id`
|
||||
WHERE `gid` = %d AND `group_member`.`uid` = %d
|
||||
AND ( `contact`.`network` = '%s' OR `contact`.`notify` = '' )",
|
||||
AND `contact`.`network` = '%s' AND `contact`.`notify` != '' ",
|
||||
intval($gid),
|
||||
intval(local_user()),
|
||||
dbesc(NETWORK_OSTATUS)
|
||||
|
|
|
@ -24,6 +24,10 @@ function html2bbcode($s) {
|
|||
'/\<u\>(.*?)\<\/u\>/is',
|
||||
'/\<ul\>(.*?)\<\/ul\>/is',
|
||||
'/\<li\>(.*?)\<\/li\>/is',
|
||||
'/\<img(.*?)width: *([0-9]+)(.*?)height: *([0-9]+)(.*?)src=\"(.*?)\" (.*?)\>/is',
|
||||
'/\<img(.*?)height: *([0-9]+)(.*?)width: *([0-9]+)(.*?)src=\"(.*?)\" (.*?)\>/is',
|
||||
'/\<img(.*?)src=\"(.*?)\"(.*?)width: *([0-9]+)(.*?)height: *([0-9]+)(.*?)\>/is',
|
||||
'/\<img(.*?)src=\"(.*?)\"(.*?)height: *([0-9]+)(.*?)width: *([0-9]+)(.*?)\>/is',
|
||||
'/\<img(.*?) src=\"(.*?)\" (.*?)\>/is',
|
||||
'/\<div(.*?)\>(.*?)\<\/div\>/is',
|
||||
'/\<br(.*?)\>/is',
|
||||
|
@ -50,6 +54,10 @@ function html2bbcode($s) {
|
|||
'[u]$1[/u]',
|
||||
'[list]$1[/list]',
|
||||
'[*]$1',
|
||||
'[img=$2x$4]$6[/img]',
|
||||
'[img=$4x$2]$6[/img]',
|
||||
'[img=$4x$6]$2[/img]',
|
||||
'[img=$6x$4]$2[/img]',
|
||||
'[img]$2[/img]',
|
||||
'$2',
|
||||
"\n",
|
||||
|
|
|
@ -165,9 +165,11 @@
|
|||
|
||||
$a = get_app();
|
||||
$this->lang=array();
|
||||
foreach ($a->strings as $k=>$v){
|
||||
$k = preg_replace("/[^a-z0-9-]/", "", str_replace(" ","-", strtolower($k)));
|
||||
$this->lang[$k] = $v;
|
||||
if(is_array($a->strings) && count($a->strings)) {
|
||||
foreach ($a->strings as $k=>$v){
|
||||
$k = preg_replace("/[^a-z0-9-]/", "", str_replace(" ","-", strtolower($k)));
|
||||
$this->lang[$k] = $v;
|
||||
}
|
||||
}
|
||||
return $this->lang;
|
||||
}
|
||||
|
|
|
@ -482,13 +482,12 @@ function get_tags($s) {
|
|||
// we might be inside a bbcode color tag - leave it alone
|
||||
continue;
|
||||
}
|
||||
if(substr($mtch,-1,1) === '.')
|
||||
$mtch = substr($mtch,0,-1);
|
||||
// ignore strictly numeric tags like #1
|
||||
if((strpos($mtch,'#') === 0) && ctype_digit(substr($mtch,1)))
|
||||
continue;
|
||||
if(substr($mtch,-1,1) === '.')
|
||||
$ret[] = substr($mtch,0,-1);
|
||||
else
|
||||
$ret[] = $mtch;
|
||||
$ret[] = $mtch;
|
||||
}
|
||||
}
|
||||
return $ret;
|
||||
|
@ -579,11 +578,13 @@ function micropro($contact, $redirect = false, $class = '', $textmode = false) {
|
|||
|
||||
$url = $contact['url'];
|
||||
$sparkle = '';
|
||||
$redir = false;
|
||||
|
||||
if($redirect) {
|
||||
$a = get_app();
|
||||
$redirect_url = $a->get_baseurl() . '/redir/' . $contact['id'];
|
||||
if(local_user() && ($contact['uid'] == local_user()) && ($contact['network'] === 'dfrn')) {
|
||||
$redir = true;
|
||||
$url = $redirect_url;
|
||||
$sparkle = ' sparkle';
|
||||
}
|
||||
|
@ -594,6 +595,7 @@ function micropro($contact, $redirect = false, $class = '', $textmode = false) {
|
|||
if($textmode) {
|
||||
return '<div class="contact-block-textdiv' . $class . '"><a class="contact-block-link' . $class . $sparkle
|
||||
. (($click) ? ' fakelink' : '') . '" '
|
||||
. (($redir) ? ' target="redir" ' : '')
|
||||
. (($url) ? ' href="' . $url . '"' : '') . $click
|
||||
. '" title="' . $contact['name'] . ' [' . $contact['url'] . ']" alt="' . $contact['name']
|
||||
. '" >'. $contact['name'] . '</a></div>' . "\r\n";
|
||||
|
@ -601,6 +603,7 @@ function micropro($contact, $redirect = false, $class = '', $textmode = false) {
|
|||
else {
|
||||
return '<div class="contact-block-div' . $class . '"><a class="contact-block-link' . $class . $sparkle
|
||||
. (($click) ? ' fakelink' : '') . '" '
|
||||
. (($redir) ? ' target="redir" ' : '')
|
||||
. (($url) ? ' href="' . $url . '"' : '') . $click . ' ><img class="contact-block-img' . $class . $sparkle . '" src="'
|
||||
. $contact['micro'] . '" title="' . $contact['name'] . ' [' . $contact['url'] . ']" alt="' . $contact['name']
|
||||
. '" /></a></div>' . "\r\n";
|
||||
|
@ -640,7 +643,8 @@ function valid_email($x){
|
|||
|
||||
if(! function_exists('linkify')) {
|
||||
function linkify($s) {
|
||||
$s = preg_replace("/(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\.\=\_\~\#\'\%\$\!\+]*)/", ' <a href="$1" target="external-link">$1</a>', $s);
|
||||
$s = preg_replace("/(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\'\%\$\!\+]*)/", ' <a href="$1" target="external-link">$1</a>', $s);
|
||||
$s = preg_replace("/\<(.*?)(src|href)=(.*?)\&\;(.*?)\>/ism",'<$1$2=$3&$4>',$s);
|
||||
return($s);
|
||||
}}
|
||||
|
||||
|
@ -661,7 +665,7 @@ if(! function_exists('smilies')) {
|
|||
function smilies($s) {
|
||||
$a = get_app();
|
||||
|
||||
return str_replace(
|
||||
$s = str_replace(
|
||||
array( '<3', '</3', '<\\3', ':-)', ':)', ';-)', ':-(', ':(', ':-P', ':P', ':-"', ':-x', ':-X', ':-D', '8-|', '8-O',
|
||||
'~friendika', 'Diaspora*' ),
|
||||
array(
|
||||
|
@ -685,6 +689,10 @@ function smilies($s) {
|
|||
'<a href="http://joindiaspora.com">Diaspora<img src="' . $a->get_baseurl() . '/images/diaspora.png" alt="Diaspora*" /></a>',
|
||||
|
||||
), $s);
|
||||
|
||||
call_hooks('smilie', $s);
|
||||
return $s;
|
||||
|
||||
}}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue