Roland Häder [Tue, 31 Jul 2018 02:24:32 +0000 (04:24 +0200)]
Fixed fatal error: (#5532)
* Fixed fatal error:
````
PHP Fatal error: Uncaught TypeError: Argument 1 passed to add_page_info_data()
must be of the type array, boolean given, called in
/var/www/../include/items.php on line 153 and defined in
/var/www/../include/items.php:27
````
Fix for type-hint array when query_page_info() returned a non-array, this may
happen when the instance/node/pod owner decided to shutdown server and replace
all URLs with a replacement message.
Roland Häder [Tue, 31 Jul 2018 02:06:22 +0000 (04:06 +0200)]
[WIP] Rewrite to Proxy class: (#5507)
* Rewrite to Proxy class:
- introduced new Friendica\Network\Proxy class for in exchange of proxy_*()
functions
- moved also all PROXY_* constants there as Proxy::*
- removed now no longer needed mod/proxy.php loading as composer's auto-load
will do this for us
- renamed those proxy_*() functions to better names:
+ proxy_init() -> Proxy::init() (public)
+ proxy_url() -> Proxy::proxifyUrl() (public)
+ proxy_parse_html() -> Proxy::proxifyHtml() (public)
+ proxy_is_local_image() -> Proxy::isLocalImage() (private)
+ proxy_parse_query() -> Proxy::parseQuery() (private)
+ proxy_img_cb() -> Proxy::replaceUrl() (private)
* Ops, need to set $a here ...
* CR request:
- moved Proxy class to Friendica\Module
- extended BaseModule
* Ops, no need for own instance of $a when self::getApp() is around.
* Proxy-rewrite:
- proxy_url() and proxy_parse_html() are both non-module functions (now
methods)
- so they must be splitted into a seperate class
- also the SIZE_* and DEFAULT_TIME constants are both not relevant to module
* No instances from utility classes
* Fixed error:
- proxify*() is now located in `Friendica\Util\ProxyUtils`
* Moved back to original place, ops? How did they move here? Well, it was not
intended by me.
* Removed duplicate (left-over from split) constants and static array. Thank to
MrPetovan finding it.
* Renamed ProxyUtils -> Proxy and aliased it back to ProxyUtils.
Roland Häder [Tue, 31 Jul 2018 01:24:26 +0000 (03:24 +0200)]
Fixed E_NOTICE in listing worker queue and new utilities class added (#5521)
* Fixes for E_NOTICE in workqueue:
- introduced class `Friendica\Util\Arrays` which will hold static methods for
handling arrays that cannot be done with PHP's functions, like implode() on
multi-dimensional arrays
- rewrote old-school for() loop to foreach()
* Added intial unit test with some tests on empty delimiters and/or sinle and
multi-dim array.
* Added test for for 3-dimensional arrays, thanks to nupplaphil's feedback.
Roland Häder [Tue, 31 Jul 2018 01:02:34 +0000 (03:02 +0200)]
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.
Roland Häder [Sun, 29 Jul 2018 15:34:20 +0000 (17:34 +0200)]
Fixed fatal error about when returned 'body' field is empty:
````
PHP Fatal error: Uncaught TypeError: Argument 1 passed to Friendica\Protocol\PortableContact::discoverServer() must be of the type array, null given, called in /var/www/../src/Protocol/PortableContact.php on line 1664 and defined in /var/www/../src/Protocol/PortableContact.php:1765
Stack trace:
````
Roland Häder [Sat, 28 Jul 2018 05:35:27 +0000 (07:35 +0200)]
Possible fix for #5470 - json_decode() (#5511)
* Possible fix for #5470:
- $data is not an object like stdClass but an array
- newer PHP versions doesn't allow cross-access like following:
$object['foo'] = 123;
$array->foo = 123;
- added type-hints for private methods for above cases
- used `if (empty($foo)) instead of just `if ($foo)` preventing some nasty
E_NOTICE
- added some empty lines for better readability
* Rewrite:
- mixture of object/array was here, causing under newer PHP versions some E_NOTICE
- this has been now finally fixed by converting any `object` type to an
associative `array`
- also changed `is_object()` to `is_array()`
Roland Häder [Thu, 26 Jul 2018 22:27:12 +0000 (00:27 +0200)]
Possible fix for #5470: (#5506)
- $data is not an object like stdClass but an array
- newer PHP versions doesn't allow cross-access like following:
$object['foo'] = 123;
$array->foo = 123;
- added type-hints for private methods for above cases
- used `if (empty($foo)) instead of just `if ($foo)` preventing some nasty
E_NOTICE
- added some empty lines for better readability
Roland Häder [Wed, 25 Jul 2018 02:54:00 +0000 (04:54 +0200)]
Fixes/rewrites on videos.php (#5489)
* Fixes/rewrites:
- use empty()/isset() instead of deprecated x()
- merged 2 nested if() blocks into one
- avoided nested if() block inside else block by rewriting it to elseif()
- $contact_id is an integer, let's test on > 0 here
- added a lot spaces and some empty lines for better readability
* CR request:
- removed stray spaces
- added some where they improve readability
Roland Häder [Tue, 24 Jul 2018 21:48:47 +0000 (23:48 +0200)]
Removal of x() and added missing columns of contact (#5479)
* Fixes:
- got rid of x() in whole mod/item.php file
- added missing 'prv' and 'forum' columns, maybe one day, let's rewrite this
again. it is kinda a maintenance nightmare, keeping up with column renames and
such. Well, for now it should be okay.
Roland Häder [Mon, 23 Jul 2018 01:17:44 +0000 (03:17 +0200)]
Fixes: (#5462)
- fixed E_NOTICE about missing array element "page-flags-raw" (should be
"page_flags_raw"?)
- same with account-type-raw -> account_type_raw
- added spaces to nicely indent code