mirror of
https://github.com/friendica/friendica
synced 2024-11-19 03:03:41 +00: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
|
@ -111,7 +111,8 @@ function facebook_init(&$a) {
|
||||||
$token = substr($token,0,strpos($token,'&'));
|
$token = substr($token,0,strpos($token,'&'));
|
||||||
set_pconfig($uid,'facebook','access_token',$token);
|
set_pconfig($uid,'facebook','access_token',$token);
|
||||||
set_pconfig($uid,'facebook','post','1');
|
set_pconfig($uid,'facebook','post','1');
|
||||||
set_pconfig($uid,'facebook','no_linking',1);
|
if(get_pconfig($uid,'facebook','no_linking') === false)
|
||||||
|
set_pconfig($uid,'facebook','no_linking',1);
|
||||||
fb_get_self($uid);
|
fb_get_self($uid);
|
||||||
fb_get_friends($uid);
|
fb_get_friends($uid);
|
||||||
fb_consume_all($uid);
|
fb_consume_all($uid);
|
||||||
|
@ -275,6 +276,9 @@ function facebook_post(&$a) {
|
||||||
|
|
||||||
$no_wall = ((x($_POST,'facebook_no_wall')) ? intval($_POST['facebook_no_wall']) : 0);
|
$no_wall = ((x($_POST,'facebook_no_wall')) ? intval($_POST['facebook_no_wall']) : 0);
|
||||||
set_pconfig($uid,'facebook','no_wall',$no_wall);
|
set_pconfig($uid,'facebook','no_wall',$no_wall);
|
||||||
|
|
||||||
|
$private_wall = ((x($_POST,'facebook_private_wall')) ? intval($_POST['facebook_private_wall']) : 0);
|
||||||
|
set_pconfig($uid,'facebook','private_wall',$private_wall);
|
||||||
|
|
||||||
|
|
||||||
$linkvalue = ((x($_POST,'facebook_linking')) ? intval($_POST['facebook_linking']) : 0);
|
$linkvalue = ((x($_POST,'facebook_linking')) ? intval($_POST['facebook_linking']) : 0);
|
||||||
|
@ -352,6 +356,12 @@ function facebook_content(&$a) {
|
||||||
$o .= '<div id="facebook-disable-wrapper">';
|
$o .= '<div id="facebook-disable-wrapper">';
|
||||||
|
|
||||||
$o .= '<a href="' . $a->get_baseurl() . '/facebook/remove' . '">' . t('Remove Facebook connector') . '</a></div>';
|
$o .= '<a href="' . $a->get_baseurl() . '/facebook/remove' . '">' . t('Remove Facebook connector') . '</a></div>';
|
||||||
|
|
||||||
|
$o .= '<div id="facebook-enable-wrapper">';
|
||||||
|
|
||||||
|
$o .= '<a href="https://www.facebook.com/dialog/oauth?client_id=' . $appid . '&redirect_uri='
|
||||||
|
. $a->get_baseurl() . '/facebook/' . $a->user['nickname'] . '&scope=publish_stream,read_stream,offline_access">' . t('Re-authenticate [This is necessary whenever your Facebook password is changed.]') . '</a>';
|
||||||
|
$o .= '</div>';
|
||||||
|
|
||||||
$o .= '<div id="facebook-post-default-form">';
|
$o .= '<div id="facebook-post-default-form">';
|
||||||
$o .= '<form action="facebook" method="post" >';
|
$o .= '<form action="facebook" method="post" >';
|
||||||
|
@ -361,12 +371,22 @@ function facebook_content(&$a) {
|
||||||
|
|
||||||
$no_linking = get_pconfig(local_user(),'facebook','no_linking');
|
$no_linking = get_pconfig(local_user(),'facebook','no_linking');
|
||||||
$checked = (($no_linking) ? '' : ' checked="checked" ');
|
$checked = (($no_linking) ? '' : ' checked="checked" ');
|
||||||
$o .= '<input type="checkbox" name="facebook_linking" value="1"' . $checked . '/>' . ' ' . t('Link all your Facebook friends and conversations') . EOL ;
|
$o .= '<input type="checkbox" name="facebook_linking" value="1"' . $checked . '/>' . ' ' . t('Link all your Facebook friends and conversations on this website') . EOL ;
|
||||||
|
|
||||||
|
$o .= '<p>' . t('Facebook conversations consist of your <em>profile wall</em> and your friend <em>stream</em>.');
|
||||||
|
$o .= ' ' . t('On this website, your Facebook friend stream is only visible to you.');
|
||||||
|
$o .= ' ' . t('The following settings determine the privacy of your Facebook profile wall on this website.') . '</p>';
|
||||||
|
|
||||||
|
$private_wall = get_pconfig(local_user(),'facebook','private_wall');
|
||||||
|
$checked = (($private_wall) ? ' checked="checked" ' : '');
|
||||||
|
$o .= '<input type="checkbox" name="facebook_private_wall" value="1"' . $checked . '/>' . ' ' . t('On this website your Facebook profile wall conversations will only be visible to you') . EOL ;
|
||||||
|
|
||||||
|
|
||||||
$no_wall = get_pconfig(local_user(),'facebook','no_wall');
|
$no_wall = get_pconfig(local_user(),'facebook','no_wall');
|
||||||
$checked = (($no_wall) ? ' checked="checked" ' : '');
|
$checked = (($no_wall) ? ' checked="checked" ' : '');
|
||||||
$o .= '<input type="checkbox" name="facebook_no_wall" value="1"' . $checked . '/>' . ' ' . t('Do not link your Facebook profile wall posts - as these could be visible to people that would not be able to see them on Facebook.') . EOL ;
|
$o .= '<input type="checkbox" name="facebook_no_wall" value="1"' . $checked . '/>' . ' ' . t('Do not import your Facebook profile wall conversations') . EOL ;
|
||||||
|
|
||||||
|
$o .= '<p>' . t('If you choose to link conversations and leave both of these boxes unchecked, your Facebook profile wall will be merged with your profile wall on this website and your privacy settings on this website will be used to determine who may see the conversations.') . '</p>';
|
||||||
|
|
||||||
$o .= '<input type="submit" name="submit" value="' . t('Submit') . '" /></form></div>';
|
$o .= '<input type="submit" name="submit" value="' . t('Submit') . '" /></form></div>';
|
||||||
}
|
}
|
||||||
|
@ -770,11 +790,12 @@ function fb_consume_all($uid) {
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(! get_pconfig($uid,'facebook','no_wall')) {
|
if(! get_pconfig($uid,'facebook','no_wall')) {
|
||||||
|
$private_wall = intval(get_pconfig($uid,'facebook','private_wall'));
|
||||||
$s = fetch_url('https://graph.facebook.com/me/feed?access_token=' . $access_token);
|
$s = fetch_url('https://graph.facebook.com/me/feed?access_token=' . $access_token);
|
||||||
if($s) {
|
if($s) {
|
||||||
$j = json_decode($s);
|
$j = json_decode($s);
|
||||||
logger('fb_consume_stream: wall: ' . print_r($j,true), LOGGER_DATA);
|
logger('fb_consume_stream: wall: ' . print_r($j,true), LOGGER_DATA);
|
||||||
fb_consume_stream($uid,$j,true);
|
fb_consume_stream($uid,$j,($private_wall) ? false : true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$s = fetch_url('https://graph.facebook.com/me/home?access_token=' . $access_token);
|
$s = fetch_url('https://graph.facebook.com/me/home?access_token=' . $access_token);
|
||||||
|
|
|
@ -385,6 +385,8 @@ function statusnet_post_hook(&$a,&$b) {
|
||||||
$dent = new StatusNetOAuth($api,$ckey,$csecret,$otoken,$osecret);
|
$dent = new StatusNetOAuth($api,$ckey,$csecret,$otoken,$osecret);
|
||||||
$max_char = $dent->get_maxlength(); // max. length for a dent
|
$max_char = $dent->get_maxlength(); // max. length for a dent
|
||||||
$msg = strip_tags(bbcode($b['body']));
|
$msg = strip_tags(bbcode($b['body']));
|
||||||
|
// quotes not working - let's try this
|
||||||
|
$msg = html_entity_decode($msg);
|
||||||
if ( strlen($msg) > $max_char) {
|
if ( strlen($msg) > $max_char) {
|
||||||
$shortlink = "";
|
$shortlink = "";
|
||||||
require_once('library/slinky.php');
|
require_once('library/slinky.php');
|
||||||
|
|
4
boot.php
4
boot.php
|
@ -8,7 +8,7 @@ require_once("include/pgettext.php");
|
||||||
require_once('include/nav.php');
|
require_once('include/nav.php');
|
||||||
|
|
||||||
|
|
||||||
define ( 'FRIENDIKA_VERSION', '2.2.1096' );
|
define ( 'FRIENDIKA_VERSION', '2.2.1103' );
|
||||||
define ( 'DFRN_PROTOCOL_VERSION', '2.21' );
|
define ( 'DFRN_PROTOCOL_VERSION', '2.21' );
|
||||||
define ( 'DB_UPDATE_VERSION', 1087 );
|
define ( 'DB_UPDATE_VERSION', 1087 );
|
||||||
|
|
||||||
|
@ -991,7 +991,7 @@ function get_birthdays() {
|
||||||
$now = strtotime('now');
|
$now = strtotime('now');
|
||||||
$today = (((strtotime($rr['start'] . ' +00:00') < $now) && (strtotime($rr['finish'] . ' +00:00') > $now)) ? true : false);
|
$today = (((strtotime($rr['start'] . ' +00:00') < $now) && (strtotime($rr['finish'] . ' +00:00') > $now)) ? true : false);
|
||||||
|
|
||||||
$o .= '<div class="birthday-list" id="birthday-' . $rr['eid'] . '"><a class="sparkle" href="'
|
$o .= '<div class="birthday-list" id="birthday-' . $rr['eid'] . '"><a class="sparkle" target="redir" href="'
|
||||||
. $a->get_baseurl() . '/redir/' . $rr['cid'] . '">' . $rr['name'] . '</a> '
|
. $a->get_baseurl() . '/redir/' . $rr['cid'] . '">' . $rr['name'] . '</a> '
|
||||||
. day_translate(datetime_convert('UTC', $a->timezone, $rr['start'], $bd_format)) . (($today) ? ' ' . t('[today]') : '')
|
. day_translate(datetime_convert('UTC', $a->timezone, $rr['start'], $bd_format)) . (($today) ? ' ' . t('[today]') : '')
|
||||||
. '</div>' ;
|
. '</div>' ;
|
||||||
|
|
|
@ -133,7 +133,12 @@ function contact_photo_menu($contact) {
|
||||||
|
|
||||||
$o = "";
|
$o = "";
|
||||||
foreach($menu as $k=>$v){
|
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;
|
return $o;
|
||||||
}}
|
}}
|
||||||
|
|
|
@ -430,7 +430,8 @@ function probe_url($url, $mode = PROBE_NORMAL) {
|
||||||
$addr = $orig_url;
|
$addr = $orig_url;
|
||||||
$network = NETWORK_MAIL;
|
$network = NETWORK_MAIL;
|
||||||
$name = substr($url,0,strpos($url,'@'));
|
$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
|
// fix nick character range
|
||||||
$vcard = array('fn' => $name, 'nick' => $name, 'photo' => gravatar_img($url));
|
$vcard = array('fn' => $name, 'nick' => $name, 'photo' => gravatar_img($url));
|
||||||
$notify = 'smtp ' . random_string();
|
$notify = 'smtp ' . random_string();
|
||||||
|
@ -441,8 +442,15 @@ function probe_url($url, $mode = PROBE_NORMAL) {
|
||||||
$adr = imap_rfc822_parse_adrlist($x->from,'');
|
$adr = imap_rfc822_parse_adrlist($x->from,'');
|
||||||
elseif(stristr($x->to,$orig_url))
|
elseif(stristr($x->to,$orig_url))
|
||||||
$adr = imap_rfc822_parse_adrlist($x->to,'');
|
$adr = imap_rfc822_parse_adrlist($x->to,'');
|
||||||
if(isset($adr) && strlen($adr[0]->personal))
|
if(isset($adr)) {
|
||||||
$vcard['fn'] = notags($adr[0]->personal);
|
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);
|
imap_close($mbox);
|
||||||
}
|
}
|
||||||
|
|
|
@ -466,6 +466,7 @@
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO - media uploads
|
// TODO - media uploads
|
||||||
function api_statuses_update(&$a, $type) {
|
function api_statuses_update(&$a, $type) {
|
||||||
if (local_user()===false) return false;
|
if (local_user()===false) return false;
|
||||||
|
@ -475,7 +476,32 @@
|
||||||
|
|
||||||
// logger('api_post: ' . print_r($_POST,true));
|
// 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');
|
$parent = requestdata('in_reply_to_status_id');
|
||||||
if(ctype_digit($parent))
|
if(ctype_digit($parent))
|
||||||
|
|
|
@ -42,6 +42,8 @@ function stripdcode_br_cb($s) {
|
||||||
|
|
||||||
function bb2diaspora($Text,$preserve_nl = false) {
|
function bb2diaspora($Text,$preserve_nl = false) {
|
||||||
|
|
||||||
|
$ev = bbtoevent($Text);
|
||||||
|
|
||||||
// Replace any html brackets with HTML Entities to prevent executing HTML or script
|
// 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
|
// 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
|
// After we're finished processing the bbcode we'll
|
||||||
// replace all of the event code with a reformatted version.
|
// replace all of the event code with a reformatted version.
|
||||||
|
|
||||||
$ev = bbtoevent($Text);
|
|
||||||
|
|
||||||
if($preserve_nl)
|
if($preserve_nl)
|
||||||
$Text = str_replace(array("\n","\r"), array('',''),$Text);
|
$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("/\[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);
|
call_hooks('bb2diaspora',$Text);
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,13 @@ function stripcode_br_cb($s) {
|
||||||
|
|
||||||
function bbcode($Text,$preserve_nl = false) {
|
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
|
// 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
|
// 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)
|
if($preserve_nl)
|
||||||
$Text = str_replace(array("\n","\r"), array('',''),$Text);
|
$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
|
// Set up the parameters for a URL search string
|
||||||
$URLSearchString = "^\[\]";
|
$URLSearchString = "^\[\]";
|
||||||
|
@ -41,7 +43,7 @@ function bbcode($Text,$preserve_nl = false) {
|
||||||
// Perform URL Search
|
// 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">$1</a>', $Text);
|
||||||
$Text = preg_replace("/\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/m", '<a href="$1" target="external-link">$2</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);
|
$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);
|
call_hooks('bbcode',$Text);
|
||||||
|
|
||||||
|
|
|
@ -111,7 +111,7 @@ function conversation(&$a, $items, $mode, $update) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if($mode === 'notes') {
|
if($mode === 'notes') {
|
||||||
$profile_owner = $a->profile['profile_uid'];
|
$profile_owner = local_user();
|
||||||
$page_writeable = true;
|
$page_writeable = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -381,12 +381,12 @@ function conversation(&$a, $items, $mode, $update) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$likebuttons = '';
|
$likebuttons = '';
|
||||||
|
$shareable = ((($profile_owner == local_user()) && ($mode != 'display') && (! $item['private'])) ? true : false);
|
||||||
|
|
||||||
if($page_writeable) {
|
if($page_writeable) {
|
||||||
if($toplevelpost) {
|
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'],
|
'$id' => $item['id'],
|
||||||
'$likethis' => t("I like this \x28toggle\x29"),
|
'$likethis' => t("I like this \x28toggle\x29"),
|
||||||
'$nolike' => t("I don't 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'))
|
if(! function_exists('imap_open'))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
$mbox = imap_open($mailbox,$username,$password);
|
$mbox = @imap_open($mailbox,$username,$password);
|
||||||
|
|
||||||
return $mbox;
|
return $mbox;
|
||||||
}
|
}
|
||||||
|
@ -14,19 +14,19 @@ function email_poll($mbox,$email_addr) {
|
||||||
if(! ($mbox && $email_addr))
|
if(! ($mbox && $email_addr))
|
||||||
return array();
|
return array();
|
||||||
|
|
||||||
$search1 = imap_search($mbox,'FROM "' . $email_addr . '"', SE_UID);
|
$search1 = @imap_search($mbox,'FROM "' . $email_addr . '"', SE_UID);
|
||||||
if(! $search1)
|
if(! $search1)
|
||||||
$search1 = array();
|
$search1 = array();
|
||||||
|
|
||||||
$search2 = imap_search($mbox,'TO "' . $email_addr . '"', SE_UID);
|
$search2 = @imap_search($mbox,'TO "' . $email_addr . '"', SE_UID);
|
||||||
if(! $search2)
|
if(! $search2)
|
||||||
$search2 = array();
|
$search2 = array();
|
||||||
|
|
||||||
$search3 = imap_search($mbox,'CC "' . $email_addr . '"', SE_UID);
|
$search3 = @imap_search($mbox,'CC "' . $email_addr . '"', SE_UID);
|
||||||
if(! $search3)
|
if(! $search3)
|
||||||
$search3 = array();
|
$search3 = array();
|
||||||
|
|
||||||
$search4 = imap_search($mbox,'BCC "' . $email_addr . '"', SE_UID);
|
$search4 = @imap_search($mbox,'BCC "' . $email_addr . '"', SE_UID);
|
||||||
if(! $search4)
|
if(! $search4)
|
||||||
$search4 = array();
|
$search4 = array();
|
||||||
|
|
||||||
|
@ -45,12 +45,12 @@ function construct_mailbox_name($mailacct) {
|
||||||
|
|
||||||
|
|
||||||
function email_msg_meta($mbox,$uid) {
|
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());
|
return ((count($ret)) ? $ret[0] : array());
|
||||||
}
|
}
|
||||||
|
|
||||||
function email_msg_headers($mbox,$uid) {
|
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);
|
$raw_header = str_replace("\r",'',$raw_header);
|
||||||
$ret = array();
|
$ret = array();
|
||||||
$h = split("\n",$raw_header);
|
$h = split("\n",$raw_header);
|
||||||
|
@ -74,7 +74,7 @@ function email_msg_headers($mbox,$uid) {
|
||||||
function email_get_msg($mbox,$uid) {
|
function email_get_msg($mbox,$uid) {
|
||||||
$ret = array();
|
$ret = array();
|
||||||
|
|
||||||
$struc = (($mbox && $uid) ? imap_fetchstructure($mbox,$uid,FT_UID) : null);
|
$struc = (($mbox && $uid) ? @imap_fetchstructure($mbox,$uid,FT_UID) : null);
|
||||||
|
|
||||||
if(! $struc)
|
if(! $struc)
|
||||||
return $ret;
|
return $ret;
|
||||||
|
@ -103,8 +103,8 @@ function email_get_part($mbox,$uid,$p,$partno) {
|
||||||
|
|
||||||
// DECODE DATA
|
// DECODE DATA
|
||||||
$data = ($partno)
|
$data = ($partno)
|
||||||
? imap_fetchbody($mbox,$uid,$partno, FT_UID|FT_PEEK)
|
? @imap_fetchbody($mbox,$uid,$partno, FT_UID|FT_PEEK)
|
||||||
: imap_body($mbox,$uid,FT_UID|FT_PEEK);
|
: @imap_body($mbox,$uid,FT_UID|FT_PEEK);
|
||||||
|
|
||||||
// Any part may be encoded, even plain text messages, so check everything.
|
// Any part may be encoded, even plain text messages, so check everything.
|
||||||
if ($p->encoding==4)
|
if ($p->encoding==4)
|
||||||
|
|
|
@ -124,7 +124,7 @@ function group_public_members($gid) {
|
||||||
$r = q("SELECT `contact`.`id` AS `contact-id` FROM `group_member`
|
$r = q("SELECT `contact`.`id` AS `contact-id` FROM `group_member`
|
||||||
LEFT JOIN `contact` ON `contact`.`id` = `group_member`.`contact-id`
|
LEFT JOIN `contact` ON `contact`.`id` = `group_member`.`contact-id`
|
||||||
WHERE `gid` = %d AND `group_member`.`uid` = %d
|
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($gid),
|
||||||
intval(local_user()),
|
intval(local_user()),
|
||||||
dbesc(NETWORK_OSTATUS)
|
dbesc(NETWORK_OSTATUS)
|
||||||
|
|
|
@ -24,6 +24,10 @@ function html2bbcode($s) {
|
||||||
'/\<u\>(.*?)\<\/u\>/is',
|
'/\<u\>(.*?)\<\/u\>/is',
|
||||||
'/\<ul\>(.*?)\<\/ul\>/is',
|
'/\<ul\>(.*?)\<\/ul\>/is',
|
||||||
'/\<li\>(.*?)\<\/li\>/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',
|
'/\<img(.*?) src=\"(.*?)\" (.*?)\>/is',
|
||||||
'/\<div(.*?)\>(.*?)\<\/div\>/is',
|
'/\<div(.*?)\>(.*?)\<\/div\>/is',
|
||||||
'/\<br(.*?)\>/is',
|
'/\<br(.*?)\>/is',
|
||||||
|
@ -50,6 +54,10 @@ function html2bbcode($s) {
|
||||||
'[u]$1[/u]',
|
'[u]$1[/u]',
|
||||||
'[list]$1[/list]',
|
'[list]$1[/list]',
|
||||||
'[*]$1',
|
'[*]$1',
|
||||||
|
'[img=$2x$4]$6[/img]',
|
||||||
|
'[img=$4x$2]$6[/img]',
|
||||||
|
'[img=$4x$6]$2[/img]',
|
||||||
|
'[img=$6x$4]$2[/img]',
|
||||||
'[img]$2[/img]',
|
'[img]$2[/img]',
|
||||||
'$2',
|
'$2',
|
||||||
"\n",
|
"\n",
|
||||||
|
|
|
@ -165,9 +165,11 @@
|
||||||
|
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
$this->lang=array();
|
$this->lang=array();
|
||||||
foreach ($a->strings as $k=>$v){
|
if(is_array($a->strings) && count($a->strings)) {
|
||||||
$k = preg_replace("/[^a-z0-9-]/", "", str_replace(" ","-", strtolower($k)));
|
foreach ($a->strings as $k=>$v){
|
||||||
$this->lang[$k] = $v;
|
$k = preg_replace("/[^a-z0-9-]/", "", str_replace(" ","-", strtolower($k)));
|
||||||
|
$this->lang[$k] = $v;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return $this->lang;
|
return $this->lang;
|
||||||
}
|
}
|
||||||
|
|
|
@ -482,13 +482,12 @@ function get_tags($s) {
|
||||||
// we might be inside a bbcode color tag - leave it alone
|
// we might be inside a bbcode color tag - leave it alone
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if(substr($mtch,-1,1) === '.')
|
||||||
|
$mtch = substr($mtch,0,-1);
|
||||||
// ignore strictly numeric tags like #1
|
// ignore strictly numeric tags like #1
|
||||||
if((strpos($mtch,'#') === 0) && ctype_digit(substr($mtch,1)))
|
if((strpos($mtch,'#') === 0) && ctype_digit(substr($mtch,1)))
|
||||||
continue;
|
continue;
|
||||||
if(substr($mtch,-1,1) === '.')
|
$ret[] = $mtch;
|
||||||
$ret[] = substr($mtch,0,-1);
|
|
||||||
else
|
|
||||||
$ret[] = $mtch;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $ret;
|
return $ret;
|
||||||
|
@ -579,11 +578,13 @@ function micropro($contact, $redirect = false, $class = '', $textmode = false) {
|
||||||
|
|
||||||
$url = $contact['url'];
|
$url = $contact['url'];
|
||||||
$sparkle = '';
|
$sparkle = '';
|
||||||
|
$redir = false;
|
||||||
|
|
||||||
if($redirect) {
|
if($redirect) {
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
$redirect_url = $a->get_baseurl() . '/redir/' . $contact['id'];
|
$redirect_url = $a->get_baseurl() . '/redir/' . $contact['id'];
|
||||||
if(local_user() && ($contact['uid'] == local_user()) && ($contact['network'] === 'dfrn')) {
|
if(local_user() && ($contact['uid'] == local_user()) && ($contact['network'] === 'dfrn')) {
|
||||||
|
$redir = true;
|
||||||
$url = $redirect_url;
|
$url = $redirect_url;
|
||||||
$sparkle = ' sparkle';
|
$sparkle = ' sparkle';
|
||||||
}
|
}
|
||||||
|
@ -594,6 +595,7 @@ function micropro($contact, $redirect = false, $class = '', $textmode = false) {
|
||||||
if($textmode) {
|
if($textmode) {
|
||||||
return '<div class="contact-block-textdiv' . $class . '"><a class="contact-block-link' . $class . $sparkle
|
return '<div class="contact-block-textdiv' . $class . '"><a class="contact-block-link' . $class . $sparkle
|
||||||
. (($click) ? ' fakelink' : '') . '" '
|
. (($click) ? ' fakelink' : '') . '" '
|
||||||
|
. (($redir) ? ' target="redir" ' : '')
|
||||||
. (($url) ? ' href="' . $url . '"' : '') . $click
|
. (($url) ? ' href="' . $url . '"' : '') . $click
|
||||||
. '" title="' . $contact['name'] . ' [' . $contact['url'] . ']" alt="' . $contact['name']
|
. '" title="' . $contact['name'] . ' [' . $contact['url'] . ']" alt="' . $contact['name']
|
||||||
. '" >'. $contact['name'] . '</a></div>' . "\r\n";
|
. '" >'. $contact['name'] . '</a></div>' . "\r\n";
|
||||||
|
@ -601,6 +603,7 @@ function micropro($contact, $redirect = false, $class = '', $textmode = false) {
|
||||||
else {
|
else {
|
||||||
return '<div class="contact-block-div' . $class . '"><a class="contact-block-link' . $class . $sparkle
|
return '<div class="contact-block-div' . $class . '"><a class="contact-block-link' . $class . $sparkle
|
||||||
. (($click) ? ' fakelink' : '') . '" '
|
. (($click) ? ' fakelink' : '') . '" '
|
||||||
|
. (($redir) ? ' target="redir" ' : '')
|
||||||
. (($url) ? ' href="' . $url . '"' : '') . $click . ' ><img class="contact-block-img' . $class . $sparkle . '" src="'
|
. (($url) ? ' href="' . $url . '"' : '') . $click . ' ><img class="contact-block-img' . $class . $sparkle . '" src="'
|
||||||
. $contact['micro'] . '" title="' . $contact['name'] . ' [' . $contact['url'] . ']" alt="' . $contact['name']
|
. $contact['micro'] . '" title="' . $contact['name'] . ' [' . $contact['url'] . ']" alt="' . $contact['name']
|
||||||
. '" /></a></div>' . "\r\n";
|
. '" /></a></div>' . "\r\n";
|
||||||
|
@ -640,7 +643,8 @@ function valid_email($x){
|
||||||
|
|
||||||
if(! function_exists('linkify')) {
|
if(! function_exists('linkify')) {
|
||||||
function linkify($s) {
|
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);
|
return($s);
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
@ -661,7 +665,7 @@ if(! function_exists('smilies')) {
|
||||||
function smilies($s) {
|
function smilies($s) {
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
|
||||||
return str_replace(
|
$s = str_replace(
|
||||||
array( '<3', '</3', '<\\3', ':-)', ':)', ';-)', ':-(', ':(', ':-P', ':P', ':-"', ':-x', ':-X', ':-D', '8-|', '8-O',
|
array( '<3', '</3', '<\\3', ':-)', ':)', ';-)', ':-(', ':(', ':-P', ':P', ':-"', ':-x', ':-X', ':-D', '8-|', '8-O',
|
||||||
'~friendika', 'Diaspora*' ),
|
'~friendika', 'Diaspora*' ),
|
||||||
array(
|
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>',
|
'<a href="http://joindiaspora.com">Diaspora<img src="' . $a->get_baseurl() . '/images/diaspora.png" alt="Diaspora*" /></a>',
|
||||||
|
|
||||||
), $s);
|
), $s);
|
||||||
|
|
||||||
|
call_hooks('smilie', $s);
|
||||||
|
return $s;
|
||||||
|
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
||||||
|
|
18
js/acl.js
18
js/acl.js
|
@ -58,7 +58,9 @@ ACL.prototype.on_search = function(event){
|
||||||
}
|
}
|
||||||
|
|
||||||
ACL.prototype.on_showall = function(event){
|
ACL.prototype.on_showall = function(event){
|
||||||
|
event.preventDefault()
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
|
|
||||||
if (that.showall.hasClass("selected")){
|
if (that.showall.hasClass("selected")){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -69,12 +71,14 @@ ACL.prototype.on_showall = function(event){
|
||||||
that.deny_cid = [];
|
that.deny_cid = [];
|
||||||
that.deny_gid = [];
|
that.deny_gid = [];
|
||||||
|
|
||||||
that.updateview();
|
that.update_view();
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
ACL.prototype.on_button_show = function(event){
|
ACL.prototype.on_button_show = function(event){
|
||||||
|
event.preventDefault()
|
||||||
|
event.stopImmediatePropagation()
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
|
|
||||||
/*that.showall.removeClass("selected");
|
/*that.showall.removeClass("selected");
|
||||||
|
@ -86,6 +90,8 @@ ACL.prototype.on_button_show = function(event){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
ACL.prototype.on_button_hide = function(event){
|
ACL.prototype.on_button_hide = function(event){
|
||||||
|
event.preventDefault()
|
||||||
|
event.stopImmediatePropagation()
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
|
|
||||||
/*that.showall.removeClass("selected");
|
/*that.showall.removeClass("selected");
|
||||||
|
@ -118,7 +124,7 @@ ACL.prototype.set_allow = function(itemid){
|
||||||
if (that.deny_cid.indexOf(id)>=0) that.deny_cid.remove(id);
|
if (that.deny_cid.indexOf(id)>=0) that.deny_cid.remove(id);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
that.updateview();
|
that.update_view();
|
||||||
}
|
}
|
||||||
|
|
||||||
ACL.prototype.set_deny = function(itemid){
|
ACL.prototype.set_deny = function(itemid){
|
||||||
|
@ -142,10 +148,10 @@ ACL.prototype.set_deny = function(itemid){
|
||||||
if (that.allow_cid.indexOf(id)>=0) that.allow_cid.remove(id);
|
if (that.allow_cid.indexOf(id)>=0) that.allow_cid.remove(id);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
that.updateview();
|
that.update_view();
|
||||||
}
|
}
|
||||||
|
|
||||||
ACL.prototype.updateview = function(){
|
ACL.prototype.update_view = function(){
|
||||||
if (that.allow_gid.length==0 && that.allow_cid.length==0 &&
|
if (that.allow_gid.length==0 && that.allow_cid.length==0 &&
|
||||||
that.deny_gid.length==0 && that.deny_cid.length==0){
|
that.deny_gid.length==0 && that.deny_cid.length==0){
|
||||||
that.showall.addClass("selected");
|
that.showall.addClass("selected");
|
||||||
|
@ -153,7 +159,7 @@ ACL.prototype.updateview = function(){
|
||||||
$('#jot-perms-icon').removeClass('lock').addClass('unlock');
|
$('#jot-perms-icon').removeClass('lock').addClass('unlock');
|
||||||
$('#jot-public').show();
|
$('#jot-public').show();
|
||||||
$('.profile-jot-net input').attr('disabled', false);
|
$('.profile-jot-net input').attr('disabled', false);
|
||||||
if(editor != false) {
|
if(typeof editor != 'undefined' && editor != false) {
|
||||||
$('#profile-jot-desc').html(ispublic);
|
$('#profile-jot-desc').html(ispublic);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -235,6 +241,6 @@ ACL.prototype.populate = function(data){
|
||||||
//console.log(html);
|
//console.log(html);
|
||||||
that.list_content.append(html);
|
that.list_content.append(html);
|
||||||
});
|
});
|
||||||
that.updateview();
|
that.update_view();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -157,6 +157,7 @@
|
||||||
if($('#live-network').length) { src = 'network'; liveUpdate(); }
|
if($('#live-network').length) { src = 'network'; liveUpdate(); }
|
||||||
if($('#live-profile').length) { src = 'profile'; liveUpdate(); }
|
if($('#live-profile').length) { src = 'profile'; liveUpdate(); }
|
||||||
if($('#live-community').length) { src = 'community'; liveUpdate(); }
|
if($('#live-community').length) { src = 'community'; liveUpdate(); }
|
||||||
|
if($('#live-notes').length) { src = 'notes'; liveUpdate(); }
|
||||||
if($('#live-display').length) {
|
if($('#live-display').length) {
|
||||||
if(liking) {
|
if(liking) {
|
||||||
liking = 0;
|
liking = 0;
|
||||||
|
|
|
@ -45,13 +45,20 @@ function events_post(&$a) {
|
||||||
$finish = datetime_convert('UTC','UTC',$finish);
|
$finish = datetime_convert('UTC','UTC',$finish);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Don't allow the event to finish before it begins.
|
||||||
|
// It won't hurt anything, but somebody will file a bug report
|
||||||
|
// and we'll waste a bunch of time responding to it. Time that
|
||||||
|
// could've been spent doing something else.
|
||||||
|
|
||||||
|
if(strcmp($finish,$start) < 0)
|
||||||
|
$finish = $start;
|
||||||
|
|
||||||
$desc = escape_tags(trim($_POST['desc']));
|
$desc = escape_tags(trim($_POST['desc']));
|
||||||
$location = escape_tags(trim($_POST['location']));
|
$location = escape_tags(trim($_POST['location']));
|
||||||
$type = 'event';
|
$type = 'event';
|
||||||
|
|
||||||
if((! $desc) || (! $start)) {
|
if((! $desc) || (! $start)) {
|
||||||
notice('Event description and start time are required.');
|
notice( t('Event description and start time are required.') . EOL);
|
||||||
goaway($a->get_baseurl() . '/events/new');
|
goaway($a->get_baseurl() . '/events/new');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
35
mod/item.php
35
mod/item.php
|
@ -38,6 +38,7 @@ function item_post(&$a) {
|
||||||
call_hooks('post_local_start', $_POST);
|
call_hooks('post_local_start', $_POST);
|
||||||
|
|
||||||
$api_source = ((x($_POST,'api_source') && $_POST['api_source']) ? true : false);
|
$api_source = ((x($_POST,'api_source') && $_POST['api_source']) ? true : false);
|
||||||
|
$return_path = ((x($_POST,'return')) ? $_POST['return'] : '');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Is this a reply to something?
|
* Is this a reply to something?
|
||||||
|
@ -82,7 +83,7 @@ function item_post(&$a) {
|
||||||
if(($r === false) || (! count($r))) {
|
if(($r === false) || (! count($r))) {
|
||||||
notice( t('Unable to locate original post.') . EOL);
|
notice( t('Unable to locate original post.') . EOL);
|
||||||
if(x($_POST,'return'))
|
if(x($_POST,'return'))
|
||||||
goaway($a->get_baseurl() . "/" . $_POST['return'] );
|
goaway($a->get_baseurl() . "/" . $return_path );
|
||||||
killme();
|
killme();
|
||||||
}
|
}
|
||||||
$parent_item = $r[0];
|
$parent_item = $r[0];
|
||||||
|
@ -111,7 +112,7 @@ function item_post(&$a) {
|
||||||
if(! can_write_wall($a,$profile_uid)) {
|
if(! can_write_wall($a,$profile_uid)) {
|
||||||
notice( t('Permission denied.') . EOL) ;
|
notice( t('Permission denied.') . EOL) ;
|
||||||
if(x($_POST,'return'))
|
if(x($_POST,'return'))
|
||||||
goaway($a->get_baseurl() . "/" . $_POST['return'] );
|
goaway($a->get_baseurl() . "/" . $return_path );
|
||||||
killme();
|
killme();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -197,7 +198,7 @@ function item_post(&$a) {
|
||||||
if(! strlen($body)) {
|
if(! strlen($body)) {
|
||||||
info( t('Empty post discarded.') . EOL );
|
info( t('Empty post discarded.') . EOL );
|
||||||
if(x($_POST,'return'))
|
if(x($_POST,'return'))
|
||||||
goaway($a->get_baseurl() . "/" . $_POST['return'] );
|
goaway($a->get_baseurl() . "/" . $return_path );
|
||||||
killme();
|
killme();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -549,9 +550,9 @@ function item_post(&$a) {
|
||||||
);
|
);
|
||||||
|
|
||||||
proc_run('php', "include/notifier.php", 'edit_post', "$post_id");
|
proc_run('php', "include/notifier.php", 'edit_post', "$post_id");
|
||||||
if((x($_POST,'return')) && strlen($_POST['return'])) {
|
if((x($_POST,'return')) && strlen($return_path)) {
|
||||||
logger('return: ' . $_POST['return']);
|
logger('return: ' . $return_path);
|
||||||
goaway($a->get_baseurl() . "/" . $_POST['return'] );
|
goaway($a->get_baseurl() . "/" . $return_path );
|
||||||
}
|
}
|
||||||
killme();
|
killme();
|
||||||
}
|
}
|
||||||
|
@ -798,11 +799,10 @@ function item_post(&$a) {
|
||||||
else {
|
else {
|
||||||
logger('mod_item: unable to retrieve post that was just stored.');
|
logger('mod_item: unable to retrieve post that was just stored.');
|
||||||
notify( t('System error. Post not saved.'));
|
notify( t('System error. Post not saved.'));
|
||||||
goaway($a->get_baseurl() . "/" . $_POST['return'] );
|
goaway($a->get_baseurl() . "/" . $return_path );
|
||||||
// NOTREACHED
|
// NOTREACHED
|
||||||
}
|
}
|
||||||
|
|
||||||
proc_run('php', "include/notifier.php", $notify_type, "$post_id");
|
|
||||||
|
|
||||||
$datarray['id'] = $post_id;
|
$datarray['id'] = $post_id;
|
||||||
$datarray['plink'] = $a->get_baseurl() . '/display/' . $user['nickname'] . '/' . $post_id;
|
$datarray['plink'] = $a->get_baseurl() . '/display/' . $user['nickname'] . '/' . $post_id;
|
||||||
|
@ -834,11 +834,16 @@ function item_post(&$a) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This is a real juggling act on shared hosting services which kill your processes
|
||||||
|
// e.g. dreamhost. We used to start delivery to our native delivery agents in the background
|
||||||
|
// and then run our plugin delivery from the foreground. We're now doing plugin delivery first,
|
||||||
|
// because as soon as you start loading up a bunch of remote delivey processes, *this* page is
|
||||||
|
// likely to get killed off. If you end up looking at an /item URL and a blank page,
|
||||||
|
// it's very likely the delivery got killed before all your friends could be notified.
|
||||||
|
// Currently the only realistic fixes are to use a reliable server - which precludes shared hosting,
|
||||||
|
// or cut back on plugins which do remote deliveries.
|
||||||
|
|
||||||
|
proc_run('php', "include/notifier.php", $notify_type, "$post_id");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
logger('post_complete');
|
logger('post_complete');
|
||||||
|
|
||||||
|
@ -847,10 +852,10 @@ function item_post(&$a) {
|
||||||
if($api_source)
|
if($api_source)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if((x($_POST,'return')) && strlen($_POST['return'])) {
|
if($return_path) {
|
||||||
logger('return: ' . $_POST['return']);
|
goaway($a->get_baseurl() . "/" . $return_path);
|
||||||
goaway($a->get_baseurl() . "/" . $_POST['return'] );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$json = array('success' => 1);
|
$json = array('success' => 1);
|
||||||
if(x($_POST,'jsreload') && strlen($_POST['jsreload']))
|
if(x($_POST,'jsreload') && strlen($_POST['jsreload']))
|
||||||
$json['reload'] = $a->get_baseurl() . '/' . $_POST['jsreload'];
|
$json['reload'] = $a->get_baseurl() . '/' . $_POST['jsreload'];
|
||||||
|
|
|
@ -26,16 +26,21 @@ function localtime_content(&$a) {
|
||||||
$o .= '<p>' . t('Friendika provides this service for sharing events with other networks and friends in unknown timezones.') . '</p>';
|
$o .= '<p>' . t('Friendika provides this service for sharing events with other networks and friends in unknown timezones.') . '</p>';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$o .= '<p>' . sprintf( t('UTC time: %s'), $t) . '</p>';
|
||||||
|
|
||||||
|
if($_REQUEST['timezone'])
|
||||||
|
$o .= '<p>' . sprintf( t('Current timezone: %s'), $_REQUEST['timezone']) . '</p>';
|
||||||
|
|
||||||
if(x($a->data,'mod-localtime'))
|
if(x($a->data,'mod-localtime'))
|
||||||
$o .= '<p>' . sprintf( t('Converted localtime: %s'),$a->data['mod-localtime']) . '</p>';
|
$o .= '<p>' . sprintf( t('Converted localtime: %s'),$a->data['mod-localtime']) . '</p>';
|
||||||
|
|
||||||
$o .= '<p>' . sprintf( t('UTC time: %s'), $t) . '</p>';
|
|
||||||
|
|
||||||
$o .= '<form action ="' . $a->get_baseurl() . '/localtime?f=&time=' . $t . '" method="post" >';
|
$o .= '<form action ="' . $a->get_baseurl() . '/localtime?f=&time=' . $t . '" method="post" >';
|
||||||
|
|
||||||
$o .= '<p>' . t('Please select your timezone:') . '</p>';
|
$o .= '<p>' . t('Please select your timezone:') . '</p>';
|
||||||
|
|
||||||
$o .= select_timezone();
|
$o .= select_timezone(($_REQUEST['timezone']) ? $_REQUEST['timezone'] : 'America/Los_Angeles');
|
||||||
|
|
||||||
$o .= '<input type="submit" name="submit" value="' . t('Submit') . '" /></form>';
|
$o .= '<input type="submit" name="submit" value="' . t('Submit') . '" /></form>';
|
||||||
|
|
||||||
|
|
128
mod/network.php
128
mod/network.php
|
@ -20,6 +20,7 @@ function network_init(&$a) {
|
||||||
$srchurl = '/network'
|
$srchurl = '/network'
|
||||||
. ((x($_GET,'cid')) ? '?cid=' . $_GET['cid'] : '')
|
. ((x($_GET,'cid')) ? '?cid=' . $_GET['cid'] : '')
|
||||||
. ((x($_GET,'star')) ? '?star=' . $_GET['star'] : '')
|
. ((x($_GET,'star')) ? '?star=' . $_GET['star'] : '')
|
||||||
|
. ((x($_GET,'order')) ? '?order=' . $_GET['order'] : '')
|
||||||
. ((x($_GET,'bmark')) ? '?bmark=' . $_GET['bmark'] : '');
|
. ((x($_GET,'bmark')) ? '?bmark=' . $_GET['bmark'] : '');
|
||||||
|
|
||||||
if(x($_GET,'save')) {
|
if(x($_GET,'save')) {
|
||||||
|
@ -127,9 +128,11 @@ function network_content(&$a, $update = 0) {
|
||||||
$nouveau = false;
|
$nouveau = false;
|
||||||
require_once('include/acl_selectors.php');
|
require_once('include/acl_selectors.php');
|
||||||
|
|
||||||
$cid = ((x($_GET['cid'])) ? intval($_GET['cid']) : 0);
|
$cid = ((x($_GET,'cid')) ? intval($_GET['cid']) : 0);
|
||||||
$star = ((x($_GET['star'])) ? intval($_GET['star']) : 0);
|
$star = ((x($_GET,'star')) ? intval($_GET['star']) : 0);
|
||||||
$bmark = ((x($_GET['bmark'])) ? intval($_GET['bmark']) : 0);
|
$bmark = ((x($_GET,'bmark')) ? intval($_GET['bmark']) : 0);
|
||||||
|
$order = ((x($_GET,'order')) ? notags($_GET['order']) : 'comment');
|
||||||
|
|
||||||
|
|
||||||
if(($a->argc > 2) && $a->argv[2] === 'new')
|
if(($a->argc > 2) && $a->argv[2] === 'new')
|
||||||
$nouveau = true;
|
$nouveau = true;
|
||||||
|
@ -190,6 +193,7 @@ function network_content(&$a, $update = 0) {
|
||||||
. ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : '')
|
. ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : '')
|
||||||
. ((x($_GET,'search')) ? '&search=' . $_GET['search'] : '')
|
. ((x($_GET,'search')) ? '&search=' . $_GET['search'] : '')
|
||||||
. ((x($_GET,'star')) ? '&star=' . $_GET['star'] : '')
|
. ((x($_GET,'star')) ? '&star=' . $_GET['star'] : '')
|
||||||
|
. ((x($_GET,'order')) ? '&order=' . $_GET['order'] : '')
|
||||||
. ((x($_GET,'bmark')) ? '&bmark=' . $_GET['bmark'] : '')
|
. ((x($_GET,'bmark')) ? '&bmark=' . $_GET['bmark'] : '')
|
||||||
. "'; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
|
. "'; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
|
||||||
|
|
||||||
|
@ -312,28 +316,43 @@ function network_content(&$a, $update = 0) {
|
||||||
|
|
||||||
// Normal conversation view
|
// Normal conversation view
|
||||||
// Show conversation by activity date
|
// Show conversation by activity date
|
||||||
|
|
||||||
|
|
||||||
// First fetch a known number of parent items
|
|
||||||
|
|
||||||
$r = q("SELECT `item`.`id` AS `item_id`, `contact`.`uid` AS `contact_uid`
|
|
||||||
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
|
if($order === 'post') {
|
||||||
, (SELECT `_com`.`parent`,max(`_com`.`created`) as `created`
|
$r = q("SELECT `item`.`id` AS `item_id`, `contact`.`uid` AS `contact_uid`
|
||||||
FROM `item` AS `_com`
|
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
|
||||||
WHERE `_com`.`uid`=%d AND
|
WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
|
||||||
(`_com`.`parent`!=`_com`.`id` OR `_com`.`id` NOT IN (SELECT `__com`.`parent` FROM `item` as `__com` WHERE `__com`.`parent`!=`__com`.`id`))
|
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
|
||||||
GROUP BY `_com`.`parent` ORDER BY `created` DESC) AS `com`
|
AND `item`.`parent` = `item`.`id`
|
||||||
WHERE `item`.`id`=`com`.`parent` AND
|
$sql_extra
|
||||||
`item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
|
ORDER BY `item`.`created` DESC LIMIT %d ,%d ",
|
||||||
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
|
intval(local_user()),
|
||||||
|
intval($a->pager['start']),
|
||||||
$sql_extra
|
intval($a->pager['itemspage'])
|
||||||
ORDER BY `com`.`created` DESC LIMIT %d ,%d ",
|
);
|
||||||
intval(local_user()),
|
}
|
||||||
intval(local_user()),
|
else {
|
||||||
intval($a->pager['start']),
|
// $order === 'comment'
|
||||||
intval($a->pager['itemspage'])
|
// First fetch a known number of parent items
|
||||||
);
|
|
||||||
|
$r = q("SELECT `item`.`id` AS `item_id`, `contact`.`uid` AS `contact_uid`
|
||||||
|
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
|
||||||
|
, (SELECT `_com`.`parent`,max(`_com`.`created`) as `created`
|
||||||
|
FROM `item` AS `_com`
|
||||||
|
WHERE `_com`.`uid`=%d AND
|
||||||
|
(`_com`.`parent`!=`_com`.`id` OR `_com`.`id` NOT IN (SELECT `__com`.`parent` FROM `item` as `__com` WHERE `__com`.`parent`!=`__com`.`id`))
|
||||||
|
GROUP BY `_com`.`parent` ORDER BY `created` DESC) AS `com`
|
||||||
|
WHERE `item`.`id`=`com`.`parent` AND
|
||||||
|
`item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
|
||||||
|
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
|
||||||
|
$sql_extra
|
||||||
|
ORDER BY `com`.`created` DESC LIMIT %d ,%d ",
|
||||||
|
intval(local_user()),
|
||||||
|
intval(local_user()),
|
||||||
|
intval($a->pager['start']),
|
||||||
|
intval($a->pager['itemspage'])
|
||||||
|
);
|
||||||
|
}
|
||||||
// Then fetch all the children of the parents that are on this page
|
// Then fetch all the children of the parents that are on this page
|
||||||
|
|
||||||
$parents_arr = array();
|
$parents_arr = array();
|
||||||
|
@ -344,26 +363,47 @@ function network_content(&$a, $update = 0) {
|
||||||
$parents_arr[] = $rr['item_id'];
|
$parents_arr[] = $rr['item_id'];
|
||||||
$parents_str = implode(', ', $parents_arr);
|
$parents_str = implode(', ', $parents_arr);
|
||||||
|
|
||||||
$r = q("SELECT `item`.*, `item`.`id` AS `item_id`,
|
if($order === 'post') {
|
||||||
`contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`, `contact`.`writable`,
|
// parent created order
|
||||||
`contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
|
$r = q("SELECT `item`.*, `item`.`id` AS `item_id`,
|
||||||
`contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
|
`contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`, `contact`.`writable`,
|
||||||
FROM `item`, `contact`,
|
`contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
|
||||||
(SELECT `_com`.`parent`,max(`_com`.`created`) as `created`
|
`contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
|
||||||
FROM `item` AS `_com`
|
FROM `item`, (SELECT `p`.`id`,`p`.`created` FROM `item` AS `p` WHERE `p`.`parent`=`p`.`id`) as `parentitem`, `contact`
|
||||||
WHERE `_com`.`uid`=%d AND
|
WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
|
||||||
(`_com`.`parent`!=`_com`.`id` OR `_com`.`id` NOT IN (SELECT `__com`.`parent` FROM `item` as `__com` WHERE `__com`.`parent`!=`__com`.`id`))
|
AND `contact`.`id` = `item`.`contact-id`
|
||||||
GROUP BY `_com`.`parent` ORDER BY `created` DESC) AS `com`
|
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
|
||||||
WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
|
AND `item`.`parent` = `parentitem`.`id` AND `item`.`parent` IN ( %s )
|
||||||
AND `contact`.`id` = `item`.`contact-id`
|
$sql_extra
|
||||||
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
|
ORDER BY `parentitem`.`created` DESC, `item`.`gravity` ASC, `item`.`created` ASC ",
|
||||||
AND `item`.`parent` = `com`.`parent` AND `item`.`parent` IN ( %s )
|
intval(local_user()),
|
||||||
$sql_extra
|
dbesc($parents_str)
|
||||||
ORDER BY `com`.`created` DESC, `item`.`gravity` ASC, `item`.`created` ASC ",
|
);
|
||||||
intval(local_user()),
|
}
|
||||||
intval(local_user()),
|
else {
|
||||||
dbesc($parents_str)
|
// $order === 'comment'
|
||||||
);
|
|
||||||
|
$r = q("SELECT `item`.*, `item`.`id` AS `item_id`,
|
||||||
|
`contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`, `contact`.`writable`,
|
||||||
|
`contact`.`network`, `contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`,
|
||||||
|
`contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid`
|
||||||
|
FROM `item`, `contact`,
|
||||||
|
(SELECT `_com`.`parent`,max(`_com`.`created`) as `created`
|
||||||
|
FROM `item` AS `_com`
|
||||||
|
WHERE `_com`.`uid`=%d AND
|
||||||
|
(`_com`.`parent`!=`_com`.`id` OR `_com`.`id` NOT IN (SELECT `__com`.`parent` FROM `item` as `__com` WHERE `__com`.`parent`!=`__com`.`id`))
|
||||||
|
GROUP BY `_com`.`parent` ORDER BY `created` DESC) AS `com`
|
||||||
|
WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
|
||||||
|
AND `contact`.`id` = `item`.`contact-id`
|
||||||
|
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
|
||||||
|
AND `item`.`parent` = `com`.`parent` AND `item`.`parent` IN ( %s )
|
||||||
|
$sql_extra
|
||||||
|
ORDER BY `com`.`created` DESC, `item`.`gravity` ASC, `item`.`created` ASC ",
|
||||||
|
intval(local_user()),
|
||||||
|
intval(local_user()),
|
||||||
|
dbesc($parents_str)
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ function notes_init(&$a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function notes_content(&$a) {
|
function notes_content(&$a,$update = false) {
|
||||||
|
|
||||||
if(! local_user()) {
|
if(! local_user()) {
|
||||||
notice( t('Permission denied.') . EOL);
|
notice( t('Permission denied.') . EOL);
|
||||||
|
@ -52,31 +52,37 @@ function notes_content(&$a) {
|
||||||
));
|
));
|
||||||
|
|
||||||
|
|
||||||
$o .= '<h3>' . t('Personal Notes') . '</h3>';
|
if(! $update) {
|
||||||
|
$o .= '<h3>' . t('Personal Notes') . '</h3>';
|
||||||
|
|
||||||
$commpage = false;
|
$commpage = false;
|
||||||
$commvisitor = false;
|
$commvisitor = false;
|
||||||
|
|
||||||
$celeb = false;
|
$celeb = false;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$x = array(
|
$x = array(
|
||||||
'is_owner' => $is_owner,
|
'is_owner' => $is_owner,
|
||||||
'allow_location' => (($a->user['allow_location']) ? true : false),
|
'allow_location' => (($a->user['allow_location']) ? true : false),
|
||||||
'default_location' => $a->user['default-location'],
|
'default_location' => $a->user['default-location'],
|
||||||
'nickname' => $a->user['nickname'],
|
'nickname' => $a->user['nickname'],
|
||||||
'lockstate' => 'lock',
|
'lockstate' => 'lock',
|
||||||
'acl' => '',
|
'acl' => '',
|
||||||
'bang' => '',
|
'bang' => '',
|
||||||
'visitor' => 'block',
|
'visitor' => 'block',
|
||||||
'profile_uid' => local_user(),
|
'profile_uid' => local_user(),
|
||||||
'button' => t('Save')
|
'button' => t('Save')
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
||||||
$o .= status_editor($a,$x,$a->contact['id']);
|
$o .= status_editor($a,$x,$a->contact['id']);
|
||||||
|
|
||||||
|
$o .= '<div id="live-notes"></div>' . "\r\n";
|
||||||
|
$o .= "<script> var profile_uid = " . local_user()
|
||||||
|
. "; var netargs = '/?f='; var profile_page = " . $a->pager['page'] . "; </script>\r\n";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// Construct permissions
|
// Construct permissions
|
||||||
|
|
||||||
|
|
|
@ -155,9 +155,15 @@ function profile_photo_content(&$a) {
|
||||||
notice( t('Permission denied.') . EOL );
|
notice( t('Permission denied.') . EOL );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
$havescale = false;
|
||||||
|
foreach($r as $rr) {
|
||||||
|
if($rr['scale'] == 5)
|
||||||
|
$havescale = true;
|
||||||
|
}
|
||||||
|
|
||||||
// set an already uloaded photo as profile photo
|
// set an already uloaded photo as profile photo
|
||||||
// if photo is in 'Profile Photos', change it in db
|
// if photo is in 'Profile Photos', change it in db
|
||||||
if ($r[0]['album']== t('Profile Photos')){
|
if (($r[0]['album']== t('Profile Photos')) && ($havescale)){
|
||||||
$r=q("UPDATE `photo` SET `profile`=0 WHERE `profile`=1 AND `uid`=%d",
|
$r=q("UPDATE `photo` SET `profile`=0 WHERE `profile`=1 AND `uid`=%d",
|
||||||
intval(local_user()));
|
intval(local_user()));
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,59 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
function search_saved_searches() {
|
||||||
|
|
||||||
|
$o = '';
|
||||||
|
|
||||||
|
$r = q("select `term` from `search` WHERE `uid` = %d",
|
||||||
|
intval(local_user())
|
||||||
|
);
|
||||||
|
|
||||||
|
if(count($r)) {
|
||||||
|
$o .= '<h3>' . t('Saved Searches') . '</h3>' . "\r\n";
|
||||||
|
$o .= '<div id="saved-search-list"><ul id="saved-search-ul">' . "\r\n";
|
||||||
|
foreach($r as $rr) {
|
||||||
|
$o .= '<li class="saved-search-li clear"><a href="search/?f=&remove=1&search=' . $rr['term'] . '" class="icon drophide savedsearchdrop" title="' . t('Remove term') . '" onclick="return confirmDelete();" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a> <a href="search/?f&search=' . $rr['term'] . '" class="savedsearchterm" >' . $rr['term'] . '</a></li>' . "\r\n";
|
||||||
|
}
|
||||||
|
$o .= '</ul></div>' . "\r\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
return $o;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function search_init(&$a) {
|
||||||
|
|
||||||
|
$search = ((x($_GET,'search')) ? notags(trim(rawurldecode($_GET['search']))) : '');
|
||||||
|
|
||||||
|
if(local_user()) {
|
||||||
|
if(x($_GET,'save') && $search) {
|
||||||
|
$r = q("select * from `search` where `uid` = %d and `term` = '%s' limit 1",
|
||||||
|
intval(local_user()),
|
||||||
|
dbesc($search)
|
||||||
|
);
|
||||||
|
if(! count($r)) {
|
||||||
|
q("insert into `search` ( `uid`,`term` ) values ( %d, '%s') ",
|
||||||
|
intval(local_user()),
|
||||||
|
dbesc($search)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(x($_GET,'remove') && $search) {
|
||||||
|
q("delete from `search` where `uid` = %d and `term` = '%s' limit 1",
|
||||||
|
intval(local_user()),
|
||||||
|
dbesc($search)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$a->page['aside'] .= search_saved_searches();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function search_post(&$a) {
|
function search_post(&$a) {
|
||||||
if(x($_POST,'search'))
|
if(x($_POST,'search'))
|
||||||
|
@ -32,7 +86,7 @@ function search_content(&$a) {
|
||||||
else
|
else
|
||||||
$search = ((x($_GET,'search')) ? notags(trim(rawurldecode($_GET['search']))) : '');
|
$search = ((x($_GET,'search')) ? notags(trim(rawurldecode($_GET['search']))) : '');
|
||||||
|
|
||||||
$o .= search($search);
|
$o .= search($search,'search-box','/search',((local_user()) ? true : false));
|
||||||
|
|
||||||
if(! $search)
|
if(! $search)
|
||||||
return $o;
|
return $o;
|
||||||
|
|
60
mod/update_notes.php
Normal file
60
mod/update_notes.php
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Module: update_profile
|
||||||
|
* Purpose: AJAX synchronisation of profile page
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
require_once('mod/notes.php');
|
||||||
|
|
||||||
|
function update_notes_content(&$a) {
|
||||||
|
|
||||||
|
$profile_uid = intval($_GET['p']);
|
||||||
|
|
||||||
|
header("Content-type: text/html");
|
||||||
|
echo "<!DOCTYPE html><html><body>\r\n";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* We can remove this hack once Internet Explorer recognises HTML5 natively
|
||||||
|
*/
|
||||||
|
|
||||||
|
echo (($_GET['msie'] == 1) ? '<div>' : '<section>');
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Grab the page inner contents by calling the content function from the profile module directly,
|
||||||
|
* but move any image src attributes to another attribute name. This is because
|
||||||
|
* some browsers will prefetch all the images for the page even if we don't need them.
|
||||||
|
* The only ones we need to fetch are those for new page additions, which we'll discover
|
||||||
|
* on the client side and then swap the image back.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
$text = notes_content($a,$profile_uid);
|
||||||
|
|
||||||
|
$pattern = "/<img([^>]*) src=\"([^\"]*)\"/";
|
||||||
|
$replace = "<img\${1} dst=\"\${2}\"";
|
||||||
|
$text = preg_replace($pattern, $replace, $text);
|
||||||
|
|
||||||
|
$replace = '<br />' . t('[Embedded content - reload page to view]') . '<br />';
|
||||||
|
$pattern = "/<\s*audio[^>]*>(.*?)<\s*\/\s*audio>/i";
|
||||||
|
$text = preg_replace($pattern, $replace, $text);
|
||||||
|
$pattern = "/<\s*video[^>]*>(.*?)<\s*\/\s*video>/i";
|
||||||
|
$text = preg_replace($pattern, $replace, $text);
|
||||||
|
$pattern = "/<\s*embed[^>]*>(.*?)<\s*\/\s*embed>/i";
|
||||||
|
$text = preg_replace($pattern, $replace, $text);
|
||||||
|
$pattern = "/<\s*iframe[^>]*>(.*?)<\s*\/\s*iframe>/i";
|
||||||
|
$text = preg_replace($pattern, $replace, $text);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* reportedly some versions of MSIE don't handle tabs in XMLHttpRequest documents very well
|
||||||
|
*/
|
||||||
|
|
||||||
|
echo str_replace("\t",' ',$text);
|
||||||
|
echo (($_GET['msie'] == 1) ? '</div>' : '</section>');
|
||||||
|
echo "</body></html>\r\n";
|
||||||
|
killme();
|
||||||
|
|
||||||
|
}
|
|
@ -61,7 +61,7 @@ function wall_attach_post(&$a) {
|
||||||
|
|
||||||
$filedata = @file_get_contents($src);
|
$filedata = @file_get_contents($src);
|
||||||
$mimetype = z_mime_content_type($filename);
|
$mimetype = z_mime_content_type($filename);
|
||||||
if((! strlen($mimetype)) || ($mimetype === 'application/octet-stream') && function_exists('mime_content_type'))
|
if(((! strlen($mimetype)) || ($mimetype === 'application/octet-stream')) && function_exists('mime_content_type'))
|
||||||
$mimetype = mime_content_type($filename);
|
$mimetype = mime_content_type($filename);
|
||||||
$hash = random_string();
|
$hash = random_string();
|
||||||
$created = datetime_convert();
|
$created = datetime_convert();
|
||||||
|
|
3109
view/es/messages.po
3109
view/es/messages.po
File diff suppressed because it is too large
Load diff
|
@ -4,7 +4,7 @@
|
||||||
<div class="wall-item-photo-wrapper" id="wall-item-photo-wrapper-$id"
|
<div class="wall-item-photo-wrapper" id="wall-item-photo-wrapper-$id"
|
||||||
onmouseover="if (typeof t$id != 'undefined') clearTimeout(t$id); openMenu('wall-item-photo-menu-button-$id')"
|
onmouseover="if (typeof t$id != 'undefined') clearTimeout(t$id); openMenu('wall-item-photo-menu-button-$id')"
|
||||||
onmouseout="t$id=setTimeout('closeMenu(\'wall-item-photo-menu-button-$id\'); closeMenu(\'wall-item-photo-menu-$id\');',200)">
|
onmouseout="t$id=setTimeout('closeMenu(\'wall-item-photo-menu-button-$id\'); closeMenu(\'wall-item-photo-menu-$id\');',200)">
|
||||||
<a href="$profile_url" title="$linktitle" class="wall-item-photo-link" id="wall-item-photo-link-$id">
|
<a href="$profile_url" target="redir" title="$linktitle" class="wall-item-photo-link" id="wall-item-photo-link-$id">
|
||||||
<img src="$thumb" class="wall-item-photo$sparkle" id="wall-item-photo-$id" style="height: 80px; width: 80px;" alt="$name" /></a>
|
<img src="$thumb" class="wall-item-photo$sparkle" id="wall-item-photo-$id" style="height: 80px; width: 80px;" alt="$name" /></a>
|
||||||
<span onclick="openClose('wall-item-photo-menu-$id');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-$id">menu</span>
|
<span onclick="openClose('wall-item-photo-menu-$id');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-$id">menu</span>
|
||||||
<div class="wall-item-photo-menu" id="wall-item-photo-menu-$id">
|
<div class="wall-item-photo-menu" id="wall-item-photo-menu-$id">
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="wall-item-author">
|
<div class="wall-item-author">
|
||||||
<a href="$profile_url" title="$linktitle" class="wall-item-name-link"><span class="wall-item-name$sparkle" id="wall-item-name-$id" >$name</span></a>
|
<a href="$profile_url" target="redir" title="$linktitle" class="wall-item-name-link"><span class="wall-item-name$sparkle" id="wall-item-name-$id" >$name</span></a>
|
||||||
<div class="wall-item-ago" id="wall-item-ago-$id">$ago</div>
|
<div class="wall-item-ago" id="wall-item-ago-$id">$ago</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<div class="wall-item-photo-wrapper" id="wall-item-photo-wrapper-$id"
|
<div class="wall-item-photo-wrapper" id="wall-item-photo-wrapper-$id"
|
||||||
onmouseover="if (typeof t$id != 'undefined') clearTimeout(t$id); openMenu('wall-item-photo-menu-button-$id')"
|
onmouseover="if (typeof t$id != 'undefined') clearTimeout(t$id); openMenu('wall-item-photo-menu-button-$id')"
|
||||||
onmouseout="t$id=setTimeout('closeMenu(\'wall-item-photo-menu-button-$id\'); closeMenu(\'wall-item-photo-menu-$id\');',200)">
|
onmouseout="t$id=setTimeout('closeMenu(\'wall-item-photo-menu-button-$id\'); closeMenu(\'wall-item-photo-menu-$id\');',200)">
|
||||||
<a href="$profile_url" title="$linktitle" class="wall-item-photo-link" id="wall-item-photo-link-$id">
|
<a href="$profile_url" target="redir" title="$linktitle" class="wall-item-photo-link" id="wall-item-photo-link-$id">
|
||||||
<img src="$thumb" class="wall-item-photo$sparkle" id="wall-item-photo-$id" style="height: 80px; width: 80px;" alt="$name" />
|
<img src="$thumb" class="wall-item-photo$sparkle" id="wall-item-photo-$id" style="height: 80px; width: 80px;" alt="$name" />
|
||||||
</a>
|
</a>
|
||||||
<span onclick="openClose('wall-item-photo-menu-$id');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-$id">menu</span>
|
<span onclick="openClose('wall-item-photo-menu-$id');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-$id">menu</span>
|
||||||
|
@ -21,7 +21,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="wall-item-author">
|
<div class="wall-item-author">
|
||||||
<a href="$profile_url" title="$linktitle" class="wall-item-name-link"><span class="wall-item-name$sparkle" id="wall-item-name-$id" >$name</span></a>
|
<a href="$profile_url" target="redir" title="$linktitle" class="wall-item-name-link"><span class="wall-item-name$sparkle" id="wall-item-name-$id" >$name</span></a>
|
||||||
<div class="wall-item-ago" id="wall-item-ago-$id">$ago</div>
|
<div class="wall-item-ago" id="wall-item-ago-$id">$ago</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -2,14 +2,14 @@
|
||||||
<div class="wall-item-content-wrapper$indent" id="wall-item-content-wrapper-$id" >
|
<div class="wall-item-content-wrapper$indent" id="wall-item-content-wrapper-$id" >
|
||||||
<div class="wall-item-info wallwall" id="wall-item-info-$id">
|
<div class="wall-item-info wallwall" id="wall-item-info-$id">
|
||||||
<div class="wall-item-photo-wrapper wwto" id="wall-item-ownerphoto-wrapper-$id" >
|
<div class="wall-item-photo-wrapper wwto" id="wall-item-ownerphoto-wrapper-$id" >
|
||||||
<a href="$owner_url" title="$olinktitle" class="wall-item-photo-link" id="wall-item-ownerphoto-link-$id">
|
<a href="$owner_url" target="redir" title="$olinktitle" class="wall-item-photo-link" id="wall-item-ownerphoto-link-$id">
|
||||||
<img src="$owner_photo" class="wall-item-photo$osparkle" id="wall-item-ownerphoto-$id" style="height: 80px; width: 80px;" alt="$owner_name" /></a>
|
<img src="$owner_photo" class="wall-item-photo$osparkle" id="wall-item-ownerphoto-$id" style="height: 80px; width: 80px;" alt="$owner_name" /></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="wall-item-arrowphoto-wrapper" ><img src="images/larrow.gif" alt="$wall" /></div>
|
<div class="wall-item-arrowphoto-wrapper" ><img src="images/larrow.gif" alt="$wall" /></div>
|
||||||
<div class="wall-item-photo-wrapper wwfrom" id="wall-item-photo-wrapper-$id"
|
<div class="wall-item-photo-wrapper wwfrom" id="wall-item-photo-wrapper-$id"
|
||||||
onmouseover="if (typeof t$id != 'undefined') clearTimeout(t$id); openMenu('wall-item-photo-menu-button-$id')"
|
onmouseover="if (typeof t$id != 'undefined') clearTimeout(t$id); openMenu('wall-item-photo-menu-button-$id')"
|
||||||
onmouseout="t$id=setTimeout('closeMenu(\'wall-item-photo-menu-button-$id\'); closeMenu(\'wall-item-photo-menu-$id\');',200)">
|
onmouseout="t$id=setTimeout('closeMenu(\'wall-item-photo-menu-button-$id\'); closeMenu(\'wall-item-photo-menu-$id\');',200)">
|
||||||
<a href="$profile_url" title="$linktitle" class="wall-item-photo-link" id="wall-item-photo-link-$id">
|
<a href="$profile_url" target="redir" title="$linktitle" class="wall-item-photo-link" id="wall-item-photo-link-$id">
|
||||||
<img src="$thumb" class="wall-item-photo$sparkle" id="wall-item-photo-$id" style="height: 80px; width: 80px;" alt="$name" /></a>
|
<img src="$thumb" class="wall-item-photo$sparkle" id="wall-item-photo-$id" style="height: 80px; width: 80px;" alt="$name" /></a>
|
||||||
<span onclick="openClose('wall-item-photo-menu-$id');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-$id">menu</span>
|
<span onclick="openClose('wall-item-photo-menu-$id');" class="fakelink wall-item-photo-menu-button" id="wall-item-photo-menu-button-$id">menu</span>
|
||||||
<div class="wall-item-photo-menu" id="wall-item-photo-menu-$id">
|
<div class="wall-item-photo-menu" id="wall-item-photo-menu-$id">
|
||||||
|
@ -26,7 +26,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="wall-item-author">
|
<div class="wall-item-author">
|
||||||
<a href="$profile_url" title="$linktitle" class="wall-item-name-link"><span class="wall-item-name$sparkle" id="wall-item-name-$id" >$name</span></a> $to <a href="$owner_url" title="$olinktitle" class="wall-item-name-link"><span class="wall-item-name$osparkle" id="wall-item-ownername-$id">$owner_name</span></a> $vwall<br />
|
<a href="$profile_url" target="redir" title="$linktitle" class="wall-item-name-link"><span class="wall-item-name$sparkle" id="wall-item-name-$id" >$name</span></a> $to <a href="$owner_url" target="redir" title="$olinktitle" class="wall-item-name-link"><span class="wall-item-name$osparkle" id="wall-item-ownername-$id">$owner_name</span></a> $vwall<br />
|
||||||
<div class="wall-item-ago" id="wall-item-ago-$id">$ago</div>
|
<div class="wall-item-ago" id="wall-item-ago-$id">$ago</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="wall-item-content" id="wall-item-content-$id" >
|
<div class="wall-item-content" id="wall-item-content-$id" >
|
||||||
|
|
4
zot.txt
4
zot.txt
|
@ -1,7 +1,7 @@
|
||||||
This is the Zot! social communications protocol.
|
This is the Zot! social communications protocol.
|
||||||
|
|
||||||
Specification revision: 1
|
Specification revision: 1
|
||||||
02 September 2011
|
15 September 2011
|
||||||
|
|
||||||
Mike Macgirvin
|
Mike Macgirvin
|
||||||
This specification is public domain.
|
This specification is public domain.
|
||||||
|
@ -181,7 +181,7 @@ delivery method for non-encrypted (e.g. public) messages.
|
||||||
|
|
||||||
Discover of the zot endpoint is based on webfinger XRD:
|
Discover of the zot endpoint is based on webfinger XRD:
|
||||||
|
|
||||||
<link rel="http://purl.org/zot/1.0/post"
|
<Link rel="http://purl.org/zot/1.0/post"
|
||||||
href="http://example/org/zot-endpoint" />
|
href="http://example/org/zot-endpoint" />
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue