Merge branch 'master' into groups
This commit is contained in:
commit
fd4fe24406
12 changed files with 89 additions and 38 deletions
4
boot.php
4
boot.php
|
@ -9,9 +9,9 @@ require_once('include/nav.php');
|
||||||
require_once('include/cache.php');
|
require_once('include/cache.php');
|
||||||
|
|
||||||
define ( 'FRIENDIKA_PLATFORM', 'Friendica');
|
define ( 'FRIENDIKA_PLATFORM', 'Friendica');
|
||||||
define ( 'FRIENDIKA_VERSION', '2.3.1166' );
|
define ( 'FRIENDIKA_VERSION', '2.3.1169' );
|
||||||
define ( 'DFRN_PROTOCOL_VERSION', '2.22' );
|
define ( 'DFRN_PROTOCOL_VERSION', '2.22' );
|
||||||
define ( 'DB_UPDATE_VERSION', 1103 );
|
define ( 'DB_UPDATE_VERSION', 1105 );
|
||||||
|
|
||||||
define ( 'EOL', "<br />\r\n" );
|
define ( 'EOL', "<br />\r\n" );
|
||||||
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
|
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
|
||||||
|
|
11
database.sql
11
database.sql
|
@ -113,7 +113,8 @@ CREATE TABLE IF NOT EXISTS `contact` (
|
||||||
KEY `issued-id` (`issued-id`),
|
KEY `issued-id` (`issued-id`),
|
||||||
KEY `dfrn-id` (`dfrn-id`),
|
KEY `dfrn-id` (`dfrn-id`),
|
||||||
KEY `blocked` (`blocked`),
|
KEY `blocked` (`blocked`),
|
||||||
KEY `readonly` (`readonly`)
|
KEY `readonly` (`readonly`),
|
||||||
|
KEY `pending` (`pending`)
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
-- --------------------------------------------------------
|
-- --------------------------------------------------------
|
||||||
|
@ -225,6 +226,7 @@ CREATE TABLE IF NOT EXISTS `item` (
|
||||||
`unseen` tinyint(1) NOT NULL DEFAULT '1',
|
`unseen` tinyint(1) NOT NULL DEFAULT '1',
|
||||||
`deleted` tinyint(1) NOT NULL DEFAULT '0',
|
`deleted` tinyint(1) NOT NULL DEFAULT '0',
|
||||||
`origin` tinyint(1) NOT NULL DEFAULT '0',
|
`origin` tinyint(1) NOT NULL DEFAULT '0',
|
||||||
|
`forum_mode` tinyint(1) NOT NULL DEFAULT '0',
|
||||||
`last-child` tinyint(1) unsigned NOT NULL DEFAULT '1',
|
`last-child` tinyint(1) unsigned NOT NULL DEFAULT '1',
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
KEY `guid` (`guid`),
|
KEY `guid` (`guid`),
|
||||||
|
@ -243,10 +245,13 @@ CREATE TABLE IF NOT EXISTS `item` (
|
||||||
KEY `starred` (`starred`),
|
KEY `starred` (`starred`),
|
||||||
KEY `deleted` (`deleted`),
|
KEY `deleted` (`deleted`),
|
||||||
KEY `origin` (`origin`),
|
KEY `origin` (`origin`),
|
||||||
|
KEY `forum_mode` (`forum_mode`),
|
||||||
KEY `last-child` (`last-child`),
|
KEY `last-child` (`last-child`),
|
||||||
KEY `unseen` (`unseen`),
|
KEY `unseen` (`unseen`),
|
||||||
|
KEY `wall` (`wall`),
|
||||||
FULLTEXT KEY `title` (`title`),
|
FULLTEXT KEY `title` (`title`),
|
||||||
FULLTEXT KEY `body` (`body`),
|
FULLTEXT KEY `body` (`body`),
|
||||||
|
FULLTEXT KEY `tag` (`tag`),
|
||||||
FULLTEXT KEY `allow_cid` (`allow_cid`),
|
FULLTEXT KEY `allow_cid` (`allow_cid`),
|
||||||
FULLTEXT KEY `allow_gid` (`allow_gid`),
|
FULLTEXT KEY `allow_gid` (`allow_gid`),
|
||||||
FULLTEXT KEY `deny_cid` (`deny_cid`),
|
FULLTEXT KEY `deny_cid` (`deny_cid`),
|
||||||
|
@ -441,6 +446,10 @@ CREATE TABLE IF NOT EXISTS `user` (
|
||||||
PRIMARY KEY (`uid`),
|
PRIMARY KEY (`uid`),
|
||||||
KEY `nickname` (`nickname`),
|
KEY `nickname` (`nickname`),
|
||||||
KEY `account_expired` (`account_expired`),
|
KEY `account_expired` (`account_expired`),
|
||||||
|
KEY `hidewall` (`hidewall`),
|
||||||
|
KEY `blockwall` (`blockwall`),
|
||||||
|
KEY `blocked` (`blocked`),
|
||||||
|
KEY `verified` (`verified`),
|
||||||
KEY `login_date` (`login_date`)
|
KEY `login_date` (`login_date`)
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
|
|
@ -112,10 +112,9 @@ function localize_item(&$item){
|
||||||
|
|
||||||
$parsedobj = parse_xml_string($xmlhead.$item['object']);
|
$parsedobj = parse_xml_string($xmlhead.$item['object']);
|
||||||
|
|
||||||
$tag = sprintf('#[url=%s]%s[/url]', $parsedobj->link, $parsedobj->content);
|
$tag = sprintf('#[url=%s]%s[/url]', $parsedobj->id, $parsedobj->content);
|
||||||
$item['body'] = sprintf( t('%1$s tagged %2$s\'s %3$s with %4$s'), $author, $objauthor, $plink, $tag );
|
$item['body'] = sprintf( t('%1$s tagged %2$s\'s %3$s with %4$s'), $author, $objauthor, $plink, $tag );
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -455,7 +455,9 @@ function diaspora_request($importer,$xml) {
|
||||||
intval($importer['uid'])
|
intval($importer['uid'])
|
||||||
);
|
);
|
||||||
|
|
||||||
if(count($self)) {
|
// they are not CONTACT_IS_FOLLOWER anymore but that's what we have in the array
|
||||||
|
|
||||||
|
if(count($self) && $contact['rel'] == CONTACT_IS_FOLLOWER) {
|
||||||
|
|
||||||
$arr = array();
|
$arr = array();
|
||||||
$arr['uri'] = $arr['parent-uri'] = item_new_uri($a->get_hostname(), $importer['uid']);
|
$arr['uri'] = $arr['parent-uri'] = item_new_uri($a->get_hostname(), $importer['uid']);
|
||||||
|
|
|
@ -1529,10 +1529,11 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// extract tag, if not duplicate, add to parent item
|
// extract tag, if not duplicate, add to parent item
|
||||||
if($xo->content) {
|
if($xo->id && $xo->content) {
|
||||||
if(! (stristr($r[0]['tag'],trim($xo->content)))) {
|
$newtag = '#[url=' . $xo->id . ']'. $xo->content . '[/url]';
|
||||||
|
if(! (stristr($r[0]['tag'],$newtag))) {
|
||||||
q("UPDATE item SET tag = '%s' WHERE id = %d LIMIT 1",
|
q("UPDATE item SET tag = '%s' WHERE id = %d LIMIT 1",
|
||||||
dbesc($r[0]['tag'] . (strlen($r[0]['tag']) ? ',' : '') . '#[url=' . $xo->id . ']'. $xo->content . '[/url]'),
|
dbesc($r[0]['tag'] . (strlen($r[0]['tag']) ? ',' : '') . $newtag),
|
||||||
intval($r[0]['id'])
|
intval($r[0]['id'])
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -2084,15 +2085,17 @@ dbg(0);
|
||||||
if(($xt->type == ACTIVITY_OBJ_NOTE) && ($xt->id == $r[0]['uri'])) {
|
if(($xt->type == ACTIVITY_OBJ_NOTE) && ($xt->id == $r[0]['uri'])) {
|
||||||
|
|
||||||
// extract tag, if not duplicate, and this user allows tags, add to parent item
|
// extract tag, if not duplicate, and this user allows tags, add to parent item
|
||||||
if($xo->content) {
|
|
||||||
|
|
||||||
if(! (stristr($r[0]['tag'],trim($xo->content)))) {
|
if($xo->id && $xo->content) {
|
||||||
|
$newtag = '#[url=' . $xo->id . ']'. $xo->content . '[/url]';
|
||||||
|
|
||||||
|
if(! (stristr($r[0]['tag'],$newtag))) {
|
||||||
$i = q("SELECT `blocktags` FROM `user` where `uid` = %d LIMIT 1",
|
$i = q("SELECT `blocktags` FROM `user` where `uid` = %d LIMIT 1",
|
||||||
intval($importer['importer_uid'])
|
intval($importer['importer_uid'])
|
||||||
);
|
);
|
||||||
if(count($i) && ! ($i[0]['blocktags'])) {
|
if(count($i) && ! ($i[0]['blocktags'])) {
|
||||||
q("UPDATE item SET tag = '%s' WHERE id = %d LIMIT 1",
|
q("UPDATE item SET tag = '%s' WHERE id = %d LIMIT 1",
|
||||||
dbesc($r[0]['tag'] . (strlen($r[0]['tag']) ? ',' : '') . '#[url=' . $xo->id . ']'. $xo->content . '[/url]'),
|
dbesc($r[0]['tag'] . (strlen($r[0]['tag']) ? ',' : '') . $newtag),
|
||||||
intval($r[0]['id'])
|
intval($r[0]['id'])
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
// results.
|
// results.
|
||||||
|
|
||||||
if(! function_exists('fetch_url')) {
|
if(! function_exists('fetch_url')) {
|
||||||
function fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0) {
|
function fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0, $accept_content=Null) {
|
||||||
|
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
|
||||||
|
@ -14,8 +14,16 @@ function fetch_url($url,$binary = false, &$redirects = 0, $timeout = 0) {
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@curl_setopt($ch, CURLOPT_HEADER, true);
|
@curl_setopt($ch, CURLOPT_HEADER, true);
|
||||||
|
|
||||||
|
if (!is_null($accept_content)){
|
||||||
|
curl_setopt($ch,CURLOPT_HTTPHEADER, array (
|
||||||
|
"Accept: "+$accept_content
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
@curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
|
@curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
|
||||||
@curl_setopt($ch, CURLOPT_USERAGENT, "Friendika");
|
@curl_setopt($ch, CURLOPT_USERAGENT, "Friendica");
|
||||||
|
|
||||||
|
|
||||||
if(intval($timeout)) {
|
if(intval($timeout)) {
|
||||||
@curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
|
@curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
|
||||||
|
@ -97,7 +105,7 @@ function post_url($url,$params, $headers = null, &$redirects = 0, $timeout = 0)
|
||||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
|
||||||
curl_setopt($ch, CURLOPT_POST,1);
|
curl_setopt($ch, CURLOPT_POST,1);
|
||||||
curl_setopt($ch, CURLOPT_POSTFIELDS,$params);
|
curl_setopt($ch, CURLOPT_POSTFIELDS,$params);
|
||||||
curl_setopt($ch, CURLOPT_USERAGENT, "Friendika");
|
curl_setopt($ch, CURLOPT_USERAGENT, "Friendica");
|
||||||
|
|
||||||
if(intval($timeout)) {
|
if(intval($timeout)) {
|
||||||
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
|
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
|
||||||
|
|
|
@ -14,12 +14,17 @@ function oembed_fetch_url($embedurl){
|
||||||
|
|
||||||
$txt = Cache::get($embedurl);
|
$txt = Cache::get($embedurl);
|
||||||
|
|
||||||
|
$noexts = array("mp3","mp4","ogg","ogv","oga","ogm","webm");
|
||||||
|
$ext = pathinfo(strtolower($embedurl),PATHINFO_EXTENSION);
|
||||||
|
|
||||||
|
|
||||||
if(is_null($txt)){
|
if(is_null($txt)){
|
||||||
$txt = "";
|
$txt = "";
|
||||||
|
|
||||||
|
if (!in_array($ext, $noexts)){
|
||||||
// try oembed autodiscovery
|
// try oembed autodiscovery
|
||||||
$redirects = 0;
|
$redirects = 0;
|
||||||
$html_text = fetch_url($embedurl, false, $redirects, 15);
|
$html_text = fetch_url($embedurl, false, $redirects, 15, "text/*");
|
||||||
if($html_text){
|
if($html_text){
|
||||||
$dom = @DOMDocument::loadHTML($html_text);
|
$dom = @DOMDocument::loadHTML($html_text);
|
||||||
if ($dom){
|
if ($dom){
|
||||||
|
@ -34,6 +39,7 @@ function oembed_fetch_url($embedurl){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($txt==false || $txt==""){
|
if ($txt==false || $txt==""){
|
||||||
// try oohembed service
|
// try oohembed service
|
||||||
|
|
|
@ -75,8 +75,6 @@ $a->timezone = (($default_timezone) ? $default_timezone : 'UTC');
|
||||||
|
|
||||||
date_default_timezone_set($a->timezone);
|
date_default_timezone_set($a->timezone);
|
||||||
|
|
||||||
$a->init_pagehead();
|
|
||||||
|
|
||||||
session_start();
|
session_start();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -95,6 +93,12 @@ if((x($_SESSION,'language')) && ($_SESSION['language'] !== $lang)) {
|
||||||
load_translation_table($lang);
|
load_translation_table($lang);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Create the page head after setting the language
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
$a->init_pagehead();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
|
@ -3041,9 +3041,13 @@ class HTML5_TreeBuilder {
|
||||||
|
|
||||||
if (!empty($token['attr'])) {
|
if (!empty($token['attr'])) {
|
||||||
foreach($token['attr'] as $attr) {
|
foreach($token['attr'] as $attr) {
|
||||||
// mike@macgirvin.com 2011-10-21, stray double quotes and/or numeric tags cause everything to abort
|
|
||||||
$attr['name'] = str_replace('"','',$attr['name']);
|
// mike@macgirvin.com 2011-11-17, check attribute name for
|
||||||
if($attr['name'] && (!$el->hasAttribute($attr['name'])) && (! is_numeric($attr['name']))) {
|
// validity (ignoring extenders and combiners) as illegal chars in names
|
||||||
|
// causes everything to abort
|
||||||
|
|
||||||
|
$valid = preg_match('/^[a-zA-Z\_\:]([\-a-zA-Z0-9\_\:\.]+$)/',$attr['name'],$matches);
|
||||||
|
if($attr['name'] && (!$el->hasAttribute($attr['name'])) && ($valid)) {
|
||||||
$el->setAttribute($attr['name'], $attr['value']);
|
$el->setAttribute($attr['name'], $attr['value']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -865,12 +865,12 @@ function item_post(&$a) {
|
||||||
$addr = trim($recip);
|
$addr = trim($recip);
|
||||||
if(! strlen($addr))
|
if(! strlen($addr))
|
||||||
continue;
|
continue;
|
||||||
$disclaimer = '<hr />' . sprintf( t('This message was sent to you by %s, a member of the Friendika social network.'),$a->user['username'])
|
$disclaimer = '<hr />' . sprintf( t('This message was sent to you by %s, a member of the Friendica social network.'),$a->user['username'])
|
||||||
. '<br />';
|
. '<br />';
|
||||||
$disclaimer .= sprintf( t('You may visit them online at %s'), $a->get_baseurl() . '/profile/' . $a->user['nickname']) . EOL;
|
$disclaimer .= sprintf( t('You may visit them online at %s'), $a->get_baseurl() . '/profile/' . $a->user['nickname']) . EOL;
|
||||||
$disclaimer .= t('Please contact the sender by replying to this post if you do not wish to receive these messages.') . EOL;
|
$disclaimer .= t('Please contact the sender by replying to this post if you do not wish to receive these messages.') . EOL;
|
||||||
|
|
||||||
$subject = '[Friendika]' . ' ' . sprintf( t('%s posted an update.'),$a->user['username']);
|
$subject = '[Friendica]' . ' ' . sprintf( t('%s posted an update.'),$a->user['username']);
|
||||||
$headers = 'From: ' . $a->user['username'] . ' <' . $a->user['email'] . '>' . "\n";
|
$headers = 'From: ' . $a->user['username'] . ' <' . $a->user['email'] . '>' . "\n";
|
||||||
$headers .= 'MIME-Version: 1.0' . "\n";
|
$headers .= 'MIME-Version: 1.0' . "\n";
|
||||||
$headers .= 'Content-Type: text/html; charset=UTF-8' . "\n";
|
$headers .= 'Content-Type: text/html; charset=UTF-8' . "\n";
|
||||||
|
|
|
@ -644,7 +644,7 @@ function settings_content(&$a) {
|
||||||
));
|
));
|
||||||
|
|
||||||
$hide_wall = replace_macros($opt_tpl,array(
|
$hide_wall = replace_macros($opt_tpl,array(
|
||||||
'$field' => array('hidewall', t('Hide profile details and all your messages from unknown viewers?'), $a->user['hidewall'], '', array(t('No'),t('Yes'))),
|
'$field' => array('hidewall', t('Hide your profile details from unknown viewers?'), $a->user['hidewall'], '', array(t('No'),t('Yes'))),
|
||||||
|
|
||||||
));
|
));
|
||||||
|
|
||||||
|
|
18
update.php
18
update.php
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
define( 'UPDATE_VERSION' , 1103 );
|
define( 'UPDATE_VERSION' , 1105 );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -884,6 +884,22 @@ function update_1102() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function update_1103() {
|
||||||
|
q("ALTER TABLE `item` ADD INDEX ( `wall` ) ");
|
||||||
|
q("ALTER TABLE `item` ADD FULLTEXT ( `tag` ) ");
|
||||||
|
q("ALTER TABLE `contact` ADD INDEX ( `pending` ) ");
|
||||||
|
q("ALTER TABLE `user` ADD INDEX ( `hidewall` ) ");
|
||||||
|
q("ALTER TABLE `user` ADD INDEX ( `blockwall` ) ");
|
||||||
|
q("ALTER TABLE `user` ADD INDEX ( `blocked` ) ");
|
||||||
|
q("ALTER TABLE `user` ADD INDEX ( `verified` ) ");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function update_1104() {
|
||||||
|
q("ALTER TABLE `item` ADD `forum_mode` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `origin` , ADD INDEX ( `forum_mode` ) ");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue