Cleaned up include/items.php (#5523)

* Cleaned up include/items.php
- added type-hint for array where suitable
- moved opening curly brace to new line after function
- used BaseObject::getApp() instead of get_app()
- used empty() instead of is_array(), maybe avoids E_NOTICE

* Changed 'AS' to 'as', keywords in PHP are all lower-case.
This commit is contained in:
Roland Häder 2018-07-31 03:02:34 +02:00 committed by Hypolite Petovan
parent 55c10a3fc9
commit 3da1b9f319
1 changed files with 41 additions and 31 deletions

View File

@ -3,6 +3,7 @@
* @file include/items.php * @file include/items.php
*/ */
use Friendica\BaseObject;
use Friendica\Content\Feature; use Friendica\Content\Feature;
use Friendica\Core\Addon; use Friendica\Core\Addon;
use Friendica\Core\Config; use Friendica\Core\Config;
@ -23,7 +24,8 @@ require_once 'include/text.php';
require_once 'mod/share.php'; require_once 'mod/share.php';
require_once 'include/enotify.php'; require_once 'include/enotify.php';
function add_page_info_data($data, $no_photos = false) { function add_page_info_data(array $data, $no_photos = false)
{
Addon::callHooks('page_info_data', $data); Addon::callHooks('page_info_data', $data);
// It maybe is a rich content, but if it does have everything that a link has, // It maybe is a rich content, but if it does have everything that a link has,
@ -82,7 +84,7 @@ function add_page_info_data($data, $no_photos = false) {
$hashtags = ""; $hashtags = "";
if (isset($data["keywords"]) && count($data["keywords"])) { if (isset($data["keywords"]) && count($data["keywords"])) {
$hashtags = "\n"; $hashtags = "\n";
foreach ($data["keywords"] AS $keyword) { foreach ($data["keywords"] as $keyword) {
/// @TODO make a positive list of allowed characters /// @TODO make a positive list of allowed characters
$hashtag = str_replace([" ", "+", "/", ".", "#", "'", "", "`", "(", ")", "", ""], $hashtag = str_replace([" ", "+", "/", ".", "#", "'", "", "`", "(", ")", "", ""],
["", "", "", "", "", "", "", "", "", "", "", ""], $keyword); ["", "", "", "", "", "", "", "", "", "", "", ""], $keyword);
@ -93,8 +95,8 @@ function add_page_info_data($data, $no_photos = false) {
return "\n".$text.$hashtags; return "\n".$text.$hashtags;
} }
function query_page_info($url, $photo = "", $keywords = false, $keyword_blacklist = "") { function query_page_info($url, $photo = "", $keywords = false, $keyword_blacklist = "")
{
$data = ParseUrl::getSiteinfoCached($url, true); $data = ParseUrl::getSiteinfoCached($url, true);
if ($photo != "") { if ($photo != "") {
@ -109,8 +111,10 @@ function query_page_info($url, $photo = "", $keywords = false, $keyword_blacklis
if (($keyword_blacklist != "") && isset($data["keywords"])) { if (($keyword_blacklist != "") && isset($data["keywords"])) {
$list = explode(", ", $keyword_blacklist); $list = explode(", ", $keyword_blacklist);
foreach ($list AS $keyword) {
foreach ($list as $keyword) {
$keyword = trim($keyword); $keyword = trim($keyword);
$index = array_search($keyword, $data["keywords"]); $index = array_search($keyword, $data["keywords"]);
if ($index !== false) { if ($index !== false) {
unset($data["keywords"][$index]); unset($data["keywords"][$index]);
@ -121,12 +125,13 @@ function query_page_info($url, $photo = "", $keywords = false, $keyword_blacklis
return $data; return $data;
} }
function add_page_keywords($url, $photo = "", $keywords = false, $keyword_blacklist = "") { function add_page_keywords($url, $photo = "", $keywords = false, $keyword_blacklist = "")
{
$data = query_page_info($url, $photo, $keywords, $keyword_blacklist); $data = query_page_info($url, $photo, $keywords, $keyword_blacklist);
$tags = ""; $tags = "";
if (isset($data["keywords"]) && count($data["keywords"])) { if (isset($data["keywords"]) && count($data["keywords"])) {
foreach ($data["keywords"] AS $keyword) { foreach ($data["keywords"] as $keyword) {
$hashtag = str_replace([" ", "+", "/", ".", "#", "'"], $hashtag = str_replace([" ", "+", "/", ".", "#", "'"],
["", "", "", "", "", ""], $keyword); ["", "", "", "", "", ""], $keyword);
@ -141,7 +146,8 @@ function add_page_keywords($url, $photo = "", $keywords = false, $keyword_blackl
return $tags; return $tags;
} }
function add_page_info($url, $no_photos = false, $photo = "", $keywords = false, $keyword_blacklist = "") { function add_page_info($url, $no_photos = false, $photo = "", $keywords = false, $keyword_blacklist = "")
{
$data = query_page_info($url, $photo, $keywords, $keyword_blacklist); $data = query_page_info($url, $photo, $keywords, $keyword_blacklist);
$text = add_page_info_data($data, $no_photos); $text = add_page_info_data($data, $no_photos);
@ -149,8 +155,8 @@ function add_page_info($url, $no_photos = false, $photo = "", $keywords = false,
return $text; return $text;
} }
function add_page_info_to_body($body, $texturl = false, $no_photos = false) { function add_page_info_to_body($body, $texturl = false, $no_photos = false)
{
logger('add_page_info_to_body: fetch page info for body ' . $body, LOGGER_DEBUG); logger('add_page_info_to_body: fetch page info for body ' . $body, LOGGER_DEBUG);
$URLSearchString = "^\[\]"; $URLSearchString = "^\[\]";
@ -227,10 +233,9 @@ function add_page_info_to_body($body, $texturl = false, $no_photos = false) {
* model where comments can have sub-threads. That would require some massive sorting * model where comments can have sub-threads. That would require some massive sorting
* to get all the feed items into a mostly linear ordering, and might still require * to get all the feed items into a mostly linear ordering, and might still require
* recursion. * recursion.
*
* @TODO find proper type-hints
*/ */
function consume_feed($xml, $importer, $contact, &$hub, $datedir = 0, $pass = 0) { function consume_feed($xml, array $importer, array $contact, &$hub, $datedir = 0, $pass = 0)
{
if ($contact['network'] === NETWORK_OSTATUS) { if ($contact['network'] === NETWORK_OSTATUS) {
if ($pass < 2) { if ($pass < 2) {
// Test - remove before flight // Test - remove before flight
@ -239,6 +244,7 @@ function consume_feed($xml, $importer, $contact, &$hub, $datedir = 0, $pass = 0)
logger("Consume OStatus messages ", LOGGER_DEBUG); logger("Consume OStatus messages ", LOGGER_DEBUG);
OStatus::import($xml, $importer, $contact, $hub); OStatus::import($xml, $importer, $contact, $hub);
} }
return; return;
} }
@ -247,6 +253,7 @@ function consume_feed($xml, $importer, $contact, &$hub, $datedir = 0, $pass = 0)
logger("Consume feeds", LOGGER_DEBUG); logger("Consume feeds", LOGGER_DEBUG);
Feed::import($xml, $importer, $contact, $hub); Feed::import($xml, $importer, $contact, $hub);
} }
return; return;
} }
@ -265,6 +272,7 @@ function consume_feed($xml, $importer, $contact, &$hub, $datedir = 0, $pass = 0)
WHERE `contact`.`id` = %d AND `user`.`uid` = %d", WHERE `contact`.`id` = %d AND `user`.`uid` = %d",
DBA::escape($contact["id"]), DBA::escape($importer["uid"]) DBA::escape($contact["id"]), DBA::escape($importer["uid"])
); );
if (DBA::isResult($r)) { if (DBA::isResult($r)) {
logger("Now import the DFRN feed"); logger("Now import the DFRN feed");
DFRN::import($xml, $r[0], true); DFRN::import($xml, $r[0], true);
@ -273,12 +281,12 @@ function consume_feed($xml, $importer, $contact, &$hub, $datedir = 0, $pass = 0)
} }
} }
function subscribe_to_hub($url, $importer, $contact, $hubmode = 'subscribe') { function subscribe_to_hub($url, array $importer, array $contact, $hubmode = 'subscribe')
{
$a = get_app(); $a = BaseObject::getApp();
$r = null; $r = null;
if (is_array($importer)) { if (!empty($importer)) {
$r = q("SELECT `nickname` FROM `user` WHERE `uid` = %d LIMIT 1", $r = q("SELECT `nickname` FROM `user` WHERE `uid` = %d LIMIT 1",
intval($importer['uid']) intval($importer['uid'])
); );
@ -314,26 +322,28 @@ function subscribe_to_hub($url, $importer, $contact, $hubmode = 'subscribe') {
} }
/// @TODO type-hint is array function drop_items(array $items)
function drop_items($items) { {
$uid = 0; $uid = 0;
if (!local_user() && !remote_user()) { if (!local_user() && !remote_user()) {
return; return;
} }
if (count($items)) { if (!empty($items)) {
foreach ($items as $item) { foreach ($items as $item) {
$owner = Item::deleteForUser(['id' => $item], local_user()); $owner = Item::deleteForUser(['id' => $item], local_user());
if ($owner && !$uid)
if ($owner && !$uid) {
$uid = $owner; $uid = $owner;
}
} }
} }
} }
function drop_item($id) { function drop_item($id)
{
$a = get_app(); $a = BaseObject::getApp();
// locate item to be deleted // locate item to be deleted
@ -353,7 +363,7 @@ function drop_item($id) {
// check if logged in user is either the author or owner of this item // check if logged in user is either the author or owner of this item
if (is_array($_SESSION['remote'])) { if (!empty($_SESSION['remote'])) {
foreach ($_SESSION['remote'] as $visitor) { foreach ($_SESSION['remote'] as $visitor) {
if ($visitor['uid'] == $item['uid'] && $visitor['cid'] == $item['contact-id']) { if ($visitor['uid'] == $item['uid'] && $visitor['cid'] == $item['contact-id']) {
$contact_id = $visitor['cid']; $contact_id = $visitor['cid'];
@ -369,6 +379,7 @@ function drop_item($id) {
// so add any arguments as hidden inputs // so add any arguments as hidden inputs
$query = explode_querystring($a->query_string); $query = explode_querystring($a->query_string);
$inputs = []; $inputs = [];
foreach ($query['args'] as $arg) { foreach ($query['args'] as $arg) {
if (strpos($arg, 'confirm=') === false) { if (strpos($arg, 'confirm=') === false) {
$arg_parts = explode('=', $arg); $arg_parts = explode('=', $arg);
@ -404,7 +415,8 @@ function drop_item($id) {
} }
/* arrange the list in years */ /* arrange the list in years */
function list_post_dates($uid, $wall) { function list_post_dates($uid, $wall)
{
$dnow = DateTimeFormat::localNow('Y-m-d'); $dnow = DateTimeFormat::localNow('Y-m-d');
$dthen = Item::firstPostDate($uid, $wall); $dthen = Item::firstPostDate($uid, $wall);
@ -440,7 +452,8 @@ function list_post_dates($uid, $wall) {
return $ret; return $ret;
} }
function posted_date_widget($url, $uid, $wall) { function posted_date_widget($url, $uid, $wall)
{
$o = ''; $o = '';
if (!Feature::isEnabled($uid, 'archives')) { if (!Feature::isEnabled($uid, 'archives')) {
@ -454,10 +467,7 @@ function posted_date_widget($url, $uid, $wall) {
return $o; return $o;
*/ */
$visible_years = PConfig::get($uid,'system','archive_visible_years'); $visible_years = PConfig::get($uid, 'system', 'archive_visible_years', 5);
if (!$visible_years) {
$visible_years = 5;
}
$ret = list_post_dates($uid, $wall); $ret = list_post_dates($uid, $wall);