Merge branch 'develop' into issue/#3062

This commit is contained in:
Hypolite Petovan 2017-01-08 11:44:45 +11:00
commit 479180ca8e
162 changed files with 766 additions and 683 deletions

View file

@ -1539,7 +1539,7 @@ function check_db() {
* Sets the base url for use in cmdline programs which don't have
* $_SERVER variables
*/
function check_url(&$a) {
function check_url(App &$a) {
$url = get_config('system','url');
@ -1561,7 +1561,7 @@ function check_url(&$a) {
/**
* @brief Automatic database updates
*/
function update_db(&$a) {
function update_db(App &$a) {
$build = get_config('system','build');
if(! x($build))
$build = set_config('system','build',DB_UPDATE_VERSION);
@ -1677,7 +1677,7 @@ function run_update_function($x) {
* @param App $a
*
*/
function check_plugins(&$a) {
function check_plugins(App &$a) {
$r = q("SELECT * FROM `addon` WHERE `installed` = 1");
if (dbm::is_result($r))
@ -2412,7 +2412,8 @@ function get_temppath() {
return("");
}
function set_template_engine(&$a, $engine = 'internal') {
/// @deprecated
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

View file

@ -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(&$a), which defines and returns the page body content.
They may also contain plugin_name_post(&$a) which is called before the _content function and typically handles the results of POST forms.
You may also have plugin_name_init(&$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
---

View file

@ -3,15 +3,15 @@ Using SSL with Friendica
* [Home](help)
Disclaimer
---
## Disclaimer
**This document has been updated in November 2016.
SSL encryption is relevant for security.
This means that recommended settings change fast.
Keep your setup up to date and do not rely on this document being updated as fast as technologies change!**
Intro
---
## Intro
If you are running your own Friendica site, you may want to use SSL (https) to encrypt communication between servers and between yourself and your server.
There are basically two sorts of SSL certificates: Self-signed certificates and certificates signed by a certificate authority (CA).
@ -26,15 +26,13 @@ Normally, you have to pay for them - and they are valid for a limited period of
There are ways to get a trusted certificate for free.
Chose your domain name
---
## Choose your domain name
Your SSL certificate will be valid for a domain or even only for a subdomain.
Make your final decision about your domain resp. subdomain *before* ordering the certificate.
Once you have it, changing the domain name means getting a new certificate.
Shared hosts
---
### Shared hosts
If your Friendica instance is running on a shared hosting platform, you should first check with your hosting provider.
They have instructions for you on how to do it there.
@ -45,8 +43,7 @@ They need the certificate, the key and the CA's intermediate certificate.
To be sure, send those three files.
**You should send them to your provider via an encrypted channel!**
Own server
---
### Own server
If you run your own server, we recommend to check out the ["Let's Encrypt" initiative](https://letsencrypt.org/).
Not only do they offer free SSL certificates, but also a way to automate their renewal.
@ -54,14 +51,48 @@ You need to install a client software on your server to use it.
Instructions for the official client are [here](https://certbot.eff.org/).
Depending on your needs, you might want to look at the [list of alternative letsencrypt clients](https://letsencrypt.org/docs/client-options/).
Web server settings
---
## Web server settings
Visit the [Mozilla's wiki](https://wiki.mozilla.org/Security/Server_Side_TLS) for instructions on how to configure a secure webserver.
They provide recommendations for [different web servers](https://mozilla.github.io/server-side-tls/ssl-config-generator/).
Test your SSL settings
---
## Test your SSL settings
When you are done, visit the test site [SSL Labs](https://www.ssllabs.com/ssltest/) to have them check if you succeeded.
## Configure Friendica
If you can successfully access your Friendica instance through https, there are a number of steps you can take to ensure your users will use SSL to access your instance.
### Web server redirection
This is the simplest way to enforce site-wide secure access.
Every time a user tries to access any Friendica page by any mean (manual address bar entry or link), the web server issues a Permanent Redirect response with the secure protocol prepended to the requested URL.
With Apache, simply add the following lines to the [code].htaccess[/code] file in the root folder of your Friendica instance (thanks to [url=https://github.com/AlfredSK]AlfredSK[/url]):
[code]
#Force SSL connections
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://your.friendica.domain/$1 [R=301,L]
[/code]
With nginx, configure your [code]server[/code] directive this way (thanks to [url=https://bjornjohansen.no/redirect-to-https-with-nginx/]Bjørn Johansen[/url]):
[code]
server {
listen 80;
listen [::]:80;
server_name your.friendica.domain;
return 301 https://$server_name$request_uri;
}
[/code]
### SSL Settings
In the Admin Settings, there are three SSL-related settings:
- **SSL link policy**: this affects how Friendica generates internal links. If your SSL installation was successful, we recommend "Force all links to SSL" just in case your web server configuration can't be altered like described above.
- **Force SSL**: This forces all external links to HTTPS, which may solve Mixed-Content issues, but not all websites support HTTPS yet. Use at your own risk.
- **Verify SSL**: Enabling this will prevent Friendica to interact with self-signed SSL sites. We recommend you leave it on as a self-signed SSL certificate can be a vectorfor a man-in-the-middle attack.

View file

@ -68,7 +68,7 @@ The code will be something like:
file: mod/network.php
<?php
function network_content(&$a) {
function network_content(App &$a) {
$itemsmanager = new \Friendica\ItemsManager();
$items = $itemsmanager->getAll();

View file

@ -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(&$a), welche den Seiteninhalt definiert und zurückgibt.
Sie können auch plugin_name_post(&$a) umfassen, welches vor der content-Funktion aufgerufen wird und normalerweise die Resultate der POST-Formulare handhabt.
Du kannst ebenso plugin_name_init(&$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

View file

@ -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(&$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(&$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(&$a) {
function quattro_init(App &$a) {
$a->theme_info = array();
set_template_engine($a, 'smarty3');
}

View file

@ -85,7 +85,7 @@ function contact_remove($id) {
function terminate_friendship($user,$self,$contact) {
/// @TODO Get rid of this, include/datetime.php should care about by itself
/// @TODO Get rid of this, include/datetime.php should care about it by itself
$a = get_app();
require_once('include/datetime.php');
@ -226,14 +226,14 @@ function get_contact_details_by_url($url, $uid = -1, $default = array()) {
dbesc(normalise_link($url)), intval($uid));
// Fetch the data from the contact table with "uid=0" (which is filled automatically)
if (!$r)
if (!dbm::is_result($r))
$r = q("SELECT `id`, 0 AS `cid`, `id` AS `zid`, 0 AS `gid`, `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, `xmpp`,
`keywords`, `gender`, `photo`, `thumb`, `micro`, `forum`, `prv`, (`forum` | `prv`) AS `community`, `contact-type`, `bd` AS `birthday`, 0 AS `self`
FROM `contact` WHERE `nurl` = '%s' AND `uid` = 0",
dbesc(normalise_link($url)));
// Fetch the data from the gcontact table
if (!$r)
if (!dbm::is_result($r))
$r = q("SELECT 0 AS `id`, 0 AS `cid`, `id` AS `gid`, 0 AS `zid`, 0 AS `uid`, `url`, `nurl`, `alias`, `network`, `name`, `nick`, `addr`, `location`, `about`, '' AS `xmpp`,
`keywords`, `gender`, `photo`, `photo` AS `thumb`, `photo` AS `micro`, `community` AS `forum`, 0 AS `prv`, `community`, `contact-type`, `birthday`, 0 AS `self`
FROM `gcontact` WHERE `nurl` = '%s'",

View file

@ -272,7 +272,7 @@ function prune_deadguys($arr) {
$r = q("SELECT `id` FROM `contact` WHERE `id` IN ( " . $str . ") AND `blocked` = 0 AND `pending` = 0 AND `archive` = 0 ");
if ($r) {
if (dbm::is_result($r)) {
$ret = array();
foreach ($r as $rr) {
$ret[] = intval($rr['id']);
@ -585,9 +585,9 @@ function acl_lookup(&$a, $out_type = 'json') {
);
echo json_encode($o);
killme();
}
else
} else {
$r = array();
}
if (dbm::is_result($r)) {
@ -691,7 +691,7 @@ function acl_lookup(&$a, $out_type = 'json') {
* @param App $a
* @return array with the search results
*/
function navbar_complete(&$a) {
function navbar_complete(App &$a) {
// logger('navbar_complete');

View file

@ -133,7 +133,7 @@
* @hook 'logged_in'
* array $user logged user record
*/
function api_login(&$a){
function api_login(App &$a){
// login with oauth
try{
$oauth = new FKOAuth1();
@ -251,8 +251,8 @@
* @param App $a
* @return string API call result
*/
function api_call(&$a){
GLOBAL $API, $called_api;
function api_call(App &$a){
global $API, $called_api;
$type="json";
if (strpos($a->query_string, ".xml")>0) $type="xml";
@ -3590,7 +3590,7 @@
intval($gid),
dbesc($name));
// error message if specified gid is not in database
if (count($rname) == 0)
if (!dbm::is_result($rname))
throw new BadRequestException('wrong group name');
// delete group
@ -3629,7 +3629,7 @@
intval($uid),
dbesc($name));
// error message if specified group name already exists
if (count($rname) != 0)
if (dbm::is_result($rname))
throw new BadRequestException('group name already exists');
// check if specified group name is a deleted group
@ -3637,7 +3637,7 @@
intval($uid),
dbesc($name));
// error message if specified group name already exists
if (count($rname) != 0)
if (dbm::is_result($rname))
$reactivate_group = true;
// create group

View file

@ -135,8 +135,8 @@ function fileas_widget($baseurl,$selected = '') {
$matches = false;
$terms = array();
$cnt = preg_match_all('/\[(.*?)\]/',$saved,$matches,PREG_SET_ORDER);
if($cnt) {
$cnt = preg_match_all('/\[(.*?)\]/',$saved,$matches,PREG_SET_ORDER);
if ($cnt) {
foreach($matches as $mtch) {
$unescaped = xmlify(file_tag_decode($mtch[1]));
$terms[] = array('name' => $unescaped,'selected' => (($selected == $unescaped) ? 'selected' : ''));
@ -158,12 +158,14 @@ function categories_widget($baseurl,$selected = '') {
$a = get_app();
if(! feature_enabled($a->profile['profile_uid'],'categories'))
if (! feature_enabled($a->profile['profile_uid'],'categories')) {
return '';
}
$saved = get_pconfig($a->profile['profile_uid'],'system','filetags');
if(! strlen($saved))
if (! strlen($saved)) {
return;
}
$matches = false;
$terms = array();

View file

@ -264,7 +264,7 @@ function cron_poll_contacts($argc, $argv) {
intval($c['id'])
);
if((! $res) || (! count($res)))
if (dbm::is_result($res))
continue;
foreach($res as $contact) {
@ -343,7 +343,7 @@ function cron_poll_contacts($argc, $argv) {
*
* @param App $a
*/
function cron_clear_cache(&$a) {
function cron_clear_cache(App &$a) {
$last = get_config('system','cache_last_cleared');
@ -430,7 +430,7 @@ function cron_clear_cache(&$a) {
*
* @param App $a
*/
function cron_repair_diaspora(&$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));

View file

@ -2355,7 +2355,7 @@ class dfrn {
dbesc($xt->id),
intval($importer["importer_uid"])
);
if(count($i)) {
if (dbm::is_result($i)) {
// For tags, the owner cannot remove the tag on the author's copy of the post.

View file

@ -2283,8 +2283,9 @@ class Diaspora {
dbesc($target_guid),
intval($importer["uid"])
);
if (!$r)
if (!$r) {
return false;
}
// Check if the sender is the thread owner
$p = q("SELECT `id`, `author-link`, `origin` FROM `item` WHERE `id` = %d",
@ -2307,7 +2308,7 @@ class Diaspora {
logger("Deleted target ".$target_guid." (".$r[0]["id"].") from user ".$importer["uid"]." parent: ".$p[0]["id"], LOGGER_DEBUG);
// Now check if the retraction needs to be relayed by us
if($p[0]["origin"]) {
if ($p[0]["origin"]) {
// notify others
proc_run(PRIORITY_HIGH, "include/notifier.php", "drop", $r[0]["id"]);
}
@ -2478,15 +2479,17 @@ class Diaspora {
* @return string the handle in the format user@domain.tld
*/
private static function my_handle($contact) {
if ($contact["addr"] != "")
if ($contact["addr"] != "") {
return $contact["addr"];
}
// Normally we should have a filled "addr" field - but in the past this wasn't the case
// So - just in case - we build the the address here.
if ($contact["nickname"] != "")
if ($contact["nickname"] != "") {
$nick = $contact["nickname"];
else
} else {
$nick = $contact["nick"];
}
return $nick."@".substr(App::get_baseurl(), strpos(App::get_baseurl(),"://") + 3);
}

View file

@ -206,7 +206,7 @@ function bbtoevent($s) {
}
function sort_by_date($a) {
function sort_by_date(App &$a) {
usort($a,'ev_compare');
return $a;

View file

@ -102,8 +102,7 @@ function new_contact($uid,$url,$interactive = false) {
if ($interactive) {
if (strlen($a->path)) {
$myaddr = bin2hex(App::get_baseurl() . '/profile/' . $a->user['nickname']);
}
else {
} else {
$myaddr = bin2hex($a->user['nickname'] . '@' . $a->get_hostname());
}
@ -111,53 +110,43 @@ function new_contact($uid,$url,$interactive = false) {
// NOTREACHED
}
} elseif (get_config('system','dfrn_only')) {
$result['message'] = t('This site is not configured to allow communications with other networks.') . EOL;
$result['message'] != t('No compatible communication protocols or feeds were discovered.') . EOL;
return $result;
}
else {
if(get_config('system','dfrn_only')) {
$result['message'] = t('This site is not configured to allow communications with other networks.') . EOL;
$result['message'] != t('No compatible communication protocols or feeds were discovered.') . EOL;
return $result;
}
}
// This extra param just confuses things, remove it
if($ret['network'] === NETWORK_DIASPORA)
if ($ret['network'] === NETWORK_DIASPORA) {
$ret['url'] = str_replace('?absolute=true','',$ret['url']);
}
// do we have enough information?
if(! ((x($ret,'name')) && (x($ret,'poll')) && ((x($ret,'url')) || (x($ret,'addr'))))) {
if (! ((x($ret,'name')) && (x($ret,'poll')) && ((x($ret,'url')) || (x($ret,'addr'))))) {
$result['message'] .= t('The profile address specified does not provide adequate information.') . EOL;
if(! x($ret,'poll'))
if (! x($ret,'poll')) {
$result['message'] .= t('No compatible communication protocols or feeds were discovered.') . EOL;
if(! x($ret,'name'))
}
if (! x($ret,'name')) {
$result['message'] .= t('An author or name was not found.') . EOL;
if(! x($ret,'url'))
}
if (! x($ret,'url')) {
$result['message'] .= t('No browser URL could be matched to this address.') . EOL;
if(strpos($url,'@') !== false) {
}
if (strpos($url,'@') !== false) {
$result['message'] .= t('Unable to match @-style Identity Address with a known protocol or email contact.') . EOL;
$result['message'] .= t('Use mailto: in front of address to force email check.') . EOL;
}
return $result;
}
if($ret['network'] === NETWORK_OSTATUS && get_config('system','ostatus_disabled')) {
if ($ret['network'] === NETWORK_OSTATUS && get_config('system','ostatus_disabled')) {
$result['message'] .= t('The profile address specified belongs to a network which has been disabled on this site.') . EOL;
$ret['notify'] = '';
}
if(! $ret['notify']) {
if (! $ret['notify']) {
$result['message'] .= t('Limited profile. This person will be unable to receive direct/personal notifications from you.') . EOL;
}
@ -167,8 +156,9 @@ function new_contact($uid,$url,$interactive = false) {
$hidden = (($ret['network'] === NETWORK_MAIL) ? 1 : 0);
if(in_array($ret['network'], array(NETWORK_MAIL, NETWORK_DIASPORA)))
if (in_array($ret['network'], array(NETWORK_MAIL, NETWORK_DIASPORA))) {
$writeable = 1;
}
// check if we already have a contact
// the poll url is more reliable than the profile url, as we may have
@ -188,7 +178,7 @@ function new_contact($uid,$url,$interactive = false) {
if (dbm::is_result($r)) {
// update contact
if($r[0]['rel'] == CONTACT_IS_FOLLOWER || ($network === NETWORK_DIASPORA && $r[0]['rel'] == CONTACT_IS_SHARING)) {
if ($r[0]['rel'] == CONTACT_IS_FOLLOWER || ($network === NETWORK_DIASPORA && $r[0]['rel'] == CONTACT_IS_SHARING)) {
q("UPDATE `contact` SET `rel` = %d , `subhub` = %d, `readonly` = 0 WHERE `id` = %d AND `uid` = %d",
intval(CONTACT_IS_FRIEND),
intval($subhub),
@ -197,29 +187,28 @@ function new_contact($uid,$url,$interactive = false) {
);
}
} else {
// check service class limits
$r = q("select count(*) as total from contact where uid = %d and pending = 0 and self = 0",
$r = q("SELECT COUNT(*) AS `total` FROM `contact` WHERE `uid` = %d AND `pending` = 0 AND `self` = 0",
intval($uid)
);
if (dbm::is_result($r))
$total_contacts = $r[0]['total'];
if(! service_class_allows($uid,'total_contacts',$total_contacts)) {
if (! service_class_allows($uid,'total_contacts',$total_contacts)) {
$result['message'] .= upgrade_message();
return $result;
}
$r = q("select count(network) as total from contact where uid = %d and network = '%s' and pending = 0 and self = 0",
$r = q("SELECT COUNT(`network`) AS `total` FROM `contact` WHERE `uid` = %d AND `network` = '%s' AND `pending` = 0 AND `self` = 0",
intval($uid),
dbesc($network)
);
if (dbm::is_result($r))
if (dbm::is_result($r)) {
$total_network = $r[0]['total'];
}
if(! service_class_allows($uid,'total_contacts_' . $network,$total_network)) {
if (! service_class_allows($uid,'total_contacts_' . $network,$total_network)) {
$result['message'] .= upgrade_message();
return $result;
}
@ -268,8 +257,9 @@ function new_contact($uid,$url,$interactive = false) {
$result['cid'] = $contact_id;
$def_gid = get_default_group($uid, $contact["network"]);
if (intval($def_gid))
if (intval($def_gid)) {
group_add_member($uid, '', $contact_id, $def_gid);
}
// Update the avatar
update_contact_avatar($ret['photo'],$uid,$contact_id);
@ -285,7 +275,6 @@ function new_contact($uid,$url,$interactive = false) {
if (dbm::is_result($r)) {
if (($contact['network'] == NETWORK_OSTATUS) && (strlen($contact['notify']))) {
// create a follow slap
$item = array();
$item['verb'] = ACTIVITY_FOLLOW;

View file

@ -231,8 +231,7 @@ function profile_sidebar($profile, $block = 0) {
if ($connect AND local_user()) {
if (isset($profile["url"])) {
$profile_url = normalise_link($profile["url"]);
}
else {
} else {
$profile_url = normalise_link(App::get_baseurl()."/profile/".$profile["nickname"]);
}
@ -599,7 +598,7 @@ function get_events() {
));
}
function advanced_profile(&$a) {
function advanced_profile(App &$a) {
$o = '';
$uid = $a->profile['uid'];
@ -638,49 +637,86 @@ function advanced_profile(&$a) {
if($a->profile['marital']) $profile['marital'] = array( t('Status:'), $a->profile['marital']);
if($a->profile['with']) $profile['marital']['with'] = $a->profile['with'];
if(strlen($a->profile['howlong']) && $a->profile['howlong'] !== '0000-00-00 00:00:00') {
$profile['howlong'] = relative_date($a->profile['howlong'], t('for %1$d %2$s'));
/// @TODO Maybe use x() here, plus below?
if ($a->profile['with']) {
$profile['marital']['with'] = $a->profile['with'];
}
if($a->profile['sexual']) $profile['sexual'] = array( t('Sexual Preference:'), $a->profile['sexual'] );
if (strlen($a->profile['howlong']) && $a->profile['howlong'] !== '0000-00-00 00:00:00') {
$profile['howlong'] = relative_date($a->profile['howlong'], t('for %1$d %2$s'));
}
if($a->profile['homepage']) $profile['homepage'] = array( t('Homepage:'), linkify($a->profile['homepage']) );
if ($a->profile['sexual']) {
$profile['sexual'] = array( t('Sexual Preference:'), $a->profile['sexual'] );
}
if($a->profile['hometown']) $profile['hometown'] = array( t('Hometown:'), linkify($a->profile['hometown']) );
if ($a->profile['homepage']) {
$profile['homepage'] = array( t('Homepage:'), linkify($a->profile['homepage']) );
}
if($a->profile['pub_keywords']) $profile['pub_keywords'] = array( t('Tags:'), $a->profile['pub_keywords']);
if ($a->profile['hometown']) {
$profile['hometown'] = array( t('Hometown:'), linkify($a->profile['hometown']) );
}
if($a->profile['politic']) $profile['politic'] = array( t('Political Views:'), $a->profile['politic']);
if ($a->profile['pub_keywords']) {
$profile['pub_keywords'] = array( t('Tags:'), $a->profile['pub_keywords']);
}
if($a->profile['religion']) $profile['religion'] = array( t('Religion:'), $a->profile['religion']);
if ($a->profile['politic']) {
$profile['politic'] = array( t('Political Views:'), $a->profile['politic']);
}
if($txt = prepare_text($a->profile['about'])) $profile['about'] = array( t('About:'), $txt );
if ($a->profile['religion']) {
$profile['religion'] = array( t('Religion:'), $a->profile['religion']);
}
if($txt = prepare_text($a->profile['interest'])) $profile['interest'] = array( t('Hobbies/Interests:'), $txt);
if ($txt = prepare_text($a->profile['about'])) {
$profile['about'] = array( t('About:'), $txt );
}
if($txt = prepare_text($a->profile['likes'])) $profile['likes'] = array( t('Likes:'), $txt);
if ($txt = prepare_text($a->profile['interest'])) {
$profile['interest'] = array( t('Hobbies/Interests:'), $txt);
}
if($txt = prepare_text($a->profile['dislikes'])) $profile['dislikes'] = array( t('Dislikes:'), $txt);
if ($txt = prepare_text($a->profile['likes'])) {
$profile['likes'] = array( t('Likes:'), $txt);
}
if ($txt = prepare_text($a->profile['dislikes'])) {
$profile['dislikes'] = array( t('Dislikes:'), $txt);
}
if($txt = prepare_text($a->profile['contact'])) $profile['contact'] = array( t('Contact information and Social Networks:'), $txt);
if ($txt = prepare_text($a->profile['contact'])) {
$profile['contact'] = array( t('Contact information and Social Networks:'), $txt);
}
if($txt = prepare_text($a->profile['music'])) $profile['music'] = array( t('Musical interests:'), $txt);
if ($txt = prepare_text($a->profile['music'])) {
$profile['music'] = array( t('Musical interests:'), $txt);
}
if($txt = prepare_text($a->profile['book'])) $profile['book'] = array( t('Books, literature:'), $txt);
if ($txt = prepare_text($a->profile['book'])) {
$profile['book'] = array( t('Books, literature:'), $txt);
}
if($txt = prepare_text($a->profile['tv'])) $profile['tv'] = array( t('Television:'), $txt);
if ($txt = prepare_text($a->profile['tv'])) {
$profile['tv'] = array( t('Television:'), $txt);
}
if($txt = prepare_text($a->profile['film'])) $profile['film'] = array( t('Film/dance/culture/entertainment:'), $txt);
if ($txt = prepare_text($a->profile['film'])) {
$profile['film'] = array( t('Film/dance/culture/entertainment:'), $txt);
}
if($txt = prepare_text($a->profile['romance'])) $profile['romance'] = array( t('Love/Romance:'), $txt);
if ($txt = prepare_text($a->profile['romance'])) {
$profile['romance'] = array( t('Love/Romance:'), $txt);
}
if($txt = prepare_text($a->profile['work'])) $profile['work'] = array( t('Work/employment:'), $txt);
if ($txt = prepare_text($a->profile['work'])) {
$profile['work'] = array( t('Work/employment:'), $txt);
}
if($txt = prepare_text($a->profile['education'])) $profile['education'] = array( t('School/education:'), $txt );
if ($txt = prepare_text($a->profile['education'])) {
$profile['education'] = array( t('School/education:'), $txt );
}
//show subcribed forum if it is enabled in the usersettings
if (feature_enabled($uid,'forumlist_profile')) {
@ -705,11 +741,13 @@ function advanced_profile(&$a) {
function profile_tabs($a, $is_owner=False, $nickname=Null){
//echo "<pre>"; var_dump($a->user); killme();
if (is_null($nickname))
if (is_null($nickname)) {
$nickname = $a->user['nickname'];
}
if(x($_GET,'tab'))
if (x($_GET,'tab')) {
$tab = notags(trim($_GET['tab']));
}
$url = App::get_baseurl() . '/profile/' . $nickname;
@ -807,7 +845,7 @@ function get_my_url() {
return false;
}
function zrl_init(&$a) {
function zrl_init(App &$a) {
$tmp_str = get_my_url();
if(validate_url($tmp_str)) {

View file

@ -704,7 +704,7 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
// If its a post from myself then tag the thread as "mention"
logger("item_store: Checking if parent ".$parent_id." has to be tagged as mention for user ".$arr['uid'], LOGGER_DEBUG);
$u = q("SELECT `nickname` FROM `user` WHERE `uid` = %d", intval($arr['uid']));
if (count($u)) {
if (dbm::is_result($u)) {
$a = get_app();
$self = normalise_link(App::get_baseurl() . '/profile/' . $u[0]['nickname']);
logger("item_store: 'myself' is ".$self." for parent ".$parent_id." checking against ".$arr['author-link']." and ".$arr['owner-link'], LOGGER_DEBUG);
@ -953,14 +953,16 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
// in it.
if (!$deleted AND !$dontcache) {
$r = q('SELECT * FROM `item` WHERE id = %d', intval($current_post));
if (count($r) == 1) {
if ($notify)
$r = q('SELECT * FROM `item` WHERE `id` = %d', intval($current_post));
if ((dbm::is_result($r)) && (count($r) == 1)) {
if ($notify) {
call_hooks('post_local_end', $r[0]);
else
} else {
call_hooks('post_remote_end', $r[0]);
} else
}
} else {
logger('item_store: new item not found in DB, id ' . $current_post);
}
}
if ($arr['parent-uri'] === $arr['uri']) {
@ -994,8 +996,9 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
check_item_notification($current_post, $uid);
if ($notify)
if ($notify) {
proc_run(PRIORITY_HIGH, "include/notifier.php", $notify_type, $current_post);
}
return $current_post;
}
@ -1188,19 +1191,22 @@ function tag_deliver($uid,$item_id) {
$u = q("select * from user where uid = %d limit 1",
intval($uid)
);
if (! count($u))
if (! dbm::is_result($u)) {
return;
}
$community_page = (($u[0]['page-flags'] == PAGE_COMMUNITY) ? true : false);
$prvgroup = (($u[0]['page-flags'] == PAGE_PRVGROUP) ? true : false);
$i = q("select * from item where id = %d and uid = %d limit 1",
$i = q("SELECT * FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($item_id),
intval($uid)
);
if (! count($i))
if (! dbm::is_result($i)) {
return;
}
$item = $i[0];
@ -1257,7 +1263,7 @@ function tag_deliver($uid,$item_id) {
$c = q("select name, url, thumb from contact where self = 1 and uid = %d limit 1",
intval($u[0]['uid'])
);
if (! count($c)) {
if (! dbm::is_result($c)) {
return;
}
@ -1290,8 +1296,6 @@ function tag_deliver($uid,$item_id) {
function tgroup_check($uid,$item) {
$a = get_app();
$mention = false;
// check that the message originated elsewhere and is a top-level post
@ -1299,12 +1303,13 @@ function tgroup_check($uid,$item) {
if (($item['wall']) || ($item['origin']) || ($item['uri'] != $item['parent-uri']))
return false;
$u = q("select * from user where uid = %d limit 1",
/// @TODO Encapsulate this or find it encapsulated and replace all occurrances
$u = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1",
intval($uid)
);
if (! count($u))
if (! dbm::is_result($u)) {
return false;
}
$community_page = (($u[0]['page-flags'] == PAGE_COMMUNITY) ? true : false);
$prvgroup = (($u[0]['page-flags'] == PAGE_PRVGROUP) ? true : false);
@ -2228,7 +2233,7 @@ function posted_date_widget($url,$uid,$wall) {
$ret = list_post_dates($uid,$wall);
if (! count($ret))
if (! dbm::is_result($ret))
return $o;
$cutoff_year = intval(datetime_convert('',date_default_timezone_get(),'now','Y')) - $visible_years;

View file

@ -112,8 +112,9 @@ function do_like($item_id, $verb) {
intval($_SESSION['visitor_id']),
intval($owner_uid)
);
if (dbm::is_result($r))
if (dbm::is_result($r)) {
$contact = $r[0];
}
}
if (! $contact) {
return false;

View file

@ -1,6 +1,6 @@
<?php
function nav(&$a) {
function nav(App &$a) {
/*
*

View file

@ -541,10 +541,11 @@ function parse_xml_string($s,$strict = true) {
libxml_use_internal_errors(true);
$x = @simplexml_load_string($s2);
if(! $x) {
if (! $x) {
logger('libxml: parse: error: ' . $s2, LOGGER_DATA);
foreach(libxml_get_errors() as $err)
foreach (libxml_get_errors() as $err) {
logger('libxml: parse: ' . $err->code." at ".$err->line.":".$err->column." : ".$err->message, LOGGER_DATA);
}
libxml_clear_errors();
}
return $x;
@ -553,8 +554,9 @@ function parse_xml_string($s,$strict = true) {
function scale_external_images($srctext, $include_link = true, $scale_replace = false) {
// Suppress "view full size"
if (intval(get_config('system','no_view_full_size')))
if (intval(get_config('system','no_view_full_size'))) {
$include_link = false;
}
$a = get_app();
@ -563,38 +565,41 @@ function scale_external_images($srctext, $include_link = true, $scale_replace =
$matches = null;
$c = preg_match_all('/\[img.*?\](.*?)\[\/img\]/ism',$s,$matches,PREG_SET_ORDER);
if($c) {
if ($c) {
require_once('include/Photo.php');
foreach($matches as $mtch) {
foreach ($matches as $mtch) {
logger('scale_external_image: ' . $mtch[1]);
$hostname = str_replace('www.','',substr(App::get_baseurl(),strpos(App::get_baseurl(),'://')+3));
if(stristr($mtch[1],$hostname))
if (stristr($mtch[1],$hostname)) {
continue;
}
// $scale_replace, if passed, is an array of two elements. The
// first is the name of the full-size image. The second is the
// name of a remote, scaled-down version of the full size image.
// This allows Friendica to display the smaller remote image if
// one exists, while still linking to the full-size image
if($scale_replace)
if ($scale_replace) {
$scaled = str_replace($scale_replace[0], $scale_replace[1], $mtch[1]);
else
} else {
$scaled = $mtch[1];
$i = @fetch_url($scaled);
if(! $i)
}
$i = fetch_url($scaled);
if (! $i) {
return $srctext;
}
// guess mimetype from headers or filename
$type = guess_image_type($mtch[1],true);
if($i) {
if ($i) {
$ph = new Photo($i, $type);
if($ph->is_valid()) {
if ($ph->is_valid()) {
$orig_width = $ph->getWidth();
$orig_height = $ph->getHeight();
if($orig_width > 640 || $orig_height > 640) {
if ($orig_width > 640 || $orig_height > 640) {
$ph->scaleImage(640);
$new_width = $ph->getWidth();
@ -620,7 +625,7 @@ function scale_external_images($srctext, $include_link = true, $scale_replace =
function fix_contact_ssl_policy(&$contact,$new_policy) {
$ssl_changed = false;
if((intval($new_policy) == SSL_POLICY_SELFSIGN || $new_policy === 'self') && strstr($contact['url'],'https:')) {
if ((intval($new_policy) == SSL_POLICY_SELFSIGN || $new_policy === 'self') && strstr($contact['url'],'https:')) {
$ssl_changed = true;
$contact['url'] = str_replace('https:','http:',$contact['url']);
$contact['request'] = str_replace('https:','http:',$contact['request']);
@ -630,7 +635,7 @@ function fix_contact_ssl_policy(&$contact,$new_policy) {
$contact['poco'] = str_replace('https:','http:',$contact['poco']);
}
if((intval($new_policy) == SSL_POLICY_FULL || $new_policy === 'full') && strstr($contact['url'],'http:')) {
if ((intval($new_policy) == SSL_POLICY_FULL || $new_policy === 'full') && strstr($contact['url'],'http:')) {
$ssl_changed = true;
$contact['url'] = str_replace('http:','https:',$contact['url']);
$contact['request'] = str_replace('http:','https:',$contact['request']);
@ -640,15 +645,15 @@ function fix_contact_ssl_policy(&$contact,$new_policy) {
$contact['poco'] = str_replace('http:','https:',$contact['poco']);
}
if($ssl_changed) {
q("update contact set
url = '%s',
request = '%s',
notify = '%s',
poll = '%s',
confirm = '%s',
poco = '%s'
where id = %d limit 1",
if ($ssl_changed) {
q("UPDATE `contact` SET
`url` = '%s',
`request` = '%s',
`notify` = '%s',
`poll` = '%s',
`confirm` = '%s',
`poco` = '%s'
WHERE `id` = %d LIMIT 1",
dbesc($contact['url']),
dbesc($contact['request']),
dbesc($contact['notify']),

View file

@ -129,7 +129,7 @@ function reload_plugins() {
*/
function plugin_enabled($plugin) {
$r = q("SELECT * FROM `addon` WHERE `installed` = 1 AND `name` = '%s'", $plugin);
return((bool)(count($r) > 0));
return ((dbm::is_result($r)) && (count($r) > 0));
}
@ -413,7 +413,7 @@ function get_theme_info($theme){
function get_theme_screenshot($theme) {
$exts = array('.png','.jpg');
foreach($exts as $ext) {
if(file_exists('view/theme/' . $theme . '/screenshot' . $ext)) {
if (file_exists('view/theme/' . $theme . '/screenshot' . $ext)) {
return(App::get_baseurl() . '/view/theme/' . $theme . '/screenshot' . $ext);
}
}
@ -425,8 +425,8 @@ if (! function_exists('uninstall_theme')){
function uninstall_theme($theme){
logger("Addons: uninstalling theme " . $theme);
@include_once("view/theme/$theme/theme.php");
if(function_exists("{$theme}_uninstall")) {
include_once("view/theme/$theme/theme.php");
if (function_exists("{$theme}_uninstall")) {
$func = "{$theme}_uninstall";
$func();
}
@ -436,19 +436,19 @@ if (! function_exists('install_theme')){
function install_theme($theme) {
// silently fail if theme was removed
if(! file_exists("view/theme/$theme/theme.php"))
if (! file_exists("view/theme/$theme/theme.php")) {
return false;
}
logger("Addons: installing theme $theme");
@include_once("view/theme/$theme/theme.php");
include_once("view/theme/$theme/theme.php");
if(function_exists("{$theme}_install")) {
if (function_exists("{$theme}_install")) {
$func = "{$theme}_install";
$func();
return true;
}
else {
} else {
logger("Addons: FAILED installing theme $theme");
return false;
}
@ -467,10 +467,9 @@ function install_theme($theme) {
function service_class_allows($uid,$property,$usage = false) {
if($uid == local_user()) {
if ($uid == local_user()) {
$service_class = $a->user['service_class'];
}
else {
} else {
$r = q("SELECT `service_class` FROM `user` WHERE `uid` = %d LIMIT 1",
intval($uid)
);
@ -478,18 +477,23 @@ function service_class_allows($uid,$property,$usage = false) {
$service_class = $r[0]['service_class'];
}
}
if(! x($service_class))
return true; // everything is allowed
if (! x($service_class)) {
// everything is allowed
return true;
}
$arr = get_config('service_class',$service_class);
if(! is_array($arr) || (! count($arr)))
if (! is_array($arr) || (! count($arr))) {
return true;
}
if($usage === false)
if ($usage === false) {
return ((x($arr[$property])) ? (bool) $arr['property'] : true);
else {
if(! array_key_exists($property,$arr))
} else {
if (! array_key_exists($property,$arr)) {
return true;
}
return (((intval($usage)) < intval($arr[$property])) ? true : false);
}
}
@ -497,10 +501,9 @@ function service_class_allows($uid,$property,$usage = false) {
function service_class_fetch($uid,$property) {
if($uid == local_user()) {
if ($uid == local_user()) {
$service_class = $a->user['service_class'];
}
else {
} else {
$r = q("SELECT `service_class` FROM `user` WHERE `uid` = %d LIMIT 1",
intval($uid)
);

View file

@ -213,7 +213,7 @@ function poller_max_connections_reached() {
// The processlist only shows entries of the current user
if ($max != 0) {
$r = q("SHOW PROCESSLIST");
if (!$r)
if (!dbm::is_result($r))
return false;
$used = count($r);

View file

@ -127,7 +127,7 @@ function queue_run(&$argv, &$argc){
$c = q("SELECT * FROM `contact` WHERE `id` = %d LIMIT 1",
intval($qi[0]['cid'])
);
if(! count($c)) {
if (! dbm::is_result($c)) {
remove_queue_item($q_item['id']);
continue;
}
@ -157,7 +157,7 @@ function queue_run(&$argv, &$argc){
FROM `user` WHERE `uid` = %d LIMIT 1",
intval($c[0]['uid'])
);
if(! count($u)) {
if (! dbm::is_result($u)) {
remove_queue_item($q_item['id']);
continue;
}

View file

@ -220,8 +220,9 @@ function poco_check($profile_url, $name, $network, $profile_photo, $about, $loca
$r = q("SELECT `network` FROM `contact` WHERE `nurl` = '%s' AND `network` != '' AND `network` != '%s' LIMIT 1",
dbesc(normalise_link($profile_url)), dbesc(NETWORK_STATUSNET)
);
if (dbm::is_result($r))
if (dbm::is_result($r)) {
$network = $r[0]["network"];
}
if (($network == "") OR ($network == NETWORK_OSTATUS)) {
$r = q("SELECT `network`, `url` FROM `contact` WHERE `alias` IN ('%s', '%s') AND `network` != '' AND `network` != '%s' LIMIT 1",
@ -1575,7 +1576,7 @@ function get_gcontact_id($contact) {
proc_run(PRIORITY_LOW, 'include/gprobe.php', bin2hex($contact["url"]));
}
if ((count($r) > 1) AND ($gcontact_id > 0) AND ($contact["url"] != ""))
if ((dbm::is_result($r)) AND (count($r) > 1) AND ($gcontact_id > 0) AND ($contact["url"] != ""))
q("DELETE FROM `gcontact` WHERE `nurl` = '%s' AND `id` != %d",
dbesc(normalise_link($contact["url"])),
intval($gcontact_id));

View file

@ -369,7 +369,7 @@ if(! function_exists('paginate')) {
* @param App $a App instance
* @return string html for pagination #FIXME remove html
*/
function paginate(&$a) {
function paginate(App &$a) {
$data = paginate_data($a);
$tpl = get_markup_template("paginate.tpl");

View file

@ -241,7 +241,7 @@ function create_user($arr) {
WHERE `nickname` = '%s' ",
dbesc($nickname)
);
if((count($r) > 1) && $newuid) {
if ((dbm::is_result($r)) && (count($r) > 1) && $newuid) {
$result['message'] .= t('Nickname is already registered. Please choose another.') . EOL;
q("DELETE FROM `user` WHERE `uid` = %d",
intval($newuid)
@ -262,7 +262,7 @@ function create_user($arr) {
intval($netpublish)
);
if($r === false) {
if ($r === false) {
$result['message'] .= t('An error occurred creating your default profile. Please try again.') . EOL;
// Start fresh next time.
$r = q("DELETE FROM `user` WHERE `uid` = %d",
@ -325,24 +325,27 @@ function create_user($arr) {
$r = $img->store($newuid, 0, $hash, $filename, t('Profile Photos'), 4 );
if($r === false)
if ($r === false) {
$photo_failure = true;
}
$img->scaleImage(80);
$r = $img->store($newuid, 0, $hash, $filename, t('Profile Photos'), 5 );
if($r === false)
if ($r === false) {
$photo_failure = true;
}
$img->scaleImage(48);
$r = $img->store($newuid, 0, $hash, $filename, t('Profile Photos'), 6 );
if($r === false)
if ($r === false) {
$photo_failure = true;
}
if(! $photo_failure) {
if (! $photo_failure) {
q("UPDATE `photo` SET `profile` = 1 WHERE `resource-id` = '%s' ",
dbesc($hash)
);

View file

@ -123,15 +123,17 @@ class b8_storage_frndc extends b8_storage_base
function __destruct()
{
if($this->_connection === NULL)
if ($this->_connection === NULL) {
return;
}
# Commit any changes before closing
// Commit any changes before closing
$this->_commit();
# Just close the connection if no link-resource was passed and b8 created it's own connection
if($this->config['connection'] === NULL)
// Just close the connection if no link-resource was passed and b8 created it's own connection
if ($this->config['connection'] === NULL) {
mysql_close($this->_connection);
}
$this->connected = FALSE;
@ -163,9 +165,8 @@ class b8_storage_frndc extends b8_storage_base
protected function _get_query($tokens, $uid)
{
# Construct the query ...
if(count($tokens) > 0) {
// Construct the query ...
if (count($tokens) > 0) {
$where = array();
@ -175,42 +176,42 @@ class b8_storage_frndc extends b8_storage_base
}
$where = 'term IN ("' . implode('", "', $where) . '")';
}
else {
} else {
$token = dbesc($token);
$where = 'term = "' . $token . '"';
}
# ... and fetch the data
// ... and fetch the data
$result = q('
SELECT * FROM spam WHERE ' . $where . ' AND uid = ' . $uid );
$result = q('SELECT * FROM `spam` WHERE ' . $where . ' AND `uid` = ' . $uid );
$returned_tokens = array();
if(count($result)) {
foreach($result as $rr)
if (dbm::is_result($result)) {
foreach ($result as $rr) {
$returned_tokens[] = $rr['term'];
}
}
$to_create = array();
if(count($tokens) > 0) {
if (count($tokens) > 0) {
foreach($tokens as $token)
if(! in_array($token,$returned_tokens))
$to_create[] = str_tolower($token);
}
if(count($to_create)) {
if (count($to_create)) {
$sql = '';
foreach($to_create as $term) {
if(strlen($sql))
foreach ($to_create as $term) {
if (strlen($sql)) {
$sql .= ',';
$sql .= sprintf("(term,datetime,uid) values('%s','%s',%d)",
dbesc(str_tolower($term))
}
$sql .= sprintf("(`term`,`datetime`,`uid`) VALUES('%s','%s',%d)",
dbesc(str_tolower($term)),
dbesc(datetime_convert()),
intval($uid)
);
q("insert into spam " . $sql);
}
q("INSERT INTO `spam` " . $sql);
}
return $result;
@ -225,7 +226,6 @@ class b8_storage_frndc extends b8_storage_base
* @param string $count
* @return void
*/
protected function _put($token, $count, $uid) {
$token = dbesc($token);
$count = dbesc($count);
@ -241,7 +241,6 @@ class b8_storage_frndc extends b8_storage_base
* @param string $count
* @return void
*/
protected function _update($token, $count, $uid)
{
$token = dbesc($token);
@ -257,7 +256,6 @@ class b8_storage_frndc extends b8_storage_base
* @param string $token
* @return void
*/
protected function _del($token, $uid)
{
$token = dbesc($token);
@ -272,7 +270,6 @@ class b8_storage_frndc extends b8_storage_base
* @access protected
* @return void
*/
protected function _commit($uid)
{
@ -314,5 +311,3 @@ class b8_storage_frndc extends b8_storage_base
}
}
?>

View file

@ -1,8 +1,9 @@
<?php
/// @TODO This file has DOS line endings!
require_once("mod/hostxrd.php");
require_once("mod/nodeinfo.php");
function _well_known_init(&$a){
function _well_known_init(App &$a){
if ($a->argc > 1) {
switch($a->argv[1]) {
case "host-meta":
@ -20,7 +21,7 @@ function _well_known_init(&$a){
killme();
}
function wk_social_relay(&$a) {
function wk_social_relay(App &$a) {
define('SR_SCOPE_ALL', 'all');
define('SR_SCOPE_TAGS', 'tags');

View file

@ -2,7 +2,7 @@
require_once('include/Scrape.php');
function acctlink_init(&$a) {
function acctlink_init(App &$a) {
if(x($_GET,'addr')) {
$addr = trim($_GET['addr']);

View file

@ -3,7 +3,7 @@
require_once("include/acl_selectors.php");
function acl_init(&$a){
function acl_init(App &$a){
acl_lookup($a);
}

View file

@ -23,7 +23,7 @@ require_once("include/text.php");
* @param App $a
*
*/
function admin_post(&$a){
function admin_post(App &$a){
if(!is_site_admin()) {
@ -127,7 +127,7 @@ function admin_post(&$a){
* @param App $a
* @return string
*/
function admin_content(&$a) {
function admin_content(App &$a) {
if(!is_site_admin()) {
return login(false);
@ -260,7 +260,7 @@ function admin_content(&$a) {
* @param App $a
* @return string
*/
function admin_page_federation(&$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(&$a) {
* @param App $a
* @return string
*/
function admin_page_queue(&$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(&$a) {
* @param App $a
* @return string
*/
function admin_page_summary(&$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(&$a) {
*
* @param App $a
*/
function admin_page_site_post(&$a) {
function admin_page_site_post(App &$a) {
if(!x($_POST,"page_site")) {
return;
}
@ -845,7 +845,7 @@ function admin_page_site_post(&$a) {
* @param App $a
* @return string
*/
function admin_page_site(&$a) {
function admin_page_site(App &$a) {
/* Installed langs */
$lang_choices = get_available_languages();
@ -1072,7 +1072,7 @@ function admin_page_site(&$a) {
* @param App $a
* @return string
**/
function admin_page_dbsync(&$a) {
function admin_page_dbsync(App &$a) {
$o = '';
@ -1155,22 +1155,22 @@ function admin_page_dbsync(&$a) {
*
* @param App $a
*/
function admin_page_users_post(&$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'] : '');
$nu_nickname = (x($_POST, 'new_user_nickname') ? $_POST['new_user_nickname'] : '');
$nu_email = (x($_POST, 'new_user_email') ? $_POST['new_user_email'] : '');
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'] : '');
$nu_nickname = (x($_POST, 'new_user_nickname') ? $_POST['new_user_nickname'] : '');
$nu_email = (x($_POST, 'new_user_email') ? $_POST['new_user_email'] : '');
$nu_language = get_config('system', 'language');
check_form_security_token_redirectOnErr('/admin/users', 'admin_users');
if(!($nu_name==="") && !($nu_email==="") && !($nu_nickname==="")) {
if (!($nu_name==="") && !($nu_email==="") && !($nu_nickname==="")) {
require_once('include/user.php');
$result = create_user(array('username'=>$nu_name, 'email'=>$nu_email,
'nickname'=>$nu_nickname, 'verified'=>1, 'language'=>$nu_language));
if(! $result['success']) {
if (! $result['success']) {
notice($result['message']);
return;
}
@ -1260,7 +1260,7 @@ function admin_page_users_post(&$a){
* @param App $a
* @return string
*/
function admin_page_users(&$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(&$a){
* @param App $a
* @return string
*/
function admin_page_plugins(&$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(&$a){
function admin_page_themes(App &$a){
$allowed_themes_str = get_config('system','allowed_themes');
$allowed_themes_raw = explode(',',$allowed_themes_str);
@ -1850,13 +1850,13 @@ function admin_page_themes(&$a){
*
* @param App $a
*/
function admin_page_logs_post(&$a) {
if(x($_POST,"page_logs")) {
function admin_page_logs_post(App &$a) {
if (x($_POST,"page_logs")) {
check_form_security_token_redirectOnErr('/admin/logs', 'admin_logs');
$logfile = ((x($_POST,'logfile')) ? notags(trim($_POST['logfile'])) : '');
$debugging = ((x($_POST,'debugging')) ? true : false);
$loglevel = ((x($_POST,'loglevel')) ? intval(trim($_POST['loglevel'])) : 0);
$logfile = ((x($_POST,'logfile')) ? notags(trim($_POST['logfile'])) : '');
$debugging = ((x($_POST,'debugging')) ? true : false);
$loglevel = ((x($_POST,'loglevel')) ? intval(trim($_POST['loglevel'])) : 0);
set_config('system','logfile', $logfile);
set_config('system','debugging', $debugging);
@ -1884,7 +1884,7 @@ function admin_page_logs_post(&$a) {
* @param App $a
* @return string
*/
function admin_page_logs(&$a){
function admin_page_logs(App &$a){
$log_choices = array(
LOGGER_NORMAL => 'Normal',
@ -1941,7 +1941,7 @@ function admin_page_logs(&$a){
* @param App $a
* @return string
*/
function admin_page_viewlogs(&$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(&$a){
*
* @param App $a
*/
function admin_page_features_post(&$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(&$a) {
* @param App $a
* @return string
*/
function admin_page_features(&$a) {
function admin_page_features(App &$a) {
if((argc() > 1) && (argv(1) === 'features')) {
$arr = array();

View file

@ -5,7 +5,7 @@ require_once('include/Contact.php');
require_once('include/contact_selectors.php');
require_once('mod/contacts.php');
function allfriends_content(&$a) {
function allfriends_content(App &$a) {
$o = '';
if (! local_user()) {
@ -21,14 +21,14 @@ function allfriends_content(&$a) {
return;
}
$uid = $a->user[uid];
$uid = $a->user['uid'];
$c = q("SELECT `name`, `url`, `photo` FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($cid),
intval(local_user())
);
if (! count($c)) {
if (! dbm::is_result($c)) {
return;
}
@ -71,20 +71,20 @@ function allfriends_content(&$a) {
}
$entry = array(
'url' => $rr['url'],
'itemurl' => (($contact_details['addr'] != "") ? $contact_details['addr'] : $rr['url']),
'name' => htmlentities($contact_details['name']),
'thumb' => proxy_url($contact_details['thumb'], false, PROXY_SIZE_THUMB),
'img_hover' => htmlentities($contact_details['name']),
'details' => $contact_details['location'],
'tags' => $contact_details['keywords'],
'about' => $contact_details['about'],
'account_type' => account_type($contact_details),
'network' => network_to_name($contact_details['network'], $contact_details['url']),
'photo_menu' => $photo_menu,
'conntxt' => t('Connect'),
'connlnk' => $connlnk,
'id' => ++$id,
'url' => $rr['url'],
'itemurl' => (($contact_details['addr'] != "") ? $contact_details['addr'] : $rr['url']),
'name' => htmlentities($contact_details['name']),
'thumb' => proxy_url($contact_details['thumb'], false, PROXY_SIZE_THUMB),
'img_hover' => htmlentities($contact_details['name']),
'details' => $contact_details['location'],
'tags' => $contact_details['keywords'],
'about' => $contact_details['about'],
'account_type' => account_type($contact_details),
'network' => network_to_name($contact_details['network'], $contact_details['url']),
'photo_menu' => $photo_menu,
'conntxt' => t('Connect'),
'connlnk' => $connlnk,
'id' => ++$id,
);
$entries[] = $entry;
}

View file

@ -1,6 +1,6 @@
<?php
function amcd_content(&$a) {
function amcd_content(App &$a) {
//header("Content-type: text/json");
echo <<< EOT
{

View file

@ -20,7 +20,7 @@ function oauth_get_client($request){
return $r[0];
}
function api_post(&$a) {
function api_post(App &$a) {
if (! local_user()) {
notice( t('Permission denied.') . EOL);
@ -34,7 +34,7 @@ function api_post(&$a) {
}
function api_content(&$a) {
function api_content(App &$a) {
if ($a->cmd=='api/oauth/authorize'){
/*
* api/oauth/authorize interact with the user. return a standard page

View file

@ -1,6 +1,6 @@
<?php
function apps_content(&$a) {
function apps_content(App &$a) {
$privateaddons = get_config('config','private_addons');
if ($privateaddons === "1") {
if((! (local_user()))) {

View file

@ -2,7 +2,7 @@
require_once('include/security.php');
function attach_init(&$a) {
function attach_init(App &$a) {
if($a->argc != 2) {
notice( t('Item not available.') . EOL);

View file

@ -9,7 +9,7 @@ function visible_lf($s) {
return str_replace("\n",'<br />', $s);
}
function babel_content(&$a) {
function babel_content(App &$a) {
$o .= '<h1>Babel Diagnostic</h1>';

View file

@ -3,11 +3,11 @@
require_once('include/conversation.php');
require_once('include/items.php');
function bookmarklet_init(&$a) {
function bookmarklet_init(App &$a) {
$_GET["mode"] = "minimal";
}
function bookmarklet_content(&$a) {
function bookmarklet_content(App &$a) {
if (!local_user()) {
$o = '<h2>'.t('Login').'</h2>';
$o .= login(($a->config['register_policy'] == REGISTER_CLOSED) ? false : true);

View file

@ -9,7 +9,7 @@
require_once('include/event.php');
require_once('include/redir.php');
function cal_init(&$a) {
function cal_init(App &$a) {
if($a->argc > 1)
auto_redir($a, $a->argv[1]);
@ -64,7 +64,7 @@ function cal_init(&$a) {
return;
}
function cal_content(&$a) {
function cal_content(App &$a) {
nav_set_selected('events');
$editselect = 'none';

View file

@ -5,19 +5,19 @@
*/
function cb_init(&$a) {
function cb_init(App &$a) {
call_hooks('cb_init');
}
function cb_post(&$a) {
function cb_post(App &$a) {
call_hooks('cb_post', $_POST);
}
function cb_afterpost(&$a) {
function cb_afterpost(App &$a) {
call_hooks('cb_afterpost');
}
function cb_content(&$a) {
function cb_content(App &$a) {
$o = '';
call_hooks('cb_content', $o);
return $o;

View file

@ -5,7 +5,7 @@ require_once('include/Contact.php');
require_once('include/contact_selectors.php');
require_once('mod/contacts.php');
function common_content(&$a) {
function common_content(App &$a) {
$o = '';
@ -53,8 +53,9 @@ function common_content(&$a) {
$a->page['aside'] .= $vcard_widget;
}
if(! count($c))
if (! dbm::is_result($c)) {
return;
}
if(! $cid) {
if(get_my_url()) {

View file

@ -1,6 +1,6 @@
<?php
function community_init(&$a) {
function community_init(App &$a) {
if (! local_user()) {
unset($_SESSION['theme']);
unset($_SESSION['mobile-theme']);

View file

@ -2,7 +2,7 @@
require_once('include/group.php');
function contactgroup_content(&$a) {
function contactgroup_content(App &$a) {
if (! local_user()) {

View file

@ -7,7 +7,7 @@ require_once('include/Scrape.php');
require_once('mod/proxy.php');
require_once('include/Photo.php');
function contacts_init(&$a) {
function contacts_init(App &$a) {
if (! local_user()) {
return;
}
@ -28,40 +28,45 @@ function contacts_init(&$a) {
require_once('include/group.php');
require_once('include/contact_widgets.php');
if ($_GET['nets'] == "all")
$_GET['nets'] = "";
if(! x($a->page,'aside'))
$a->page['aside'] = '';
if($contact_id) {
$a->data['contact'] = $r[0];
if (($a->data['contact']['network'] != "") AND ($a->data['contact']['network'] != NETWORK_DFRN)) {
$networkname = format_network_name($a->data['contact']['network'],$a->data['contact']['url']);
} else
$networkname = '';
$vcard_widget = replace_macros(get_markup_template("vcard-widget.tpl"),array(
'$name' => htmlentities($a->data['contact']['name']),
'$photo' => $a->data['contact']['photo'],
'$url' => ($a->data['contact']['network'] == NETWORK_DFRN) ? "redir/".$a->data['contact']['id'] : $a->data['contact']['url'],
'$addr' => (($a->data['contact']['addr'] != "") ? ($a->data['contact']['addr']) : ""),
'$network_name' => $networkname,
'$network' => t('Network:'),
'$account_type' => account_type($a->data['contact'])
));
$finpeople_widget = '';
$follow_widget = '';
$networks_widget = '';
if ($_GET['nets'] == "all") {
$_GET['nets'] = "";
}
else {
if (! x($a->page,'aside')) {
$a->page['aside'] = '';
}
if ($contact_id) {
$a->data['contact'] = $r[0];
if (($a->data['contact']['network'] != "") AND ($a->data['contact']['network'] != NETWORK_DFRN)) {
$networkname = format_network_name($a->data['contact']['network'],$a->data['contact']['url']);
} else {
$networkname = '';
}
/// @TODO Add nice spaces
$vcard_widget = replace_macros(get_markup_template("vcard-widget.tpl"),array(
'$name' => htmlentities($a->data['contact']['name']),
'$photo' => $a->data['contact']['photo'],
'$url' => ($a->data['contact']['network'] == NETWORK_DFRN) ? "redir/".$a->data['contact']['id'] : $a->data['contact']['url'],
'$addr' => (($a->data['contact']['addr'] != "") ? ($a->data['contact']['addr']) : ""),
'$network_name' => $networkname,
'$network' => t('Network:'),
'$account_type' => account_type($a->data['contact'])
));
$finpeople_widget = '';
$follow_widget = '';
$networks_widget = '';
} else {
$vcard_widget = '';
$networks_widget .= networks_widget('contacts',$_GET['nets']);
if (isset($_GET['add']))
if (isset($_GET['add'])) {
$follow_widget = follow_widget($_GET['add']);
else
} else {
$follow_widget = follow_widget();
}
$findpeople_widget .= findpeople_widget();
}
@ -92,7 +97,7 @@ function contacts_init(&$a) {
}
function contacts_batch_actions(&$a){
function contacts_batch_actions(App &$a){
$contacts_id = $_POST['contact_batch'];
if (!is_array($contacts_id)) return;
@ -139,7 +144,7 @@ function contacts_batch_actions(&$a){
}
function contacts_post(&$a) {
function contacts_post(App &$a) {
if (! local_user()) {
return;
@ -344,7 +349,7 @@ function _contact_drop($contact_id, $orig_record) {
}
function contacts_content(&$a) {
function contacts_content(App &$a) {
$sort_type = 0;
$o = '';

View file

@ -5,7 +5,7 @@
* addons repository will be listed though ATM)
*/
function credits_content (&$a) {
function credits_content (App &$a) {
/* fill the page with credits */
$f = fopen('util/credits.txt','r');
$names = fread($f, filesize('util/credits.txt'));

View file

@ -2,7 +2,7 @@
require_once("include/contact_selectors.php");
require_once("mod/contacts.php");
function crepair_init(&$a) {
function crepair_init(App &$a) {
if (! local_user()) {
return;
}
@ -30,7 +30,7 @@ function crepair_init(&$a) {
}
}
function crepair_post(&$a) {
function crepair_post(App &$a) {
if (! local_user()) {
return;
}
@ -96,7 +96,7 @@ function crepair_post(&$a) {
function crepair_content(&$a) {
function crepair_content(App &$a) {
if (! local_user()) {
notice( t('Permission denied.') . EOL);

View file

@ -1,12 +1,12 @@
<?php
require_once('mod/settings.php');
function delegate_init(&$a) {
function delegate_init(App &$a) {
return settings_init($a);
}
function delegate_content(&$a) {
function delegate_content(App &$a) {
if (! local_user()) {
notice( t('Permission denied.') . EOL);
@ -21,7 +21,6 @@ function delegate_content(&$a) {
goaway(App::get_baseurl() . '/delegate');
}
$id = $a->argv[2];
$r = q("select `nickname` from user where uid = %d limit 1",
@ -45,12 +44,11 @@ function delegate_content(&$a) {
if ($a->argc > 2 && $a->argv[1] === 'remove' && intval($a->argv[2])) {
// delegated admins can view but not change delegation permissions
if (x($_SESSION,'submanage') && intval($_SESSION['submanage'])) {
goaway(App::get_baseurl() . '/delegate');
}
q("delete from manage where uid = %d and mid = %d limit 1",
q("DELETE FROM `manage` WHERE `uid` = %d AND `mid` = %d LIMIT 1",
intval($a->argv[2]),
intval(local_user())
);

View file

@ -415,23 +415,26 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
);
}
if($r === false)
notice( t('Unable to set contact photo.') . EOL);
/// @TODO is dbm::is_result() working here?
if ($r === false) {
notice( t('Unable to set contact photo.') . EOL);
}
// reload contact info
$r = q("SELECT * FROM `contact` WHERE `id` = %d LIMIT 1",
intval($contact_id)
);
if (dbm::is_result($r))
if (dbm::is_result($r)) {
$contact = $r[0];
else
} else {
$contact = null;
}
if((isset($new_relation) && $new_relation == CONTACT_IS_FRIEND)) {
if ((isset($new_relation) && $new_relation == CONTACT_IS_FRIEND)) {
if(($contact) && ($contact['network'] === NETWORK_DIASPORA)) {
if (($contact) && ($contact['network'] === NETWORK_DIASPORA)) {
require_once('include/diaspora.php');
$ret = Diaspora::send_share($user[0],$r[0]);
logger('share returns: ' . $ret);

View file

@ -11,7 +11,7 @@ require_once('include/event.php');
require_once('library/defuse/php-encryption-1.2.1/Crypto.php');
function dfrn_notify_post(&$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(&$a) {
}
function dfrn_notify_content(&$a) {
function dfrn_notify_content(App &$a) {
if(x($_GET,'dfrn_id')) {

View file

@ -4,7 +4,7 @@ require_once('include/auth.php');
require_once('include/dfrn.php');
function dfrn_poll_init(&$a) {
function dfrn_poll_init(App &$a) {
$dfrn_id = ((x($_GET,'dfrn_id')) ? $_GET['dfrn_id'] : '');
@ -137,7 +137,7 @@ function dfrn_poll_init(&$a) {
$c = q("SELECT * FROM `contact` WHERE `id` = %d LIMIT 1",
intval($r[0]['cid'])
);
if(! count($c)) {
if (! dbm::is_result($c)) {
xml_status(3, 'No profile');
}
$contact = $c[0];
@ -203,7 +203,7 @@ function dfrn_poll_init(&$a) {
function dfrn_poll_post(&$a) {
function dfrn_poll_post(App &$a) {
$dfrn_id = ((x($_POST,'dfrn_id')) ? $_POST['dfrn_id'] : '');
$challenge = ((x($_POST,'challenge')) ? $_POST['challenge'] : '');
@ -234,7 +234,7 @@ function dfrn_poll_post(&$a) {
$c = q("SELECT * FROM `contact` WHERE `id` = %d LIMIT 1",
intval($r[0]['cid'])
);
if(! count($c)) {
if (! dbm::is_result($c)) {
xml_status(3, 'No profile');
}
$contact = $c[0];
@ -383,7 +383,7 @@ function dfrn_poll_post(&$a) {
}
}
function dfrn_poll_content(&$a) {
function dfrn_poll_content(App &$a) {
$dfrn_id = ((x($_GET,'dfrn_id')) ? $_GET['dfrn_id'] : '');
$type = ((x($_GET,'type')) ? $_GET['type'] : 'data');

View file

@ -17,7 +17,7 @@ require_once('include/Scrape.php');
require_once('include/Probe.php');
require_once('include/group.php');
function dfrn_request_init(&$a) {
function dfrn_request_init(App &$a) {
if($a->argc > 1)
$which = $a->argv[1];
@ -42,7 +42,7 @@ function dfrn_request_init(&$a) {
* After logging in, we click 'submit' to approve the linkage.
*
*/
function dfrn_request_post(&$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(&$a) {
}
function dfrn_request_content(&$a) {
function dfrn_request_content(App &$a) {
if (($a->argc != 2) || (! count($a->profile))) {
return "";
@ -810,19 +810,17 @@ function dfrn_request_content(&$a) {
// At first look if an address was provided
// Otherwise take the local address
if (x($_GET,'addr') AND ($_GET['addr'] != ""))
if (x($_GET,'addr') AND ($_GET['addr'] != "")) {
$myaddr = hex2bin($_GET['addr']);
elseif (x($_GET,'address') AND ($_GET['address'] != ""))
} elseif (x($_GET,'address') AND ($_GET['address'] != "")) {
$myaddr = $_GET['address'];
elseif (local_user()) {
} elseif (local_user()) {
if (strlen($a->path)) {
$myaddr = App::get_baseurl() . '/profile/' . $a->user['nickname'];
}
else {
} else {
$myaddr = $a->user['nickname'] . '@' . substr(z_root(), strpos(z_root(),'://') + 3 );
}
}
else {
} else {
// last, try a zrl
$myaddr = get_my_url();
}
@ -840,8 +838,7 @@ function dfrn_request_content(&$a) {
if ($a->profile['page-flags'] == PAGE_NORMAL) {
$tpl = get_markup_template('dfrn_request.tpl');
}
else {
} else {
$tpl = get_markup_template('auto_request.tpl');
}
@ -850,10 +847,12 @@ function dfrn_request_content(&$a) {
// see if we are allowed to have NETWORK_MAIL2 contacts
$mail_disabled = ((function_exists('imap_open') && (! get_config('system','imap_disabled'))) ? 0 : 1);
if(get_config('system','dfrn_only'))
$mail_disabled = 1;
if(! $mail_disabled) {
if (get_config('system','dfrn_only')) {
$mail_disabled = 1;
}
if (! $mail_disabled) {
$r = q("SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1",
intval($a->profile['uid'])
);

View file

@ -1,6 +1,6 @@
<?php
function directory_init(&$a) {
function directory_init(App &$a) {
$a->set_pager_itemspage(60);
if(local_user()) {
@ -20,14 +20,14 @@ function directory_init(&$a) {
}
function directory_post(&$a) {
function directory_post(App &$a) {
if(x($_POST,'search'))
$a->data['search'] = $_POST['search'];
}
function directory_content(&$a) {
function directory_content(App &$a) {
global $db;
require_once("mod/proxy.php");

View file

@ -5,7 +5,7 @@ require_once('include/Contact.php');
require_once('include/contact_selectors.php');
require_once('mod/contacts.php');
function dirfind_init(&$a) {
function dirfind_init(App &$a) {
if (! local_user()) {
notice( t('Permission denied.') . EOL );

View file

@ -1,6 +1,6 @@
<?php
function display_init(&$a) {
function display_init(App &$a) {
if ((get_config('system','block_public')) && (! local_user()) && (! remote_user())) {
return;

View file

@ -2,7 +2,7 @@
require_once('include/acl_selectors.php');
function editpost_content(&$a) {
function editpost_content(App &$a) {
$o = '';
@ -23,7 +23,7 @@ function editpost_content(&$a) {
intval(local_user())
);
if (! count($itm)) {
if (! dbm::is_result($itm)) {
notice( t('Item not found') . EOL);
return;
}

View file

@ -8,7 +8,7 @@ require_once('include/datetime.php');
require_once('include/event.php');
require_once('include/items.php');
function events_init(&$a) {
function events_init(App &$a) {
if (! local_user()) {
return;
}
@ -21,8 +21,9 @@ function events_init(&$a) {
$cal_widget = widget_events();
if (! x($a->page,'aside'))
if (! x($a->page,'aside')) {
$a->page['aside'] = '';
}
$a->page['aside'] .= $cal_widget;
}
@ -30,7 +31,7 @@ function events_init(&$a) {
return;
}
function events_post(&$a) {
function events_post(App &$a) {
logger('post: ' . print_r($_REQUEST,true));
@ -188,7 +189,7 @@ function events_post(&$a) {
function events_content(&$a) {
function events_content(App &$a) {
if (! local_user()) {
notice( t('Permission denied.') . EOL);
@ -353,7 +354,7 @@ function events_content(&$a) {
}
}
$events=array();
$events = array();
// transform the event in a usable array
if (dbm::is_result($r)) {

View file

@ -10,8 +10,7 @@ require_once('include/Photo.php');
/**
* @param App $a
*/
/// @TODO & is missing or App ?
function fbrowser_content($a){
function fbrowser_content(App &$a){
if (!local_user())
killme();

View file

@ -8,7 +8,7 @@ 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(&$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'));

View file

@ -5,7 +5,7 @@ require_once('include/bbcode.php');
require_once('include/items.php');
function filer_content(&$a) {
function filer_content(App &$a) {
if (! local_user()) {
killme();

View file

@ -1,6 +1,6 @@
<?php
function filerm_content(&$a) {
function filerm_content(App &$a) {
if (! local_user()) {
killme();

View file

@ -5,7 +5,7 @@ require_once('include/follow.php');
require_once('include/Contact.php');
require_once('include/contact_selectors.php');
function follow_content(&$a) {
function follow_content(App &$a) {
if (! local_user()) {
notice( t('Permission denied.') . EOL);
@ -152,7 +152,7 @@ function follow_content(&$a) {
return $o;
}
function follow_post(&$a) {
function follow_post(App &$a) {
if (! local_user()) {
notice( t('Permission denied.') . EOL);

View file

@ -1,6 +1,6 @@
<?php
function friendica_init(&$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(&$a) {
function friendica_content(&$a) {
function friendica_content(App &$a) {
$o = '';
$o .= '<h3>Friendica</h3>';

View file

@ -1,7 +1,7 @@
<?php
function fsuggest_post(&$a) {
function fsuggest_post(App &$a) {
if (! local_user()) {
return;
@ -71,7 +71,7 @@ function fsuggest_post(&$a) {
function fsuggest_content(&$a) {
function fsuggest_content(App &$a) {
require_once('include/acl_selectors.php');

View file

@ -4,7 +4,7 @@ function validate_members(&$item) {
$item = intval($item);
}
function group_init(&$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(&$a) {
function group_post(&$a) {
function group_post(App &$a) {
if (! local_user()) {
notice( t('Permission denied.') . EOL);
@ -31,8 +31,7 @@ function group_post(&$a) {
if ($r) {
goaway(App::get_baseurl() . '/group/' . $r);
}
}
else {
} else {
notice( t('Could not create group.') . EOL );
}
goaway(App::get_baseurl() . '/group');
@ -70,7 +69,7 @@ function group_post(&$a) {
return;
}
function group_content(&$a) {
function group_content(App &$a) {
$change = false;
if (! local_user()) {
@ -92,7 +91,7 @@ function group_content(&$a) {
'$submit' => t('Save Group'),
);
if(($a->argc == 2) && ($a->argv[1] === 'new')) {
if (($a->argc == 2) && ($a->argv[1] === 'new')) {
return replace_macros($tpl, $context + array(
'$title' => t('Create a group of contacts/friends.'),

View file

@ -1,6 +1,6 @@
<?php
function hcard_init(&$a) {
function hcard_init(App &$a) {
$blocked = (((get_config('system','block_public')) && (! local_user()) && (! remote_user())) ? true : false);
@ -52,4 +52,3 @@ function hcard_init(&$a) {
}
}

View file

@ -18,7 +18,7 @@ if (!function_exists('load_doc_file')) {
}
function help_content(&$a) {
function help_content(App &$a) {
nav_set_selected('help');

View file

@ -1,7 +1,7 @@
<?php
if(! function_exists('home_init')) {
function home_init(&$a) {
function home_init(App &$a) {
$ret = array();
call_hooks('home_init',$ret);
@ -17,7 +17,7 @@ function home_init(&$a) {
}}
if(! function_exists('home_content')) {
function home_content(&$a) {
function home_content(App &$a) {
$o = '';

View file

@ -2,7 +2,7 @@
require_once('include/crypto.php');
function hostxrd_init(&$a) {
function hostxrd_init(App &$a) {
header('Access-Control-Allow-Origin: *');
header("Content-type: text/xml");
$pubkey = get_config('system','site_pubkey');

View file

@ -11,7 +11,7 @@
require_once("include/socgraph.php");
require_once("include/Contact.php");
function hovercard_init(&$a) {
function hovercard_init(App &$a) {
// Just for testing purposes
$_GET["mode"] = "minimal";
}

View file

@ -1,7 +1,7 @@
<?php
function ignored_init(&$a) {
function ignored_init(App &$a) {
$ignored = 0;

View file

@ -4,7 +4,7 @@ require_once "include/Photo.php";
$install_wizard_pass=1;
function install_init(&$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(&$a){
}
function install_post(&$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(&$a) {
function install_content(App &$a) {
global $install_wizard_pass, $db;
$o = '';
@ -565,7 +565,7 @@ function check_imagik(&$checks) {
}
}
function manual_config(&$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>";
@ -581,7 +581,6 @@ function load_database_rem($v, $i){
}
}
function load_database($db) {
require_once("include/dbstructure.php");

View file

@ -9,7 +9,7 @@
require_once('include/email.php');
function invite_post(&$a) {
function invite_post(App &$a) {
if (! local_user()) {
notice( t('Permission denied.') . EOL);
@ -97,7 +97,7 @@ function invite_post(&$a) {
}
function invite_content(&$a) {
function invite_content(App &$a) {
if (! local_user()) {
notice( t('Permission denied.') . EOL);
@ -120,7 +120,7 @@ function invite_content(&$a) {
if (strlen($dirloc)) {
if ($a->config['register_policy'] == REGISTER_CLOSED) {
$linktxt = sprintf( t('Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks.'), $dirloc . '/siteinfo');
} elseif($a->config['register_policy'] != REGISTER_CLOSED) {
} elseif ($a->config['register_policy'] != REGISTER_CLOSED) {
$linktxt = sprintf( t('To accept this invitation, please visit and register at %s or any other public Friendica website.'), App::get_baseurl())
. "\r\n" . "\r\n" . sprintf( t('Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join.'),$dirloc . '/siteinfo');
}

View file

@ -27,7 +27,7 @@ require_once('include/Scrape.php');
require_once('include/diaspora.php');
require_once('include/Contact.php');
function item_post(&$a) {
function item_post(App &$a) {
if((! local_user()) && (! remote_user()) && (! x($_REQUEST,'commenter')))
return;
@ -138,7 +138,7 @@ function item_post(&$a) {
// If the contact id doesn't fit with the contact, then set the contact to null
$thrparent = q("SELECT `author-link`, `network` FROM `item` WHERE `uri` = '%s' LIMIT 1", dbesc($thr_parent));
if (count($thrparent) AND ($thrparent[0]["network"] === NETWORK_OSTATUS)
if (dbm::is_result($thrparent) AND ($thrparent[0]["network"] === NETWORK_OSTATUS)
AND (normalise_link($parent_contact["url"]) != normalise_link($thrparent[0]["author-link"]))) {
$parent_contact = get_contact_details_by_url($thrparent[0]["author-link"]);
@ -218,8 +218,9 @@ function item_post(&$a) {
intval($profile_uid),
intval($post_id)
);
if(! count($i))
if (! dbm::is_result($i)) {
killme();
}
$orig_post = $i[0];
}
@ -605,16 +606,17 @@ function item_post(&$a) {
continue;
$success = handle_tag($a, $body, $inform, $str_tags, (local_user()) ? local_user() : $profile_uid , $tag, $network);
if($success['replaced'])
if ($success['replaced']) {
$tagged[] = $tag;
if(is_array($success['contact']) && intval($success['contact']['prv'])) {
}
if (is_array($success['contact']) && intval($success['contact']['prv'])) {
$private_forum = true;
$private_id = $success['contact']['id'];
}
}
}
if(($private_forum) && (! $parent) && (! $private)) {
if (($private_forum) && (! $parent) && (! $private)) {
// we tagged a private forum in a top level post and the message was public.
// Restrict it.
$private = 1;
@ -624,8 +626,8 @@ function item_post(&$a) {
$attachments = '';
$match = false;
if(preg_match_all('/(\[attachment\]([0-9]+)\[\/attachment\])/',$body,$match)) {
foreach($match[2] as $mtch) {
if (preg_match_all('/(\[attachment\]([0-9]+)\[\/attachment\])/',$body,$match)) {
foreach ($match[2] as $mtch) {
$r = q("SELECT `id`,`filename`,`filesize`,`filetype` FROM `attach` WHERE `uid` = %d AND `id` = %d LIMIT 1",
intval($profile_uid),
intval($mtch)
@ -1064,7 +1066,7 @@ function item_post_return($baseurl, $api_source, $return_path) {
function item_content(&$a) {
function item_content(App &$a) {
if ((! local_user()) && (! remote_user())) {
return;

View file

@ -5,7 +5,7 @@ require_once('include/bbcode.php');
require_once('include/items.php');
require_once('include/like.php');
function like_content(&$a) {
function like_content(App &$a) {
if(! local_user() && ! remote_user()) {
return false;
}

View file

@ -3,7 +3,7 @@
require_once('include/datetime.php');
function localtime_post(&$a) {
function localtime_post(App &$a) {
$t = $_REQUEST['time'];
if(! $t)
@ -16,7 +16,7 @@ function localtime_post(&$a) {
}
function localtime_content(&$a) {
function localtime_content(App &$a) {
$t = $_REQUEST['time'];
if(! $t)
$t = 'now';

View file

@ -1,7 +1,7 @@
<?php
function lockview_content(&$a) {
function lockview_content(App &$a) {
$type = (($a->argc > 1) ? $a->argv[1] : 0);
if (is_numeric($type)) {

View file

@ -1,6 +1,6 @@
<?php
function login_content(&$a) {
function login_content(App &$a) {
if(x($_SESSION,'theme'))
unset($_SESSION['theme']);
if(x($_SESSION,'mobile-theme'))

View file

@ -4,7 +4,7 @@ require_once('include/email.php');
require_once('include/enotify.php');
require_once('include/text.php');
function lostpass_post(&$a) {
function lostpass_post(App &$a) {
$loginame = notags(trim($_POST['login-name']));
if(! $loginame)
@ -77,7 +77,7 @@ function lostpass_post(&$a) {
}
function lostpass_content(&$a) {
function lostpass_content(App &$a) {
if(x($_GET,'verify')) {
@ -102,6 +102,8 @@ function lostpass_content(&$a) {
dbesc($new_password_encoded),
intval($uid)
);
/// @TODO Is dbm::is_result() okay here?
if ($r) {
$tpl = get_markup_template('pwdreset.tpl');
$o .= replace_macros($tpl,array(

View file

@ -1,6 +1,6 @@
<?php
function maintenance_content(&$a) {
function maintenance_content(App &$a) {
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
header('Retry-After: 600');

View file

@ -3,7 +3,7 @@
require_once("include/text.php");
function manage_post(&$a) {
function manage_post(App &$a) {
if (! local_user()) {
return;
@ -92,7 +92,7 @@ function manage_post(&$a) {
function manage_content(&$a) {
function manage_content(App &$a) {
if (! local_user()) {
notice( t('Permission denied.') . EOL);

View file

@ -13,7 +13,7 @@ require_once('mod/proxy.php');
* @param App &$a
* @return void|string
*/
function match_content(&$a) {
function match_content(App &$a) {
$o = '';
if (! local_user()) {

View file

@ -4,7 +4,7 @@ require_once('include/acl_selectors.php');
require_once('include/message.php');
require_once('include/Smilies.php');
function message_init(&$a) {
function message_init(App &$a) {
$tabs = '';
@ -40,7 +40,7 @@ function message_init(&$a) {
}
function message_post(&$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(&$a) {
function message_content(App &$a) {
$o = '';
nav_set_selected('messages');
@ -364,7 +364,7 @@ function message_content(&$a) {
$_SESSION['return_url'] = $a->query_string;
if($a->argc == 1) {
if ($a->argc == 1) {
// List messages

View file

@ -2,7 +2,7 @@
require_once('library/asn1.php');
function modexp_init(&$a) {
function modexp_init(App &$a) {
if($a->argc != 2)
killme();

View file

@ -5,7 +5,7 @@ require_once('include/bbcode.php');
require_once('include/items.php');
function mood_init(&$a) {
function mood_init(App &$a) {
if (! local_user()) {
return;
@ -109,7 +109,7 @@ function mood_init(&$a) {
function mood_content(&$a) {
function mood_content(App &$a) {
if (! local_user()) {
notice( t('Permission denied.') . EOL);

View file

@ -1,6 +1,6 @@
<?php
function msearch_post(&$a) {
function msearch_post(App &$a) {
$perpage = (($_POST['n']) ? $_POST['n'] : 80);
$page = (($_POST['p']) ? intval($_POST['p'] - 1) : 0);

View file

@ -2,7 +2,7 @@
require_once("include/nav.php");
function navigation_content(&$a) {
function navigation_content(App &$a) {
$nav_info = nav_info($a);

View file

@ -1,17 +1,18 @@
<?php
function network_init(&$a) {
function network_init(App &$a) {
if (! local_user()) {
notice( t('Permission denied.') . EOL);
return;
}
$is_a_date_query = false;
if(x($_GET['cid']) && intval($_GET['cid']) != 0)
if (x($_GET['cid']) && intval($_GET['cid']) != 0) {
$cid = $_GET['cid'];
}
if($a->argc > 1) {
for($x = 1; $x < $a->argc; $x ++) {
if(is_a_date_arg($a->argv[$x])) {
if ($a->argc > 1) {
for ($x = 1; $x < $a->argc; $x ++) {
if (is_a_date_arg($a->argv[$x])) {
$is_a_date_query = true;
break;
}
@ -24,9 +25,8 @@ function network_init(&$a) {
parse_str($query_string, $query_array);
array_shift($query_array);
// fetch last used network view and redirect if needed
if(! $is_a_date_query) {
if (! $is_a_date_query) {
$sel_tabs = network_query_get_sel_tab($a);
$sel_nets = network_query_get_sel_net();
$sel_groups = network_query_get_sel_group($a);
@ -41,10 +41,9 @@ function network_init(&$a) {
$net_baseurl = '/network';
$net_args = array();
if($remember_group) {
if ($remember_group) {
$net_baseurl .= '/' . $last_sel_groups; // Note that the group number must come before the "/new" tab selection
}
else if($sel_groups !== false) {
} elseif($sel_groups !== false) {
$net_baseurl .= '/' . $sel_groups;
}
@ -222,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($a) {
function network_query_get_sel_tab(App &$a) {
$no_active='';
$starred_active = '';
$new_active = '';
@ -293,7 +292,7 @@ function network_query_get_sel_net() {
return $network;
}
function network_query_get_sel_group($a) {
function network_query_get_sel_group(App &$a) {
$group = false;
if($a->argc >= 2 && is_numeric($a->argv[1])) {
@ -810,7 +809,7 @@ function network_content(&$a, $update = 0) {
* @param app $a The global App
* @return string Html of the networktab
*/
function network_tabs($a) {
function network_tabs(App &$a) {
// item filter tabs
/// @TODO fix this logic, reduce duplication
/// $a->page['content'] .= '<div class="tabs-wrapper">';

View file

@ -1,6 +1,6 @@
<?php
function newmember_content(&$a) {
function newmember_content(App &$a) {
$o = '<h1>' . t('Welcome to Friendica') . '</h1>';

View file

@ -7,7 +7,7 @@
require_once("include/plugin.php");
function nodeinfo_wellknown(&$a) {
function nodeinfo_wellknown(App &$a) {
if (!get_config("system", "nodeinfo")) {
http_status_exit(404);
killme();
@ -20,7 +20,7 @@ function nodeinfo_wellknown(&$a) {
exit;
}
function nodeinfo_init(&$a){
function nodeinfo_init(App &$a){
if (!get_config("system", "nodeinfo")) {
http_status_exit(404);
killme();

View file

@ -4,7 +4,7 @@ require_once('include/Contact.php');
require_once('include/socgraph.php');
require_once('include/contact_selectors.php');
function nogroup_init(&$a) {
function nogroup_init(App &$a) {
if (! local_user()) {
return;
@ -21,7 +21,7 @@ function nogroup_init(&$a) {
}
function nogroup_content(&$a) {
function nogroup_content(App &$a) {
if (! local_user()) {
notice( t('Permission denied.') . EOL);

View file

@ -1,6 +1,6 @@
<?php
function noscrape_init(&$a) {
function noscrape_init(App &$a) {
if($a->argc > 1)
$which = $a->argv[1];

View file

@ -1,6 +1,6 @@
<?php
function notes_init(&$a) {
function notes_init(App &$a) {
if (! local_user()) {
return;

View file

@ -1,7 +1,7 @@
<?php
/* identi.ca -> friendica items permanent-url compatibility */
function notice_init(&$a){
function notice_init(App &$a){
$id = $a->argv[1];
$r = q("SELECT user.nickname FROM user LEFT JOIN item ON item.uid=user.uid WHERE item.id=%d",
intval($id)

View file

@ -9,7 +9,7 @@ require_once("include/NotificationsManager.php");
require_once("include/contact_selectors.php");
require_once("include/network.php");
function notifications_post(&$a) {
function notifications_post(App &$a) {
if (! local_user()) {
goaway(z_root());
@ -65,7 +65,7 @@ function notifications_post(&$a) {
}
}
function notifications_content(&$a) {
function notifications_content(App &$a) {
if (! local_user()) {
notice( t('Permission denied.') . EOL);

View file

@ -1,8 +1,7 @@
<?php
require_once('include/NotificationsManager.php');
function notify_init(&$a) {
function notify_init(App &$a) {
if (! local_user()) {
return;
}
@ -40,7 +39,7 @@ function notify_init(&$a) {
}
function notify_content(&$a) {
function notify_content(App &$a) {
if (! local_user()) {
return login();
}

View file

@ -1,7 +1,7 @@
<?php
require_once("include/oembed.php");
function oembed_content(&$a){
function oembed_content(App &$a){
// logger('mod_oembed ' . $a->query_string, LOGGER_ALL);
if ($a->argv[1]=='b2h'){

View file

@ -1,7 +1,7 @@
<?php
function oexchange_init(&$a) {
function oexchange_init(App &$a) {
if(($a->argc > 1) && ($a->argv[1] === 'xrd')) {
$tpl = get_markup_template('oexchange_xrd.tpl');
@ -14,7 +14,7 @@ function oexchange_init(&$a) {
}
function oexchange_content(&$a) {
function oexchange_content(App &$a) {
if (! local_user()) {
$o = login(false);

View file

@ -4,7 +4,7 @@
require_once('library/openid.php');
function openid_content(&$a) {
function openid_content(App &$a) {
$noid = get_config('system','no_openid');
if($noid)

View file

@ -1,5 +1,5 @@
<?php
function opensearch_content(&$a) {
function opensearch_content(App &$a) {
$tpl = get_markup_template('opensearch.tpl');

View file

@ -3,7 +3,7 @@
require_once('include/Scrape.php');
require_once('include/follow.php');
function ostatus_subscribe_content(&$a) {
function ostatus_subscribe_content(App &$a) {
if (! local_user()) {
notice( t('Permission denied.') . EOL);

Some files were not shown because too many files have changed in this diff Show more