Browse Source

Merge remote-tracking branch 'upstream/develop' into 1612-unused-indexes

pull/3069/head
Michael 6 years ago
parent
commit
6b6e3e264f
  1. 29
      boot.php
  2. 33
      database.sql
  3. 3
      doc/themes.md
  4. 29
      include/Contact.php
  5. 50
      include/NotificationsManager.php
  6. 26
      include/Photo.php
  7. 2
      include/Probe.php
  8. 171
      include/acl_selectors.php
  9. 6
      include/api.php
  10. 3
      include/auth.php
  11. 41
      include/bb2diaspora.php
  12. 14
      include/bbcode.php
  13. 4
      include/contact_selectors.php
  14. 26
      include/contact_widgets.php
  15. 16
      include/conversation.php
  16. 2
      include/datetime.php
  17. 126
      include/dbstructure.php
  18. 21
      include/delivery.php
  19. 6
      include/dfrn.php
  20. 598
      include/diaspora.php
  21. 19
      include/email.php
  22. 10
      include/enotify.php
  23. 11
      include/event.php
  24. 2
      include/expire.php
  25. 27
      include/follow.php
  26. 13
      include/group.php
  27. 52
      include/identity.php
  28. 74
      include/items.php
  29. 67
      include/like.php
  30. 3
      include/lock.php
  31. 47
      include/message.php
  32. 4
      include/nav.php
  33. 9
      include/network.php
  34. 13
      include/notifier.php
  35. 2
      include/oauth.php
  36. 3
      include/onepoll.php
  37. 23
      include/ostatus.php
  38. 11
      include/plugin.php
  39. 2
      include/poller.php
  40. 2
      include/profile_update.php
  41. 16
      include/pubsubpublish.php
  42. 15
      include/queue.php
  43. 9
      include/redir.php
  44. 21
      include/salmon.php
  45. 36
      include/security.php
  46. 113
      include/socgraph.php
  47. 6
      include/tags.php
  48. 15
      include/text.php
  49. 4
      include/threads.php
  50. 4
      include/uimport.php
  51. 2
      include/user.php
  52. 49
      index.php
  53. 6
      js/main.js
  54. 134
      library/perfect-scrollbar/README.md
  55. 116
      library/perfect-scrollbar/perfect-scrollbar.css
  56. 541
      library/perfect-scrollbar/perfect-scrollbar.jquery.js
  57. 2
      library/perfect-scrollbar/perfect-scrollbar.jquery.min.js
  58. 4
      library/perfect-scrollbar/perfect-scrollbar.min.css
  59. 119
      mod/admin.php
  60. 17
      mod/allfriends.php
  61. 4
      mod/api.php
  62. 4
      mod/attach.php
  63. 4
      mod/bookmarklet.php
  64. 17
      mod/cal.php
  65. 75
      mod/common.php
  66. 4
      mod/community.php
  67. 4
      mod/contactgroup.php
  68. 57
      mod/contacts.php
  69. 35
      mod/content.php
  70. 16
      mod/crepair.php
  71. 30
      mod/delegate.php
  72. 38
      mod/dfrn_confirm.php
  73. 7
      mod/dfrn_notify.php
  74. 18
      mod/dfrn_poll.php
  75. 96
      mod/dfrn_request.php
  76. 8
      mod/directory.php
  77. 41
      mod/dirfind.php
  78. 6
      mod/display.php
  79. 12
      mod/editpost.php
  80. 92
      mod/events.php
  81. 38
      mod/fbrowser.php
  82. 6
      mod/fetch.php
  83. 2
      mod/filer.php
  84. 13
      mod/filerm.php
  85. 39
      mod/follow.php
  86. 4
      mod/friendica.php
  87. 11
      mod/fsuggest.php
  88. 55
      mod/group.php
  89. 34
      mod/hcard.php
  90. 2
      mod/help.php
  91. 34
      mod/home.php
  92. 19
      mod/ignored.php
  93. 109
      mod/install.php
  94. 68
      mod/invite.php
  95. 115
      mod/item.php
  96. 2
      mod/like.php
  97. 2
      mod/localtime.php
  98. 3
      mod/lockview.php
  99. 18
      mod/lostpass.php
  100. 10
      mod/manage.php
  101. Some files were not shown because too many files have changed in this diff Show More

29
boot.php

