]> git.mxchange.org Git - friendica.git/blobdiff - src/Content/Widget.php
Merge pull request #11699 from Quix0r/rewrites/type-hints-001
[friendica.git] / src / Content / Widget.php
index 8ec57dce40f8316906ff9698c389b9bc4b9d572e..fba027680c7f84f169edf330464273446438413e 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2010-2021, the Friendica project
+ * @copyright Copyright (C) 2010-2022, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
@@ -25,12 +25,14 @@ use Friendica\Core\Addon;
 use Friendica\Core\Cache\Enum\Duration;
 use Friendica\Core\Protocol;
 use Friendica\Core\Renderer;
+use Friendica\Core\Search;
 use Friendica\Database\DBA;
 use Friendica\DI;
 use Friendica\Model\Contact;
 use Friendica\Model\Group;
 use Friendica\Model\Item;
 use Friendica\Model\Post;
+use Friendica\Model\Profile;
 use Friendica\Util\DateTimeFormat;
 use Friendica\Util\Temporal;
 
@@ -43,7 +45,7 @@ class Widget
         * @return string
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
-       public static function follow($value = "")
+       public static function follow(string $value = ''): string
        {
                return Renderer::replaceMacros(Renderer::getMarkupTemplate('widget/follow.tpl'), array(
                        '$connect' => DI::l10n()->t('Add New Contact'),
@@ -56,10 +58,12 @@ class Widget
 
        /**
         * Return Find People widget
+        *
+        * @return string HTML code respresenting "People Widget"
         */
-       public static function findPeople()
+       public static function findPeople(): string
        {
-               $global_dir = DI::config()->get('system', 'directory');
+               $global_dir = Search::getGlobalDirectory();
 
                if (DI::config()->get('system', 'invitation_only')) {
                        $x = intval(DI::pConfig()->get(local_user(), 'system', 'invites_remaining'));
@@ -81,7 +85,7 @@ class Widget
                $nv['random'] = DI::l10n()->t('Random Profile');
                $nv['inv'] = DI::l10n()->t('Invite Friends');
                $nv['directory'] = DI::l10n()->t('Global Directory');
-               $nv['global_dir'] = $global_dir;
+               $nv['global_dir'] = Profile::zrl($global_dir, true);
                $nv['local_directory'] = DI::l10n()->t('Local Directory');
 
                $aside = [];
@@ -95,7 +99,7 @@ class Widget
         *
         * @return array Unsupported networks
         */
-       public static function unavailableNetworks()
+       public static function unavailableNetworks(): array
        {
                // Always hide content from these networks
                $networks = [Protocol::PHANTOM, Protocol::FACEBOOK, Protocol::APPNET, Protocol::ZOT];
@@ -152,7 +156,7 @@ class Widget
         * @return string
         * @throws \Exception
         */
-       private static function filter($type, $title, $desc, $all, $baseUrl, array $options, $selected = null)
+       private static function filter(string $type, string $title, string $desc, string $all, string $baseUrl, array $options, string $selected = null): string
        {
                $queryString = parse_url($baseUrl, PHP_URL_QUERY);
                $queryArray = [];
@@ -189,7 +193,7 @@ class Widget
         * @return string
         * @throws \Exception
         */
-       public static function groups($baseurl, $selected = '')
+       public static function groups(string $baseurl, string $selected = ''): string
        {
                if (!local_user()) {
                        return '';
@@ -221,7 +225,7 @@ class Widget
         * @return string
         * @throws \Exception
         */
-       public static function contactRels($baseurl, $selected = '')
+       public static function contactRels(string $baseurl, string $selected = ''): string
        {
                if (!local_user()) {
                        return '';
@@ -252,7 +256,7 @@ class Widget
         * @return string
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
-       public static function networks($baseurl, $selected = '')
+       public static function networks(string $baseurl, string $selected = ''): string
        {
                if (!local_user()) {
                        return '';
@@ -290,10 +294,10 @@ class Widget
         *
         * @param string $baseurl  baseurl
         * @param string $selected optional, default empty
-        * @return string|void
+        * @return string
         * @throws \Exception
         */
-       public static function fileAs($baseurl, $selected = '')
+       public static function fileAs(string $baseurl, string $selected = ''): string
        {
                if (!local_user()) {
                        return '';
@@ -318,23 +322,20 @@ class Widget
        /**
         * Return categories widget
         *
-        * @param string $baseurl  baseurl
-        * @param string $selected optional, default empty
-        * @return string|void
+        * @param int    $uid      Id of the user owning the categories
+        * @param string $baseurl  Base page URL
+        * @param string $selected Selected category
+        * @return string
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
-       public static function categories($baseurl, $selected = '')
+       public static function categories(int $uid, string $baseurl, string $selected = ''): string
        {
-               $a = DI::app();
-
-               $uid = intval($a->getProfileOwner());
-
                if (!Feature::isEnabled($uid, 'categories')) {
                        return '';
                }
 
                $terms = array();
-               foreach (Post\Category::getArray(local_user(), Post\Category::CATEGORY) as $savedFolderName) {
+               foreach (Post\Category::getArray($uid, Post\Category::CATEGORY) as $savedFolderName) {
                        $terms[] = ['ref' => $savedFolderName, 'name' => $savedFolderName];
                }
 
@@ -354,11 +355,11 @@ class Widget
         *
         * @param int    $uid      Viewed profile user ID
         * @param string $nickname Viewed profile user nickname
-        * @return string|void
+        * @return string
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @throws \ImagickException
         */
-       public static function commonFriendsVisitor(int $uid, string $nickname)
+       public static function commonFriendsVisitor(int $uid, string $nickname): string
        {
                if (local_user() == $uid) {
                        return '';
@@ -415,7 +416,7 @@ class Widget
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         * @throws \ImagickException
         */
-       public static function tagCloud(int $uid, int $limit = 50)
+       public static function tagCloud(int $uid, int $limit = 50): string
        {
                if (empty($uid)) {
                        return '';
@@ -440,7 +441,7 @@ class Widget
         * @return string
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
-       public static function postedByYear(string $url, int $uid, bool $wall)
+       public static function postedByYear(string $url, int $uid, bool $wall): string
        {
                $o = '';
 
@@ -511,10 +512,10 @@ class Widget
         * The account type value is added as a parameter to the url
         *
         * @param string $base        Basepath
-        * @param int    $accounttype Acount type
+        * @param string $accounttype Account type
         * @return string
         */
-       public static function accounttypes(string $base, $accounttype)
+       public static function accountTypes(string $base, string $accounttype): string
        {
                $accounts = [
                        ['ref' => 'person', 'name' => DI::l10n()->t('Persons')],