Coding Standards

Guess who got phpcs configured.
Updated phpcs.xml based on Developer_Intro document.
This commit is contained in:
Adam Magness 2017-11-08 17:02:50 -05:00
parent ca5d5acb7e
commit d7dc51ecc1
7 changed files with 1404 additions and 1008 deletions

View file

@ -1,16 +1,16 @@
<?php
/**
* System Configuration Class
*
* @file include/Core/Config.php
*
* @brief Contains the class with methods for system configuration
*/
namespace Friendica\Core;
use Friendica\Database\DBM;
use dba;
/**
* @file include/Core/Config.php
*
* @brief Contains the class with methods for system configuration
*/
/**
* @brief Arbitrary sytem configuration storage
* Note:
@ -87,7 +87,6 @@ class Config {
$a = get_app();
if (!$refresh) {
// Do we have the cached value? Then return it
if (isset(self::$cache[$family][$key])) {
if (self::$cache[$family][$key] === '!<unset>!') {
@ -108,7 +107,6 @@ class Config {
self::$in_db[$family][$key] = true;
return $val;
} elseif (isset($a->config[$family][$key])) {
// Assign the value (mostly) from the .htconfig.php to the cache
self::$cache[$family][$key] = $a->config[$family][$key];
self::$in_db[$family][$key] = false;

View file

@ -1,10 +1,10 @@
<?php
namespace Friendica\Core;
/**
* @file src/Core/NotificationsManager.php
* @brief Methods for read and write notifications from/to database
* or for formatting notifications
*/
namespace Friendica\Core;
use Friendica\Core\Pconfig;
use Friendica\Core\System;
@ -19,10 +19,15 @@ require_once 'include/Contact.php';
* @brief Methods for read and write notifications from/to database
* or for formatting notifications
*/
class NotificationsManager {
class NotificationsManager
{
private $a;
public function __construct() {
/**
* Constructor
*/
public function __construct()
{
$this->a = get_app();
}
@ -38,14 +43,15 @@ class NotificationsManager {
* - msg_html: message as html string
* - msg_plain: message as plain text string
*/
private function _set_extra($notes) {
private function _set_extra($notes)
{
$rets = array();
foreach($notes as $n) {
$local_time = datetime_convert('UTC',date_default_timezone_get(),$n['date']);
foreach ($notes as $n) {
$local_time = datetime_convert('UTC', date_default_timezone_get(), $n['date']);
$n['timestamp'] = strtotime($local_time);
$n['date_rel'] = relative_date($n['date']);
$n['msg_html'] = bbcode($n['msg'], false, false, false, false);
$n['msg_plain'] = explode("\n",trim(html2plain($n['msg_html'], 0)))[0];
$n['msg_plain'] = explode("\n", trim(html2plain($n['msg_html'], 0)))[0];
$rets[] = $n;
}
@ -56,16 +62,18 @@ class NotificationsManager {
/**
* @brief Get all notifications for local_user()
*
* @param array $filter optional Array "column name"=>value: filter query by columns values
* @param string $order optional Space separated list of column to sort by. prepend name with "+" to sort ASC, "-" to sort DESC. Default to "-date"
* @param string $limit optional Query limits
* @param array $filter optional Array "column name"=>value: filter query by columns values
* @param string $order optional Space separated list of column to sort by.
* Prepend name with "+" to sort ASC, "-" to sort DESC. Default to "-date"
* @param string $limit optional Query limits
*
* @return array of results or false on errors
*/
public function getAll($filter = array(), $order="-date", $limit="") {
public function getAll($filter = array(), $order = "-date", $limit = "")
{
$filter_str = array();
$filter_sql = "";
foreach($filter as $column => $value) {
foreach ($filter as $column => $value) {
$filter_str[] = sprintf("`%s` = '%s'", $column, dbesc($value));
}
if (count($filter_str)>0) {
@ -74,29 +82,31 @@ class NotificationsManager {
$aOrder = explode(" ", $order);
$asOrder = array();
foreach($aOrder as $o) {
foreach ($aOrder as $o) {
$dir = "asc";
if ($o[0]==="-") {
$dir = "desc";
$o = substr($o,1);
$o = substr($o, 1);
}
if ($o[0]==="+") {
$dir = "asc";
$o = substr($o,1);
$o = substr($o, 1);
}
$asOrder[] = "$o $dir";
}
$order_sql = implode(", ", $asOrder);
if($limit!="")
if ($limit != "") {
$limit = " LIMIT ".$limit;
$r = q("SELECT * FROM `notify` WHERE `uid` = %d $filter_sql ORDER BY $order_sql $limit",
}
$r = q(
"SELECT * FROM `notify` WHERE `uid` = %d $filter_sql ORDER BY $order_sql $limit",
intval(local_user())
);
if (DBM::is_result($r))
if (DBM::is_result($r)) {
return $this->_set_extra($r);
}
return false;
}
@ -104,11 +114,13 @@ class NotificationsManager {
/**
* @brief Get one note for local_user() by $id value
*
* @param int $id
* @param int $id identity
* @return array note values or null if not found
*/
public function getByID($id) {
$r = q("SELECT * FROM `notify` WHERE `id` = %d AND `uid` = %d LIMIT 1",
public function getByID($id)
{
$r = q(
"SELECT * FROM `notify` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($id),
intval(local_user())
);
@ -121,12 +133,14 @@ class NotificationsManager {
/**
* @brief set seen state of $note of local_user()
*
* @param array $note
* @param bool $seen optional true or false, default true
* @param array $note note array
* @param bool $seen optional true or false, default true
* @return bool true on success, false on errors
*/
public function setSeen($note, $seen = true) {
return q("UPDATE `notify` SET `seen` = %d WHERE ( `link` = '%s' OR ( `parent` != 0 AND `parent` = %d AND `otype` = '%s' )) AND `uid` = %d",
public function setSeen($note, $seen = true)
{
return q(
"UPDATE `notify` SET `seen` = %d WHERE ( `link` = '%s' OR ( `parent` != 0 AND `parent` = %d AND `otype` = '%s' )) AND `uid` = %d",
intval($seen),
dbesc($note['link']),
intval($note['parent']),
@ -141,8 +155,10 @@ class NotificationsManager {
* @param bool $seen optional true or false. default true
* @return bool true on success, false on error
*/
public function setAllSeen($seen = true) {
return q("UPDATE `notify` SET `seen` = %d WHERE `uid` = %d",
public function setAllSeen($seen = true)
{
return q(
"UPDATE `notify` SET `seen` = %d WHERE `uid` = %d",
intval($seen),
intval(local_user())
);
@ -153,7 +169,8 @@ class NotificationsManager {
*
* @return array with with notifications TabBar data
*/
public function getTabs() {
public function getTabs()
{
$tabs = array(
array(
'label' => t('System'),
@ -198,8 +215,8 @@ class NotificationsManager {
/**
* @brief Format the notification query in an usable array
*
* @param array $notifs The array from the db query
* @param string $ident The notifications identifier (e.g. network)
* @param array $notifs The array from the db query
* @param string $ident The notifications identifier (e.g. network)
* @return array
* string 'label' => The type of the notification
* string 'link' => URL to the source
@ -210,13 +227,12 @@ class NotificationsManager {
* string 'ago' => T relative date of the notification
* bool 'seen' => Is the notification marked as "seen"
*/
private function formatNotifs($notifs, $ident = "") {
private function formatNotifs($notifs, $ident = "")
{
$notif = array();
$arr = array();
if (DBM::is_result($notifs)) {
foreach ($notifs as $it) {
// Because we use different db tables for the notification query
// we have sometimes $it['unseen'] and sometimes $it['seen].
@ -257,11 +273,10 @@ class NotificationsManager {
: sprintf(t("%s commented on %s's post"), $it['author-name'], $it['pname']));
$default_item_when = datetime_convert('UTC', date_default_timezone_get(), $it['created'], 'r');
$default_item_ago = relative_date($it['created']);
}
// Transform the different types of notification in an usable array
switch ($it['verb']){
switch ($it['verb']) {
case ACTIVITY_LIKE:
$notif = array(
'label' => 'like',
@ -362,7 +377,6 @@ class NotificationsManager {
}
return $arr;
}
/**
@ -372,13 +386,16 @@ class NotificationsManager {
* which aren't marked as "seen"
* @return int Number of network notifications
*/
private function networkTotal($seen = 0) {
private function networkTotal($seen = 0)
{
$sql_seen = "";
if($seen === 0)
if ($seen === 0) {
$sql_seen = " AND `item`.`unseen` = 1 ";
}
$r = q("SELECT COUNT(*) AS `total`
$r = q(
"SELECT COUNT(*) AS `total`
FROM `item` INNER JOIN `item` AS `pitem` ON `pitem`.`id`=`item`.`parent`
WHERE `item`.`visible` = 1 AND `pitem`.`parent` != 0 AND
`item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 0
@ -386,8 +403,9 @@ class NotificationsManager {
intval(local_user())
);
if (DBM::is_result($r))
if (DBM::is_result($r)) {
return $r[0]['total'];
}
return 0;
}
@ -398,25 +416,28 @@ class NotificationsManager {
* @param int|string $seen
* If 0 only include notifications into the query
* which aren't marked as "seen"
* @param int $start Start the query at this point
* @param int $limit Maximum number of query results
* @param int $start Start the query at this point
* @param int $limit Maximum number of query results
*
* @return array with
* string 'ident' => Notification identifier
* int 'total' => Total number of available network notifications
* array 'notifications' => Network notifications
*/
public function networkNotifs($seen = 0, $start = 0, $limit = 80) {
public function networkNotifs($seen = 0, $start = 0, $limit = 80)
{
$ident = 'network';
$total = $this->networkTotal($seen);
$notifs = array();
$sql_seen = "";
if($seen === 0)
if ($seen === 0) {
$sql_seen = " AND `item`.`unseen` = 1 ";
}
$r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`, `item`.`unseen`,
$r = q(
"SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`, `item`.`unseen`,
`item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object` AS `object`,
`pitem`.`author-name` AS `pname`, `pitem`.`author-link` AS `plink`, `pitem`.`guid` AS `pguid`
FROM `item` INNER JOIN `item` AS `pitem` ON `pitem`.`id`=`item`.`parent`
@ -424,13 +445,14 @@ class NotificationsManager {
`item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 0
$sql_seen
ORDER BY `item`.`created` DESC LIMIT %d, %d ",
intval(local_user()),
intval($start),
intval($limit)
intval(local_user()),
intval($start),
intval($limit)
);
if (DBM::is_result($r))
if (DBM::is_result($r)) {
$notifs = $this->formatNotifs($r, $ident);
}
$arr = array (
'notifications' => $notifs,
@ -448,18 +470,22 @@ class NotificationsManager {
* which aren't marked as "seen"
* @return int Number of system notifications
*/
private function systemTotal($seen = 0) {
private function systemTotal($seen = 0)
{
$sql_seen = "";
if($seen === 0)
if ($seen === 0) {
$sql_seen = " AND `seen` = 0 ";
}
$r = q("SELECT COUNT(*) AS `total` FROM `notify` WHERE `uid` = %d $sql_seen",
$r = q(
"SELECT COUNT(*) AS `total` FROM `notify` WHERE `uid` = %d $sql_seen",
intval(local_user())
);
if (DBM::is_result($r))
if (DBM::is_result($r)) {
return $r[0]['total'];
}
return 0;
}
@ -470,32 +496,36 @@ class NotificationsManager {
* @param int|string $seen
* If 0 only include notifications into the query
* which aren't marked as "seen"
* @param int $start Start the query at this point
* @param int $limit Maximum number of query results
* @param int $start Start the query at this point
* @param int $limit Maximum number of query results
*
* @return array with
* string 'ident' => Notification identifier
* int 'total' => Total number of available system notifications
* array 'notifications' => System notifications
*/
public function systemNotifs($seen = 0, $start = 0, $limit = 80) {
public function systemNotifs($seen = 0, $start = 0, $limit = 80)
{
$ident = 'system';
$total = $this->systemTotal($seen);
$notifs = array();
$sql_seen = "";
if($seen === 0)
if ($seen === 0) {
$sql_seen = " AND `seen` = 0 ";
}
$r = q("SELECT `id`, `url`, `photo`, `msg`, `date`, `seen` FROM `notify`
$r = q(
"SELECT `id`, `url`, `photo`, `msg`, `date`, `seen` FROM `notify`
WHERE `uid` = %d $sql_seen ORDER BY `date` DESC LIMIT %d, %d ",
intval(local_user()),
intval($start),
intval($limit)
);
if (DBM::is_result($r))
if (DBM::is_result($r)) {
$notifs = $this->formatNotifs($r, $ident);
}
$arr = array (
'notifications' => $notifs,
@ -511,12 +541,14 @@ class NotificationsManager {
*
* @return string The additional sql query
*/
private function _personal_sql_extra() {
private function _personal_sql_extra()
{
$myurl = System::baseUrl(true) . '/profile/'. $this->a->user['nickname'];
$myurl = substr($myurl,strpos($myurl,'://')+3);
$myurl = str_replace(array('www.','.'),array('','\\.'),$myurl);
$diasp_url = str_replace('/profile/','/u/',$myurl);
$sql_extra = sprintf(" AND ( `item`.`author-link` regexp '%s' OR `item`.`tag` regexp '%s' OR `item`.`tag` regexp '%s' ) ",
$myurl = substr($myurl, strpos($myurl, '://') + 3);
$myurl = str_replace(array('www.','.'), array('','\\.'), $myurl);
$diasp_url = str_replace('/profile/', '/u/', $myurl);
$sql_extra = sprintf(
" AND ( `item`.`author-link` regexp '%s' OR `item`.`tag` regexp '%s' OR `item`.`tag` regexp '%s' ) ",
dbesc($myurl . '$'),
dbesc($myurl . '\\]'),
dbesc($diasp_url . '\\]')
@ -532,14 +564,17 @@ class NotificationsManager {
* which aren't marked as "seen"
* @return int Number of personal notifications
*/
private function personalTotal($seen = 0) {
private function personalTotal($seen = 0)
{
$sql_seen = "";
$sql_extra = $this->_personal_sql_extra();
if($seen === 0)
if ($seen === 0) {
$sql_seen = " AND `item`.`unseen` = 1 ";
}
$r = q("SELECT COUNT(*) AS `total`
$r = q(
"SELECT COUNT(*) AS `total`
FROM `item` INNER JOIN `item` AS `pitem` ON `pitem`.`id`=`item`.`parent`
WHERE `item`.`visible` = 1
$sql_extra
@ -548,8 +583,9 @@ class NotificationsManager {
intval(local_user())
);
if (DBM::is_result($r))
if (DBM::is_result($r)) {
return $r[0]['total'];
}
return 0;
}
@ -560,25 +596,28 @@ class NotificationsManager {
* @param int|string $seen
* If 0 only include notifications into the query
* which aren't marked as "seen"
* @param int $start Start the query at this point
* @param int $limit Maximum number of query results
* @param int $start Start the query at this point
* @param int $limit Maximum number of query results
*
* @return array with
* string 'ident' => Notification identifier
* int 'total' => Total number of available personal notifications
* array 'notifications' => Personal notifications
*/
public function personalNotifs($seen = 0, $start = 0, $limit = 80) {
public function personalNotifs($seen = 0, $start = 0, $limit = 80)
{
$ident = 'personal';
$total = $this->personalTotal($seen);
$sql_extra = $this->_personal_sql_extra();
$notifs = array();
$sql_seen = "";
if($seen === 0)
if ($seen === 0) {
$sql_seen = " AND `item`.`unseen` = 1 ";
}
$r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`, `item`.`unseen`,
$r = q(
"SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`, `item`.`unseen`,
`item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object` AS `object`,
`pitem`.`author-name` AS `pname`, `pitem`.`author-link` AS `plink`, `pitem`.`guid` AS `pguid`
FROM `item` INNER JOIN `item` AS `pitem` ON `pitem`.`id`=`item`.`parent`
@ -586,14 +625,15 @@ class NotificationsManager {
$sql_extra
$sql_seen
AND `item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 0
ORDER BY `item`.`created` DESC LIMIT %d, %d " ,
intval(local_user()),
intval($start),
intval($limit)
ORDER BY `item`.`created` DESC LIMIT %d, %d ",
intval(local_user()),
intval($start),
intval($limit)
);
if (DBM::is_result($r))
if (DBM::is_result($r)) {
$notifs = $this->formatNotifs($r, $ident);
}
$arr = array (
'notifications' => $notifs,
@ -611,21 +651,25 @@ class NotificationsManager {
* which aren't marked as "seen"
* @return int Number of home notifications
*/
private function homeTotal($seen = 0) {
private function homeTotal($seen = 0)
{
$sql_seen = "";
if($seen === 0)
if ($seen === 0) {
$sql_seen = " AND `item`.`unseen` = 1 ";
}
$r = q("SELECT COUNT(*) AS `total` FROM `item`
$r = q(
"SELECT COUNT(*) AS `total` FROM `item`
WHERE `item`.`visible` = 1 AND
`item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 1
$sql_seen",
intval(local_user())
);
if (DBM::is_result($r))
if (DBM::is_result($r)) {
return $r[0]['total'];
}
return 0;
}
@ -636,24 +680,27 @@ class NotificationsManager {
* @param int|string $seen
* If 0 only include notifications into the query
* which aren't marked as "seen"
* @param int $start Start the query at this point
* @param int $limit Maximum number of query results
* @param int $start Start the query at this point
* @param int $limit Maximum number of query results
*
* @return array with
* string 'ident' => Notification identifier
* int 'total' => Total number of available home notifications
* array 'notifications' => Home notifications
*/
public function homeNotifs($seen = 0, $start = 0, $limit = 80) {
public function homeNotifs($seen = 0, $start = 0, $limit = 80)
{
$ident = 'home';
$total = $this->homeTotal($seen);
$notifs = array();
$sql_seen = "";
if($seen === 0)
if ($seen === 0) {
$sql_seen = " AND `item`.`unseen` = 1 ";
}
$r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`, `item`.`unseen`,
$r = q(
"SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`, `item`.`unseen`,
`item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object` AS `object`,
`pitem`.`author-name` AS `pname`, `pitem`.`author-link` AS `plink`, `pitem`.`guid` AS `pguid`
FROM `item` INNER JOIN `item` AS `pitem` ON `pitem`.`id`=`item`.`parent`
@ -661,13 +708,14 @@ class NotificationsManager {
`item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 1
$sql_seen
ORDER BY `item`.`created` DESC LIMIT %d, %d ",
intval(local_user()),
intval($start),
intval($limit)
intval(local_user()),
intval($start),
intval($limit)
);
if (DBM::is_result($r))
if (DBM::is_result($r)) {
$notifs = $this->formatNotifs($r, $ident);
}
$arr = array (
'notifications' => $notifs,
@ -685,19 +733,23 @@ class NotificationsManager {
* which aren't marked as ignored
* @return int Number of introductions
*/
private function introTotal($all = false) {
private function introTotal($all = false)
{
$sql_extra = "";
if(!$all)
if (!$all) {
$sql_extra = " AND `ignore` = 0 ";
}
$r = q("SELECT COUNT(*) AS `total` FROM `intro`
$r = q(
"SELECT COUNT(*) AS `total` FROM `intro`
WHERE `intro`.`uid` = %d $sql_extra AND `intro`.`blocked` = 0 ",
intval($_SESSION['uid'])
intval($_SESSION['uid'])
);
if (DBM::is_result($r))
if (DBM::is_result($r)) {
return $r[0]['total'];
}
return 0;
}
@ -722,11 +774,13 @@ class NotificationsManager {
$notifs = array();
$sql_extra = "";
if(!$all)
if (!$all) {
$sql_extra = " AND `ignore` = 0 ";
}
/// @todo Fetch contact details by "get_contact_details_by_url" instead of queries to contact, fcontact and gcontact
$r = q("SELECT `intro`.`id` AS `intro_id`, `intro`.*, `contact`.*,
$r = q(
"SELECT `intro`.`id` AS `intro_id`, `intro`.*, `contact`.*,
`fcontact`.`name` AS `fname`, `fcontact`.`url` AS `furl`,
`fcontact`.`photo` AS `fphoto`, `fcontact`.`request` AS `frequest`,
`gcontact`.`location` AS `glocation`, `gcontact`.`about` AS `gabout`,
@ -738,13 +792,14 @@ class NotificationsManager {
LEFT JOIN `fcontact` ON `intro`.`fid` = `fcontact`.`id`
WHERE `intro`.`uid` = %d $sql_extra AND `intro`.`blocked` = 0
LIMIT %d, %d",
intval($_SESSION['uid']),
intval($start),
intval($limit)
intval($_SESSION['uid']),
intval($start),
intval($limit)
);
if (DBM::is_result($r))
if (DBM::is_result($r)) {
$notifs = $this->formatIntros($r);
}
$arr = array (
'ident' => $ident,
@ -761,16 +816,16 @@ class NotificationsManager {
* @param array $intros The array from the db query
* @return array with the introductions
*/
private function formatIntros($intros) {
private function formatIntros($intros)
{
$knowyou = '';
foreach($intros as $it) {
foreach ($intros as $it) {
// There are two kind of introduction. Contacts suggested by other contacts and normal connection requests.
// We have to distinguish between these two because they use different data.
// Contact suggestions
if($it['fid']) {
if ($it['fid']) {
$return_addr = bin2hex($this->a->user['nickname'] . '@' . $this->a->get_hostname() . (($this->a->path) ? '/' . $this->a->path : ''));
$intro = array(
@ -779,25 +834,23 @@ class NotificationsManager {
'intro_id' => $it['intro_id'],
'madeby' => $it['name'],
'contact_id' => $it['contact-id'],
'photo' => ((x($it,'fphoto')) ? proxy_url($it['fphoto'], false, PROXY_SIZE_SMALL) : "images/person-175.jpg"),
'photo' => ((x($it, 'fphoto')) ? proxy_url($it['fphoto'], false, PROXY_SIZE_SMALL) : "images/person-175.jpg"),
'name' => $it['fname'],
'url' => zrl($it['furl']),
'hidden' => $it['hidden'] == 1,
'post_newfriend' => (intval(PConfig::get(local_user(),'system','post_newfriend')) ? '1' : 0),
'post_newfriend' => (intval(PConfig::get(local_user(), 'system', 'post_newfriend')) ? '1' : 0),
'knowyou' => $knowyou,
'note' => $it['note'],
'request' => $it['frequest'] . '?addr=' . $return_addr,
);
// Normal connection requests
// Normal connection requests
} else {
$it = $this->getMissingIntroData($it);
// Don't show these data until you are connected. Diaspora is doing the same.
if($it['gnetwork'] === NETWORK_DIASPORA) {
if ($it['gnetwork'] === NETWORK_DIASPORA) {
$it['glocation'] = "";
$it['gabout'] = "";
$it['ggender'] = "";
@ -809,14 +862,14 @@ class NotificationsManager {
'uid' => $_SESSION['uid'],
'intro_id' => $it['intro_id'],
'contact_id' => $it['contact-id'],
'photo' => ((x($it,'photo')) ? proxy_url($it['photo'], false, PROXY_SIZE_SMALL) : "images/person-175.jpg"),
'photo' => ((x($it, 'photo')) ? proxy_url($it['photo'], false, PROXY_SIZE_SMALL) : "images/person-175.jpg"),
'name' => $it['name'],
'location' => bbcode($it['glocation'], false, false),
'about' => bbcode($it['gabout'], false, false),
'keywords' => $it['gkeywords'],
'gender' => $it['ggender'],
'hidden' => $it['hidden'] == 1,
'post_newfriend' => (intval(PConfig::get(local_user(),'system','post_newfriend')) ? '1' : 0),
'post_newfriend' => (intval(PConfig::get(local_user(), 'system', 'post_newfriend')) ? '1' : 0),
'url' => $it['url'],
'zrl' => zrl($it['url']),
'addr' => $it['gaddr'],
@ -840,7 +893,8 @@ class NotificationsManager {
*
* @return array The array with the intro data
*/
private function getMissingIntroData($arr) {
private function getMissingIntroData($arr)
{
// If the network and the addr isn't available from the gcontact
// table entry, take the one of the contact table entry
if ($arr['gnetwork'] == "") {

View file

@ -1,13 +1,18 @@
<?php
/**
* @file src/Database/DBM.php
*/
namespace Friendica\Database;
use dba;
/**
* @brief This class contain functions for the database management
*
* This class contains functions that doesn't need to know if pdo, mysqli or whatever is used.
*/
class DBM {
class DBM
{
/**
* @brief Return a list of database processes
*
@ -15,7 +20,8 @@ class DBM {
* 'list' => List of processes, separated in their different states
* 'amount' => Number of concurrent database processes
*/
public static function processlist() {
public static function processlist()
{
$r = q("SHOW PROCESSLIST");
$s = array();
@ -33,8 +39,9 @@ class DBM {
$statelist = "";
foreach ($states AS $state => $usage) {
if ($statelist != "")
if ($statelist != "") {
$statelist .= ", ";
}
$statelist .= $state.": ".$usage;
}
return(array("list" => $statelist, "amount" => $processes));
@ -43,10 +50,12 @@ class DBM {
/**
* Checks if $array is a filled array with at least one entry.
*
* @param $array mixed A filled array with at least one entry
* @return Whether $array is a filled array or an object with rows
* @param mixed $array A filled array with at least one entry
*
* @return boolean Whether $array is a filled array or an object with rows
*/
public static function is_result($array) {
public static function is_result($array)
{
// It could be a return value from an update statement
if (is_bool($array)) {
return $array;
@ -62,12 +71,12 @@ class DBM {
/**
* @brief Callback function for "esc_array"
*
* @param mixed $value Array value
* @param string $key Array key
* @param mixed $value Array value
* @param string $key Array key
* @param boolean $add_quotation add quotation marks for string values
*/
private static function esc_array_callback(&$value, $key, $add_quotation) {
private static function esc_array_callback(&$value, $key, $add_quotation)
{
if (!$add_quotation) {
if (is_bool($value)) {
$value = ($value ? '1' : '0');
@ -89,10 +98,11 @@ class DBM {
/**
* @brief Escapes a whole array
*
* @param mixed $arr Array with values to be escaped
* @param mixed $arr Array with values to be escaped
* @param boolean $add_quotation add quotation marks for string values
*/
public static function esc_array(&$arr, $add_quotation = false) {
public static function esc_array(&$arr, $add_quotation = false)
{
array_walk($arr, 'self::esc_array_callback', $add_quotation);
}
@ -100,9 +110,11 @@ class DBM {
* Checks Converts any date string into a SQL compatible date string
*
* @param string $date a date string in any format
*
* @return string SQL style date string
*/
public static function date($date = 'now') {
public static function date($date = 'now')
{
$timestamp = strtotime($date);
// Don't allow lower date strings as '0001-01-01 00:00:00'

View file

@ -1,10 +1,8 @@
<?php
/**
* @file include/ParseUrl.php
* @brief Get informations about a given URL
*/
namespace Friendica;
use Friendica\Core\Config;
@ -15,24 +13,23 @@ use dba;
use DomXPath;
use DOMDocument;
require_once("include/network.php");
require_once("include/Photo.php");
require_once("include/oembed.php");
require_once("include/xml.php");
require_once "include/network.php";
require_once "include/Photo.php";
require_once "include/oembed.php";
/**
* @brief Class with methods for extracting certain content from an url
*/
class ParseUrl {
class ParseUrl
{
/**
* @brief Search for chached embeddable data of an url otherwise fetch it
*
* @param type $url The url of the page which should be scraped
* @param type $url The url of the page which should be scraped
* @param type $no_guessing If true the parse doens't search for
* preview pictures
* @param type $do_oembed The false option is used by the function fetch_oembed()
* to avoid endless loops
* preview pictures
* @param type $do_oembed The false option is used by the function fetch_oembed()
* to avoid endless loops
*
* @return array which contains needed data for embedding
* string 'url' => The url of the parsed page
@ -47,14 +44,18 @@ class ParseUrl {
* @see ParseUrl::getSiteinfo() for more information about scraping
* embeddable content
*/
public static function getSiteinfoCached($url, $no_guessing = false, $do_oembed = true) {
public static function getSiteinfoCached($url, $no_guessing = false, $do_oembed = true)
{
if ($url == "") {
return false;
}
$r = q("SELECT * FROM `parsed_url` WHERE `url` = '%s' AND `guessing` = %d AND `oembed` = %d",
dbesc(normalise_link($url)), intval(!$no_guessing), intval($do_oembed));
$r = q(
"SELECT * FROM `parsed_url` WHERE `url` = '%s' AND `guessing` = %d AND `oembed` = %d",
dbesc(normalise_link($url)),
intval(!$no_guessing),
intval($do_oembed)
);
if ($r) {
$data = $r[0]["content"];
@ -67,9 +68,14 @@ class ParseUrl {
$data = self::getSiteinfo($url, $no_guessing, $do_oembed);
dba::insert('parsed_url', array('url' => normalise_link($url), 'guessing' => !$no_guessing,
dba::insert(
'parsed_url',
array(
'url' => normalise_link($url), 'guessing' => !$no_guessing,
'oembed' => $do_oembed, 'content' => serialize($data),
'created' => datetime_convert()), true);
'created' => datetime_convert()),
true
);
return $data;
}
@ -83,12 +89,12 @@ class ParseUrl {
* like \<title\>Awesome Title\</title\> or
* \<meta name="description" content="An awesome description"\>
*
* @param type $url The url of the page which should be scraped
* @param type $url The url of the page which should be scraped
* @param type $no_guessing If true the parse doens't search for
* preview pictures
* @param type $do_oembed The false option is used by the function fetch_oembed()
* to avoid endless loops
* @param type $count Internal counter to avoid endless loops
* preview pictures
* @param type $do_oembed The false option is used by the function fetch_oembed()
* to avoid endless loops
* @param type $count Internal counter to avoid endless loops
*
* @return array which contains needed data for embedding
* string 'url' => The url of the parsed page
@ -113,8 +119,8 @@ class ParseUrl {
* </body>
* @endverbatim
*/
public static function getSiteinfo($url, $no_guessing = false, $do_oembed = true, $count = 1) {
public static function getSiteinfo($url, $no_guessing = false, $do_oembed = true, $count = 1)
{
$a = get_app();
$siteinfo = array();
@ -158,7 +164,6 @@ class ParseUrl {
$body = $data["body"];
if ($do_oembed) {
$oembed_data = oembed_fetch_url($url);
if (!in_array($oembed_data->type, array("error", "rich", ""))) {
@ -364,8 +369,7 @@ class ParseUrl {
"width" => $photodata[0],
"height" => $photodata[1]);
}
}
}
} elseif ($siteinfo["image"] != "") {
$src = self::completeUrl($siteinfo["image"], $url);
@ -433,7 +437,8 @@ class ParseUrl {
* @param string $string Tags
* @return array with formatted Hashtags
*/
public static function convertTagsToArray($string) {
public static function convertTagsToArray($string)
{
$arr_tags = str_getcsv($string);
if (count($arr_tags)) {
// add the # sign to every tag
@ -449,9 +454,10 @@ class ParseUrl {
* This method is used as callback function
*
* @param string $tag The pure tag name
* @param int $k Counter for internal use
* @param int $k Counter for internal use
*/
private static function arrAddHashes(&$tag, $k) {
private static function arrAddHashes(&$tag, $k)
{
$tag = "#" . $tag;
}
@ -462,14 +468,15 @@ class ParseUrl {
* can miss the scheme so we need to add the correct
* scheme
*
* @param string $url The url which possibly does have
* a missing scheme (a link to an image)
* @param string $url The url which possibly does have
* a missing scheme (a link to an image)
* @param string $scheme The url with a correct scheme
* (e.g. the url from the webpage which does contain the image)
* (e.g. the url from the webpage which does contain the image)
*
* @return string The url with a scheme
*/
private static function completeUrl($url, $scheme) {
private static function completeUrl($url, $scheme)
{
$urlarr = parse_url($url);
// If the url does allready have an scheme
@ -486,7 +493,7 @@ class ParseUrl {
$complete .= ":".$schemearr["port"];
}
if (strpos($urlarr["path"],"/") !== 0) {
if (strpos($urlarr["path"], "/") !== 0) {
$complete .= "/";
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -4,5 +4,22 @@
<!-- we keep the old php4-style variable names for now -->
<exclude name="PEAR.NamingConventions.ValidFunctionName.PublicUnderscore"/>
<exclude name="PEAR.NamingConventions.ValidVariableName.PublicUnderscore"/>
<exclude name="PEAR.NamingConventions.ValidVariableName.PrivateNoUnderscore"/>
<exclude name="PEAR.NamingConventions.ValidFunctionName.PrivateNoUnderscore"/>
<exclude name="PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps"/>
<exclude name="PSR1.Methods.CamelCapsMethodName.NotCamelCaps"/>
</rule>
<description>PSR2 with tabs instead of spaces.</description>
<arg name="tab-width" value="4"/>
<rule ref="PSR2">
<exclude name="Generic.WhiteSpace.DisallowTabIndent"/>
<exclude name="Generic.Commenting.DocComment.MissingShort"/>
</rule>
<rule ref="Generic.WhiteSpace.DisallowSpaceIndent"/>
<rule ref="Generic.WhiteSpace.ScopeIndent">
<properties>
<property name="indent" value="4"/>
<property name="tabIndent" value="true"/>
</properties>
</rule>
</ruleset>