@ -38,7 +38,7 @@ define ( 'FRIENDICA_PLATFORM', 'Friendica');
define ( 'FRIENDICA_CODENAME', 'Asparagus');
define ( 'FRIENDICA_VERSION', '3.5.1-dev' );
define ( 'DFRN_PROTOCOL_VERSION', '2.23' );
define ( 'DB_UPDATE_VERSION', 1209 );
define ( 'DB_UPDATE_VERSION', 1211 );
/**
* @brief Constant with a HTML line break.
@ -670,22 +670,23 @@ class App {
#set_include_path("include/$this->hostname" . PATH_SEPARATOR . get_include_path());
if((x($_SERVER,'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'],0,9) === "pagename=") {
if ((x($_SERVER,'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'],0,9) === "pagename=") {
$this->query_string = substr($_SERVER['QUERY_STRING'],9);
// removing trailing / - maybe a nginx problem
if (substr($this->query_string, 0, 1) == "/")
$this->query_string = substr($this->query_string, 1);
} elseif((x($_SERVER,'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'],0,2) === "q=") {
} elseif ((x($_SERVER,'QUERY_STRING')) && substr($_SERVER['QUERY_STRING'],0,2) === "q=") {
$this->query_string = substr($_SERVER['QUERY_STRING'],2);
// removing trailing / - maybe a nginx problem
if (substr($this->query_string, 0, 1) == "/")
$this->query_string = substr($this->query_string, 1);
}
if (x($_GET,'pagename'))
if (x($_GET,'pagename')) {
$this->cmd = trim($_GET['pagename'],'/\\');
elseif (x($_GET,'q'))
} elseif (x($_GET,'q')) {
$this->cmd = trim($_GET['q'],'/\\');
}
// fix query_string
@ -694,13 +695,15 @@ class App {
// unix style "homedir"
if(substr($this->cmd,0,1) === '~')
if (substr($this->cmd,0,1) === '~') {
$this->cmd = 'profile/' . substr($this->cmd,1);
}
// Diaspora style profile url
if(substr($this->cmd,0,2) === 'u/')
if (substr($this->cmd,0,2) === 'u/') {
$this->cmd = 'profile/' . substr($this->cmd,2);
}
/*
@ -806,7 +809,7 @@ class App {
function get_baseurl($ssl = false) {
// Is the function called statically?
if (!is_object($this)) {
if (!(isset($this) && get_class($this) == __CLASS__)) {
return self::$a->get_baseurl($ssl);
}
@ -1028,7 +1031,7 @@ class App {
} else {
$r = q("SELECT `contact`.`avatar-date` AS picdate FROM `contact` WHERE `contact`.`thumb` like '%%/%s'",
$common_filename);
if(! dbm::is_result($r)){
if (! dbm::is_result($r)) {
$this->cached_profile_image[$avatar_image] = $avatar_image;
} else {
$this->cached_profile_picdate[$common_filename] = "?rev=".urlencode($r[0]['picdate']);
@ -1050,7 +1053,7 @@ class App {
function remove_baseurl($orig_url){
// Is the function called statically?
if (!is_object($this)) {
if (!(isset($this) && get_class($this) == __CLASS__)) {
return(self::$a->remove_baseurl($orig_url));
}
@ -1548,9 +1551,9 @@ function check_url(&$a) {
// We will only change the url to an ip address if there is no existing setting
if(! x($url))
$url = set_config('system','url',$a->get_baseurl());
if((! link_compare($url,$a->get_baseurl())) && (! preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/",$a->get_hostname)))
$url = set_config('system','url',$a->get_baseurl());
$url = set_config('system','url',App::get_baseurl());
if((! link_compare($url,App::get_baseurl())) && (! preg_match("/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/",$a->get_hostname)))
$url = set_config('system','url',App::get_baseurl());
return;
}

33
database.sql

@ -1,6 +1,6 @@
-- ------------------------------------------
-- Friendica 3.5.1-dev (Asparagus)
-- DB_UPDATE_VERSION 1208
-- DB_UPDATE_VERSION 1211
-- ------------------------------------------
@ -54,11 +54,11 @@ CREATE TABLE IF NOT EXISTS `auth_codes` (
-- TABLE cache
--
CREATE TABLE IF NOT EXISTS `cache` (
`k` varchar(255) NOT NULL,
`k` varbinary(255) NOT NULL,
`v` text,
`expire_mode` int(11) NOT NULL DEFAULT 0,
`updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY(`k`(191)),
PRIMARY KEY(`k`),
INDEX `updated` (`updated`),
INDEX `expire_mode_updated` (`expire_mode`,`updated`)
) DEFAULT CHARSET=utf8mb4;
@ -94,11 +94,11 @@ CREATE TABLE IF NOT EXISTS `clients` (
--
CREATE TABLE IF NOT EXISTS `config` (
`id` int(10) unsigned NOT NULL auto_increment,
`cat` varchar(255) NOT NULL DEFAULT '',
`k` varchar(255) NOT NULL DEFAULT '',
`cat` varbinary(255) NOT NULL DEFAULT '',
`k` varbinary(255) NOT NULL DEFAULT '',
`v` text,
PRIMARY KEY(`id`),
UNIQUE INDEX `cat_k` (`cat`(30),`k`(30))
UNIQUE INDEX `cat_k` (`cat`,`k`)
) DEFAULT CHARSET=utf8mb4;
--
@ -200,7 +200,7 @@ CREATE TABLE IF NOT EXISTS `conv` (
--
CREATE TABLE IF NOT EXISTS `deliverq` (
`id` int(10) unsigned NOT NULL auto_increment,
`cmd` varchar(32) NOT NULL DEFAULT '',
`cmd` varbinary(32) NOT NULL DEFAULT '',
`item` int(11) NOT NULL DEFAULT 0,
`contact` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY(`id`),
@ -212,6 +212,7 @@ CREATE TABLE IF NOT EXISTS `deliverq` (
--
CREATE TABLE IF NOT EXISTS `event` (
`id` int(11) NOT NULL auto_increment,
`guid` varchar(255) NOT NULL DEFAULT '',
`uid` int(11) NOT NULL DEFAULT 0,
`cid` int(11) NOT NULL DEFAULT 0,
`uri` varchar(255) NOT NULL DEFAULT '',
@ -682,10 +683,10 @@ CREATE TABLE IF NOT EXISTS `notify-threads` (
-- TABLE oembed
--
CREATE TABLE IF NOT EXISTS `oembed` (
`url` varchar(255) NOT NULL,
`url` varbinary(255) NOT NULL,
`content` text,
`created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY(`url`(191)),
PRIMARY KEY(`url`),
INDEX `created` (`created`)
) DEFAULT CHARSET=utf8mb4;
@ -693,12 +694,12 @@ CREATE TABLE IF NOT EXISTS `oembed` (
-- TABLE parsed_url
--
CREATE TABLE IF NOT EXISTS `parsed_url` (
`url` varchar(255) NOT NULL,
`url` varbinary(255) NOT NULL,
`guessing` tinyint(1) NOT NULL DEFAULT 0,
`oembed` tinyint(1) NOT NULL DEFAULT 0,
`content` text,
`created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY(`url`(191),`guessing`,`oembed`),
PRIMARY KEY(`url`,`guessing`,`oembed`),
INDEX `created` (`created`)
) DEFAULT CHARSET=utf8mb4;
@ -708,11 +709,11 @@ CREATE TABLE IF NOT EXISTS `parsed_url` (
CREATE TABLE IF NOT EXISTS `pconfig` (
`id` int(11) NOT NULL auto_increment,
`uid` int(11) NOT NULL DEFAULT 0,
`cat` varchar(255) NOT NULL DEFAULT '',
`k` varchar(255) NOT NULL DEFAULT '',
`cat` varbinary(255) NOT NULL DEFAULT '',
`k` varbinary(255) NOT NULL DEFAULT '',
`v` mediumtext,
PRIMARY KEY(`id`),
UNIQUE INDEX `uid_cat_k` (`uid`,`cat`(30),`k`(30))
UNIQUE INDEX `uid_cat_k` (`uid`,`cat`,`k`)
) DEFAULT CHARSET=utf8mb4;
--
@ -786,7 +787,7 @@ CREATE TABLE IF NOT EXISTS `poll_result` (
--
CREATE TABLE IF NOT EXISTS `process` (
`pid` int(10) unsigned NOT NULL,
`command` varchar(32) NOT NULL DEFAULT '',
`command` varbinary(32) NOT NULL DEFAULT '',
`created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY(`pid`),
INDEX `command` (`command`)
@ -920,7 +921,7 @@ CREATE TABLE IF NOT EXISTS `search` (
--
CREATE TABLE IF NOT EXISTS `session` (
`id` bigint(20) unsigned NOT NULL auto_increment,
`sid` varchar(255) NOT NULL DEFAULT '',
`sid` varbinary(255) NOT NULL DEFAULT '',
`data` text,
`expire` int(10) unsigned NOT NULL DEFAULT 0,
PRIMARY KEY(`id`),

3
doc/themes.md

@ -124,8 +124,9 @@ The selected 1st part will be saved in the database by the theme_post function.
function theme_post(&$a){
// non local users shall not pass
if(! local_user())
if (! local_user()) {
return;
}
// if the one specific submit button was pressed then proceed
if (isset($_POST['duepuntozero-settings-submit'])){
// and save the selection key into the personal config of the user

29
include/Contact.php

@ -8,7 +8,6 @@
function user_remove($uid) {
if(! $uid)
return;
$a = get_app();
logger('Removing user: ' . $uid);
$r = q("select * from user where uid = %d limit 1", intval($uid));
@ -54,7 +53,7 @@ function user_remove($uid) {
if($uid == local_user()) {
unset($_SESSION['authenticated']);
unset($_SESSION['uid']);
goaway($a->get_baseurl());
goaway(App::get_baseurl());
}
}
@ -86,12 +85,12 @@ function contact_remove($id) {
function terminate_friendship($user,$self,$contact) {
/// @TODO Get rid of this, include/datetime.php should care about by itself
$a = get_app();
require_once('include/datetime.php');
if($contact['network'] === NETWORK_OSTATUS) {
if ($contact['network'] === NETWORK_OSTATUS) {
require_once('include/ostatus.php');
@ -101,16 +100,14 @@ function terminate_friendship($user,$self,$contact) {
$item['follow'] = $contact["url"];
$slap = ostatus::salmon($item, $user);
if((x($contact,'notify')) && (strlen($contact['notify']))) {
if ((x($contact,'notify')) && (strlen($contact['notify']))) {
require_once('include/salmon.php');
slapper($user,$contact['notify'],$slap);
}
}
elseif($contact['network'] === NETWORK_DIASPORA) {
} elseif ($contact['network'] === NETWORK_DIASPORA) {
require_once('include/diaspora.php');
diaspora::send_unshare($user,$contact);
}
elseif($contact['network'] === NETWORK_DFRN) {
Diaspora::send_unshare($user,$contact);
} elseif ($contact['network'] === NETWORK_DFRN) {
require_once('include/dfrn.php');
dfrn::deliver($user,$contact,'placeholder', 1);
}
@ -361,7 +358,7 @@ function contact_photo_menu($contact, $uid = 0)
$sparkle = false;
if ($contact['network'] === NETWORK_DFRN) {
$sparkle = true;
$profile_link = $a->get_baseurl() . '/redir/' . $contact['id'];
$profile_link = App::get_baseurl() . '/redir/' . $contact['id'];
} else {
$profile_link = $contact['url'];
}
@ -377,17 +374,17 @@ function contact_photo_menu($contact, $uid = 0)
}
if (in_array($contact['network'], array(NETWORK_DFRN, NETWORK_DIASPORA))) {
$pm_url = $a->get_baseurl() . '/message/new/' . $contact['id'];
$pm_url = App::get_baseurl() . '/message/new/' . $contact['id'];
}
if ($contact['network'] == NETWORK_DFRN) {
$poke_link = $a->get_baseurl() . '/poke/?f=&c=' . $contact['id'];
$poke_link = App::get_baseurl() . '/poke/?f=&c=' . $contact['id'];
}
$contact_url = $a->get_baseurl() . '/contacts/' . $contact['id'];
$contact_url = App::get_baseurl() . '/contacts/' . $contact['id'];
$posts_link = $a->get_baseurl() . '/contacts/' . $contact['id'] . '/posts';
$contact_drop_link = $a->get_baseurl() . '/contacts/' . $contact['id'] . '/drop?confirm=1';
$posts_link = App::get_baseurl() . '/contacts/' . $contact['id'] . '/posts';
$contact_drop_link = App::get_baseurl() . '/contacts/' . $contact['id'] . '/drop?confirm=1';
/**
* menu array:

50
include/NotificationsManager.php

@ -198,8 +198,10 @@ class NotificationsManager {
* string 'label' => The type of the notification
* string 'link' => URL to the source
* string 'image' => The avatar image
* string 'url' => The profile url of the contact
* string 'text' => The notification text
* string 'when' => Relative date of the notification
* string 'when' => The date of the notification
* string 'ago' => T relative date of the notification
* bool 'seen' => Is the notification marked as "seen"
*/
private function formatNotifs($notifs, $ident = "") {
@ -223,26 +225,32 @@ class NotificationsManager {
$default_item_label = 'notify';
$default_item_link = $this->a->get_baseurl(true).'/notify/view/'. $it['id'];
$default_item_image = proxy_url($it['photo'], false, PROXY_SIZE_MICRO);
$default_item_url = $it['url'];
$default_item_text = strip_tags(bbcode($it['msg']));
$default_item_when = relative_date($it['date']);
$default_item_when = datetime_convert('UTC', date_default_timezone_get(), $it['date'], 'r');
$default_item_ago = relative_date($it['date']);
break;
case 'home':
$default_item_label = 'comment';
$default_item_link = $this->a->get_baseurl(true).'/display/'.$it['pguid'];
$default_item_image = proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO);
$default_item_url = $it['author-link'];
$default_item_text = sprintf(t("%s commented on %s's post"), $it['author-name'], $it['pname']);
$default_item_when = relative_date($it['created']);
$default_item_when = datetime_convert('UTC', date_default_timezone_get(), $it['created'], 'r');
$default_item_ago = relative_date($it['created']);
break;
default:
$default_item_label = (($it['id'] == $it['parent']) ? 'post' : 'comment');
$default_item_link = $this->a->get_baseurl(true).'/display/'.$it['pguid'];
$default_item_image = proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO);
$default_item_url = $it['author-link'];
$default_item_text = (($it['id'] == $it['parent'])
? sprintf(t("%s created a new post"), $it['author-name'])
: sprintf(t("%s commented on %s's post"), $it['author-name'], $it['pname']));
$default_item_when = relative_date($it['created']);
$default_item_when = datetime_convert('UTC', date_default_timezone_get(), $it['created'], 'r');
$default_item_ago = relative_date($it['created']);
}
@ -253,8 +261,10 @@ class NotificationsManager {
'label' => 'like',
'link' => $this->a->get_baseurl(true).'/display/'.$it['pguid'],
'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO),
'url' => $it['author-link'],
'text' => sprintf(t("%s liked %s's post"), $it['author-name'], $it['pname']),
'when' => relative_date($it['created']),
'when' => $default_item_when,
'ago' => $default_item_ago,
'seen' => $it['seen']
);
break;
@ -264,8 +274,10 @@ class NotificationsManager {
'label' => 'dislike',
'link' => $this->a->get_baseurl(true).'/display/'.$it['pguid'],
'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO),
'url' => $it['author-link'],
'text' => sprintf(t("%s disliked %s's post"), $it['author-name'], $it['pname']),
'when' => relative_date($it['created']),
'when' => $default_item_when,
'ago' => $default_item_ago,
'seen' => $it['seen']
);
break;
@ -275,8 +287,10 @@ class NotificationsManager {
'label' => 'attend',
'link' => $this->a->get_baseurl(true).'/display/'.$it['pguid'],
'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO),
'url' => $it['author-link'],
'text' => sprintf(t("%s is attending %s's event"), $it['author-name'], $it['pname']),
'when' => relative_date($it['created']),
'when' => $default_item_when,
'ago' => $default_item_ago,
'seen' => $it['seen']
);
break;
@ -286,8 +300,10 @@ class NotificationsManager {
'label' => 'attendno',
'link' => $this->a->get_baseurl(true).'/display/'.$it['pguid'],
'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO),
'url' => $it['author-link'],
'text' => sprintf( t("%s is not attending %s's event"), $it['author-name'], $it['pname']),
'when' => relative_date($it['created']),
'when' => $default_item_when,
'ago' => $default_item_ago,
'seen' => $it['seen']
);
break;
@ -297,8 +313,10 @@ class NotificationsManager {
'label' => 'attendmaybe',
'link' => $this->a->get_baseurl(true).'/display/'.$it['pguid'],
'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO),
'url' => $it['author-link'],
'text' => sprintf(t("%s may attend %s's event"), $it['author-name'], $it['pname']),
'when' => relative_date($it['created']),
'when' => $default_item_when,
'ago' => $default_item_ago,
'seen' => $it['seen']
);
break;
@ -312,8 +330,10 @@ class NotificationsManager {
'label' => 'friend',
'link' => $this->a->get_baseurl(true).'/display/'.$it['pguid'],
'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO),
'url' => $it['author-link'],
'text' => sprintf(t("%s is now friends with %s"), $it['author-name'], $it['fname']),
'when' => relative_date($it['created']),
'when' => $default_item_when,
'ago' => $default_item_ago,
'seen' => $it['seen']
);
break;
@ -323,8 +343,10 @@ class NotificationsManager {
'label' => $default_item_label,
'link' => $default_item_link,
'image' => $default_item_image,
'url' => $default_item_url,
'text' => $default_item_text,
'when' => $default_item_when,
'ago' => $default_item_ago,
'seen' => $it['seen']
);
}
@ -459,7 +481,7 @@ class NotificationsManager {
if($seen === 0)
$sql_seen = " AND `seen` = 0 ";
$r = q("SELECT `id`, `photo`, `msg`, `date`, `seen` FROM `notify`
$r = q("SELECT `id`, `url`, `photo`, `msg`, `date`, `seen` FROM `notify`
WHERE `uid` = %d $sql_seen ORDER BY `date` DESC LIMIT %d, %d ",
intval(local_user()),
intval($start),
@ -626,9 +648,9 @@ class NotificationsManager {
$sql_seen = " AND `item`.`unseen` = 1 ";
$r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`, `item`.`unseen`,
`item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object` as `object`,
`pitem`.`author-name` as `pname`, `pitem`.`author-link` as `plink`, `pitem`.`guid` as `pguid`
FROM `item` INNER JOIN `item` as `pitem` ON `pitem`.`id`=`item`.`parent`
`item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object` AS `object`,
`pitem`.`author-name` AS `pname`, `pitem`.`author-link` AS `plink`, `pitem`.`guid` AS `pguid`
FROM `item` INNER JOIN `item` AS `pitem` ON `pitem`.`id`=`item`.`parent`
WHERE `item`.`visible` = 1 AND
`item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 1
$sql_seen

26
include/Photo.php

@ -794,8 +794,6 @@ function update_contact_avatar($avatar, $uid, $cid, $force = false) {
function import_profile_photo($photo, $uid, $cid, $quit_on_error = false) {
$a = get_app();
$r = q("SELECT `resource-id` FROM `photo` WHERE `uid` = %d AND `contact-id` = %d AND `scale` = 4 AND `album` = 'Contact Photos' LIMIT 1",
intval($uid),
intval($cid)
@ -841,9 +839,9 @@ function import_profile_photo($photo, $uid, $cid, $quit_on_error = false) {
$photo_failure = true;
}
$photo = $a->get_baseurl() . '/photo/' . $hash . '-4.' . $img->getExt();
$thumb = $a->get_baseurl() . '/photo/' . $hash . '-5.' . $img->getExt();
$micro = $a->get_baseurl() . '/photo/' . $hash . '-6.' . $img->getExt();
$photo = App::get_baseurl() . '/photo/' . $hash . '-4.' . $img->getExt();
$thumb = App::get_baseurl() . '/photo/' . $hash . '-5.' . $img->getExt();
$micro = App::get_baseurl() . '/photo/' . $hash . '-6.' . $img->getExt();
} else {
$photo_failure = true;
}
@ -853,9 +851,9 @@ function import_profile_photo($photo, $uid, $cid, $quit_on_error = false) {
}
if ($photo_failure) {
$photo = $a->get_baseurl() . '/images/person-175.jpg';
$thumb = $a->get_baseurl() . '/images/person-80.jpg';
$micro = $a->get_baseurl() . '/images/person-48.jpg';
$photo = App::get_baseurl() . '/images/person-175.jpg';
$thumb = App::get_baseurl() . '/images/person-80.jpg';
$micro = App::get_baseurl() . '/images/person-48.jpg';
}
return(array($photo,$thumb,$micro));
@ -1044,18 +1042,18 @@ function store_photo($a, $uid, $imagedata = "", $url = "") {
return(array());
}
$image = array("page" => $a->get_baseurl().'/photos/'.$page_owner_nick.'/image/'.$hash,
"full" => $a->get_baseurl()."/photo/{$hash}-0.".$ph->getExt());
$image = array("page" => App::get_baseurl().'/photos/'.$page_owner_nick.'/image/'.$hash,
"full" => App::get_baseurl()."/photo/{$hash}-0.".$ph->getExt());
if ($width > 800 || $height > 800) {
$image["large"] = $a->get_baseurl()."/photo/{$hash}-0.".$ph->getExt();
$image["large"] = App::get_baseurl()."/photo/{$hash}-0.".$ph->getExt();
}
if ($width > 640 || $height > 640) {
$ph->scaleImage(640);
$r = $ph->store($uid, $visitor, $hash, $tempfile, t('Wall Photos'), 1, 0, $defperm);
if ($r) {
$image["medium"] = $a->get_baseurl()."/photo/{$hash}-1.".$ph->getExt();
$image["medium"] = App::get_baseurl()."/photo/{$hash}-1.".$ph->getExt();
}
}
@ -1063,7 +1061,7 @@ function store_photo($a, $uid, $imagedata = "", $url = "") {
$ph->scaleImage(320);
$r = $ph->store($uid, $visitor, $hash, $tempfile, t('Wall Photos'), 2, 0, $defperm);
if ($r) {
$image["small"] = $a->get_baseurl()."/photo/{$hash}-2.".$ph->getExt();
$image["small"] = App::get_baseurl()."/photo/{$hash}-2.".$ph->getExt();
}
}
@ -1088,7 +1086,7 @@ function store_photo($a, $uid, $imagedata = "", $url = "") {
$r = $ph->store($uid, $visitor, $hash, $tempfile, t('Wall Photos'), 3, 0, $defperm);
if ($r) {
$image["thumb"] = $a->get_baseurl()."/photo/{$hash}-3.".$ph->getExt();
$image["thumb"] = App::get_baseurl()."/photo/{$hash}-3.".$ph->getExt();
}
}

2
include/Probe.php

@ -324,7 +324,7 @@ class Probe {
!isset($parts["path"]))
return false;
// todo: Ports?
/// @todo: Ports?
$host = $parts["host"];
if ($host == 'twitter.com')

171
include/acl_selectors.php

@ -34,7 +34,7 @@ function group_select($selname,$selclass,$preselected = false,$size = 4) {
call_hooks($a->module . '_pre_' . $selname, $arr);
if (dbm::is_result($r)) {
foreach($r as $rr) {
foreach ($r as $rr) {
if((is_array($preselected)) && in_array($rr['id'], $preselected))
$selected = " selected=\"selected\" ";
else
@ -65,20 +65,24 @@ function contact_selector($selname, $selclass, $preselected = false, $options) {
$exclude = false;
$size = 4;
if(is_array($options)) {
if(x($options,'size'))
if (is_array($options)) {
if (x($options,'size'))
$size = $options['size'];
if(x($options,'mutual_friends'))
if (x($options,'mutual_friends')) {
$mutual = true;
if(x($options,'single'))
}
if (x($options,'single')) {
$single = true;
if(x($options,'multiple'))
}
if (x($options,'multiple')) {
$single = false;
if(x($options,'exclude'))
}
if (x($options,'exclude')) {
$exclude = $options['exclude'];
}
if(x($options,'networks')) {
if (x($options,'networks')) {
switch($options['networks']) {
case 'DFRN_ONLY':
$networks = array(NETWORK_DFRN);
@ -145,11 +149,12 @@ function contact_selector($selname, $selclass, $preselected = false, $options) {
call_hooks($a->module . '_pre_' . $selname, $arr);
if (dbm::is_result($r)) {
foreach($r as $rr) {
if((is_array($preselected)) && in_array($rr['id'], $preselected))
foreach ($r as $rr) {
if ((is_array($preselected)) && in_array($rr['id'], $preselected)) {
$selected = " selected=\"selected\" ";
else
} else {
$selected = '';
}
$trimmed = mb_substr($rr['name'],0,20);
@ -221,16 +226,19 @@ function contact_select($selname, $selclass, $preselected = false, $size = 4, $p
$receiverlist = array();
if (dbm::is_result($r)) {
foreach($r as $rr) {
if((is_array($preselected)) && in_array($rr['id'], $preselected))
foreach ($r as $rr) {
if ((is_array($preselected)) && in_array($rr['id'], $preselected)) {
$selected = " selected=\"selected\" ";
else
}
else {
$selected = '';
}
if($privmail)
if ($privmail) {
$trimmed = GetProfileUsername($rr['url'], $rr['name'], false);
else
} else {
$trimmed = mb_substr($rr['name'],0,20);
}
$receiverlist[] = $trimmed;
@ -256,16 +264,22 @@ function fixacl(&$item) {
function prune_deadguys($arr) {
if(! $arr)
if (! $arr) {
return $arr;
}
$str = dbesc(implode(',',$arr));
$r = q("SELECT `id` FROM `contact` WHERE `id` IN ( " . $str . ") AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 ");
if($r) {
if ($r) {
$ret = array();
foreach($r as $rr)
foreach ($r as $rr) {
$ret[] = intval($rr['id']);
}
return $ret;
}
return array();
}
@ -392,8 +406,9 @@ function construct_acl_data(&$a, $user) {
function acl_lookup(&$a, $out_type = 'json') {
if(!local_user())
return "";
if (!local_user()) {
return '';
}
$start = (x($_REQUEST,'start') ? $_REQUEST['start'] : 0);
$count = (x($_REQUEST,'count') ? $_REQUEST['count'] : 100);
@ -540,35 +555,33 @@ function acl_lookup(&$a, $out_type = 'json') {
dbesc(NETWORK_ZOT),
dbesc(NETWORK_DIASPORA)
);
}
elseif($type == 'a') {
} elseif ($type == 'a') {
$r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag`, `forum`, `prv` FROM `contact`
WHERE `uid` = %d AND `pending` = 0
$sql_extra2
ORDER BY `name` ASC ",
intval(local_user())
);
}
elseif($type == 'x') {
} elseif ($type == 'x') {
// autocomplete for global contact search (e.g. navbar search)
$r = navbar_complete($a);
$contacts = array();
if($r) {
foreach($r as $g) {
if ($r) {
foreach ($r as $g) {
$contacts[] = array(
"photo" => proxy_url($g['photo'], false, PROXY_SIZE_MICRO),
"name" => $g['name'],
"nick" => (x($g['addr']) ? $g['addr'] : $g['url']),
"network" => $g['network'],
"link" => $g['url'],
"forum" => (x($g['community']) ? 1 : 0),
'photo' => proxy_url($g['photo'], false, PROXY_SIZE_MICRO),
'name' => $g['name'],
'nick' => (x($g['addr']) ? $g['addr'] : $g['url']),
'network' => $g['network'],
'link' => $g['url'],
'forum' => (x($g['community']) ? 1 : 0),
);
}
}
$o = array(
'start' => $start,
'count' => $count,
'items' => $contacts,
'count' => $count,
'items' => $contacts,
);
echo json_encode($o);
killme();
@ -578,16 +591,16 @@ function acl_lookup(&$a, $out_type = 'json') {
if (dbm::is_result($r)) {
foreach($r as $g){
foreach ($r as $g){
$contacts[] = array(
"type" => "c",
"photo" => proxy_url($g['micro'], false, PROXY_SIZE_MICRO),
"name" => htmlentities($g['name']),
"id" => intval($g['id']),
"network" => $g['network'],
"link" => $g['url'],
"nick" => htmlentities(($g['attag']) ? $g['attag'] : $g['nick']),
"forum" => ((x($g['forum']) || x($g['prv'])) ? 1 : 0),
'type' => 'c',
'photo' => proxy_url($g['micro'], false, PROXY_SIZE_MICRO),
'name' => htmlentities($g['name']),
'id' => intval($g['id']),
'network' => $g['network'],
'link' => $g['url'],
'nick' => htmlentities(($g['attag']) ? $g['attag'] : $g['nick']),
'forum' => ((x($g['forum']) || x($g['prv'])) ? 1 : 0),
);
}
}
@ -613,7 +626,7 @@ function acl_lookup(&$a, $out_type = 'json') {
implode("','", $known_contacts)
);
if (dbm::is_result($r)){
foreach($r as $row) {
foreach ($r as $row) {
// nickname..
$up = parse_url($row['author-link']);
$nick = explode("/",$up['path']);
@ -621,14 +634,14 @@ function acl_lookup(&$a, $out_type = 'json') {
$nick .= "@".$up['host'];
// /nickname
$unknow_contacts[] = array(
"type" => "c",
"photo" => proxy_url($row['author-avatar'], false, PROXY_SIZE_MICRO),
"name" => htmlentities($row['author-name']),
"id" => '',
"network" => "unknown",
"link" => $row['author-link'],
"nick" => htmlentities($nick),
"forum" => false
'type' => 'c',
'photo' => proxy_url($row['author-avatar'], false, PROXY_SIZE_MICRO),
'name' => htmlentities($row['author-name']),
'id' => '',
'network' => 'unknown',
'link' => $row['author-link'],
'nick' => htmlentities($nick),
'forum' => false
);
}
}
@ -638,34 +651,34 @@ function acl_lookup(&$a, $out_type = 'json') {
}
$results = array(
"tot" => $tot,
"start" => $start,
"count" => $count,
"groups" => $groups,
"contacts" => $contacts,
"items" => $items,
"type" => $type,
"search" => $search,
'tot' => $tot,
'start' => $start,
'count' => $count,
'groups' => $groups,
'contacts' => $contacts,
'items' => $items,
'type' => $type,
'search' => $search,
);
call_hooks('acl_lookup_end', $results);
if($out_type === 'html') {
$o = array(
'tot' => $results["tot"],
'start' => $results["start"],
'count' => $results["count"],
'groups' => $results["groups"],
'contacts' => $results["contacts"],
'tot' => $results['tot'],
'start' => $results['start'],
'count' => $results['count'],
'groups' => $results['groups'],
'contacts' => $results['contacts'],
);
return $o;
}
$o = array(
'tot' => $results["tot"],
'start' => $results["start"],
'count' => $results["count"],
'items' => $results["items"],
'tot' => $results['tot'],
'start' => $results['start'],
'count' => $results['count'],
'items' => $results['items'],
);
echo json_encode($o);
@ -682,7 +695,7 @@ function navbar_complete(&$a) {
// logger('navbar_complete');
if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
if ((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
return;
}
@ -693,28 +706,32 @@ function navbar_complete(&$a) {
$mode = $_REQUEST['smode'];
// don't search if search term has less than 2 characters
if(! $search || mb_strlen($search) < 2)
if (! $search || mb_strlen($search) < 2) {
return array();
}
if(substr($search,0,1) === '@')
if (substr($search,0,1) === '@') {
$search = substr($search,1);
}
if($localsearch) {
if ($localsearch) {
$x = DirSearch::global_search_by_name($search, $mode);
return $x;
}
if(! $localsearch) {
if (! $localsearch) {
$p = (($a->pager['page'] != 1) ? '&p=' . $a->pager['page'] : '');
$x = z_fetch_url(get_server().'/lsearch?f=' . $p . '&search=' . urlencode($search));
if($x['success']) {
if ($x['success']) {
$t = 0;
$j = json_decode($x['body'],true);
if($j && $j['results']) {
if ($j && $j['results']) {
return $j['results'];
}
}
}
/// @TODO Not needed here?
return;
}

6
include/api.php

@ -3068,8 +3068,8 @@
'image/gif' => 'gif'
);
$data = array('photo'=>array());
if($r) {
foreach($r as $rr) {
if ($r) {
foreach ($r as $rr) {
$photo = array();
$photo['id'] = $rr['resource-id'];
$photo['album'] = $rr['album'];
@ -3218,7 +3218,7 @@
function api_share_as_retweet(&$item) {
$body = trim($item["body"]);
if (diaspora::is_reshare($body, false)===false) {
if (Diaspora::is_reshare($body, false)===false) {
return false;
}

3
include/auth.php

@ -125,8 +125,7 @@ if (isset($_SESSION) && x($_SESSION,'authenticated') && (!x($_POST,'auth-params'
$openid = new LightOpenID;
$openid->identity = $openid_url;
$_SESSION['openid'] = $openid_url;
$a = get_app();
$openid->returnUrl = $a->get_baseurl(true).'/openid';
$openid->returnUrl = App::get_baseurl(true).'/openid';
goaway($openid->authUrl());
} catch (Exception $e) {
notice(t('We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID.').'<br /><br >'.t('The error message was:').' '.$e->getMessage());

41
include/bb2diaspora.php

@ -69,6 +69,28 @@ function diaspora2bb($s) {
return $s;
}
/**
* @brief Callback function to replace a Friendica style mention in a mention for Diaspora
*
* @param array $match Matching values for the callback
* @return text Replaced mention
*/
function diaspora_mentions($match) {
$contact = get_contact_details_by_url($match[3]);
if (!isset($contact['addr'])) {
$contact = Probe::uri($match[3]);
}
if (!isset($contact['addr'])) {
return $match[0];
}
$mention = '@{'.$match[2].'; '.$contact['addr'].'}';
return $mention;
}
function bb2diaspora($Text,$preserve_nl = false, $fordiaspora = true) {
$a = get_app();
@ -108,8 +130,8 @@ function bb2diaspora($Text,$preserve_nl = false, $fordiaspora = true) {
} else
$Text = bbcode($Text, $preserve_nl, false, 4);
// mask some special HTML chars from conversation to markdown
$Text = str_replace(array('&lt;','&gt;','&amp;'),array('&_lt_;','&_gt_;','&_amp_;'),$Text);
// mask some special HTML chars from conversation to markdown
$Text = str_replace(array('&lt;','&gt;','&amp;'),array('&_lt_;','&_gt_;','&_amp_;'),$Text);
// If a link is followed by a quote then there should be a newline before it
// Maybe we should make this newline at every time before a quote.
@ -120,8 +142,8 @@ function bb2diaspora($Text,$preserve_nl = false, $fordiaspora = true) {
// Now convert HTML to Markdown
$Text = new HTML_To_Markdown($Text);
// unmask the special chars back to HTML
$Text = str_replace(array('&_lt_;','&_gt_;','&_amp_;'),array('&lt;','&gt;','&amp;'),$Text);
// unmask the special chars back to HTML
$Text = str_replace(array('&_lt_;','&_gt_;','&_amp_;'),array('&lt;','&gt;','&amp;'),$Text);
$a->save_timestamp($stamp1, "parser");
@ -132,6 +154,11 @@ function bb2diaspora($Text,$preserve_nl = false, $fordiaspora = true) {
// the Diaspora signature verification and cause the item to disappear
$Text = trim($Text);
if ($fordiaspora) {
$URLSearchString = "^\[\]";
$Text = preg_replace_callback("/([@]\[(.*?)\])\(([$URLSearchString]*?)\)/ism", 'diaspora_mentions', $Text);
}
call_hooks('bb2diaspora',$Text);
return $Text;
@ -144,8 +171,6 @@ function unescape_underscores_in_links($m) {
function format_event_diaspora($ev) {
$a = get_app();
if(! ((is_array($ev)) && count($ev)))
return '';
@ -160,7 +185,7 @@ function format_event_diaspora($ev) {
$ev['start'] , $bd_format ))
: day_translate(datetime_convert('UTC', 'UTC',
$ev['start'] , $bd_format)))
. '](' . $a->get_baseurl() . '/localtime/?f=&time=' . urlencode(datetime_convert('UTC','UTC',$ev['start'])) . ")\n";
. '](' . App::get_baseurl() . '/localtime/?f=&time=' . urlencode(datetime_convert('UTC','UTC',$ev['start'])) . ")\n";
if(! $ev['nofinish'])
$o .= t('Finishes:') . ' ' . '['
@ -168,7 +193,7 @@ function format_event_diaspora($ev) {
$ev['finish'] , $bd_format ))
: day_translate(datetime_convert('UTC', 'UTC',
$ev['finish'] , $bd_format )))
. '](' . $a->get_baseurl() . '/localtime/?f=&time=' . urlencode(datetime_convert('UTC','UTC',$ev['finish'])) . ")\n";
. '](' . App::get_baseurl() . '/localtime/?f=&time=' . urlencode(datetime_convert('UTC','UTC',$ev['finish'])) . ")\n";
if(strlen($ev['location']))
$o .= t('Location:') . bb2diaspora($ev['location'])

14
include/bbcode.php

@ -343,7 +343,7 @@ function bb_replace_images($body, $images) {
$newbody = $body;
$cnt = 0;
foreach($images as $image) {
foreach ($images as $image) {
// We're depending on the property of 'foreach' (specified on the PHP website) that
// it loops over the array starting from the first element and going sequentially
// to the last element
@ -613,9 +613,7 @@ function GetProfileUsername($profile, $username, $compact = false, $getnetwork =
}
function bb_DiasporaLinks($match) {
$a = get_app();
return "[url=".$a->get_baseurl()."/display/".$match[1]."]".$match[2]."[/url]";
return "[url=".App::get_baseurl()."/display/".$match[1]."]".$match[2]."[/url]";
}
function bb_RemovePictureLinks($match) {
@ -894,7 +892,7 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal
// we may need to restrict this further if it picks up too many strays
// link acct:user@host to a webfinger profile redirector
$Text = preg_replace('/acct:([^@]+)@((?!\-)(?:[a-zA-Z\d\-]{0,62}[a-zA-Z\d]\.){1,126}(?!\d+)[a-zA-Z\d]{1,63})/', '<a href="' . $a->get_baseurl() . '/acctlink?addr=$1@$2" target="extlink">acct:$1@$2</a>',$Text);
$Text = preg_replace('/acct:([^@]+)@((?!\-)(?:[a-zA-Z\d\-]{0,62}[a-zA-Z\d]\.){1,126}(?!\d+)[a-zA-Z\d]{1,63})/', '<a href="' . App::get_baseurl() . '/acctlink?addr=$1@$2" target="extlink">acct:$1@$2</a>',$Text);
// Perform MAIL Search
$Text = preg_replace("/\[mail\]([$MAILSearchString]*)\[\/mail\]/", '<a href="mailto:$1">$1</a>', $Text);
@ -1063,9 +1061,9 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal
return(bb_ShareAttributes($match, $simplehtml));
},$Text);
$Text = preg_replace("/\[crypt\](.*?)\[\/crypt\]/ism",'<br/><img src="' .$a->get_baseurl() . '/images/lock_icon.gif" alt="' . t('Encrypted content') . '" title="' . t('Encrypted content') . '" /><br />', $Text);
$Text = preg_replace("/\[crypt(.*?)\](.*?)\[\/crypt\]/ism",'<br/><img src="' .$a->get_baseurl() . '/images/lock_icon.gif" alt="' . t('Encrypted content') . '" title="' . '$1' . ' ' . t('Encrypted content') . '" /><br />', $Text);
//$Text = preg_replace("/\[crypt=(.*?)\](.*?)\[\/crypt\]/ism",'<br/><img src="' .$a->get_baseurl() . '/images/lock_icon.gif" alt="' . t('Encrypted content') . '" title="' . '$1' . ' ' . t('Encrypted content') . '" /><br />', $Text);
$Text = preg_replace("/\[crypt\](.*?)\[\/crypt\]/ism",'<br/><img src="' .App::get_baseurl() . '/images/lock_icon.gif" alt="' . t('Encrypted content') . '" title="' . t('Encrypted content') . '" /><br />', $Text);
$Text = preg_replace("/\[crypt(.*?)\](.*?)\[\/crypt\]/ism",'<br/><img src="' .App::get_baseurl() . '/images/lock_icon.gif" alt="' . t('Encrypted content') . '" title="' . '$1' . ' ' . t('Encrypted content') . '" /><br />', $Text);
//$Text = preg_replace("/\[crypt=(.*?)\](.*?)\[\/crypt\]/ism",'<br/><img src="' .App::get_baseurl() . '/images/lock_icon.gif" alt="' . t('Encrypted content') . '" title="' . '$1' . ' ' . t('Encrypted content') . '" /><br />', $Text);
// Try to Oembed

4
include/contact_selectors.php

@ -13,7 +13,7 @@ function contact_profile_assign($current,$foreign_net) {
intval($_SESSION['uid']));
if (dbm::is_result($r)) {
foreach($r as $rr) {
foreach ($r as $rr) {
$selected = (($rr['id'] == $current) ? " selected=\"selected\" " : "");
$o .= "<option value=\"{$rr['id']}\" $selected >{$rr['profile-name']}</option>\r\n";
}
@ -99,7 +99,7 @@ function network_to_name($s, $profile = "") {
$networkname = str_replace($search,$replace,$s);
if (($s == NETWORK_DIASPORA) AND ($profile != "") AND diaspora::is_redmatrix($profile)) {
if (($s == NETWORK_DIASPORA) AND ($profile != "") AND Diaspora::is_redmatrix($profile)) {
$networkname = t("Hubzilla/Redmatrix");
$r = q("SELECT `gserver`.`platform` FROM `gcontact`

26
include/contact_widgets.php

@ -80,11 +80,13 @@ function networks_widget($baseurl,$selected = '') {
$a = get_app();
if(!local_user())
if (!local_user()) {
return '';
}
if(!feature_enabled(local_user(),'networks'))
if (!feature_enabled(local_user(),'networks')) {
return '';
}
$extra_sql = unavailable_networks();
@ -95,9 +97,11 @@ function networks_widget($baseurl,$selected = '') {
$nets = array();
if (dbm::is_result($r)) {
require_once('include/contact_selectors.php');
foreach($r as $rr) {
if($rr['network'])
$nets[] = array('ref' => $rr['network'], 'name' => network_to_name($rr['network']), 'selected' => (($selected == $rr['network']) ? 'selected' : '' ));
foreach ($r as $rr) {
/// @TODO If 'network' is not there, this triggers an E_NOTICE
if ($rr['network']) {
$nets[] = array('ref' => $rr['network'], 'name' => network_to_name($rr['network']), 'selected' => (($selected == $rr['network']) ? 'selected' : '' ));
}
}
}
@ -116,16 +120,18 @@ function networks_widget($baseurl,$selected = '') {
}
function fileas_widget($baseurl,$selected = '') {
$a = get_app();
if(! local_user())
if (! local_user()) {
return '';
}
if(! feature_enabled(local_user(),'filing'))
if (! feature_enabled(local_user(),'filing')) {
return '';
}
$saved = get_pconfig(local_user(),'system','filetags');
if(! strlen($saved))
if (! strlen($saved)) {
return;
}
$matches = false;
$terms = array();
@ -235,7 +241,7 @@ function common_friends_visitor_widget($profile_uid) {
return replace_macros(get_markup_template('remote_friends_common.tpl'), array(
'$desc' => sprintf( tt("%d contact in common", "%d contacts in common", $t), $t),
'$base' => $a->get_baseurl(),
'$base' => App::get_baseurl(),
'$uid' => $profile_uid,
'$cid' => (($cid) ? $cid : '0'),
'$linkmore' => (($t > 5) ? 'true' : ''),

16
include/conversation.php

@ -78,7 +78,7 @@ function item_redir_and_replace_images($body, $images, $cid) {
$newbody .= $origbody;
$cnt = 0;
foreach($images as $image) {
foreach ($images as $image) {
// We're depending on the property of 'foreach' (specified on the PHP website) that
// it loops over the array starting from the first element and going sequentially
// to the last element
@ -324,11 +324,13 @@ function localize_item(&$item){
// add sparkle links to appropriate permalinks
$x = stristr($item['plink'],'/display/');
if($x) {
if ($x) {
$sparkle = false;
$y = best_link_url($item,$sparkle,true);
if(strstr($y,'/redir/'))
if (strstr($y,'/redir/')) {
$item['plink'] = $y . '?f=&url=' . $item['plink'];
}
}
@ -864,7 +866,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
}
$o = replace_macros($page_template, array(
'$baseurl' => $a->get_baseurl($ssl_state),
'$baseurl' => App::get_baseurl($ssl_state),
'$return_path' => $a->query_string,
'$live_update' => $live_update_div,
'$remove' => t('remove'),
@ -1183,7 +1185,7 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) {
$tpl = get_markup_template('jot-header.tpl');
$a->page['htmlhead'] .= replace_macros($tpl, array(
'$newpost' => 'true',
'$baseurl' => $a->get_baseurl(true),
'$baseurl' => App::get_baseurl(true),
'$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
'$geotag' => $geotag,
'$nickname' => $x['nickname'],
@ -1201,7 +1203,7 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) {
$tpl = get_markup_template('jot-end.tpl');
$a->page['end'] .= replace_macros($tpl, array(
'$newpost' => 'true',
'$baseurl' => $a->get_baseurl(true),
'$baseurl' => App::get_baseurl(true),
'$editselect' => (($plaintext) ? 'none' : '/(profile-jot-text|prvmail-text)/'),
'$geotag' => $geotag,
'$nickname' => $x['nickname'],
@ -1267,7 +1269,7 @@ function status_editor($a,$x, $notes_cid = 0, $popup=false) {
'$ptyp' => (($notes_cid) ? 'note' : 'wall'),
'$content' => $x['content'],
'$post_id' => $x['post_id'],
'$baseurl' => $a->get_baseurl(true),
'$baseurl' => App::get_baseurl(true),
'$defloc' => $x['default_location'],
'$visitor' => $x['visitor'],
'$pvisit' => (($notes_cid) ? 'none' : $x['visitor']),

2
include/datetime.php

@ -553,7 +553,7 @@ function update_contact_birthdays() {
$r = q("SELECT * FROM contact WHERE `bd` != '' AND `bd` != '0000-00-00' AND SUBSTRING(`bd`,1,4) != `bdyear` ");
if (dbm::is_result($r)) {
foreach($r as $rr) {
foreach ($r as $rr) {
logger('update_contact_birthday: ' . $rr['bd']);

126
include/dbstructure.php

@ -26,7 +26,6 @@ function update_fail($update_id, $error_message){
}
// every admin could had different language
foreach ($adminlist as $admin) {
$lang = (($admin['language'])?$admin['language']:'en');
push_lang($lang);
@ -56,11 +55,11 @@ function update_fail($update_id, $error_message){
$email_tpl = get_intltext_template("update_fail_eml.tpl");
$email_msg = replace_macros($email_tpl, array(
'$sitename' => $a->config['sitename'],
'$siteurl' => $a->get_baseurl(),
'$siteurl' => App::get_baseurl(),
'$update' => DB_UPDATE_VERSION,
'$error' => sprintf(t('Update %s failed. See error logs.'), DB_UPDATE_VERSION)
));
$subject=sprintf(t('Update Error at %s'), $a->get_baseurl());
$subject=sprintf(t('Update Error at %s'), App::get_baseurl());
require_once('include/email.php');
$subject = email_header_encode($subject,'UTF-8');
mail($a->config['admin_email'], $subject, $email_msg,
@ -83,8 +82,9 @@ function table_structure($table) {
if (dbm::is_result($indexes))
foreach ($indexes AS $index) {
if ($index["Index_type"] == "FULLTEXT")
if ($index["Index_type"] == "FULLTEXT") {
continue;
}
if ($index['Key_name'] != 'PRIMARY' && $index['Non_unique'] == '0' && !isset($indexdata[$index["Key_name"]])) {
$indexdata[$index["Key_name"]] = array('UNIQUE');
@ -95,26 +95,31 @@ function table_structure($table) {
// To avoid the need to add this to every index definition we just ignore it here.
// Exception are primary indexes
// Since there are some combindex primary indexes we use the limit of 180 here.
if (($index["Sub_part"] != "") AND (($index["Sub_part"] < 180) OR ($index["Key_name"] == "PRIMARY")))
if (($index["Sub_part"] != "") AND (($index["Sub_part"] < 180) OR ($index["Key_name"] == "PRIMARY"))) {
$column .= "(".$index["Sub_part"].")";
}
$indexdata[$index["Key_name"]][] = $column;
}
if (dbm::is_result($structures)) {
foreach($structures AS $field) {
foreach ($structures AS $field) {