Merge remote-tracking branch 'refs/remotes/friendica/develop' into develop
This commit is contained in:
commit
dbf7c7d9ad
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -48,3 +48,6 @@ nbproject
|
|||
/php_friendica.phpproj
|
||||
/php_friendica.sln
|
||||
/php_friendica.phpproj.user
|
||||
|
||||
#ignore things from transifex-client
|
||||
venv/
|
||||
|
|
9
.tx/config
Normal file
9
.tx/config
Normal file
|
@ -0,0 +1,9 @@
|
|||
[main]
|
||||
host = https://www.transifex.com
|
||||
|
||||
[friendica.messagespo]
|
||||
file_filter = view/lang/<lang>/messages.po
|
||||
source_file = util/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
|
2
LICENSE
2
LICENSE
|
@ -1,5 +1,5 @@
|
|||
Friendica Communications Server
|
||||
Copyright (c) 2010-2016 the Friendica Project
|
||||
Copyright (c) 2010-2017 the Friendica Project
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published by
|
||||
|
|
10
boot.php
10
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', 1211 );
|
||||
define ( 'DB_UPDATE_VERSION', 1212 );
|
||||
|
||||
/**
|
||||
* @brief Constant with a HTML line break.
|
||||
|
@ -1540,7 +1540,7 @@ function check_db() {
|
|||
* Sets the base url for use in cmdline programs which don't have
|
||||
* $_SERVER variables
|
||||
*/
|
||||
function check_url(App &$a) {
|
||||
function check_url(App $a) {
|
||||
|
||||
$url = get_config('system','url');
|
||||
|
||||
|
@ -1562,7 +1562,7 @@ function check_url(App &$a) {
|
|||
/**
|
||||
* @brief Automatic database updates
|
||||
*/
|
||||
function update_db(App &$a) {
|
||||
function update_db(App $a) {
|
||||
$build = get_config('system','build');
|
||||
if(! x($build))
|
||||
$build = set_config('system','build',DB_UPDATE_VERSION);
|
||||
|
@ -1678,7 +1678,7 @@ function run_update_function($x) {
|
|||
* @param App $a
|
||||
*
|
||||
*/
|
||||
function check_plugins(App &$a) {
|
||||
function check_plugins(App $a) {
|
||||
|
||||
$r = q("SELECT * FROM `addon` WHERE `installed` = 1");
|
||||
if (dbm::is_result($r))
|
||||
|
@ -2414,7 +2414,7 @@ function get_temppath() {
|
|||
}
|
||||
|
||||
/// @deprecated
|
||||
function set_template_engine(App &$a, $engine = 'internal') {
|
||||
function set_template_engine(App $a, $engine = 'internal') {
|
||||
/// @note This function is no longer necessary, but keep it as a wrapper to the class method
|
||||
/// to avoid breaking themes again unnecessarily
|
||||
|
||||
|
|
94
database.sql
94
database.sql
|
@ -1,6 +1,6 @@
|
|||
-- ------------------------------------------
|
||||
-- Friendica 3.5.1-dev (Asparagus)
|
||||
-- DB_UPDATE_VERSION 1211
|
||||
-- DB_UPDATE_VERSION 1212
|
||||
-- ------------------------------------------
|
||||
|
||||
|
||||
|
@ -174,9 +174,16 @@ CREATE TABLE IF NOT EXISTS `contact` (
|
|||
`fetch_further_information` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`ffi_keyword_blacklist` mediumtext,
|
||||
PRIMARY KEY(`id`),
|
||||
INDEX `uid` (`uid`),
|
||||
INDEX `addr_uid` (`addr`,`uid`),
|
||||
INDEX `nurl` (`nurl`)
|
||||
INDEX `uid_name` (`uid`,`name`),
|
||||
INDEX `uid_self` (`uid`,`self`),
|
||||
INDEX `alias_uid` (`alias`(32),`uid`),
|
||||
INDEX `uid_pending` (`uid`,`pending`),
|
||||
INDEX `uid_blocked` (`uid`,`blocked`),
|
||||
INDEX `uid_rel_network_poll` (`uid`,`rel`,`network`,`poll`(64),`archive`),
|
||||
INDEX `uid_network_batch` (`uid`,`network`,`batch`(64)),
|
||||
INDEX `addr_uid` (`addr`(32),`uid`),
|
||||
INDEX `nurl_uid` (`nurl`(32),`uid`),
|
||||
INDEX `nick_uid` (`nick`(32),`uid`)
|
||||
) DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
--
|
||||
|
@ -232,7 +239,7 @@ CREATE TABLE IF NOT EXISTS `event` (
|
|||
`deny_cid` mediumtext,
|
||||
`deny_gid` mediumtext,
|
||||
PRIMARY KEY(`id`),
|
||||
INDEX `uid` (`uid`)
|
||||
INDEX `uid_start` (`uid`,`start`)
|
||||
) DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
--
|
||||
|
@ -257,7 +264,7 @@ CREATE TABLE IF NOT EXISTS `fcontact` (
|
|||
`pubkey` text,
|
||||
`updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
PRIMARY KEY(`id`),
|
||||
INDEX `addr` (`addr`)
|
||||
INDEX `addr` (`addr`(32))
|
||||
) DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
--
|
||||
|
@ -280,7 +287,7 @@ CREATE TABLE IF NOT EXISTS `fserver` (
|
|||
`posturl` varchar(255) NOT NULL DEFAULT '',
|
||||
`key` text,
|
||||
PRIMARY KEY(`id`),
|
||||
INDEX `server` (`server`)
|
||||
INDEX `server` (`server`(32))
|
||||
) DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
--
|
||||
|
@ -342,10 +349,10 @@ CREATE TABLE IF NOT EXISTS `gcontact` (
|
|||
`generation` tinyint(3) NOT NULL DEFAULT 0,
|
||||
`server_url` varchar(255) NOT NULL DEFAULT '',
|
||||
PRIMARY KEY(`id`),
|
||||
INDEX `nurl` (`nurl`),
|
||||
INDEX `name` (`name`),
|
||||
INDEX `nick` (`nick`),
|
||||
INDEX `addr` (`addr`),
|
||||
INDEX `nurl` (`nurl`(32)),
|
||||
INDEX `name` (`name`(32)),
|
||||
INDEX `nick` (`nick`(32)),
|
||||
INDEX `addr` (`addr`(32)),
|
||||
INDEX `updated` (`updated`)
|
||||
) DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
|
@ -360,7 +367,7 @@ CREATE TABLE IF NOT EXISTS `glink` (
|
|||
`zcid` int(11) NOT NULL DEFAULT 0,
|
||||
`updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
PRIMARY KEY(`id`),
|
||||
INDEX `cid_uid_gcid_zcid` (`cid`,`uid`,`gcid`,`zcid`),
|
||||
UNIQUE INDEX `cid_uid_gcid_zcid` (`cid`,`uid`,`gcid`,`zcid`),
|
||||
INDEX `gcid` (`gcid`),
|
||||
INDEX `zcid` (`zcid`)
|
||||
) DEFAULT CHARSET=utf8mb4;
|
||||
|
@ -387,7 +394,9 @@ CREATE TABLE IF NOT EXISTS `group_member` (
|
|||
`gid` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`contact-id` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY(`id`),
|
||||
INDEX `uid_gid_contactid` (`uid`,`gid`,`contact-id`)
|
||||
INDEX `cid_contactid` (`cid`,`contact-id`),
|
||||
INDEX `uid_contactid` (`uid`,`contact-id`),
|
||||
UNIQUE INDEX `uid_gid_contactid` (`uid`,`gid`,`contact-id`)
|
||||
) DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
--
|
||||
|
@ -410,7 +419,7 @@ CREATE TABLE IF NOT EXISTS `gserver` (
|
|||
`last_contact` datetime DEFAULT '0000-00-00 00:00:00',
|
||||
`last_failure` datetime DEFAULT '0000-00-00 00:00:00',
|
||||
PRIMARY KEY(`id`),
|
||||
INDEX `nurl` (`nurl`)
|
||||
INDEX `nurl` (`nurl`(32))
|
||||
) DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
--
|
||||
|
@ -525,24 +534,17 @@ CREATE TABLE IF NOT EXISTS `item` (
|
|||
INDEX `uid_network_received` (`uid`,`network`,`received`),
|
||||
INDEX `uid_received` (`uid`,`received`),
|
||||
INDEX `uid_network_commented` (`uid`,`network`,`commented`),
|
||||
INDEX `uid_commented` (`uid`,`commented`),
|
||||
INDEX `uid_title` (`uid`,`title`),
|
||||
INDEX `uid_thrparent` (`uid`,`thr-parent`),
|
||||
INDEX `uid_parenturi` (`uid`,`parent-uri`),
|
||||
INDEX `uid_contactid_id` (`uid`,`contact-id`,`id`),
|
||||
INDEX `uid_contactid_created` (`uid`,`contact-id`,`created`),
|
||||
INDEX `gcontactid_uid_created` (`gcontact-id`,`uid`,`created`),
|
||||
INDEX `authorid_created` (`author-id`,`created`),
|
||||
INDEX `ownerid_created` (`owner-id`,`created`),
|
||||
INDEX `wall_body` (`wall`,`body`(6)),
|
||||
INDEX `uid_visible_moderated_created` (`uid`,`visible`,`moderated`,`created`),
|
||||
INDEX `uid_uri` (`uid`,`uri`),
|
||||
INDEX `uid_wall_created` (`uid`,`wall`,`created`),
|
||||
INDEX `resource-id` (`resource-id`),
|
||||
INDEX `uid_type` (`uid`,`type`),
|
||||
INDEX `uid_starred_id` (`uid`,`starred`,`id`),
|
||||
INDEX `contactid_allowcid_allowpid_denycid_denygid` (`contact-id`,`allow_cid`(10),`allow_gid`(10),`deny_cid`(10),`deny_gid`(10)),
|
||||
INDEX `uid_wall_parent_created` (`uid`,`wall`,`parent`,`created`),
|
||||
INDEX `uid_type_changed` (`uid`,`type`,`changed`),
|
||||
INDEX `contactid_verb` (`contact-id`,`verb`),
|
||||
INDEX `deleted_changed` (`deleted`,`changed`),
|
||||
|
@ -564,7 +566,7 @@ CREATE TABLE IF NOT EXISTS `item_id` (
|
|||
PRIMARY KEY(`id`),
|
||||
INDEX `uid` (`uid`),
|
||||
INDEX `sid` (`sid`),
|
||||
INDEX `service` (`service`),
|
||||
INDEX `service` (`service`(32)),
|
||||
INDEX `iid` (`iid`)
|
||||
) DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
|
@ -602,11 +604,10 @@ CREATE TABLE IF NOT EXISTS `mail` (
|
|||
`created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
PRIMARY KEY(`id`),
|
||||
INDEX `uid` (`uid`),
|
||||
INDEX `guid` (`guid`),
|
||||
INDEX `uid_seen` (`uid`,`seen`),
|
||||
INDEX `convid` (`convid`),
|
||||
INDEX `reply` (`reply`),
|
||||
INDEX `uri` (`uri`),
|
||||
INDEX `parent-uri` (`parent-uri`)
|
||||
INDEX `uri` (`uri`(64)),
|
||||
INDEX `parent-uri` (`parent-uri`(64))
|
||||
) DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
--
|
||||
|
@ -662,7 +663,11 @@ CREATE TABLE IF NOT EXISTS `notify` (
|
|||
`name_cache` tinytext,
|
||||
`msg_cache` mediumtext,
|
||||
PRIMARY KEY(`id`),
|
||||
INDEX `uid` (`uid`)
|
||||
INDEX `uid_hash` (`uid`,`hash`),
|
||||
INDEX `uid_seen_date` (`uid`,`seen`,`date`),
|
||||
INDEX `uid_type_link` (`uid`,`type`,`link`),
|
||||
INDEX `uid_link` (`uid`,`link`),
|
||||
INDEX `uid_date` (`uid`,`date`)
|
||||
) DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
--
|
||||
|
@ -675,8 +680,7 @@ CREATE TABLE IF NOT EXISTS `notify-threads` (
|
|||
`parent-item` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`receiver-uid` int(11) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY(`id`),
|
||||
INDEX `master-parent-item` (`master-parent-item`),
|
||||
INDEX `receiver-uid` (`receiver-uid`)
|
||||
INDEX `master-parent-item` (`master-parent-item`)
|
||||
) DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
--
|
||||
|
@ -745,9 +749,9 @@ CREATE TABLE IF NOT EXISTS `photo` (
|
|||
PRIMARY KEY(`id`),
|
||||
INDEX `uid_contactid` (`uid`,`contact-id`),
|
||||
INDEX `uid_profile` (`uid`,`profile`),
|
||||
INDEX `uid_album_created` (`uid`,`album`,`created`),
|
||||
INDEX `resource-id` (`resource-id`),
|
||||
INDEX `guid` (`guid`)
|
||||
INDEX `uid_album_created` (`uid`,`album`(32),`created`),
|
||||
INDEX `uid_album_resource-id_created` (`uid`,`album`(32),`resource-id`(64),`created`),
|
||||
INDEX `resource-id` (`resource-id`(64))
|
||||
) DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
--
|
||||
|
@ -839,8 +843,7 @@ CREATE TABLE IF NOT EXISTS `profile` (
|
|||
`thumb` varchar(255) NOT NULL DEFAULT '',
|
||||
`publish` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`net-publish` tinyint(1) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY(`id`),
|
||||
INDEX `hometown` (`hometown`)
|
||||
PRIMARY KEY(`id`)
|
||||
) DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
--
|
||||
|
@ -912,8 +915,7 @@ CREATE TABLE IF NOT EXISTS `search` (
|
|||
`uid` int(11) NOT NULL DEFAULT 0,
|
||||
`term` varchar(255) NOT NULL DEFAULT '',
|
||||
PRIMARY KEY(`id`),
|
||||
INDEX `uid` (`uid`),
|
||||
INDEX `term` (`term`)
|
||||
INDEX `uid` (`uid`)
|
||||
) DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
--
|
||||
|
@ -925,7 +927,7 @@ CREATE TABLE IF NOT EXISTS `session` (
|
|||
`data` text,
|
||||
`expire` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY(`id`),
|
||||
INDEX `sid` (`sid`),
|
||||
INDEX `sid` (`sid`(64)),
|
||||
INDEX `expire` (`expire`)
|
||||
) DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
|
@ -977,12 +979,11 @@ CREATE TABLE IF NOT EXISTS `term` (
|
|||
`uid` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY(`tid`),
|
||||
INDEX `oid_otype_type_term` (`oid`,`otype`,`type`,`term`),
|
||||
INDEX `uid_term_tid` (`uid`,`term`,`tid`),
|
||||
INDEX `type_term` (`type`,`term`),
|
||||
INDEX `uid_otype_type_term_global_created` (`uid`,`otype`,`type`,`term`,`global`,`created`),
|
||||
INDEX `otype_type_term_tid` (`otype`,`type`,`term`,`tid`),
|
||||
INDEX `uid_otype_type_url` (`uid`,`otype`,`type`,`url`),
|
||||
INDEX `guid` (`guid`)
|
||||
INDEX `uid_term_tid` (`uid`,`term`(32),`tid`),
|
||||
INDEX `type_term` (`type`,`term`(32)),
|
||||
INDEX `uid_otype_type_term_global_created` (`uid`,`otype`,`type`,`term`(32),`global`,`created`),
|
||||
INDEX `uid_otype_type_url` (`uid`,`otype`,`type`,`url`(64)),
|
||||
INDEX `guid` (`guid`(64))
|
||||
) DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
--
|
||||
|
@ -1022,9 +1023,6 @@ CREATE TABLE IF NOT EXISTS `thread` (
|
|||
INDEX `uid_network_created` (`uid`,`network`,`created`),
|
||||
INDEX `uid_contactid_commented` (`uid`,`contact-id`,`commented`),
|
||||
INDEX `uid_contactid_created` (`uid`,`contact-id`,`created`),
|
||||
INDEX `uid_gcontactid_commented` (`uid`,`gcontact-id`,`commented`),
|
||||
INDEX `uid_gcontactid_created` (`uid`,`gcontact-id`,`created`),
|
||||
INDEX `wall_private_received` (`wall`,`private`,`received`),
|
||||
INDEX `uid_created` (`uid`,`created`),
|
||||
INDEX `uid_commented` (`uid`,`commented`)
|
||||
) DEFAULT CHARSET=utf8mb4;
|
||||
|
@ -1090,7 +1088,7 @@ CREATE TABLE IF NOT EXISTS `user` (
|
|||
`deny_gid` mediumtext,
|
||||
`openidserver` text,
|
||||
PRIMARY KEY(`uid`),
|
||||
INDEX `nickname` (`nickname`)
|
||||
INDEX `nickname` (`nickname`(32))
|
||||
) DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
--
|
||||
|
@ -1100,7 +1098,7 @@ CREATE TABLE IF NOT EXISTS `userd` (
|
|||
`id` int(11) NOT NULL auto_increment,
|
||||
`username` varchar(255) NOT NULL,
|
||||
PRIMARY KEY(`id`),
|
||||
INDEX `username` (`username`)
|
||||
INDEX `username` (`username`(32))
|
||||
) DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
--
|
||||
|
|
26
doc/FAQ.md
26
doc/FAQ.md
|
@ -43,29 +43,29 @@ We recommend to talk to the admin(s) of the affected friendica server. (Admins,
|
|||
|
||||
###How can I upload images, files, links, videos and sound files to posts?
|
||||
|
||||
You can upload images from your computer by using the [editor](help/Text_editor).
|
||||
You can upload images from your computer using the [editor](help/Text_editor).
|
||||
An overview of all uploaded images is listed at *yourpage.com/photos/profilename*.
|
||||
On that page, you can also upload images directly and choose, if your contacts shall receive a message about this upload.
|
||||
On that page, you can also upload images directly and choose if your contacts will receive a message about this upload.
|
||||
|
||||
Generally, you could attach every kind of file to a post.
|
||||
Generally, you can attach any kind of file to a post.
|
||||
This is possible by using the "paper-clip"-symbol in the editor.
|
||||
These files will be linked to your post and can be downloaded by your contacts.
|
||||
But it's not possible to get a preview for these ones.
|
||||
Because of this, this upload method is recommended for office or zipped files.
|
||||
If you want share content from Dropbox, Owncloud or any other [filehoster](http://en.wikipedia.org/wiki/Comparison_of_file_hosting_services), use the "link"-button (chain-symbol).
|
||||
But it's not possible to get a preview for these items.
|
||||
Because of this, this upload method is only recommended for office or zipped files.
|
||||
If you want to share content from Dropbox, Owncloud or any other [filehoster](http://en.wikipedia.org/wiki/Comparison_of_file_hosting_services), use the "link"-button (chain-symbol).
|
||||
|
||||
When you're adding URLs of other webpages with the "link"-button, Friendica tries to create a small preview.
|
||||
If this doesn't work, try to add the link by typing: [url=http://example.com]*self-chosen name*[/url].
|
||||
|
||||
You can also add video and audio files to posts.
|
||||
But instead of a direct upload you have to use one of the following methods:
|
||||
However, instead of a direct upload you have to use one of the following methods:
|
||||
|
||||
1. Add the video or audio link of a hoster (Youtube, Vimeo, Soundcloud and everyone else with oembed/opengraph-support). Videos will be shown with a preview image you can click on to start it. SoundCloud directly inserts a player to your post.
|
||||
1. Add the video or audio link of a hoster (Youtube, Vimeo, Soundcloud and anyone else with oembed/opengraph-support). Videos will be shown with a preview image you can click on to start. SoundCloud directly inserts a player to your post.
|
||||
|
||||
2. If you have your own server, you can upload multimedia files via FTP and insert the URL.
|
||||
|
||||
Friendica is using HTML5 for embedding content.
|
||||
Therefore, the supported files are depending on your browser and operating system.
|
||||
Friendica uses HTML5 for embedding content.
|
||||
Therefore, the supported files are dependent on your browser and operating system.
|
||||
Some supported filetypes are WebM, MP4, MP3 and OGG.
|
||||
See Wikipedia for more of them ([video](http://en.wikipedia.org/wiki/HTML5_video), [audio](http://en.wikipedia.org/wiki/HTML5_audio)).
|
||||
|
||||
|
@ -188,7 +188,7 @@ Admin
|
|||
|
||||
###Can I configure multiple domains with the same code instance?
|
||||
|
||||
No, this function is not supported anymore starting from Friendica 3.3.
|
||||
No, this function is no longer supported from Friendica 3.3 onwards.
|
||||
|
||||
<a name="sources"></a>
|
||||
|
||||
|
@ -202,12 +202,12 @@ Addons are listed at [this page](https://github.com/friendica/friendica-addons).
|
|||
If you are searching for new themes, you can find them at [Friendica-Themes.com](http://friendica-themes.com/)
|
||||
|
||||
<a name="adminaccount1"></a>
|
||||
###I've changed the my email address now the admin panel is gone?
|
||||
###I've changed my email address now the admin panel is gone?
|
||||
|
||||
Have a look into your <tt>.htconfig.php</tt> and fix your email address there.
|
||||
|
||||
<a name="adminaccount2"></a>
|
||||
###Can there be more then just one admin for a node?
|
||||
###Can there be more then one admin for a node?
|
||||
|
||||
Yes. You just have to list more then one email address in the
|
||||
<tt>.htconfig.php</tt> file. The listed emails need to be separated by a comma.
|
||||
|
|
|
@ -40,7 +40,7 @@ Arguments
|
|||
---
|
||||
Your hook callback functions will be called with at least one and possibly two arguments
|
||||
|
||||
function myhook_function(&$a, &$b) {
|
||||
function myhook_function(App $a, &$b) {
|
||||
|
||||
}
|
||||
|
||||
|
@ -77,9 +77,9 @@ This will include:
|
|||
$a->argc = 3
|
||||
$a->argv = array(0 => 'plugin', 1 => 'arg1', 2 => 'arg2');
|
||||
|
||||
Your module functions will often contain the function plugin_name_content(App &$a), which defines and returns the page body content.
|
||||
They may also contain plugin_name_post(App &$a) which is called before the _content function and typically handles the results of POST forms.
|
||||
You may also have plugin_name_init(App &$a) which is called very early on and often does module initialisation.
|
||||
Your module functions will often contain the function plugin_name_content(App $a), which defines and returns the page body content.
|
||||
They may also contain plugin_name_post(App $a) which is called before the _content function and typically handles the results of POST forms.
|
||||
You may also have plugin_name_init(App $a) which is called very early on and often does module initialisation.
|
||||
|
||||
Templates
|
||||
---
|
||||
|
|
|
@ -68,7 +68,7 @@ The code will be something like:
|
|||
file: mod/network.php
|
||||
<?php
|
||||
|
||||
function network_content(App &$a) {
|
||||
function network_content(App $a) {
|
||||
$itemsmanager = new \Friendica\ItemsManager();
|
||||
$items = $itemsmanager->getAll();
|
||||
|
||||
|
@ -160,7 +160,7 @@ But if you want to use classes from another library, you need to use the full na
|
|||
|
||||
```
|
||||
<?php
|
||||
namespace \Frienidca;
|
||||
namespace \Friendica;
|
||||
|
||||
class Diaspora {
|
||||
public function md2bbcode() {
|
||||
|
@ -173,7 +173,7 @@ if you use that class in many places of the code and you don't want to write the
|
|||
|
||||
```
|
||||
<?php
|
||||
namespace \Frienidca;
|
||||
namespace \Friendica;
|
||||
|
||||
use \Michelf\MarkdownExtra;
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ Argumente
|
|||
|
||||
Deine Hook-Callback-Funktion wird mit mindestens einem und bis zu zwei Argumenten aufgerufen
|
||||
|
||||
function myhook_function(&$a, &$b) {
|
||||
function myhook_function(App $a, &$b) {
|
||||
|
||||
}
|
||||
|
||||
|
@ -67,9 +67,9 @@ So würde http://example.com/plugin/arg1/arg2 nach einem Modul "plugin" suchen u
|
|||
$a->argc = 3
|
||||
$a->argv = array(0 => 'plugin', 1 => 'arg1', 2 => 'arg2');
|
||||
|
||||
Deine Modulfunktionen umfassen oft die Funktion plugin_name_content(App &$a), welche den Seiteninhalt definiert und zurückgibt.
|
||||
Sie können auch plugin_name_post(App &$a) umfassen, welches vor der content-Funktion aufgerufen wird und normalerweise die Resultate der POST-Formulare handhabt.
|
||||
Du kannst ebenso plugin_name_init(App &$a) nutzen, was oft frühzeitig aufgerufen wird und das Modul initialisert.
|
||||
Deine Modulfunktionen umfassen oft die Funktion plugin_name_content(App $a), welche den Seiteninhalt definiert und zurückgibt.
|
||||
Sie können auch plugin_name_post(App $a) umfassen, welches vor der content-Funktion aufgerufen wird und normalerweise die Resultate der POST-Formulare handhabt.
|
||||
Du kannst ebenso plugin_name_init(App $a) nutzen, was oft frühzeitig aufgerufen wird und das Modul initialisert.
|
||||
|
||||
|
||||
Derzeitige Hooks
|
||||
|
|
|
@ -25,6 +25,8 @@ Example: To set the directory value please add this line to your .htconfig.php:
|
|||
* **allowed_link_protocols** (Array) - Allowed protocols in links URLs, add at your own risk. http is always allowed.
|
||||
* **birthday_input_format** - Default value is "ymd".
|
||||
* **block_local_dir** (Boolean) - Blocks the access to the directory of the local users.
|
||||
* **curl_range_bytes** - Maximum number of bytes that should be fetched. Default is 0, which mean "no limit".
|
||||
* **dbclean** (Boolean) - Enable the automatic database cleanup process
|
||||
* **default_service_class** -
|
||||
* **delivery_batch_count** - Number of deliveries per process. Default value is 1. (Disabled when using the worker)
|
||||
* **diaspora_test** (Boolean) - For development only. Disables the message transfer.
|
||||
|
@ -46,6 +48,7 @@ Example: To set the directory value please add this line to your .htconfig.php:
|
|||
* **memcache** (Boolean) - Use memcache. To use memcache the PECL extension "memcache" has to be installed and activated.
|
||||
* **memcache_host** - Hostname of the memcache daemon. Default is '127.0.0.1'.
|
||||
* **memcache_port** - Portnumber of the memcache daemon. Default is 11211.
|
||||
* **no_count** (Boolean) - Don't do count calculations (currently only when showing albums)
|
||||
* **no_oembed** (Boolean) - Don't use OEmbed to fetch more information about a link.
|
||||
* **no_oembed_rich_content** (Boolean) - Don't show the rich content (e.g. embedded PDF).
|
||||
* **no_smilies** (Boolean) - Don't show smilies.
|
||||
|
|
|
@ -122,7 +122,7 @@ the 1st part of the line is the name of the CSS file (without the .css) the 2nd
|
|||
Calling the t() function with the common name makes the string translateable.
|
||||
The selected 1st part will be saved in the database by the theme_post function.
|
||||
|
||||
function theme_post(App &$a){
|
||||
function theme_post(App $a){
|
||||
// non local users shall not pass
|
||||
if (! local_user()) {
|
||||
return;
|
||||
|
@ -168,7 +168,7 @@ The content of this file should be something like
|
|||
|
||||
<?php
|
||||
/* meta informations for the theme, see below */
|
||||
function duepuntozero_lr_init(App &$a) {
|
||||
function duepuntozero_lr_init(App $a) {
|
||||
$a-> theme_info = array(
|
||||
'extends' => 'duepuntozero'.
|
||||
);
|
||||
|
@ -251,7 +251,7 @@ Next crucial part of the theme.php file is a definition of an init function.
|
|||
The name of the function is <theme-name>_init.
|
||||
So in the case of quattro it is
|
||||
|
||||
function quattro_init(App &$a) {
|
||||
function quattro_init(App $a) {
|
||||
$a->theme_info = array();
|
||||
set_template_engine($a, 'smarty3');
|
||||
}
|
||||
|
|
|
@ -612,7 +612,7 @@ function get_contact($url, $uid = 0, $no_update = false) {
|
|||
*
|
||||
* @return string posts in HTML
|
||||
*/
|
||||
function posts_from_gcontact($a, $gcontact_id) {
|
||||
function posts_from_gcontact(App $a, $gcontact_id) {
|
||||
|
||||
require_once('include/conversation.php');
|
||||
|
||||
|
@ -636,7 +636,7 @@ function posts_from_gcontact($a, $gcontact_id) {
|
|||
$r = q("SELECT `item`.`uri`, `item`.*, `item`.`id` AS `item_id`,
|
||||
`author-name` AS `name`, `owner-avatar` AS `photo`,
|
||||
`owner-link` AS `url`, `owner-avatar` AS `thumb`
|
||||
FROM `item` FORCE INDEX (`gcontactid_uid_created`)
|
||||
FROM `item`
|
||||
WHERE `gcontact-id` = %d AND $sql AND
|
||||
NOT `deleted` AND NOT `moderated` AND `visible`
|
||||
ORDER BY `item`.`created` DESC LIMIT %d, %d",
|
||||
|
@ -664,7 +664,7 @@ function posts_from_gcontact($a, $gcontact_id) {
|
|||
*
|
||||
* @return string posts in HTML
|
||||
*/
|
||||
function posts_from_contact_url($a, $contact_url) {
|
||||
function posts_from_contact_url(App $a, $contact_url) {
|
||||
|
||||
require_once('include/conversation.php');
|
||||
|
||||
|
|
|
@ -943,7 +943,7 @@ function scale_image($width, $height, $max) {
|
|||
return array("width" => $dest_width, "height" => $dest_height);
|
||||
}
|
||||
|
||||
function store_photo($a, $uid, $imagedata = "", $url = "") {
|
||||
function store_photo(App $a, $uid, $imagedata = "", $url = "") {
|
||||
$r = q("SELECT `user`.`nickname`, `user`.`page-flags`, `contact`.`id` FROM `user` INNER JOIN `contact` on `user`.`uid` = `contact`.`uid`
|
||||
WHERE `user`.`uid` = %d AND `user`.`blocked` = 0 AND `contact`.`self` = 1 LIMIT 1",
|
||||
intval($uid));
|
||||
|
|
|
@ -715,13 +715,21 @@ class Probe {
|
|||
$photos = $xpath->query("//*[contains(concat(' ', @class, ' '), ' photo ') or contains(concat(' ', @class, ' '), ' avatar ')]", $vcard); // */
|
||||
foreach ($photos AS $photo) {
|
||||
$attr = array();
|
||||
foreach ($photo->attributes as $attribute)
|
||||
foreach ($photo->attributes as $attribute) {
|
||||
$attr[$attribute->name] = trim($attribute->value);
|
||||
}
|
||||
|
||||
if (isset($attr["src"]) AND isset($attr["width"]))
|
||||
if (isset($attr["src"]) AND isset($attr["width"])) {
|
||||
$avatar[$attr["width"]] = $attr["src"];
|
||||
}
|
||||
|
||||
// We don't have a width. So we just take everything that we got.
|
||||
// This is a Hubzilla workaround which doesn't send a width.
|
||||
if ((sizeof($avatar) == 0) AND isset($attr["src"])) {
|
||||
$avatar[] = $attr["src"];
|
||||
}
|
||||
}
|
||||
|
||||
if (sizeof($avatar)) {
|
||||
ksort($avatar);
|
||||
$data["photo"] = array_pop($avatar);
|
||||
|
|
|
@ -135,7 +135,7 @@ function contact_selector($selname, $selclass, $preselected = false, $options) {
|
|||
$o .= "<select name=\"{$selname}[]\" id=\"$selclass\" class=\"$selclass\" multiple=\"multiple\" size=\"" . $x['size'] . "$\" $tabindex >\r\n";
|
||||
|
||||
$r = q("SELECT `id`, `name`, `url`, `network` FROM `contact`
|
||||
WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 AND `notify` != ''
|
||||
WHERE `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `pending` AND NOT `archive` AND `notify` != ''
|
||||
$sql_extra
|
||||
ORDER BY `name` ASC ",
|
||||
intval(local_user())
|
||||
|
@ -210,7 +210,7 @@ function contact_select($selname, $selclass, $preselected = false, $size = 4, $p
|
|||
$o .= "<select name=\"{$selname}[]\" id=\"$selclass\" class=\"$selclass\" multiple=\"multiple\" size=\"$size\" $tabindex >\r\n";
|
||||
|
||||
$r = q("SELECT `id`, `name`, `url`, `network` FROM `contact`
|
||||
WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 AND `notify` != ''
|
||||
WHERE `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `pending` AND NOT `archive` AND `notify` != ''
|
||||
$sql_extra
|
||||
ORDER BY `name` ASC ",
|
||||
intval(local_user())
|
||||
|
@ -372,7 +372,7 @@ function populate_acl($user = null, $show_jotnets = false) {
|
|||
|
||||
}
|
||||
|
||||
function construct_acl_data(&$a, $user) {
|
||||
function construct_acl_data(App $a, $user) {
|
||||
|
||||
// Get group and contact information for html ACL selector
|
||||
$acl_data = acl_lookup($a, 'html');
|
||||
|
@ -404,7 +404,7 @@ function construct_acl_data(&$a, $user) {
|
|||
|
||||
}
|
||||
|
||||
function acl_lookup(&$a, $out_type = 'json') {
|
||||
function acl_lookup(App $a, $out_type = 'json') {
|
||||
|
||||
if (!local_user()) {
|
||||
return '';
|
||||
|
@ -449,8 +449,8 @@ function acl_lookup(&$a, $out_type = 'json') {
|
|||
// autocomplete for editor mentions
|
||||
if ($type=='' || $type=='c'){
|
||||
$r = q("SELECT COUNT(*) AS c FROM `contact`
|
||||
WHERE `uid` = %d AND `self` = 0
|
||||
AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0
|
||||
WHERE `uid` = %d AND NOT `self`
|
||||
AND NOT `blocked` AND NOT `pending` AND NOT `archive`
|
||||
AND `notify` != '' $sql_extra2" ,
|
||||
intval(local_user())
|
||||
);
|
||||
|
@ -461,8 +461,8 @@ function acl_lookup(&$a, $out_type = 'json') {
|
|||
// autocomplete for Private Messages
|
||||
|
||||
$r = q("SELECT COUNT(*) AS c FROM `contact`
|
||||
WHERE `uid` = %d AND `self` = 0
|
||||
AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0
|
||||
WHERE `uid` = %d AND NOT `self`
|
||||
AND NOT `blocked` AND NOT `pending` AND NOT `archive`
|
||||
AND `network` IN ('%s','%s','%s') $sql_extra2" ,
|
||||
intval(local_user()),
|
||||
dbesc(NETWORK_DFRN),
|
||||
|
@ -477,8 +477,8 @@ function acl_lookup(&$a, $out_type = 'json') {
|
|||
// autocomplete for Contacts
|
||||
|
||||
$r = q("SELECT COUNT(*) AS c FROM `contact`
|
||||
WHERE `uid` = %d AND `self` = 0
|
||||
AND `pending` = 0 $sql_extra2" ,
|
||||
WHERE `uid` = %d AND NOT `self`
|
||||
AND NOT `pending` $sql_extra2" ,
|
||||
intval(local_user())
|
||||
);
|
||||
$contact_count = (int)$r[0]['c'];
|
||||
|
@ -525,7 +525,7 @@ function acl_lookup(&$a, $out_type = 'json') {
|
|||
if ($type==''){
|
||||
|
||||
$r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag`, `forum`, `prv` FROM `contact`
|
||||
WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 AND `notify` != ''
|
||||
WHERE `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `pending` AND NOT `archive` AND `notify` != ''
|
||||
AND NOT (`network` IN ('%s', '%s'))
|
||||
$sql_extra2
|
||||
ORDER BY `name` ASC ",
|
||||
|
@ -536,7 +536,7 @@ function acl_lookup(&$a, $out_type = 'json') {
|
|||
elseif ($type=='c'){
|
||||
|
||||
$r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag`, `forum`, `prv` FROM `contact`
|
||||
WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 AND `notify` != ''
|
||||
WHERE `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `pending` AND NOT `archive` AND `notify` != ''
|
||||
AND NOT (`network` IN ('%s'))
|
||||
$sql_extra2
|
||||
ORDER BY `name` ASC ",
|
||||
|
@ -546,7 +546,7 @@ function acl_lookup(&$a, $out_type = 'json') {
|
|||
}
|
||||
elseif($type == 'm') {
|
||||
$r = q("SELECT `id`, `name`, `nick`, `micro`, `network`, `url`, `attag` FROM `contact`
|
||||
WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0
|
||||
WHERE `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `pending` AND NOT `archive`
|
||||
AND `network` IN ('%s','%s','%s')
|
||||
$sql_extra2
|
||||
ORDER BY `name` ASC ",
|
||||
|
@ -691,7 +691,7 @@ function acl_lookup(&$a, $out_type = 'json') {
|
|||
* @param App $a
|
||||
* @return array with the search results
|
||||
*/
|
||||
function navbar_complete(App &$a) {
|
||||
function navbar_complete(App $a) {
|
||||
|
||||
// logger('navbar_complete');
|
||||
|
||||
|
|
|
@ -133,7 +133,7 @@
|
|||
* @hook 'logged_in'
|
||||
* array $user logged user record
|
||||
*/
|
||||
function api_login(App &$a){
|
||||
function api_login(App $a){
|
||||
// login with oauth
|
||||
try{
|
||||
$oauth = new FKOAuth1();
|
||||
|
@ -251,7 +251,7 @@
|
|||
* @param App $a
|
||||
* @return string API call result
|
||||
*/
|
||||
function api_call(App &$a){
|
||||
function api_call(App $a){
|
||||
global $API, $called_api;
|
||||
|
||||
$type="json";
|
||||
|
@ -404,7 +404,7 @@
|
|||
* @param array $user_info
|
||||
* @return array
|
||||
*/
|
||||
function api_rss_extra(&$a, $arr, $user_info){
|
||||
function api_rss_extra(App $a, $arr, $user_info){
|
||||
if (is_null($user_info)) $user_info = api_get_user($a);
|
||||
$arr['$user'] = $user_info;
|
||||
$arr['$rss'] = array(
|
||||
|
@ -444,7 +444,7 @@
|
|||
* @param int|string $contact_id Contact ID or URL
|
||||
* @param string $type Return type (for errors)
|
||||
*/
|
||||
function api_get_user(&$a, $contact_id = Null, $type = "json"){
|
||||
function api_get_user(App $a, $contact_id = Null, $type = "json"){
|
||||
global $called_api;
|
||||
$user = null;
|
||||
$extra_query = "";
|
||||
|
@ -712,7 +712,7 @@
|
|||
* @param array $item : item from db
|
||||
* @return array(array:author, array:owner)
|
||||
*/
|
||||
function api_item_get_user(&$a, $item) {
|
||||
function api_item_get_user(App $a, $item) {
|
||||
|
||||
$status_user = api_get_user($a, $item["author-link"]);
|
||||
|
||||
|
@ -2344,6 +2344,9 @@
|
|||
* dislikes => int count
|
||||
*/
|
||||
function api_format_items_activities(&$item, $type = "json") {
|
||||
|
||||
$a = get_app();
|
||||
|
||||
$activities = array(
|
||||
'like' => array(),
|
||||
'dislike' => array(),
|
||||
|
@ -2521,9 +2524,9 @@
|
|||
|
||||
// Retweets are only valid for top postings
|
||||
// It doesn't work reliable with the link if its a feed
|
||||
#$IsRetweet = ($item['owner-link'] != $item['author-link']);
|
||||
#if ($IsRetweet)
|
||||
# $IsRetweet = (($item['owner-name'] != $item['author-name']) OR ($item['owner-avatar'] != $item['author-avatar']));
|
||||
//$IsRetweet = ($item['owner-link'] != $item['author-link']);
|
||||
//if ($IsRetweet)
|
||||
// $IsRetweet = (($item['owner-name'] != $item['author-name']) OR ($item['owner-avatar'] != $item['author-avatar']));
|
||||
|
||||
|
||||
if ($item["id"] == $item["parent"]) {
|
||||
|
|
|
@ -466,7 +466,7 @@ function item_condition() {
|
|||
*/
|
||||
|
||||
if(!function_exists('conversation')) {
|
||||
function conversation(&$a, $items, $mode, $update, $preview = false) {
|
||||
function conversation(App $a, $items, $mode, $update, $preview = false) {
|
||||
|
||||
require_once('include/bbcode.php');
|
||||
require_once('include/Contact.php');
|
||||
|
|
|
@ -128,7 +128,7 @@ function cron_run(&$argv, &$argc){
|
|||
|
||||
proc_run(PRIORITY_LOW, 'include/expire.php');
|
||||
|
||||
proc_run(PRIORITY_LOW, 'include/dbclean.php');
|
||||
proc_run(PRIORITY_MEDIUM, 'include/dbclean.php');
|
||||
|
||||
cron_update_photo_albums();
|
||||
}
|
||||
|
@ -264,8 +264,9 @@ function cron_poll_contacts($argc, $argv) {
|
|||
intval($c['id'])
|
||||
);
|
||||
|
||||
if (dbm::is_result($res))
|
||||
if (!dbm::is_result($res)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach($res as $contact) {
|
||||
|
||||
|
@ -343,7 +344,7 @@ function cron_poll_contacts($argc, $argv) {
|
|||
*
|
||||
* @param App $a
|
||||
*/
|
||||
function cron_clear_cache(App &$a) {
|
||||
function cron_clear_cache(App $a) {
|
||||
|
||||
$last = get_config('system','cache_last_cleared');
|
||||
|
||||
|
@ -430,7 +431,7 @@ function cron_clear_cache(App &$a) {
|
|||
*
|
||||
* @param App $a
|
||||
*/
|
||||
function cron_repair_diaspora(App &$a) {
|
||||
function cron_repair_diaspora(App $a) {
|
||||
$r = q("SELECT `id`, `url` FROM `contact`
|
||||
WHERE `network` = '%s' AND (`batch` = '' OR `notify` = '' OR `poll` = '' OR pubkey = '')
|
||||
ORDER BY RAND() LIMIT 50", dbesc(NETWORK_DIASPORA));
|
||||
|
|
|
@ -3,13 +3,18 @@
|
|||
* @file include/dbclean.php
|
||||
* @brief The script is called from time to time to clean the database entries and remove orphaned data.
|
||||
*/
|
||||
|
||||
use \Friendica\Core\Config;
|
||||
use \Friendica\Core\PConfig;
|
||||
|
||||
require_once("boot.php");
|
||||
|
||||
function dbclean_run(&$argv, &$argc) {
|
||||
global $a, $db;
|
||||
|
||||
if (is_null($a))
|
||||
if (is_null($a)) {
|
||||
$a = new App;
|
||||
}
|
||||
|
||||
if (is_null($db)) {
|
||||
@include(".htconfig.php");
|
||||
|
@ -18,8 +23,12 @@ function dbclean_run(&$argv, &$argc) {
|
|||
unset($db_host, $db_user, $db_pass, $db_data);
|
||||
}
|
||||
|
||||
load_config('config');
|
||||
load_config('system');
|
||||
Config::load('config');
|
||||
Config::load('system');
|
||||
|
||||
if (!Config::get('system', 'dbclean', false)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ($argc == 2) {
|
||||
$stage = intval($argv[1]);
|
||||
|
@ -27,7 +36,7 @@ function dbclean_run(&$argv, &$argc) {
|
|||
$stage = 0;
|
||||
}
|
||||
|
||||
if (get_config("system", "worker") AND ($stage == 0)) {
|
||||
if (Config::get("system", "worker") AND ($stage == 0)) {
|
||||
proc_run(PRIORITY_LOW, 'include/dbclean.php', 1);
|
||||
proc_run(PRIORITY_LOW, 'include/dbclean.php', 2);
|
||||
proc_run(PRIORITY_LOW, 'include/dbclean.php', 3);
|
||||
|
@ -48,11 +57,18 @@ function remove_orphans($stage = 0) {
|
|||
|
||||
$count = 0;
|
||||
|
||||
// With activated worker we split the deletion in many small tasks
|
||||
if (Config::get("system", "worker")) {
|
||||
$limit = 1000;
|
||||
} else {
|
||||
$limit = 10000;
|
||||
}
|
||||
|
||||
if (($stage == 1) OR ($stage == 0)) {
|
||||
logger("Deleting old global item entries from item table without user copy");
|
||||
if ($db->q("SELECT `id` FROM `item` WHERE `uid` = 0
|
||||
AND NOT EXISTS (SELECT `guid` FROM `item` AS `i` WHERE `item`.`guid` = `i`.`guid` AND `i`.`uid` != 0)
|
||||
AND `received` < UTC_TIMESTAMP() - INTERVAL 90 DAY LIMIT 10000", true)) {
|
||||
AND `received` < UTC_TIMESTAMP() - INTERVAL 90 DAY LIMIT ".intval($limit), true)) {
|
||||
$count = $db->num_rows();
|
||||
logger("found global item orphans: ".$count);
|
||||
while ($orphan = $db->qfetch()) {
|
||||
|
@ -65,7 +81,7 @@ function remove_orphans($stage = 0) {
|
|||
|
||||
if (($stage == 2) OR ($stage == 0)) {
|
||||
logger("Deleting items without parents");
|
||||
if ($db->q("SELECT `id` FROM `item` WHERE NOT EXISTS (SELECT `id` FROM `item` AS `i` WHERE `item`.`parent` = `i`.`id`) LIMIT 10000", true)) {
|
||||
if ($db->q("SELECT `id` FROM `item` WHERE NOT EXISTS (SELECT `id` FROM `item` AS `i` WHERE `item`.`parent` = `i`.`id`) LIMIT ".intval($limit), true)) {
|
||||
$count = $db->num_rows();
|
||||
logger("found item orphans without parents: ".$count);
|
||||
while ($orphan = $db->qfetch()) {
|
||||
|
@ -78,7 +94,7 @@ function remove_orphans($stage = 0) {
|
|||
|
||||
if (($stage == 3) OR ($stage == 0)) {
|
||||
logger("Deleting orphaned data from thread table");
|
||||
if ($db->q("SELECT `iid` FROM `thread` WHERE NOT EXISTS (SELECT `id` FROM `item` WHERE `item`.`parent` = `thread`.`iid`)", true)) {
|
||||
if ($db->q("SELECT `iid` FROM `thread` WHERE NOT EXISTS (SELECT `id` FROM `item` WHERE `item`.`parent` = `thread`.`iid`) LIMIT ".intval($limit), true)) {
|
||||
$count = $db->num_rows();
|
||||
logger("found thread orphans: ".$count);
|
||||
while ($orphan = $db->qfetch()) {
|
||||
|
@ -91,7 +107,7 @@ function remove_orphans($stage = 0) {
|
|||
|
||||
if (($stage == 4) OR ($stage == 0)) {
|
||||
logger("Deleting orphaned data from notify table");
|
||||
if ($db->q("SELECT `iid` FROM `notify` WHERE NOT EXISTS (SELECT `id` FROM `item` WHERE `item`.`id` = `notify`.`iid`)", true)) {
|
||||
if ($db->q("SELECT `iid` FROM `notify` WHERE NOT EXISTS (SELECT `id` FROM `item` WHERE `item`.`id` = `notify`.`iid`) LIMIT ".intval($limit), true)) {
|
||||
$count = $db->num_rows();
|
||||
logger("found notify orphans: ".$count);
|
||||
while ($orphan = $db->qfetch()) {
|
||||
|
@ -104,7 +120,7 @@ function remove_orphans($stage = 0) {
|
|||
|
||||
if (($stage == 5) OR ($stage == 0)) {
|
||||
logger("Deleting orphaned data from notify-threads table");
|
||||
if ($db->q("SELECT `id` FROM `notify-threads` WHERE NOT EXISTS (SELECT `id` FROM `item` WHERE `item`.`parent` = `notify-threads`.`master-parent-item`)", true)) {
|
||||
if ($db->q("SELECT `id` FROM `notify-threads` WHERE NOT EXISTS (SELECT `id` FROM `item` WHERE `item`.`parent` = `notify-threads`.`master-parent-item`) LIMIT ".intval($limit), true)) {
|
||||
$count = $db->num_rows();
|
||||
logger("found notify-threads orphans: ".$count);
|
||||
while ($orphan = $db->qfetch()) {
|
||||
|
@ -118,7 +134,7 @@ function remove_orphans($stage = 0) {
|
|||
|
||||
if (($stage == 6) OR ($stage == 0)) {
|
||||
logger("Deleting orphaned data from sign table");
|
||||
if ($db->q("SELECT `iid` FROM `sign` WHERE NOT EXISTS (SELECT `id` FROM `item` WHERE `item`.`id` = `sign`.`iid`)", true)) {
|
||||
if ($db->q("SELECT `iid` FROM `sign` WHERE NOT EXISTS (SELECT `id` FROM `item` WHERE `item`.`id` = `sign`.`iid`) LIMIT ".intval($limit), true)) {
|
||||
$count = $db->num_rows();
|
||||
logger("found sign orphans: ".$count);
|
||||
while ($orphan = $db->qfetch()) {
|
||||
|
@ -132,7 +148,7 @@ function remove_orphans($stage = 0) {
|
|||
|
||||
if (($stage == 7) OR ($stage == 0)) {
|
||||
logger("Deleting orphaned data from term table");
|
||||
if ($db->q("SELECT `oid` FROM `term` WHERE NOT EXISTS (SELECT `id` FROM `item` WHERE `item`.`id` = `term`.`oid`)", true)) {
|
||||
if ($db->q("SELECT `oid` FROM `term` WHERE NOT EXISTS (SELECT `id` FROM `item` WHERE `item`.`id` = `term`.`oid`) LIMIT ".intval($limit), true)) {
|
||||
$count = $db->num_rows();
|
||||
logger("found term orphans: ".$count);
|
||||
while ($orphan = $db->qfetch()) {
|
||||
|
@ -144,8 +160,8 @@ function remove_orphans($stage = 0) {
|
|||
}
|
||||
|
||||
// Call it again if not all entries were purged
|
||||
if (($stage != 0) AND ($count > 0) AND get_config("system", "worker")) {
|
||||
proc_run(PRIORITY_LOW, 'include/dbclean.php');
|
||||
if (($stage != 0) AND ($count > 0) AND Config::get("system", "worker")) {
|
||||
proc_run(PRIORITY_MEDIUM, 'include/dbclean.php');
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -586,9 +586,16 @@ function db_definition($charset) {
|
|||
),
|
||||
"indexes" => array(
|
||||
"PRIMARY" => array("id"),
|
||||
"uid" => array("uid"),
|
||||
"addr_uid" => array("addr", "uid"),
|
||||
"nurl" => array("nurl"),
|
||||
"uid_name" => array("uid", "name"),
|
||||
"uid_self" => array("uid", "self"),
|
||||
"alias_uid" => array("alias(32)", "uid"),
|
||||
"uid_pending" => array("uid", "pending"),
|
||||
"uid_blocked" => array("uid", "blocked"),
|
||||
"uid_rel_network_poll" => array("uid", "rel", "network", "poll(64)", "archive"),
|
||||
"uid_network_batch" => array("uid", "network", "batch(64)"),
|
||||
"addr_uid" => array("addr(32)", "uid"),
|
||||
"nurl_uid" => array("nurl(32)", "uid"),
|
||||
"nick_uid" => array("nick(32)", "uid"),
|
||||
)
|
||||
);
|
||||
$database["conv"] = array(
|
||||
|
@ -644,7 +651,7 @@ function db_definition($charset) {
|
|||
),
|
||||
"indexes" => array(
|
||||
"PRIMARY" => array("id"),
|
||||
"uid" => array("uid"),
|
||||
"uid_start" => array("uid", "start"),
|
||||
)
|
||||
);
|
||||
$database["fcontact"] = array(
|
||||
|
@ -669,7 +676,7 @@ function db_definition($charset) {
|
|||
),
|
||||
"indexes" => array(
|
||||
"PRIMARY" => array("id"),
|
||||
"addr" => array("addr"),
|
||||
"addr" => array("addr(32)"),
|
||||
)
|
||||
);
|
||||
$database["ffinder"] = array(
|
||||
|
@ -692,7 +699,7 @@ function db_definition($charset) {
|
|||
),
|
||||
"indexes" => array(
|
||||
"PRIMARY" => array("id"),
|
||||
"server" => array("server"),
|
||||
"server" => array("server(32)"),
|
||||
)
|
||||
);
|
||||
$database["fsuggest"] = array(
|
||||
|
@ -754,10 +761,10 @@ function db_definition($charset) {
|
|||
),
|
||||
"indexes" => array(
|
||||
"PRIMARY" => array("id"),
|
||||
"nurl" => array("nurl"),
|
||||
"name" => array("name"),
|
||||
"nick" => array("nick"),
|
||||
"addr" => array("addr"),
|
||||
"nurl" => array("nurl(32)"),
|
||||
"name" => array("name(32)"),
|
||||
"nick" => array("nick(32)"),
|
||||
"addr" => array("addr(32)"),
|
||||
"updated" => array("updated"),
|
||||
)
|
||||
);
|
||||
|
@ -772,7 +779,7 @@ function db_definition($charset) {
|
|||
),
|
||||
"indexes" => array(
|
||||
"PRIMARY" => array("id"),
|
||||
"cid_uid_gcid_zcid" => array("cid","uid","gcid","zcid"),
|
||||
"cid_uid_gcid_zcid" => array("UNIQUE", "cid","uid","gcid","zcid"),
|
||||
"gcid" => array("gcid"),
|
||||
"zcid" => array("zcid"),
|
||||
)
|
||||
|
@ -799,7 +806,9 @@ function db_definition($charset) {
|
|||
),
|
||||
"indexes" => array(
|
||||
"PRIMARY" => array("id"),
|
||||
"uid_gid_contactid" => array("uid","gid","contact-id"),
|
||||
"gid_contactid" => array("gid", "contact-id"),
|
||||
"uid_contactid" => array("uid", "contact-id"),
|
||||
"uid_gid_contactid" => array("UNIQUE", "uid", "gid", "contact-id"),
|
||||
)
|
||||
);
|
||||
$database["gserver"] = array(
|
||||
|
@ -822,7 +831,7 @@ function db_definition($charset) {
|
|||
),
|
||||
"indexes" => array(
|
||||
"PRIMARY" => array("id"),
|
||||
"nurl" => array("nurl"),
|
||||
"nurl" => array("nurl(32)"),
|
||||
)
|
||||
);
|
||||
$database["hook"] = array(
|
||||
|
@ -937,24 +946,17 @@ function db_definition($charset) {
|
|||
"uid_network_received" => array("uid","network","received"),
|
||||
"uid_received" => array("uid","received"),
|
||||
"uid_network_commented" => array("uid","network","commented"),
|
||||
"uid_commented" => array("uid","commented"),
|
||||
"uid_title" => array("uid","title"),
|
||||
"uid_thrparent" => array("uid","thr-parent"),
|
||||
"uid_parenturi" => array("uid","parent-uri"),
|
||||
"uid_contactid_id" => array("uid","contact-id","id"),
|
||||
"uid_contactid_created" => array("uid","contact-id","created"),
|
||||
"gcontactid_uid_created" => array("gcontact-id","uid","created"),
|
||||
"authorid_created" => array("author-id","created"),
|
||||
"ownerid_created" => array("owner-id","created"),
|
||||
"wall_body" => array("wall","body(6)"),
|
||||
"uid_visible_moderated_created" => array("uid","visible","moderated","created"),
|
||||
"uid_uri" => array("uid", "uri"),
|
||||
"uid_wall_created" => array("uid","wall","created"),
|
||||
"resource-id" => array("resource-id"),
|
||||
"uid_type" => array("uid","type"),
|
||||
"uid_starred_id" => array("uid","starred", "id"),
|
||||
"contactid_allowcid_allowpid_denycid_denygid" => array("contact-id","allow_cid(10)","allow_gid(10)","deny_cid(10)","deny_gid(10)"),
|
||||
"uid_wall_parent_created" => array("uid","wall","parent","created"),
|
||||
"uid_type_changed" => array("uid","type","changed"),
|
||||
"contactid_verb" => array("contact-id","verb"),
|
||||
"deleted_changed" => array("deleted","changed"),
|
||||
|
@ -976,7 +978,7 @@ function db_definition($charset) {
|
|||
"PRIMARY" => array("id"),
|
||||
"uid" => array("uid"),
|
||||
"sid" => array("sid"),
|
||||
"service" => array("service"),
|
||||
"service" => array("service(32)"),
|
||||
"iid" => array("iid"),
|
||||
)
|
||||
);
|
||||
|
@ -1014,11 +1016,10 @@ function db_definition($charset) {
|
|||
"indexes" => array(
|
||||
"PRIMARY" => array("id"),
|
||||
"uid" => array("uid"),
|
||||
"guid" => array("guid"),
|
||||
"uid_seen" => array("uid", "seen"),
|
||||
"convid" => array("convid"),
|
||||
"reply" => array("reply"),
|
||||
"uri" => array("uri"),
|
||||
"parent-uri" => array("parent-uri"),
|
||||
"uri" => array("uri(64)"),
|
||||
"parent-uri" => array("parent-uri(64)"),
|
||||
)
|
||||
);
|
||||
$database["mailacct"] = array(
|
||||
|
@ -1074,7 +1075,11 @@ function db_definition($charset) {
|
|||
),
|
||||
"indexes" => array(
|
||||
"PRIMARY" => array("id"),
|
||||
"uid" => array("uid"),
|
||||
"uid_hash" => array("uid", "hash"),
|
||||
"uid_seen_date" => array("uid", "seen", "date"),
|
||||
"uid_type_link" => array("uid", "type", "link"),
|
||||
"uid_link" => array("uid", "link"),
|
||||
"uid_date" => array("uid", "date"),
|
||||
)
|
||||
);
|
||||
$database["notify-threads"] = array(
|
||||
|
@ -1088,7 +1093,6 @@ function db_definition($charset) {
|
|||
"indexes" => array(
|
||||
"PRIMARY" => array("id"),
|
||||
"master-parent-item" => array("master-parent-item"),
|
||||
"receiver-uid" => array("receiver-uid"),
|
||||
)
|
||||
);
|
||||
$database["oembed"] = array(
|
||||
|
@ -1157,9 +1161,9 @@ function db_definition($charset) {
|
|||
"PRIMARY" => array("id"),
|
||||
"uid_contactid" => array("uid", "contact-id"),
|
||||
"uid_profile" => array("uid", "profile"),
|
||||
"uid_album_created" => array("uid", "album", "created"),
|
||||
"resource-id" => array("resource-id"),
|
||||
"guid" => array("guid"),
|
||||
"uid_album_created" => array("uid", "album(32)", "created"),
|
||||
"uid_album_resource-id_created" => array("uid", "album(32)", "resource-id(64)", "created"),
|
||||
"resource-id" => array("resource-id(64)"),
|
||||
)
|
||||
);
|
||||
$database["poll"] = array(
|
||||
|
@ -1252,7 +1256,6 @@ function db_definition($charset) {
|
|||
),
|
||||
"indexes" => array(
|
||||
"PRIMARY" => array("id"),
|
||||
"hometown" => array("hometown"),
|
||||
)
|
||||
);
|
||||
$database["profile_check"] = array(
|
||||
|
@ -1325,7 +1328,6 @@ function db_definition($charset) {
|
|||
"indexes" => array(
|
||||
"PRIMARY" => array("id"),
|
||||
"uid" => array("uid"),
|
||||
"term" => array("term"),
|
||||
)
|
||||
);
|
||||
$database["session"] = array(
|
||||
|
@ -1337,7 +1339,7 @@ function db_definition($charset) {
|
|||
),
|
||||
"indexes" => array(
|
||||
"PRIMARY" => array("id"),
|
||||
"sid" => array("sid"),
|
||||
"sid" => array("sid(64)"),
|
||||
"expire" => array("expire"),
|
||||
)
|
||||
);
|
||||
|
@ -1389,12 +1391,11 @@ function db_definition($charset) {
|
|||
"indexes" => array(
|
||||
"PRIMARY" => array("tid"),
|
||||
"oid_otype_type_term" => array("oid","otype","type","term"),
|
||||
"uid_term_tid" => array("uid","term","tid"),
|
||||
"type_term" => array("type","term"),
|
||||
"uid_otype_type_term_global_created" => array("uid","otype","type","term","global","created"),
|
||||
"otype_type_term_tid" => array("otype","type","term","tid"),
|
||||
"uid_otype_type_url" => array("uid","otype","type","url"),
|
||||
"guid" => array("guid"),
|
||||
"uid_term_tid" => array("uid","term(32)","tid"),
|
||||
"type_term" => array("type","term(32)"),
|
||||
"uid_otype_type_term_global_created" => array("uid","otype","type","term(32)","global","created"),
|
||||
"uid_otype_type_url" => array("uid","otype","type","url(64)"),
|
||||
"guid" => array("guid(64)"),
|
||||
)
|
||||
);
|
||||
$database["thread"] = array(
|
||||
|
@ -1434,9 +1435,6 @@ function db_definition($charset) {
|
|||
"uid_network_created" => array("uid","network","created"),
|
||||
"uid_contactid_commented" => array("uid","contact-id","commented"),
|
||||
"uid_contactid_created" => array("uid","contact-id","created"),
|
||||
"uid_gcontactid_commented" => array("uid","gcontact-id","commented"),
|
||||
"uid_gcontactid_created" => array("uid","gcontact-id","created"),
|
||||
"wall_private_received" => array("wall","private","received"),
|
||||
"uid_created" => array("uid","created"),
|
||||
"uid_commented" => array("uid","commented"),
|
||||
)
|
||||
|
@ -1502,7 +1500,7 @@ function db_definition($charset) {
|
|||
),
|
||||
"indexes" => array(
|
||||
"PRIMARY" => array("uid"),
|
||||
"nickname" => array("nickname"),
|
||||
"nickname" => array("nickname(32)"),
|
||||
)
|
||||
);
|
||||
$database["userd"] = array(
|
||||
|
@ -1512,7 +1510,7 @@ function db_definition($charset) {
|
|||
),
|
||||
"indexes" => array(
|
||||
"PRIMARY" => array("id"),
|
||||
"username" => array("username"),
|
||||
"username" => array("username(32)"),
|
||||
)
|
||||
);
|
||||
$database["workerqueue"] = array(
|
||||
|
|
|
@ -32,8 +32,9 @@ function delivery_run(&$argv, &$argc){
|
|||
|
||||
load_hooks();
|
||||
|
||||
if ($argc < 3)
|
||||
if ($argc < 3) {
|
||||
return;
|
||||
}
|
||||
|
||||
$a->set_baseurl(get_config('system','url'));
|
||||
|
||||
|
@ -46,6 +47,7 @@ function delivery_run(&$argv, &$argc){
|
|||
|
||||
$contact_id = intval($argv[$x]);
|
||||
|
||||
/// @todo When switching completely to the worker we won't need this anymore
|
||||
// Some other process may have delivered this item already.
|
||||
|
||||
$r = q("SELECT * FROM `deliverq` WHERE `cmd` = '%s' AND `item` = %d AND `contact` = %d LIMIT 1",
|
||||
|
@ -57,8 +59,9 @@ function delivery_run(&$argv, &$argc){
|
|||
continue;
|
||||
}
|
||||
|
||||
if ($a->maxload_reached())
|
||||
if ($a->maxload_reached()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// It's ours to deliver. Remove it from the queue.
|
||||
|
||||
|
@ -68,8 +71,9 @@ function delivery_run(&$argv, &$argc){
|
|||
dbesc($contact_id)
|
||||
);
|
||||
|
||||
if (!$item_id || !$contact_id)
|
||||
if (!$item_id || !$contact_id) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$expire = false;
|
||||
$mail = false;
|
||||
|
@ -96,8 +100,7 @@ function delivery_run(&$argv, &$argc){
|
|||
$uid = $message[0]['uid'];
|
||||
$recipients[] = $message[0]['contact-id'];
|
||||
$item = $message[0];
|
||||
}
|
||||
elseif ($cmd === 'expire') {
|
||||
} elseif ($cmd === 'expire') {
|
||||
$normal_mode = false;
|
||||
$expire = true;
|
||||
$items = q("SELECT * FROM `item` WHERE `uid` = %d AND `wall` = 1
|
||||
|
@ -106,18 +109,19 @@ function delivery_run(&$argv, &$argc){
|
|||
);
|
||||
$uid = $item_id;
|
||||
$item_id = 0;
|
||||
if (!count($items))
|
||||
if (!count($items)) {
|
||||
continue;
|
||||
}
|
||||
elseif ($cmd === 'suggest') {
|
||||
} elseif ($cmd === 'suggest') {
|
||||
$normal_mode = false;
|
||||
$fsuggest = true;
|
||||
|
||||
$suggest = q("SELECT * FROM `fsuggest` WHERE `id` = %d LIMIT 1",
|
||||
intval($item_id)
|
||||
);
|
||||
if (!count($suggest))
|
||||
if (!count($suggest)) {
|
||||
return;
|
||||
}
|
||||
$uid = $suggest[0]['uid'];
|
||||
$recipients[] = $suggest[0]['cid'];
|
||||
$item = $suggest[0];
|
||||
|
@ -151,26 +155,33 @@ function delivery_run(&$argv, &$argc){
|
|||
|
||||
$icontacts = null;
|
||||
$contacts_arr = array();
|
||||
foreach($items as $item)
|
||||
if (!in_array($item['contact-id'],$contacts_arr))
|
||||
foreach ($items as $item) {
|
||||
if (!in_array($item['contact-id'],$contacts_arr)) {
|
||||
$contacts_arr[] = intval($item['contact-id']);
|
||||
}
|
||||
}
|
||||
if (count($contacts_arr)) {
|
||||
$str_contacts = implode(',',$contacts_arr);
|
||||
$icontacts = q("SELECT * FROM `contact`
|
||||
WHERE `id` IN ( $str_contacts ) "
|
||||
);
|
||||
}
|
||||
if ( !($icontacts && count($icontacts)))
|
||||
if ( !($icontacts && count($icontacts))) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// avoid race condition with deleting entries
|
||||
|
||||
if ($items[0]['deleted']) {
|
||||
foreach($items as $item)
|
||||
foreach ($items as $item) {
|
||||
$item['deleted'] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if ((count($items) == 1) && ($items[0]['uri'] === $items[0]['parent-uri'])) {
|
||||
// When commenting too fast after delivery, a post wasn't recognized as top level post.
|
||||
// The count then showed more than one entry. The additional check should help.
|
||||
// The check for the "count" should be superfluous, but I'm not totally sure by now, so we keep it.
|
||||
if ((($items[0]['id'] == $item_id) || (count($items) == 1)) && ($items[0]['uri'] === $items[0]['parent-uri'])) {
|
||||
logger('delivery: top level post');
|
||||
$top_level = true;
|
||||
}
|
||||
|
@ -184,8 +195,9 @@ function delivery_run(&$argv, &$argc){
|
|||
intval($uid)
|
||||
);
|
||||
|
||||
if (!dbm::is_result($r))
|
||||
if (!dbm::is_result($r)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$owner = $r[0];
|
||||
|
||||
|
@ -217,9 +229,9 @@ function delivery_run(&$argv, &$argc){
|
|||
|
||||
|
||||
$localhost = $a->get_hostname();
|
||||
if (strpos($localhost,':'))
|
||||
if (strpos($localhost,':')) {
|
||||
$localhost = substr($localhost,0,strpos($localhost,':'));
|
||||
|
||||
}
|
||||
/**
|
||||
*
|
||||
* Be VERY CAREFUL if you make any changes to the following line. Seemingly innocuous changes
|
||||
|
@ -254,12 +266,12 @@ function delivery_run(&$argv, &$argc){
|
|||
intval($contact_id)
|
||||
);
|
||||
|
||||
if (dbm::is_result($r))
|
||||
if (dbm::is_result($r)) {
|
||||
$contact = $r[0];
|
||||
|
||||
if ($contact['self'])
|
||||
}
|
||||
if ($contact['self']) {
|
||||
continue;
|
||||
|
||||
}
|
||||
$deliver_status = 0;
|
||||
|
||||
logger("main delivery by delivery: followup=$followup mail=$mail fsuggest=$fsuggest relocate=$relocate - network ".$contact['network']);
|
||||
|
@ -275,13 +287,14 @@ function delivery_run(&$argv, &$argc){
|
|||
} elseif ($fsuggest) {
|
||||
$atom = dfrn::fsuggest($item, $owner);
|
||||
q("DELETE FROM `fsuggest` WHERE `id` = %d LIMIT 1", intval($item['id']));
|
||||
} elseif ($relocate)
|
||||
} elseif ($relocate) {
|
||||
$atom = dfrn::relocate($owner, $uid);
|
||||
elseif ($followup) {
|
||||
} elseif ($followup) {
|
||||
$msgitems = array();
|
||||
foreach ($items as $item) { // there is only one item
|
||||
if (!$item['parent'])
|
||||
if (!$item['parent']) {
|
||||
continue;
|
||||
}
|
||||
if ($item['id'] == $item_id) {
|
||||
logger('followup: item: '. print_r($item,true), LOGGER_DATA);
|
||||
$msgitems[] = $item;
|
||||
|
@ -291,16 +304,19 @@ function delivery_run(&$argv, &$argc){
|
|||
} else {
|
||||
$msgitems = array();
|
||||
foreach ($items as $item) {
|
||||
if (!$item['parent'])
|
||||
if (!$item['parent']) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// private emails may be in included in public conversations. Filter them.
|
||||
if ($public_message && $item['private'])
|
||||
if ($public_message && $item['private']) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$item_contact = get_item_contact($item,$icontacts);
|
||||
if (!$item_contact)
|
||||
if (!$item_contact) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($normal_mode) {
|
||||
if ($item_id == $item['id'] || $item['id'] == $item['parent']) {
|
||||
|
@ -326,10 +342,11 @@ function delivery_run(&$argv, &$argc){
|
|||
if (link_compare($basepath,App::get_baseurl())) {
|
||||
|
||||
$nickname = basename($contact['url']);
|
||||
if ($contact['issued-id'])
|
||||
if ($contact['issued-id']) {
|
||||
$sql_extra = sprintf(" AND `dfrn-id` = '%s' ", dbesc($contact['issued-id']));
|
||||
else
|
||||
} else {
|
||||
$sql_extra = sprintf(" AND `issued-id` = '%s' ", dbesc($contact['dfrn-id']));
|
||||
}
|
||||
|
||||
$x = q("SELECT `contact`.*, `contact`.`uid` AS `importer_uid`,
|
||||
`contact`.`pubkey` AS `cpubkey`,
|
||||
|
@ -362,19 +379,20 @@ function delivery_run(&$argv, &$argc){
|
|||
|
||||
// If we are setup as a soapbox we aren't accepting top level posts from this person
|
||||
|
||||
if (($x[0]['page-flags'] == PAGE_SOAPBOX) AND $top_level)
|
||||
if (($x[0]['page-flags'] == PAGE_SOAPBOX) AND $top_level) {
|
||||
break;
|
||||
|
||||
}
|
||||
logger('mod-delivery: local delivery');
|
||||
dfrn::import($atom, $x[0]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!was_recently_delayed($contact['id']))
|
||||
if (!was_recently_delayed($contact['id'])) {
|
||||
$deliver_status = dfrn::deliver($owner,$contact,$atom);
|
||||
else
|
||||
} else {
|
||||
$deliver_status = (-1);
|
||||
}
|
||||
|
||||
logger('notifier: dfrn_delivery to '.$contact["url"].' with guid '.$target_item["guid"].' returns '.$deliver_status);
|
||||
|
||||
|
@ -393,10 +411,12 @@ function delivery_run(&$argv, &$argc){
|
|||
|
||||
case NETWORK_OSTATUS:
|
||||
// Do not send to otatus if we are not configured to send to public networks
|
||||
if ($owner['prvnets'])
|
||||
if ($owner['prvnets']) {
|
||||
break;
|
||||
if (get_config('system','ostatus_disabled') || get_config('system','dfrn_only'))
|
||||
}
|
||||
if (get_config('system','ostatus_disabled') || get_config('system','dfrn_only')) {
|
||||
break;
|
||||
}
|
||||
|
||||
// There is currently no code here to distribute anything to OStatus.
|
||||
// This is done in "notifier.php" (See "url_recipients" and "push_notify")
|
||||
|
@ -405,20 +425,22 @@ function delivery_run(&$argv, &$argc){
|
|||
case NETWORK_MAIL:
|
||||
case NETWORK_MAIL2:
|
||||
|
||||
if (get_config('system','dfrn_only'))
|
||||
if (get_config('system','dfrn_only')) {
|
||||
break;
|
||||
}
|
||||
// WARNING: does not currently convert to RFC2047 header encodings, etc.
|
||||
|
||||
$addr = $contact['addr'];
|
||||
if (!strlen($addr))
|
||||
if (!strlen($addr)) {
|
||||
break;
|
||||
}
|
||||
|
||||
if ($cmd === 'wall-new' || $cmd === 'comment-new') {
|
||||
|
||||
$it = null;
|
||||
if ($cmd === 'wall-new')
|
||||
if ($cmd === 'wall-new') {
|
||||
$it = $items[0];
|
||||
else {
|
||||
} else {
|
||||
$r = q("SELECT * FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
||||
intval($argv[2]),
|
||||
intval($uid)
|
||||
|
@ -451,10 +473,12 @@ function delivery_run(&$argv, &$argc){
|
|||
if ($reply_to) {
|
||||
$headers = 'From: '.email_header_encode($local_user[0]['username'],'UTF-8').' <'.$reply_to.'>'."\n";
|
||||
$headers .= 'Sender: '.$local_user[0]['email']."\n";
|
||||
} else
|
||||
} else {
|
||||
$headers = 'From: '.email_header_encode($local_user[0]['username'],'UTF-8').' <'.$local_user[0]['email'].'>'."\n";
|
||||
} else
|
||||
}
|
||||
} else {
|
||||
$headers = 'From: '. email_header_encode($local_user[0]['username'],'UTF-8') .' <'. t('noreply') .'@'.$a->get_hostname() .'>'. "\n";
|
||||
}
|
||||
|
||||
//if ($reply_to)
|
||||
// $headers .= 'Reply-to: '.$reply_to . "\n";
|
||||
|
@ -478,9 +502,9 @@ function delivery_run(&$argv, &$argc){
|
|||
dbesc($it['parent-uri']),
|
||||
intval($uid));
|
||||
|
||||
if (dbm::is_result($r) AND ($r[0]['title'] != ''))
|
||||
if (dbm::is_result($r) AND ($r[0]['title'] != '')) {
|
||||
$subject = $r[0]['title'];
|
||||
else {
|
||||
} else {
|
||||
$r = q("SELECT `title` FROM `item` WHERE `parent-uri` = '%s' AND `uid` = %d LIMIT 1",
|
||||
dbesc($it['parent-uri']),
|
||||
intval($uid));
|
||||
|
|
|
@ -325,8 +325,9 @@ class Diaspora {
|
|||
logger("delivering to: ".$rr["username"]);
|
||||
self::dispatch($rr,$msg);
|
||||
}
|
||||
} else
|
||||
logger("No subscribers for ".$msg["author"]." ".print_r($msg, true));
|
||||
} else {
|
||||
logger("No subscribers for ".$msg["author"]." ".print_r($msg, true), LOGGER_DEBUG);
|
||||
}
|
||||
|
||||
return $message_id;
|
||||
}
|
||||
|
@ -736,13 +737,28 @@ class Diaspora {
|
|||
* @return The contact id
|
||||
*/
|
||||
private static function contact_by_handle($uid, $handle) {
|
||||
|
||||
// First do a direct search on the contact table
|
||||
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `addr` = '%s' LIMIT 1",
|
||||
intval($uid),
|
||||
dbesc($handle)
|
||||
);
|
||||
|
||||
if ($r)
|
||||
if (dbm::is_result($r)) {
|
||||
return $r[0];
|
||||
} else {
|
||||
// We haven't found it?
|
||||
// We use another function for it that will possibly create a contact entry
|
||||
$cid = get_contact($handle, $uid);
|
||||
|
||||
if ($cid > 0) {
|
||||
$r = q("SELECT * FROM `contact` WHERE `id` = %d LIMIT 1", intval($cid));
|
||||
|
||||
if (dbm::is_result($r)) {
|
||||
return $r[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$handle_parts = explode("@", $handle);
|
||||
$nurl_sql = "%%://".$handle_parts[1]."%%/profile/".$handle_parts[0];
|
||||
|
@ -751,9 +767,11 @@ class Diaspora {
|
|||
intval($uid),
|
||||
dbesc($nurl_sql)
|
||||
);
|
||||
if($r)
|
||||
if (dbm::is_result($r)) {
|
||||
return $r[0];
|
||||
}
|
||||
|
||||
logger("Haven't found contact for user ".$uid." and handle ".$handle, LOGGER_DEBUG);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -833,7 +851,7 @@ class Diaspora {
|
|||
dbesc($guid)
|
||||
);
|
||||
|
||||
if ($r) {
|
||||
if (dbm::is_result($r)) {
|
||||
logger("message ".$guid." already exists for user ".$uid);
|
||||
return $r[0]["id"];
|
||||
}
|
||||
|
|
|
@ -105,7 +105,7 @@ function notification($params) {
|
|||
// If so don't create a second notification
|
||||
|
||||
$p = null;
|
||||
$p = q("SELECT `id` FROM `notify` WHERE (`type` = %d OR `type` = %d OR `type` = %d) AND `link` = '%s' AND `uid` = %d LIMIT 1",
|
||||
$p = q("SELECT `id` FROM `notify` WHERE `type` IN (%d, %d, %d) AND `link` = '%s' AND `uid` = %d LIMIT 1",
|
||||
intval(NOTIFY_TAGSELF),
|
||||
intval(NOTIFY_COMMENT),
|
||||
intval(NOTIFY_SHARE),
|
||||
|
@ -472,7 +472,7 @@ function notification($params) {
|
|||
// After we've stored everything, look again to see if there are any duplicates and if so remove them
|
||||
|
||||
$p = null;
|
||||
$p = q("SELECT `id` FROM `notify` WHERE (`type` = %d OR `type` = %d) AND `link` = '%s' AND `uid` = %d ORDER BY `id`",
|
||||
$p = q("SELECT `id` FROM `notify` WHERE `type` IN (%d, %d) AND `link` = '%s' AND `uid` = %d ORDER BY `id`",
|
||||
intval(NOTIFY_TAGSELF),
|
||||
intval(NOTIFY_COMMENT),
|
||||
dbesc($params['link']),
|
||||
|
|
|
@ -206,7 +206,7 @@ function bbtoevent($s) {
|
|||
}
|
||||
|
||||
|
||||
function sort_by_date(App &$a) {
|
||||
function sort_by_date($a) {
|
||||
|
||||
usort($a,'ev_compare');
|
||||
return $a;
|
||||
|
@ -510,7 +510,7 @@ function event_by_id($owner_uid = 0, $event_params, $sql_extra = '') {
|
|||
// query for the event by event id
|
||||
$r = q("SELECT `event`.*, `item`.`id` AS `itemid`,`item`.`plink`,
|
||||
`item`.`author-name`, `item`.`author-avatar`, `item`.`author-link` FROM `event`
|
||||
STRAIGHT_JOIN `item` ON `item`.`event-id` = `event`.`id` AND `item`.`uid` = `event`.`uid`
|
||||
LEFT JOIN `item` ON `item`.`event-id` = `event`.`id` AND `item`.`uid` = `event`.`uid`
|
||||
WHERE `event`.`uid` = %d AND `event`.`id` = %d $sql_extra",
|
||||
intval($owner_uid),
|
||||
intval($event_params["event_id"])
|
||||
|
@ -543,7 +543,7 @@ function events_by_date($owner_uid = 0, $event_params, $sql_extra = '') {
|
|||
// query for the event by date
|
||||
$r = q("SELECT `event`.*, `item`.`id` AS `itemid`,`item`.`plink`,
|
||||
`item`.`author-name`, `item`.`author-avatar`, `item`.`author-link` FROM `event`
|
||||
STRAIGHT_JOIN `item` ON `item`.`event-id` = `event`.`id` AND `item`.`uid` = `event`.`uid`
|
||||
LEFT JOIN `item` ON `item`.`event-id` = `event`.`id` AND `item`.`uid` = `event`.`uid`
|
||||
WHERE `event`.`uid` = %d AND event.ignore = %d
|
||||
AND ((`adjust` = 0 AND (`finish` >= '%s' OR (nofinish AND start >= '%s')) AND `start` <= '%s')
|
||||
OR (`adjust` = 1 AND (`finish` >= '%s' OR (nofinish AND start >= '%s')) AND `start` <= '%s'))
|
||||
|
|
|
@ -31,7 +31,7 @@ require_once("mod/proxy.php");
|
|||
* @param int $profile
|
||||
* @param array $profiledata
|
||||
*/
|
||||
function profile_load(&$a, $nickname, $profile = 0, $profiledata = array()) {
|
||||
function profile_load(App $a, $nickname, $profile = 0, $profiledata = array()) {
|
||||
|
||||
$user = q("SELECT `uid` FROM `user` WHERE `nickname` = '%s' LIMIT 1",
|
||||
dbesc($nickname)
|
||||
|
@ -598,7 +598,7 @@ function get_events() {
|
|||
));
|
||||
}
|
||||
|
||||
function advanced_profile(App &$a) {
|
||||
function advanced_profile(App $a) {
|
||||
|
||||
$o = '';
|
||||
$uid = $a->profile['uid'];
|
||||
|
@ -845,7 +845,7 @@ function get_my_url() {
|
|||
return false;
|
||||
}
|
||||
|
||||
function zrl_init(App &$a) {
|
||||
function zrl_init(App $a) {
|
||||
$tmp_str = get_my_url();
|
||||
if(validate_url($tmp_str)) {
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
function nav(App &$a) {
|
||||
function nav(App $a) {
|
||||
|
||||
/*
|
||||
*
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
* @file include/network.php
|
||||
*/
|
||||
|
||||
use \Friendica\Core\Config;
|
||||
|
||||
require_once("include/xml.php");
|
||||
require_once('include/Probe.php');
|
||||
|
||||
|
@ -93,7 +95,10 @@ function z_fetch_url($url,$binary = false, &$redirects = 0, $opts=array()) {
|
|||
@curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
|
||||
@curl_setopt($ch, CURLOPT_USERAGENT, $a->get_useragent());
|
||||
|
||||
|
||||
$range = intval(Config::get('system', 'curl_range_bytes', 0));
|
||||
if ($range > 0) {
|
||||
@curl_setopt($ch, CURLOPT_RANGE, '0-'.$range);
|
||||
}
|
||||
|
||||
if(x($opts,'headers')){
|
||||
@curl_setopt($ch, CURLOPT_HTTPHEADER, $opts['headers']);
|
||||
|
|
|
@ -64,8 +64,9 @@ function notifier_run(&$argv, &$argc){
|
|||
|
||||
load_hooks();
|
||||
|
||||
if($argc < 3)
|
||||
if ($argc < 3) {
|
||||
return;
|
||||
}
|
||||
|
||||
$a->set_baseurl(get_config('system','url'));
|
||||
|
||||
|
@ -106,8 +107,7 @@ function notifier_run(&$argv, &$argc){
|
|||
$recipients[] = $message[0]['contact-id'];
|
||||
$item = $message[0];
|
||||
|
||||
}
|
||||
elseif($cmd === 'expire') {
|
||||
} elseif ($cmd === 'expire') {
|
||||
$normal_mode = false;
|
||||
$expire = true;
|
||||
$items = q("SELECT * FROM `item` WHERE `uid` = %d AND `wall` = 1
|
||||
|
@ -116,18 +116,19 @@ function notifier_run(&$argv, &$argc){
|
|||
);
|
||||
$uid = $item_id;
|
||||
$item_id = 0;
|
||||
if(! count($items))
|
||||
if (! count($items)) {
|
||||
return;
|
||||
}
|
||||
elseif($cmd === 'suggest') {
|
||||
} elseif ($cmd === 'suggest') {
|
||||
$normal_mode = false;
|
||||
$fsuggest = true;
|
||||
|
||||
$suggest = q("SELECT * FROM `fsuggest` WHERE `id` = %d LIMIT 1",
|
||||
intval($item_id)
|
||||
);
|
||||
if(! count($suggest))
|
||||
if (! count($suggest)) {
|
||||
return;
|
||||
}
|
||||
$uid = $suggest[0]['uid'];
|
||||
$recipients[] = $suggest[0]['cid'];
|
||||
$item = $suggest[0];
|
||||
|
@ -150,9 +151,9 @@ function notifier_run(&$argv, &$argc){
|
|||
$self = $r[0];
|
||||
|
||||
$r = q("SELECT * FROM `contact` WHERE NOT `self` AND `uid` = %d", intval($item_id));
|
||||
if(!$r)
|
||||
if (!$r) {
|
||||
return;
|
||||
|
||||
}
|
||||
require_once('include/Contact.php');
|
||||
foreach ($r as $contact) {
|
||||
terminate_friendship($user, $self, $contact);
|
||||
|
@ -191,9 +192,10 @@ function notifier_run(&$argv, &$argc){
|
|||
// avoid race condition with deleting entries
|
||||
|
||||
if ($items[0]['deleted']) {
|
||||
foreach($items as $item)
|
||||
foreach ($items as $item) {
|
||||
$item['deleted'] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if ((count($items) == 1) && ($items[0]['id'] === $target_item['id']) && ($items[0]['uri'] === $items[0]['parent-uri'])) {
|
||||
logger('notifier: top level post');
|
||||
|
@ -220,6 +222,9 @@ function notifier_run(&$argv, &$argc){
|
|||
|
||||
$hub = get_config('system','huburl');
|
||||
|
||||
// Should the post be transmitted to Diaspora?
|
||||
$diaspora_delivery = true;
|
||||
|
||||
// If this is a public conversation, notify the feed hub
|
||||
$public_message = true;
|
||||
|
||||
|
@ -240,7 +245,7 @@ function notifier_run(&$argv, &$argc){
|
|||
$thr_parent = q("SELECT `network`, `author-link`, `owner-link` FROM `item` WHERE `uri` = '%s' AND `uid` = %d",
|
||||
dbesc($target_item["thr-parent"]), intval($target_item["uid"]));
|
||||
|
||||
logger('Parent is '.$parent['network'].'. Thread parent is '.$thr_parent[0]['network'], LOGGER_DEBUG);
|
||||
logger('GUID: '.$target_item["guid"].': Parent is '.$parent['network'].'. Thread parent is '.$thr_parent[0]['network'], LOGGER_DEBUG);
|
||||
|
||||
// This is IMPORTANT!!!!
|
||||
|
||||
|
@ -264,9 +269,9 @@ function notifier_run(&$argv, &$argc){
|
|||
|
||||
|
||||
$localhost = str_replace('www.','',$a->get_hostname());
|
||||
if(strpos($localhost,':'))
|
||||
if (strpos($localhost,':')) {
|
||||
$localhost = substr($localhost,0,strpos($localhost,':'));
|
||||
|
||||
}
|
||||
/**
|
||||
*
|
||||
* Be VERY CAREFUL if you make any changes to the following several lines. Seemingly innocuous changes
|
||||
|
@ -290,12 +295,12 @@ function notifier_run(&$argv, &$argc){
|
|||
// we will just use it as a fallback test
|
||||
// later we will be able to use it as the primary test of whether or not to relay.
|
||||
|
||||
if(! $target_item['origin'])
|
||||
if (! $target_item['origin']) {
|
||||
$relay_to_owner = false;
|
||||
|
||||
if($parent['origin'])
|
||||
}
|
||||
if ($parent['origin']) {
|
||||
$relay_to_owner = false;
|
||||
|
||||
}
|
||||
if ($relay_to_owner) {
|
||||
logger('notifier: followup '.$target_item["guid"], LOGGER_DEBUG);
|
||||
// local followup to remote post
|
||||
|
@ -322,11 +327,13 @@ function notifier_run(&$argv, &$argc){
|
|||
intval($uid),
|
||||
dbesc(NETWORK_DFRN)
|
||||
);
|
||||
if (dbm::is_result($r))
|
||||
foreach($r as $rr)
|
||||
if (dbm::is_result($r)) {
|
||||
foreach ($r as $rr) {
|
||||
$recipients_followup[] = $rr['id'];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
logger("Notify ".$target_item["guid"]." via PuSH: ".($push_notify?"Yes":"No"), LOGGER_DEBUG);
|
||||
} else {
|
||||
$followup = false;
|
||||
|
@ -371,8 +378,7 @@ function notifier_run(&$argv, &$argc){
|
|||
if (substr($person,0,4) === 'cid:') {
|
||||
$recipients[] = intval(substr($person,4));
|
||||
$conversants[] = intval(substr($person,4));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$url_recipients[] = substr($person,4);
|
||||
}
|
||||
}
|
||||
|
@ -396,16 +402,19 @@ function notifier_run(&$argv, &$argc){
|
|||
// We have not only to look at the parent, since it could be a Friendica thread.
|
||||
if (($thr_parent AND ($thr_parent[0]['network'] == NETWORK_OSTATUS)) OR ($parent['network'] == NETWORK_OSTATUS)) {
|
||||
|
||||
$diaspora_delivery = false;
|
||||
|
||||
logger('Some parent is OStatus for '.$target_item["guid"]." - Author: ".$thr_parent[0]['author-link']." - Owner: ".$thr_parent[0]['owner-link'], LOGGER_DEBUG);
|
||||
|
||||
// Send a salmon to the parent author
|
||||
$r = q("SELECT `notify` FROM `contact` WHERE `nurl`='%s' AND `uid` IN (0, %d) AND `notify` != ''",
|
||||
$r = q("SELECT `url`, `notify` FROM `contact` WHERE `nurl`='%s' AND `uid` IN (0, %d) AND `notify` != ''",
|
||||
dbesc(normalise_link($thr_parent[0]['author-link'])),
|
||||
intval($uid));
|
||||
if ($r)
|
||||
if (dbm::is_result($r)) {
|
||||
$probed_contact = $r[0];
|
||||
else
|
||||
} else {
|
||||
$probed_contact = probe_url($thr_parent[0]['author-link']);
|
||||
}
|
||||
|
||||
if ($probed_contact["notify"] != "") {
|
||||
logger('Notify parent author '.$probed_contact["url"].': '.$probed_contact["notify"]);
|
||||
|
@ -413,13 +422,15 @@ function notifier_run(&$argv, &$argc){
|
|||
}
|
||||
|
||||
// Send a salmon to the parent owner
|
||||
$r = q("SELECT `notify` FROM `contact` WHERE `nurl`='%s' AND `uid` IN (0, %d) AND `notify` != ''",
|
||||
$r = q("SELECT `url`, `notify` FROM `contact` WHERE `nurl`='%s' AND `uid` IN (0, %d) AND `notify` != ''",
|
||||
dbesc(normalise_link($thr_parent[0]['owner-link'])),
|
||||
intval($uid));
|
||||
if ($r)
|
||||
if (dbm::is_result($r)) {
|
||||
$probed_contact = $r[0];
|
||||
else
|
||||
} else {
|
||||
$probed_contact = probe_url($thr_parent[0]['owner-link']);
|
||||
}
|
||||
|
||||
if ($probed_contact["notify"] != "") {
|
||||
logger('Notify parent owner '.$probed_contact["url"].': '.$probed_contact["notify"]);
|
||||
$url_recipients[$probed_contact["notify"]] = $probed_contact["notify"];
|
||||
|
@ -441,16 +452,12 @@ function notifier_run(&$argv, &$argc){
|
|||
|
||||
// It only makes sense to distribute answers to OStatus messages to Friendica and OStatus - but not Diaspora
|
||||
$sql_extra = " AND `network` IN ('".NETWORK_OSTATUS."', '".NETWORK_DFRN."')";
|
||||
} else
|
||||
} else {
|
||||
$sql_extra = " AND `network` IN ('".NETWORK_OSTATUS."', '".NETWORK_DFRN."', '".NETWORK_DIASPORA."', '".NETWORK_MAIL."', '".NETWORK_MAIL2."')";
|
||||
|
||||
$r = q("SELECT * FROM `contact` WHERE `id` IN ($conversant_str) AND NOT `blocked` AND NOT `pending` AND NOT `archive`".$sql_extra);
|
||||
|
||||
if (dbm::is_result($r))
|
||||
$contacts = $r;
|
||||
|
||||
} else
|
||||
}
|
||||
} else {
|
||||
$public_message = false;
|
||||
}
|
||||
|
||||
// If this is a public message and pubmail is set on the parent, include all your email contacts
|
||||
|
||||
|
@ -465,39 +472,40 @@ function notifier_run(&$argv, &$argc){
|
|||
dbesc(NETWORK_MAIL)
|
||||
);
|
||||
if (dbm::is_result($r)) {
|
||||
foreach($r as $rr)
|
||||
foreach ($r as $rr) {
|
||||
$recipients[] = $rr['id'];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($followup)
|
||||
if ($followup) {
|
||||
$recip_str = implode(', ', $recipients_followup);
|
||||
else
|
||||
} else {
|
||||
$recip_str = implode(', ', $recipients);
|
||||
|
||||
if ($relocate)
|
||||
}
|
||||
if ($relocate) {
|
||||
$r = $recipients_relocate;
|
||||
else
|
||||
$r = q("SELECT * FROM `contact` WHERE `id` IN (%s) AND NOT `blocked` AND NOT `pending` AND NOT `archive`",
|
||||
} else {
|
||||
$r = q("SELECT * FROM `contact` WHERE `id` IN (%s) AND NOT `blocked` AND NOT `pending` AND NOT `archive`".$sql_extra,
|
||||
dbesc($recip_str)
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
$interval = ((get_config('system','delivery_interval') === false) ? 2 : intval(get_config('system','delivery_interval')));
|
||||
|
||||
// If we are using the worker we don't need a delivery interval
|
||||
if (get_config("system", "worker"))
|
||||
if (get_config("system", "worker")) {
|
||||
$interval = false;
|
||||
|
||||
}
|
||||
// delivery loop
|
||||
|
||||
if (dbm::is_result($r)) {
|
||||
|
||||
foreach ($r as $contact) {
|
||||
if (!$contact['self']) {
|
||||
if(($contact['network'] === NETWORK_DIASPORA) && ($public_message))
|
||||
if (($contact['network'] === NETWORK_DIASPORA) && ($public_message)) {
|
||||
continue;
|
||||
}
|
||||
q("INSERT INTO `deliverq` (`cmd`,`item`,`contact`) VALUES ('%s', %d, %d)",
|
||||
dbesc($cmd),
|
||||
intval($item_id),
|
||||
|
@ -520,17 +528,18 @@ function notifier_run(&$argv, &$argc){
|
|||
// When using the workerqueue, we don't need this functionality.
|
||||
|
||||
$deliveries_per_process = intval(get_config('system','delivery_batch_count'));
|
||||
if (($deliveries_per_process <= 0) OR get_config("system", "worker"))
|
||||
if (($deliveries_per_process <= 0) OR get_config("system", "worker")) {
|
||||
$deliveries_per_process = 1;
|
||||
}
|
||||
|
||||
$this_batch = array();
|
||||
|
||||
for ($x = 0; $x < count($r); $x ++) {
|
||||
$contact = $r[$x];
|
||||
|
||||
if($contact['self'])
|
||||
if ($contact['self']) {
|
||||
continue;
|
||||
|
||||
}
|
||||
logger("Deliver ".$target_item["guid"]." to ".$contact['url']." via network ".$contact['network'], LOGGER_DEBUG);
|
||||
|
||||
// potentially more than one recipient. Start a new process and space them out a bit.
|
||||
|
@ -541,16 +550,18 @@ function notifier_run(&$argv, &$argc){
|
|||
if (count($this_batch) >= $deliveries_per_process) {
|
||||
proc_run(PRIORITY_HIGH,'include/delivery.php',$cmd,$item_id,$this_batch);
|
||||
$this_batch = array();
|
||||
if($interval)
|
||||
if ($interval) {
|
||||
@time_sleep_until(microtime(true) + (float) $interval);
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
// be sure to pick up any stragglers
|
||||
if(count($this_batch))
|
||||
if (count($this_batch)) {
|
||||
proc_run(PRIORITY_HIGH,'include/delivery.php',$cmd,$item_id,$this_batch);
|
||||
}
|
||||
}
|
||||
|
||||
// send salmon slaps to mentioned remote tags (@foo@example.com) in OStatus posts
|
||||
// They are especially used for notifications to OStatus users that don't follow us.
|
||||
|
@ -570,10 +581,13 @@ function notifier_run(&$argv, &$argc){
|
|||
|
||||
if ($public_message) {
|
||||
|
||||
if (!$followup)
|
||||
$r0 = Diaspora::relay_list();
|
||||
else
|
||||
$r0 = array();
|
||||
$r1 = array();
|
||||
|
||||
if ($diaspora_delivery) {
|
||||
if (!$followup) {
|
||||
$r0 = Diaspora::relay_list();
|
||||
}
|
||||
|
||||
$r1 = q("SELECT DISTINCT(`batch`), `id`, `name`,`network` FROM `contact` WHERE `network` = '%s'
|
||||
AND `uid` = %d AND `rel` != %d AND NOT `blocked` AND NOT `pending` AND NOT `archive` GROUP BY `batch` ORDER BY rand()",
|
||||
|
@ -581,6 +595,7 @@ function notifier_run(&$argv, &$argc){
|
|||
intval($owner['uid']),
|
||||
intval(CONTACT_IS_SHARING)
|
||||
);
|
||||
}
|
||||
|
||||
$r2 = q("SELECT `id`, `name`,`network` FROM `contact`
|
||||
WHERE `network` in ( '%s', '%s') AND `uid` = %d AND NOT `blocked` AND NOT `pending` AND NOT `archive`
|
||||
|
@ -621,11 +636,12 @@ function notifier_run(&$argv, &$argc){
|
|||
if ((! $mail) && (! $fsuggest) && (! $followup)) {
|
||||
logger('notifier: delivery agent: '.$rr['name'].' '.$rr['id'].' '.$rr['network'].' '.$target_item["guid"]);
|
||||
proc_run(PRIORITY_HIGH,'include/delivery.php',$cmd,$item_id,$rr['id']);
|
||||
if($interval)
|
||||
if ($interval) {
|
||||
@time_sleep_until(microtime(true) + (float) $interval);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$push_notify = true;
|
||||
|
||||
|
@ -637,8 +653,9 @@ function notifier_run(&$argv, &$argc){
|
|||
if (count($hubs)) {
|
||||
foreach ($hubs as $h) {
|
||||
$h = trim($h);
|
||||
if(! strlen($h))
|
||||
if (! strlen($h)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($h === '[internal]') {
|
||||
// Set push flag for PuSH subscribers to this topic,
|
||||
|
@ -654,10 +671,11 @@ function notifier_run(&$argv, &$argc){
|
|||
post_url($h,$params);
|
||||
logger('publish for item '.$item_id.' ' . $h . ' ' . $params . ' returned ' . $a->get_curl_code());
|
||||
}
|
||||
if(count($hubs) > 1)
|
||||
if (count($hubs) > 1) {
|
||||
sleep(7); // try and avoid multiple hubs responding at precisely the same time
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Handling the pubsubhubbub requests
|
||||
proc_run(PRIORITY_HIGH,'include/pubsubpublish.php');
|
||||
|
@ -665,8 +683,9 @@ function notifier_run(&$argv, &$argc){
|
|||
|
||||
logger('notifier: calling hooks', LOGGER_DEBUG);
|
||||
|
||||
if($normal_mode)
|
||||
if ($normal_mode) {
|
||||
call_hooks('notifier_normal',$target_item);
|
||||
}
|
||||
|
||||
call_hooks('notifier_end',$target_item);
|
||||
|
||||
|
|
|
@ -523,7 +523,9 @@ class ostatus {
|
|||
$r = q("SELECT `id` FROM `item` WHERE `uid` = %d AND `uri` = '%s'",
|
||||
intval($importer["uid"]), dbesc($item["parent-uri"]));
|
||||
|
||||
if (!$r AND ($related != "")) {
|
||||
// Only fetch missing stuff if it is a comment or reshare.
|
||||
if (in_array($item["verb"], array(ACTIVITY_POST, ACTIVITY_SHARE)) AND
|
||||
!dbm::is_result($r) AND ($related != "")) {
|
||||
$reply_path = str_replace("/notice/", "/api/statuses/show/", $related).".atom";
|
||||
|
||||
if ($reply_path != $related) {
|
||||
|
@ -2072,7 +2074,7 @@ class ostatus {
|
|||
*
|
||||
* @return string XML feed
|
||||
*/
|
||||
public static function feed(&$a, $owner_nick, $last_update) {
|
||||
public static function feed(App $a, $owner_nick, $last_update) {
|
||||
|
||||
$r = q("SELECT `contact`.*, `user`.`nickname`, `user`.`timezone`, `user`.`page-flags`
|
||||
FROM `contact` INNER JOIN `user` ON `user`.`uid` = `contact`.`uid`
|
||||
|
|
|
@ -4,6 +4,9 @@
|
|||
* @brief Functions related to photo handling.
|
||||
*/
|
||||
|
||||
use \Friendica\Core\Config;
|
||||
use \Friendica\Core\PConfig;
|
||||
|
||||
function getGps($exifCoord, $hemi) {
|
||||
$degrees = count($exifCoord) > 0 ? gps2Num($exifCoord[0]) : 0;
|
||||
$minutes = count($exifCoord) > 1 ? gps2Num($exifCoord[1]) : 0;
|
||||
|
@ -42,6 +45,7 @@ function photo_albums($uid, $update = false) {
|
|||
$key = "photo_albums:".$uid.":".local_user().":".remote_user();
|
||||
$albums = Cache::get($key);
|
||||
if (is_null($albums) OR $update) {
|
||||
if (!Config::get('system', 'no_count', false)) {
|
||||
/// @todo This query needs to be renewed. It is really slow
|
||||
// At this time we just store the data in the cache
|
||||
$albums = qu("SELECT COUNT(DISTINCT `resource-id`) AS `total`, `album`
|
||||
|
@ -52,6 +56,17 @@ function photo_albums($uid, $update = false) {
|
|||
dbesc('Contact Photos'),
|
||||
dbesc(t('Contact Photos'))
|
||||
);
|
||||
} else {
|
||||
// This query doesn't do the count and is much faster
|
||||
$albums = qu("SELECT DISTINCT(`album`), '' AS `total`
|
||||
FROM `photo` USE INDEX (`uid_album_created`)
|
||||
WHERE `uid` = %d AND `album` != '%s' AND `album` != '%s' $sql_extra
|
||||
GROUP BY `album` ORDER BY `created` DESC",
|
||||
intval($uid),
|
||||
dbesc('Contact Photos'),
|
||||
dbesc(t('Contact Photos'))
|
||||
);
|
||||
}
|
||||
Cache::set($key, $albums, CACHE_DAY);
|
||||
}
|
||||
return $albums;
|
||||
|
|
|
@ -296,7 +296,7 @@ function shortenmsg($msg, $limit, $twitter = false) {
|
|||
*
|
||||
* @return string The converted message
|
||||
*/
|
||||
function plaintext($a, $b, $limit = 0, $includedlinks = false, $htmlmode = 2, $target_network = "") {
|
||||
function plaintext(App $a, $b, $limit = 0, $includedlinks = false, $htmlmode = 2, $target_network = "") {
|
||||
|
||||
// Remove the hash tags
|
||||
$URLSearchString = "^\[\]";
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
function auto_redir(&$a, $contact_nick) {
|
||||
function auto_redir(App $a, $contact_nick) {
|
||||
|
||||
// prevent looping
|
||||
|
||||
|
@ -27,9 +27,9 @@ function auto_redir(&$a, $contact_nick) {
|
|||
$baseurl = substr($baseurl, $domain_st + 3);
|
||||
$nurl = normalise_link($baseurl);
|
||||
|
||||
|
||||
$r = q("SELECT id FROM contact WHERE uid = ( SELECT uid FROM user WHERE nickname = '%s' LIMIT 1 )
|
||||
AND nick = '%s' AND self = 0 AND ( url LIKE '%%%s%%' or nurl LIKE '%%%s%%' ) AND blocked = 0 AND pending = 0 LIMIT 1",
|
||||
/// @todo Why is there a query for "url" *and* "nurl"? Especially this normalising is strange.
|
||||
$r = q("SELECT `id` FROM `contact` WHERE `uid` = (SELECT `uid` FROM `user` WHERE `nickname` = '%s' LIMIT 1)
|
||||
AND `nick` = '%s' AND NOT `self` AND (`url` LIKE '%%%s%%' OR `nurl` LIKE '%%%s%%') AND NOT `blocked` AND NOT `pending` LIMIT 1",
|
||||
dbesc($contact_nick),
|
||||
dbesc($a->user['nickname']),
|
||||
dbesc($baseurl),
|
||||
|
|
|
@ -106,7 +106,7 @@ function authenticate_success($user_record, $login_initial = false, $interactive
|
|||
|
||||
|
||||
|
||||
function can_write_wall(&$a,$owner) {
|
||||
function can_write_wall(App $a, $owner) {
|
||||
|
||||
static $verified = 0;
|
||||
|
||||
|
|
|
@ -276,7 +276,7 @@ if(! function_exists('paginate_data')) {
|
|||
* @param int $count [optional] item count (used with alt pager)
|
||||
* @return Array data for pagination template
|
||||
*/
|
||||
function paginate_data(&$a, $count=null) {
|
||||
function paginate_data(App $a, $count=null) {
|
||||
$stripped = preg_replace('/([&?]page=[0-9]*)/','',$a->query_string);
|
||||
|
||||
$stripped = str_replace('q=','',$stripped);
|
||||
|
@ -369,7 +369,7 @@ if(! function_exists('paginate')) {
|
|||
* @param App $a App instance
|
||||
* @return string html for pagination #FIXME remove html
|
||||
*/
|
||||
function paginate(App &$a) {
|
||||
function paginate(App $a) {
|
||||
|
||||
$data = paginate_data($a);
|
||||
$tpl = get_markup_template("paginate.tpl");
|
||||
|
@ -384,7 +384,7 @@ if(! function_exists('alt_pager')) {
|
|||
* @param int $i
|
||||
* @return string html for pagination #FIXME remove html
|
||||
*/
|
||||
function alt_pager(&$a, $i) {
|
||||
function alt_pager(App $a, $i) {
|
||||
|
||||
$data = paginate_data($a, $i);
|
||||
$tpl = get_markup_template("paginate.tpl");
|
||||
|
|
|
@ -78,7 +78,7 @@ function import_cleanup($newuid) {
|
|||
q("DELETE FROM `pconfig` WHERE uid = %d", $newuid);
|
||||
}
|
||||
|
||||
function import_account(&$a, $file) {
|
||||
function import_account(App $a, $file) {
|
||||
logger("Start user import from " . $file['tmp_name']);
|
||||
/*
|
||||
STEPS
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
require_once("mod/hostxrd.php");
|
||||
require_once("mod/nodeinfo.php");
|
||||
|
||||
function _well_known_init(App &$a){
|
||||
function _well_known_init(App $a) {
|
||||
if ($a->argc > 1) {
|
||||
switch($a->argv[1]) {
|
||||
case "host-meta":
|
||||
|
@ -21,7 +21,7 @@ function _well_known_init(App &$a){
|
|||
killme();
|
||||
}
|
||||
|
||||
function wk_social_relay(App &$a) {
|
||||
function wk_social_relay(App $a) {
|
||||
|
||||
define('SR_SCOPE_ALL', 'all');
|
||||
define('SR_SCOPE_TAGS', 'tags');
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require_once('include/Scrape.php');
|
||||
|
||||
function acctlink_init(App &$a) {
|
||||
function acctlink_init(App $a) {
|
||||
|
||||
if(x($_GET,'addr')) {
|
||||
$addr = trim($_GET['addr']);
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
require_once("include/acl_selectors.php");
|
||||
|
||||
function acl_init(App &$a){
|
||||
function acl_init(App $a) {
|
||||
acl_lookup($a);
|
||||
}
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ require_once("include/text.php");
|
|||
* @param App $a
|
||||
*
|
||||
*/
|
||||
function admin_post(App &$a){
|
||||
function admin_post(App $a) {
|
||||
|
||||
|
||||
if(!is_site_admin()) {
|
||||
|
@ -66,7 +66,7 @@ function admin_post(App &$a){
|
|||
|
||||
$theme = $a->argv[2];
|
||||
if(is_file("view/theme/$theme/config.php")){
|
||||
function __call_theme_admin_post(&$a, $theme) {
|
||||
function __call_theme_admin_post(App $a, $theme) {
|
||||
$orig_theme = $a->theme;
|
||||
$orig_page = $a->page;
|
||||
$orig_session_theme = $_SESSION['theme'];
|
||||
|
@ -127,7 +127,7 @@ function admin_post(App &$a){
|
|||
* @param App $a
|
||||
* @return string
|
||||
*/
|
||||
function admin_content(App &$a) {
|
||||
function admin_content(App $a) {
|
||||
|
||||
if(!is_site_admin()) {
|
||||
return login(false);
|
||||
|
@ -260,7 +260,7 @@ function admin_content(App &$a) {
|
|||
* @param App $a
|
||||
* @return string
|
||||
*/
|
||||
function admin_page_federation(App &$a) {
|
||||
function admin_page_federation(App $a) {
|
||||
// get counts on active friendica, diaspora, redmatrix, hubzilla, gnu
|
||||
// social and statusnet nodes this node is knowing
|
||||
//
|
||||
|
@ -393,7 +393,7 @@ function admin_page_federation(App &$a) {
|
|||
* @param App $a
|
||||
* @return string
|
||||
*/
|
||||
function admin_page_queue(App &$a) {
|
||||
function admin_page_queue(App $a) {
|
||||
// get content from the queue table
|
||||
$r = q("SELECT `c`.`name`, `c`.`nurl`, `q`.`id`, `q`.`network`, `q`.`created`, `q`.`last`
|
||||
FROM `queue` AS `q`, `contact` AS `c`
|
||||
|
@ -427,7 +427,7 @@ function admin_page_queue(App &$a) {
|
|||
* @param App $a
|
||||
* @return string
|
||||
*/
|
||||
function admin_page_summary(App &$a) {
|
||||
function admin_page_summary(App $a) {
|
||||
global $db;
|
||||
// are there MyISAM tables in the DB? If so, trigger a warning message
|
||||
$r = q("SELECT `engine` FROM `information_schema`.`tables` WHERE `engine` = 'myisam' AND `table_schema` = '%s' LIMIT 1",
|
||||
|
@ -504,7 +504,7 @@ function admin_page_summary(App &$a) {
|
|||
*
|
||||
* @param App $a
|
||||
*/
|
||||
function admin_page_site_post(App &$a) {
|
||||
function admin_page_site_post(App $a) {
|
||||
if(!x($_POST,"page_site")) {
|
||||
return;
|
||||
}
|
||||
|
@ -845,7 +845,7 @@ function admin_page_site_post(App &$a) {
|
|||
* @param App $a
|
||||
* @return string
|
||||
*/
|
||||
function admin_page_site(App &$a) {
|
||||
function admin_page_site(App $a) {
|
||||
|
||||
/* Installed langs */
|
||||
$lang_choices = get_available_languages();
|
||||
|
@ -1072,7 +1072,7 @@ function admin_page_site(App &$a) {
|
|||
* @param App $a
|
||||
* @return string
|
||||
**/
|
||||
function admin_page_dbsync(App &$a) {
|
||||
function admin_page_dbsync(App $a) {
|
||||
|
||||
$o = '';
|
||||
|
||||
|
@ -1155,7 +1155,7 @@ function admin_page_dbsync(App &$a) {
|
|||
*
|
||||
* @param App $a
|
||||
*/
|
||||
function admin_page_users_post(App &$a){
|
||||
function admin_page_users_post(App $a) {
|
||||
$pending = (x($_POST, 'pending') ? $_POST['pending'] : array());
|
||||
$users = (x($_POST, 'user') ? $_POST['user'] : array());
|
||||
$nu_name = (x($_POST, 'new_user_name') ? $_POST['new_user_name'] : '');
|
||||
|
@ -1260,7 +1260,7 @@ function admin_page_users_post(App &$a){
|
|||
* @param App $a
|
||||
* @return string
|
||||
*/
|
||||
function admin_page_users(App &$a){
|
||||
function admin_page_users(App $a) {
|
||||
if($a->argc>2) {
|
||||
$uid = $a->argv[3];
|
||||
$user = q("SELECT `username`, `blocked` FROM `user` WHERE `uid` = %d", intval($uid));
|
||||
|
@ -1460,7 +1460,7 @@ function admin_page_users(App &$a){
|
|||
* @param App $a
|
||||
* @return string
|
||||
*/
|
||||
function admin_page_plugins(App &$a){
|
||||
function admin_page_plugins(App $a) {
|
||||
|
||||
/*
|
||||
* Single plugin
|
||||
|
@ -1669,7 +1669,7 @@ function rebuild_theme_table($themes) {
|
|||
* @param App $a
|
||||
* @return string
|
||||
*/
|
||||
function admin_page_themes(App &$a){
|
||||
function admin_page_themes(App $a) {
|
||||
|
||||
$allowed_themes_str = get_config('system','allowed_themes');
|
||||
$allowed_themes_raw = explode(',',$allowed_themes_str);
|
||||
|
@ -1749,7 +1749,7 @@ function admin_page_themes(App &$a){
|
|||
|
||||
$admin_form="";
|
||||
if(is_file("view/theme/$theme/config.php")) {
|
||||
function __get_theme_admin_form(&$a, $theme) {
|
||||
function __get_theme_admin_form(App $a, $theme) {
|
||||
$orig_theme = $a->theme;
|
||||
$orig_page = $a->page;
|
||||
$orig_session_theme = $_SESSION['theme'];
|
||||
|
@ -1850,7 +1850,7 @@ function admin_page_themes(App &$a){
|
|||
*
|
||||
* @param App $a
|
||||
*/
|
||||
function admin_page_logs_post(App &$a) {
|
||||
function admin_page_logs_post(App $a) {
|
||||
if (x($_POST,"page_logs")) {
|
||||
check_form_security_token_redirectOnErr('/admin/logs', 'admin_logs');
|
||||
|
||||
|
@ -1884,7 +1884,7 @@ function admin_page_logs_post(App &$a) {
|
|||
* @param App $a
|
||||
* @return string
|
||||
*/
|
||||
function admin_page_logs(App &$a){
|
||||
function admin_page_logs(App $a) {
|
||||
|
||||
$log_choices = array(
|
||||
LOGGER_NORMAL => 'Normal',
|
||||
|
@ -1941,7 +1941,7 @@ function admin_page_logs(App &$a){
|
|||
* @param App $a
|
||||
* @return string
|
||||
*/
|
||||
function admin_page_viewlogs(App &$a){
|
||||
function admin_page_viewlogs(App $a) {
|
||||
$t = get_markup_template("admin_viewlogs.tpl");
|
||||
$f = get_config('system','logfile');
|
||||
$data = '';
|
||||
|
@ -1983,7 +1983,7 @@ function admin_page_viewlogs(App &$a){
|
|||
*
|
||||
* @param App $a
|
||||
*/
|
||||
function admin_page_features_post(App &$a) {
|
||||
function admin_page_features_post(App $a) {
|
||||
|
||||
check_form_security_token_redirectOnErr('/admin/features', 'admin_manage_features');
|
||||
|
||||
|
@ -2029,7 +2029,7 @@ function admin_page_features_post(App &$a) {
|
|||
* @param App $a
|
||||
* @return string
|
||||
*/
|
||||
function admin_page_features(App &$a) {
|
||||
function admin_page_features(App $a) {
|
||||
|
||||
if((argc() > 1) && (argv(1) === 'features')) {
|
||||
$arr = array();
|
||||
|
|
|
@ -5,7 +5,7 @@ require_once('include/Contact.php');
|
|||
require_once('include/contact_selectors.php');
|
||||
require_once('mod/contacts.php');
|
||||
|
||||
function allfriends_content(App &$a) {
|
||||
function allfriends_content(App $a) {
|
||||
|
||||
$o = '';
|
||||
if (! local_user()) {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
function amcd_content(App &$a) {
|
||||
function amcd_content(App $a) {
|
||||
//header("Content-type: text/json");
|
||||
echo <<< EOT
|
||||
{
|
||||
|
|
|
@ -20,7 +20,7 @@ function oauth_get_client($request){
|
|||
return $r[0];
|
||||
}
|
||||
|
||||
function api_post(App &$a) {
|
||||
function api_post(App $a) {
|
||||
|
||||
if (! local_user()) {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
|
@ -34,7 +34,7 @@ function api_post(App &$a) {
|
|||
|
||||
}
|
||||
|
||||
function api_content(App &$a) {
|
||||
function api_content(App $a) {
|
||||
if ($a->cmd=='api/oauth/authorize'){
|
||||
/*
|
||||
* api/oauth/authorize interact with the user. return a standard page
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
function apps_content(App &$a) {
|
||||
function apps_content(App $a) {
|
||||
$privateaddons = get_config('config','private_addons');
|
||||
if ($privateaddons === "1") {
|
||||
if((! (local_user()))) {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require_once('include/security.php');
|
||||
|
||||
function attach_init(App &$a) {
|
||||
function attach_init(App $a) {
|
||||
|
||||
if($a->argc != 2) {
|
||||
notice( t('Item not available.') . EOL);
|
||||
|
|
|
@ -9,7 +9,7 @@ function visible_lf($s) {
|
|||
return str_replace("\n",'<br />', $s);
|
||||
}
|
||||
|
||||
function babel_content(App &$a) {
|
||||
function babel_content(App $a) {
|
||||
|
||||
$o .= '<h1>Babel Diagnostic</h1>';
|
||||
|
||||
|
|
|
@ -3,11 +3,11 @@
|
|||
require_once('include/conversation.php');
|
||||
require_once('include/items.php');
|
||||
|
||||
function bookmarklet_init(App &$a) {
|
||||
function bookmarklet_init(App $a) {
|
||||
$_GET["mode"] = "minimal";
|
||||
}
|
||||
|
||||
function bookmarklet_content(App &$a) {
|
||||
function bookmarklet_content(App $a) {
|
||||
if (!local_user()) {
|
||||
$o = '<h2>'.t('Login').'</h2>';
|
||||
$o .= login(($a->config['register_policy'] == REGISTER_CLOSED) ? false : true);
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
require_once('include/event.php');
|
||||
require_once('include/redir.php');
|
||||
|
||||
function cal_init(App &$a) {
|
||||
function cal_init(App $a) {
|
||||
if($a->argc > 1)
|
||||
auto_redir($a, $a->argv[1]);
|
||||
|
||||
|
@ -64,7 +64,7 @@ function cal_init(App &$a) {
|
|||
return;
|
||||
}
|
||||
|
||||
function cal_content(App &$a) {
|
||||
function cal_content(App $a) {
|
||||
nav_set_selected('events');
|
||||
|
||||
$editselect = 'none';
|
||||
|
@ -275,7 +275,7 @@ function cal_content(App &$a) {
|
|||
'$tabs' => $tabs,
|
||||
'$title' => t('Events'),
|
||||
'$view' => t('View'),
|
||||
'$previus' => array(App::get_baseurl()."/events/$prevyear/$prevmonth",t('Previous'),'',''),
|
||||
'$previous' => array(App::get_baseurl()."/events/$prevyear/$prevmonth",t('Previous'),'',''),
|
||||
'$next' => array(App::get_baseurl()."/events/$nextyear/$nextmonth",t('Next'),'',''),
|
||||
'$calendar' => cal($y,$m,$links, ' eventcal'),
|
||||
|
||||
|
|
|
@ -5,19 +5,19 @@
|
|||
*/
|
||||
|
||||
|
||||
function cb_init(App &$a) {
|
||||
function cb_init(App $a) {
|
||||
call_hooks('cb_init');
|
||||
}
|
||||
|
||||
function cb_post(App &$a) {
|
||||
function cb_post(App $a) {
|
||||
call_hooks('cb_post', $_POST);
|
||||
}
|
||||
|
||||
function cb_afterpost(App &$a) {
|
||||
function cb_afterpost(App $a) {
|
||||
call_hooks('cb_afterpost');
|
||||
}
|
||||
|
||||
function cb_content(App &$a) {
|
||||
function cb_content(App $a) {
|
||||
$o = '';
|
||||
call_hooks('cb_content', $o);
|
||||
return $o;
|
||||
|
|
|
@ -5,7 +5,7 @@ require_once('include/Contact.php');
|
|||
require_once('include/contact_selectors.php');
|
||||
require_once('mod/contacts.php');
|
||||
|
||||
function common_content(App &$a) {
|
||||
function common_content(App $a) {
|
||||
|
||||
$o = '';
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
function community_init(App &$a) {
|
||||
function community_init(App $a) {
|
||||
if (! local_user()) {
|
||||
unset($_SESSION['theme']);
|
||||
unset($_SESSION['mobile-theme']);
|
||||
|
@ -10,7 +10,7 @@ function community_init(App &$a) {
|
|||
}
|
||||
|
||||
|
||||
function community_content(&$a, $update = 0) {
|
||||
function community_content(App $a, $update = 0) {
|
||||
|
||||
$o = '';
|
||||
|
||||
|
@ -121,7 +121,7 @@ function community_getitems($start, $itemspage) {
|
|||
return(community_getpublicitems($start, $itemspage));
|
||||
|
||||
$r = qu("SELECT %s
|
||||
FROM `thread` FORCE INDEX (`wall_private_received`)
|
||||
FROM `thread`
|
||||
INNER JOIN `user` ON `user`.`uid` = `thread`.`uid` AND NOT `user`.`hidewall`
|
||||
INNER JOIN `item` ON `item`.`id` = `thread`.`iid`
|
||||
AND `item`.`allow_cid` = '' AND `item`.`allow_gid` = ''
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require_once('include/group.php');
|
||||
|
||||
function contactgroup_content(App &$a) {
|
||||
function contactgroup_content(App $a) {
|
||||
|
||||
|
||||
if (! local_user()) {
|
||||
|
|
|
@ -7,7 +7,7 @@ require_once('include/Scrape.php');
|
|||
require_once('mod/proxy.php');
|
||||
require_once('include/Photo.php');
|
||||
|
||||
function contacts_init(App &$a) {
|
||||
function contacts_init(App $a) {
|
||||
if (! local_user()) {
|
||||
return;
|
||||
}
|
||||
|
@ -97,7 +97,7 @@ function contacts_init(App &$a) {
|
|||
|
||||
}
|
||||
|
||||
function contacts_batch_actions(App &$a){
|
||||
function contacts_batch_actions(App $a) {
|
||||
$contacts_id = $_POST['contact_batch'];
|
||||
if (!is_array($contacts_id)) return;
|
||||
|
||||
|
@ -144,7 +144,7 @@ function contacts_batch_actions(App &$a){
|
|||
}
|
||||
|
||||
|
||||
function contacts_post(App &$a) {
|
||||
function contacts_post(App $a) {
|
||||
|
||||
if (! local_user()) {
|
||||
return;
|
||||
|
@ -349,7 +349,7 @@ function _contact_drop($contact_id, $orig_record) {
|
|||
}
|
||||
|
||||
|
||||
function contacts_content(App &$a) {
|
||||
function contacts_content(App $a) {
|
||||
|
||||
$sort_type = 0;
|
||||
$o = '';
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
// and 10-20 milliseconds to fetch all the child items.
|
||||
|
||||
|
||||
function content_content(&$a, $update = 0) {
|
||||
function content_content(App $a, $update = 0) {
|
||||
|
||||
require_once('include/conversation.php');
|
||||
|
||||
|
@ -307,7 +307,7 @@ function content_content(&$a, $update = 0) {
|
|||
|
||||
|
||||
|
||||
function render_content(&$a, $items, $mode, $update, $preview = false) {
|
||||
function render_content(App $a, $items, $mode, $update, $preview = false) {
|
||||
|
||||
require_once('include/bbcode.php');
|
||||
require_once('mod/proxy.php');
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* addons repository will be listed though ATM)
|
||||
*/
|
||||
|
||||
function credits_content (App &$a) {
|
||||
function credits_content (App $a) {
|
||||
/* fill the page with credits */
|
||||
$f = fopen('util/credits.txt','r');
|
||||
$names = fread($f, filesize('util/credits.txt'));
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
require_once("include/contact_selectors.php");
|
||||
require_once("mod/contacts.php");
|
||||
|
||||
function crepair_init(App &$a) {
|
||||
function crepair_init(App $a) {
|
||||
if (! local_user()) {
|
||||
return;
|
||||
}
|
||||
|
@ -30,7 +30,7 @@ function crepair_init(App &$a) {
|
|||
}
|
||||
}
|
||||
|
||||
function crepair_post(App &$a) {
|
||||
function crepair_post(App $a) {
|
||||
if (! local_user()) {
|
||||
return;
|
||||
}
|
||||
|
@ -96,7 +96,7 @@ function crepair_post(App &$a) {
|
|||
|
||||
|
||||
|
||||
function crepair_content(App &$a) {
|
||||
function crepair_content(App $a) {
|
||||
|
||||
if (! local_user()) {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
<?php
|
||||
require_once('mod/settings.php');
|
||||
|
||||
function delegate_init(App &$a) {
|
||||
function delegate_init(App $a) {
|
||||
return settings_init($a);
|
||||
}
|
||||
|
||||
|
||||
function delegate_content(App &$a) {
|
||||
function delegate_content(App $a) {
|
||||
|
||||
if (! local_user()) {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
|
|
|
@ -22,7 +22,7 @@ require_once('include/enotify.php');
|
|||
require_once('include/group.php');
|
||||
require_once('include/Probe.php');
|
||||
|
||||
function dfrn_confirm_post(&$a,$handsfree = null) {
|
||||
function dfrn_confirm_post(App $a, $handsfree = null) {
|
||||
|
||||
if(is_array($handsfree)) {
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ require_once('include/event.php');
|
|||
|
||||
require_once('library/defuse/php-encryption-1.2.1/Crypto.php');
|
||||
|
||||
function dfrn_notify_post(App &$a) {
|
||||
function dfrn_notify_post(App $a) {
|
||||
logger(__function__, LOGGER_TRACE);
|
||||
$dfrn_id = ((x($_POST,'dfrn_id')) ? notags(trim($_POST['dfrn_id'])) : '');
|
||||
$dfrn_version = ((x($_POST,'dfrn_version')) ? (float) $_POST['dfrn_version'] : 2.0);
|
||||
|
@ -221,7 +221,7 @@ function dfrn_notify_post(App &$a) {
|
|||
}
|
||||
|
||||
|
||||
function dfrn_notify_content(App &$a) {
|
||||
function dfrn_notify_content(App $a) {
|
||||
|
||||
if(x($_GET,'dfrn_id')) {
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ require_once('include/auth.php');
|
|||
require_once('include/dfrn.php');
|
||||
|
||||
|
||||
function dfrn_poll_init(App &$a) {
|
||||
function dfrn_poll_init(App $a) {
|
||||
|
||||
|
||||
$dfrn_id = ((x($_GET,'dfrn_id')) ? $_GET['dfrn_id'] : '');
|
||||
|
@ -203,7 +203,7 @@ function dfrn_poll_init(App &$a) {
|
|||
|
||||
|
||||
|
||||
function dfrn_poll_post(App &$a) {
|
||||
function dfrn_poll_post(App $a) {
|
||||
|
||||
$dfrn_id = ((x($_POST,'dfrn_id')) ? $_POST['dfrn_id'] : '');
|
||||
$challenge = ((x($_POST,'challenge')) ? $_POST['challenge'] : '');
|
||||
|
@ -383,7 +383,7 @@ function dfrn_poll_post(App &$a) {
|
|||
}
|
||||
}
|
||||
|
||||
function dfrn_poll_content(App &$a) {
|
||||
function dfrn_poll_content(App $a) {
|
||||
|
||||
$dfrn_id = ((x($_GET,'dfrn_id')) ? $_GET['dfrn_id'] : '');
|
||||
$type = ((x($_GET,'type')) ? $_GET['type'] : 'data');
|
||||
|
|
|
@ -17,7 +17,7 @@ require_once('include/Scrape.php');
|
|||
require_once('include/Probe.php');
|
||||
require_once('include/group.php');
|
||||
|
||||
function dfrn_request_init(App &$a) {
|
||||
function dfrn_request_init(App $a) {
|
||||
|
||||
if($a->argc > 1)
|
||||
$which = $a->argv[1];
|
||||
|
@ -42,7 +42,7 @@ function dfrn_request_init(App &$a) {
|
|||
* After logging in, we click 'submit' to approve the linkage.
|
||||
*
|
||||
*/
|
||||
function dfrn_request_post(App &$a) {
|
||||
function dfrn_request_post(App $a) {
|
||||
|
||||
if(($a->argc != 2) || (! count($a->profile))) {
|
||||
logger('Wrong count of argc or profiles: argc=' . $a->argc . ',profile()=' . count($a->profile));
|
||||
|
@ -658,7 +658,7 @@ function dfrn_request_post(App &$a) {
|
|||
}
|
||||
|
||||
|
||||
function dfrn_request_content(App &$a) {
|
||||
function dfrn_request_content(App $a) {
|
||||
|
||||
if (($a->argc != 2) || (! count($a->profile))) {
|
||||
return "";
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
function directory_init(App &$a) {
|
||||
function directory_init(App $a) {
|
||||
$a->set_pager_itemspage(60);
|
||||
|
||||
if(local_user()) {
|
||||
|
@ -20,14 +20,14 @@ function directory_init(App &$a) {
|
|||
}
|
||||
|
||||
|
||||
function directory_post(App &$a) {
|
||||
function directory_post(App $a) {
|
||||
if(x($_POST,'search'))
|
||||
$a->data['search'] = $_POST['search'];
|
||||
}
|
||||
|
||||
|
||||
|
||||
function directory_content(App &$a) {
|
||||
function directory_content(App $a) {
|
||||
global $db;
|
||||
|
||||
require_once("mod/proxy.php");
|
||||
|
|
|
@ -5,7 +5,7 @@ require_once('include/Contact.php');
|
|||
require_once('include/contact_selectors.php');
|
||||
require_once('mod/contacts.php');
|
||||
|
||||
function dirfind_init(App &$a) {
|
||||
function dirfind_init(App $a) {
|
||||
|
||||
if (! local_user()) {
|
||||
notice( t('Permission denied.') . EOL );
|
||||
|
@ -23,7 +23,7 @@ function dirfind_init(App &$a) {
|
|||
|
||||
|
||||
|
||||
function dirfind_content(&$a, $prefix = "") {
|
||||
function dirfind_content(App $a, $prefix = "") {
|
||||
|
||||
$community = false;
|
||||
$discover_user = false;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
function display_init(App &$a) {
|
||||
function display_init(App $a) {
|
||||
|
||||
if ((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
|
||||
return;
|
||||
|
@ -194,7 +194,7 @@ function display_fetchauthor($a, $item) {
|
|||
return($profiledata);
|
||||
}
|
||||
|
||||
function display_content(&$a, $update = 0) {
|
||||
function display_content(App $a, $update = 0) {
|
||||
|
||||
if ((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
|
||||
notice(t('Public access denied.') . EOL);
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require_once('include/acl_selectors.php');
|
||||
|
||||
function editpost_content(App &$a) {
|
||||
function editpost_content(App $a) {
|
||||
|
||||
$o = '';
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ require_once('include/datetime.php');
|
|||
require_once('include/event.php');
|
||||
require_once('include/items.php');
|
||||
|
||||
function events_init(App &$a) {
|
||||
function events_init(App $a) {
|
||||
if (! local_user()) {
|
||||
return;
|
||||
}
|
||||
|
@ -31,7 +31,7 @@ function events_init(App &$a) {
|
|||
return;
|
||||
}
|
||||
|
||||
function events_post(App &$a) {
|
||||
function events_post(App $a) {
|
||||
|
||||
logger('post: ' . print_r($_REQUEST,true));
|
||||
|
||||
|
@ -189,7 +189,7 @@ function events_post(App &$a) {
|
|||
|
||||
|
||||
|
||||
function events_content(App &$a) {
|
||||
function events_content(App $a) {
|
||||
|
||||
if (! local_user()) {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
|
@ -393,7 +393,7 @@ function events_content(App &$a) {
|
|||
'$title' => t('Events'),
|
||||
'$view' => t('View'),
|
||||
'$new_event' => array(App::get_baseurl().'/events/new',t('Create New Event'),'',''),
|
||||
'$previus' => array(App::get_baseurl()."/events/$prevyear/$prevmonth",t('Previous'),'',''),
|
||||
'$previous' => array(App::get_baseurl()."/events/$prevyear/$prevmonth",t('Previous'),'',''),
|
||||
'$next' => array(App::get_baseurl()."/events/$nextyear/$nextmonth",t('Next'),'',''),
|
||||
'$calendar' => cal($y,$m,$links, ' eventcal'),
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ require_once('include/Photo.php');
|
|||
/**
|
||||
* @param App $a
|
||||
*/
|
||||
function fbrowser_content(App &$a){
|
||||
function fbrowser_content(App $a) {
|
||||
|
||||
if (!local_user())
|
||||
killme();
|
||||
|
|
|
@ -6,9 +6,7 @@ require_once("include/crypto.php");
|
|||
require_once("include/diaspora.php");
|
||||
require_once("include/xml.php");
|
||||
|
||||
/// @TODO You always make it like this: function foo(&$a)
|
||||
/// @TODO This means that the value of $a can be changed in anything, remove & and use App as type-hint
|
||||
function fetch_init(App &$a){
|
||||
function fetch_init(App $a) {
|
||||
|
||||
if (($a->argc != 3) OR (!in_array($a->argv[1], array("post", "status_message", "reshare")))) {
|
||||
header($_SERVER["SERVER_PROTOCOL"].' 404 '.t('Not Found'));
|
||||
|
|
|
@ -5,7 +5,7 @@ require_once('include/bbcode.php');
|
|||
require_once('include/items.php');
|
||||
|
||||
|
||||
function filer_content(App &$a) {
|
||||
function filer_content(App $a) {
|
||||
|
||||
if (! local_user()) {
|
||||
killme();
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
function filerm_content(App &$a) {
|
||||
function filerm_content(App $a) {
|
||||
|
||||
if (! local_user()) {
|
||||
killme();
|
||||
|
|
|
@ -5,7 +5,7 @@ require_once('include/follow.php');
|
|||
require_once('include/Contact.php');
|
||||
require_once('include/contact_selectors.php');
|
||||
|
||||
function follow_content(App &$a) {
|
||||
function follow_content(App $a) {
|
||||
|
||||
if (! local_user()) {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
|
@ -152,7 +152,7 @@ function follow_content(App &$a) {
|
|||
return $o;
|
||||
}
|
||||
|
||||
function follow_post(App &$a) {
|
||||
function follow_post(App $a) {
|
||||
|
||||
if (! local_user()) {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
function friendica_init(App &$a) {
|
||||
function friendica_init(App $a) {
|
||||
if ($a->argv[1]=="json"){
|
||||
$register_policy = Array('REGISTER_CLOSED', 'REGISTER_APPROVE', 'REGISTER_OPEN');
|
||||
|
||||
|
@ -59,7 +59,7 @@ function friendica_init(App &$a) {
|
|||
|
||||
|
||||
|
||||
function friendica_content(App &$a) {
|
||||
function friendica_content(App $a) {
|
||||
|
||||
$o = '';
|
||||
$o .= '<h3>Friendica</h3>';
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
|
||||
|
||||
function fsuggest_post(App &$a) {
|
||||
function fsuggest_post(App $a) {
|
||||
|
||||
if (! local_user()) {
|
||||
return;
|
||||
|
@ -71,7 +71,7 @@ function fsuggest_post(App &$a) {
|
|||
|
||||
|
||||
|
||||
function fsuggest_content(App &$a) {
|
||||
function fsuggest_content(App $a) {
|
||||
|
||||
require_once('include/acl_selectors.php');
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ function validate_members(&$item) {
|
|||
$item = intval($item);
|
||||
}
|
||||
|
||||
function group_init(App &$a) {
|
||||
function group_init(App $a) {
|
||||
if(local_user()) {
|
||||
require_once('include/group.php');
|
||||
$a->page['aside'] = group_side('contacts','group','extended',(($a->argc > 1) ? intval($a->argv[1]) : 0));
|
||||
|
@ -13,7 +13,7 @@ function group_init(App &$a) {
|
|||
|
||||
|
||||
|
||||
function group_post(App &$a) {
|
||||
function group_post(App $a) {
|
||||
|
||||
if (! local_user()) {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
|
@ -69,7 +69,7 @@ function group_post(App &$a) {
|
|||
return;
|
||||
}
|
||||
|
||||
function group_content(App &$a) {
|
||||
function group_content(App $a) {
|
||||
$change = false;
|
||||
|
||||
if (! local_user()) {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
function hcard_init(App &$a) {
|
||||
function hcard_init(App $a) {
|
||||
|
||||
$blocked = (((get_config('system','block_public')) && (! local_user()) && (! remote_user())) ? true : false);
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ if (!function_exists('load_doc_file')) {
|
|||
|
||||
}
|
||||
|
||||
function help_content(App &$a) {
|
||||
function help_content(App $a) {
|
||||
|
||||
nav_set_selected('help');
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
|
||||
if(! function_exists('home_init')) {
|
||||
function home_init(App &$a) {
|
||||
function home_init(App $a) {
|
||||
|
||||
$ret = array();
|
||||
call_hooks('home_init',$ret);
|
||||
|
@ -17,7 +17,7 @@ function home_init(App &$a) {
|
|||
}}
|
||||
|
||||
if(! function_exists('home_content')) {
|
||||
function home_content(App &$a) {
|
||||
function home_content(App $a) {
|
||||
|
||||
$o = '';
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require_once('include/crypto.php');
|
||||
|
||||
function hostxrd_init(App &$a) {
|
||||
function hostxrd_init(App $a) {
|
||||
header('Access-Control-Allow-Origin: *');
|
||||
header("Content-type: text/xml");
|
||||
$pubkey = get_config('system','site_pubkey');
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
require_once("include/socgraph.php");
|
||||
require_once("include/Contact.php");
|
||||
|
||||
function hovercard_init(App &$a) {
|
||||
function hovercard_init(App $a) {
|
||||
// Just for testing purposes
|
||||
$_GET["mode"] = "minimal";
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
|
||||
|
||||
function ignored_init(App &$a) {
|
||||
function ignored_init(App $a) {
|
||||
|
||||
$ignored = 0;
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ require_once "include/Photo.php";
|
|||
$install_wizard_pass=1;
|
||||
|
||||
|
||||
function install_init(App &$a){
|
||||
function install_init(App $a) {
|
||||
|
||||
// $baseurl/install/testrwrite to test if rewite in .htaccess is working
|
||||
if ($a->argc==2 && $a->argv[1]=="testrewrite") {
|
||||
|
@ -24,7 +24,7 @@ function install_init(App &$a){
|
|||
|
||||
}
|
||||
|
||||
function install_post(App &$a) {
|
||||
function install_post(App $a) {
|
||||
global $install_wizard_pass, $db;
|
||||
|
||||
switch($install_wizard_pass) {
|
||||
|
@ -132,7 +132,7 @@ function get_db_errno() {
|
|||
}
|
||||
}
|
||||
|
||||
function install_content(App &$a) {
|
||||
function install_content(App $a) {
|
||||
|
||||
global $install_wizard_pass, $db;
|
||||
$o = '';
|
||||
|
@ -565,7 +565,7 @@ function check_imagik(&$checks) {
|
|||
}
|
||||
}
|
||||
|
||||
function manual_config(App &$a) {
|
||||
function manual_config(App $a) {
|
||||
$data = htmlentities($a->data['txt'],ENT_COMPAT,'UTF-8');
|
||||
$o = t('The database configuration file ".htconfig.php" could not be written. Please use the enclosed text to create a configuration file in your web server root.');
|
||||
$o .= "<textarea rows=\"24\" cols=\"80\" >$data</textarea>";
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
require_once('include/email.php');
|
||||
|
||||
function invite_post(App &$a) {
|
||||
function invite_post(App $a) {
|
||||
|
||||
if (! local_user()) {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
|
@ -97,7 +97,7 @@ function invite_post(App &$a) {
|
|||
}
|
||||
|
||||
|
||||
function invite_content(App &$a) {
|
||||
function invite_content(App $a) {
|
||||
|
||||
if (! local_user()) {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
|
|
|
@ -27,7 +27,7 @@ require_once('include/Scrape.php');
|
|||
require_once('include/diaspora.php');
|
||||
require_once('include/Contact.php');
|
||||
|
||||
function item_post(App &$a) {
|
||||
function item_post(App $a) {
|
||||
|
||||
if((! local_user()) && (! remote_user()) && (! x($_REQUEST,'commenter')))
|
||||
return;
|
||||
|
@ -1066,7 +1066,7 @@ function item_post_return($baseurl, $api_source, $return_path) {
|
|||
|
||||
|
||||
|
||||
function item_content(App &$a) {
|
||||
function item_content(App $a) {
|
||||
|
||||
if ((! local_user()) && (! remote_user())) {
|
||||
return;
|
||||
|
|
|
@ -5,7 +5,7 @@ require_once('include/bbcode.php');
|
|||
require_once('include/items.php');
|
||||
require_once('include/like.php');
|
||||
|
||||
function like_content(App &$a) {
|
||||
function like_content(App $a) {
|
||||
if(! local_user() && ! remote_user()) {
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
require_once('include/datetime.php');
|
||||
|
||||
|
||||
function localtime_post(App &$a) {
|
||||
function localtime_post(App $a) {
|
||||
|
||||
$t = $_REQUEST['time'];
|
||||
if(! $t)
|
||||
|
@ -16,7 +16,7 @@ function localtime_post(App &$a) {
|
|||
|
||||
}
|
||||
|
||||
function localtime_content(App &$a) {
|
||||
function localtime_content(App $a) {
|
||||
$t = $_REQUEST['time'];
|
||||
if(! $t)
|
||||
$t = 'now';
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
|
||||
|
||||
function lockview_content(App &$a) {
|
||||
function lockview_content(App $a) {
|
||||
|
||||
$type = (($a->argc > 1) ? $a->argv[1] : 0);
|
||||
if (is_numeric($type)) {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
function login_content(App &$a) {
|
||||
function login_content(App $a) {
|
||||
if(x($_SESSION,'theme'))
|
||||
unset($_SESSION['theme']);
|
||||
if(x($_SESSION,'mobile-theme'))
|
||||
|
|
|
@ -4,7 +4,7 @@ require_once('include/email.php');
|
|||
require_once('include/enotify.php');
|
||||
require_once('include/text.php');
|
||||
|
||||
function lostpass_post(App &$a) {
|
||||
function lostpass_post(App $a) {
|
||||
|
||||
$loginame = notags(trim($_POST['login-name']));
|
||||
if(! $loginame)
|
||||
|
@ -77,7 +77,7 @@ function lostpass_post(App &$a) {
|
|||
}
|
||||
|
||||
|
||||
function lostpass_content(App &$a) {
|
||||
function lostpass_content(App $a) {
|
||||
|
||||
|
||||
if(x($_GET,'verify')) {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
function maintenance_content(App &$a) {
|
||||
function maintenance_content(App $a) {
|
||||
header('HTTP/1.1 503 Service Temporarily Unavailable');
|
||||
header('Status: 503 Service Temporarily Unavailable');
|
||||
header('Retry-After: 600');
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
require_once("include/text.php");
|
||||
|
||||
|
||||
function manage_post(App &$a) {
|
||||
function manage_post(App $a) {
|
||||
|
||||
if (! local_user()) {
|
||||
return;
|
||||
|
@ -92,7 +92,7 @@ function manage_post(App &$a) {
|
|||
|
||||
|
||||
|
||||
function manage_content(App &$a) {
|
||||
function manage_content(App $a) {
|
||||
|
||||
if (! local_user()) {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
|
|
|
@ -10,10 +10,10 @@ require_once('mod/proxy.php');
|
|||
* It takes keywords from your profile and queries the directory server for
|
||||
* matching keywords from other profiles.
|
||||
*
|
||||
* @param App &$a
|
||||
* @param App $a
|
||||
* @return void|string
|
||||
*/
|
||||
function match_content(App &$a) {
|
||||
function match_content(App $a) {
|
||||
|
||||
$o = '';
|
||||
if (! local_user()) {
|
||||
|
|
|
@ -4,7 +4,7 @@ require_once('include/acl_selectors.php');
|
|||
require_once('include/message.php');
|
||||
require_once('include/Smilies.php');
|
||||
|
||||
function message_init(App &$a) {
|
||||
function message_init(App $a) {
|
||||
|
||||
$tabs = '';
|
||||
|
||||
|
@ -40,7 +40,7 @@ function message_init(App &$a) {
|
|||
|
||||
}
|
||||
|
||||
function message_post(App &$a) {
|
||||
function message_post(App $a) {
|
||||
|
||||
if (! local_user()) {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
|
@ -173,7 +173,7 @@ function item_redir_and_replace_images($body, $images, $cid) {
|
|||
|
||||
|
||||
|
||||
function message_content(App &$a) {
|
||||
function message_content(App $a) {
|
||||
|
||||
$o = '';
|
||||
nav_set_selected('messages');
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require_once('library/asn1.php');
|
||||
|
||||
function modexp_init(App &$a) {
|
||||
function modexp_init(App $a) {
|
||||
|
||||
if($a->argc != 2)
|
||||
killme();
|
||||
|
|
|
@ -5,7 +5,7 @@ require_once('include/bbcode.php');
|
|||
require_once('include/items.php');
|
||||
|
||||
|
||||
function mood_init(App &$a) {
|
||||
function mood_init(App $a) {
|
||||
|
||||
if (! local_user()) {
|
||||
return;
|
||||
|
@ -109,7 +109,7 @@ function mood_init(App &$a) {
|
|||
|
||||
|
||||
|
||||
function mood_content(App &$a) {
|
||||
function mood_content(App $a) {
|
||||
|
||||
if (! local_user()) {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
function msearch_post(App &$a) {
|
||||
function msearch_post(App $a) {
|
||||
|
||||
$perpage = (($_POST['n']) ? $_POST['n'] : 80);
|
||||
$page = (($_POST['p']) ? intval($_POST['p'] - 1) : 0);
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require_once("include/nav.php");
|
||||
|
||||
function navigation_content(App &$a) {
|
||||
function navigation_content(App $a) {
|
||||
|
||||
$nav_info = nav_info($a);
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?php
|
||||
function network_init(App &$a) {
|
||||
function network_init(App $a) {
|
||||
if (! local_user()) {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
return;
|
||||
|
@ -221,7 +221,7 @@ function saved_searches($search) {
|
|||
*
|
||||
* @return Array ( $no_active, $comment_active, $postord_active, $conv_active, $new_active, $starred_active, $bookmarked_active, $spam_active );
|
||||
*/
|
||||
function network_query_get_sel_tab(App &$a) {
|
||||
function network_query_get_sel_tab(App $a) {
|
||||
$no_active='';
|
||||
$starred_active = '';
|
||||
$new_active = '';
|
||||
|
@ -292,7 +292,7 @@ function network_query_get_sel_net() {
|
|||
return $network;
|
||||
}
|
||||
|
||||
function network_query_get_sel_group(App &$a) {
|
||||
function network_query_get_sel_group(App $a) {
|
||||
$group = false;
|
||||
|
||||
if($a->argc >= 2 && is_numeric($a->argv[1])) {
|
||||
|
@ -303,7 +303,7 @@ function network_query_get_sel_group(App &$a) {
|
|||
}
|
||||
|
||||
|
||||
function network_content(&$a, $update = 0) {
|
||||
function network_content(App $a, $update = 0) {
|
||||
|
||||
require_once('include/conversation.php');
|
||||
|
||||
|
@ -809,7 +809,7 @@ function network_content(&$a, $update = 0) {
|
|||
* @param app $a The global App
|
||||
* @return string Html of the networktab
|
||||
*/
|
||||
function network_tabs(App &$a) {
|
||||
function network_tabs(App $a) {
|
||||
// item filter tabs
|
||||
/// @TODO fix this logic, reduce duplication
|
||||
/// $a->page['content'] .= '<div class="tabs-wrapper">';
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
function newmember_content(App &$a) {
|
||||
function newmember_content(App $a) {
|
||||
|
||||
|
||||
$o = '<h1>' . t('Welcome to Friendica') . '</h1>';
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
require_once("include/plugin.php");
|
||||
|
||||
function nodeinfo_wellknown(App &$a) {
|
||||
function nodeinfo_wellknown(App $a) {
|
||||
if (!get_config("system", "nodeinfo")) {
|
||||
http_status_exit(404);
|
||||
killme();
|
||||
|
@ -20,7 +20,7 @@ function nodeinfo_wellknown(App &$a) {
|
|||
exit;
|
||||
}
|
||||
|
||||
function nodeinfo_init(App &$a){
|
||||
function nodeinfo_init(App $a) {
|
||||
if (!get_config("system", "nodeinfo")) {
|
||||
http_status_exit(404);
|
||||
killme();
|
||||
|
|
|
@ -4,7 +4,7 @@ require_once('include/Contact.php');
|
|||
require_once('include/socgraph.php');
|
||||
require_once('include/contact_selectors.php');
|
||||
|
||||
function nogroup_init(App &$a) {
|
||||
function nogroup_init(App $a) {
|
||||
|
||||
if (! local_user()) {
|
||||
return;
|
||||
|
@ -21,7 +21,7 @@ function nogroup_init(App &$a) {
|
|||
}
|
||||
|
||||
|
||||
function nogroup_content(App &$a) {
|
||||
function nogroup_content(App $a) {
|
||||
|
||||
if (! local_user()) {
|
||||
notice( t('Permission denied.') . EOL);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
function noscrape_init(App &$a) {
|
||||
function noscrape_init(App $a) {
|
||||
|
||||
if($a->argc > 1)
|
||||
$which = $a->argv[1];
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue