]> git.mxchange.org Git - friendica.git/commitdiff
Replace the legacy function
authorMichael <heluecht@pirati.ca>
Mon, 11 Oct 2021 04:33:10 +0000 (04:33 +0000)
committerMichael <heluecht@pirati.ca>
Mon, 11 Oct 2021 04:33:10 +0000 (04:33 +0000)
src/Content/Widget.php
src/Module/Contact.php
src/Module/Search/Acl.php
view/theme/frio/theme.php

index 653c99624b5a1907f21965d5db642fdc0240bdaf..3f97e9f259e50a4c37d6fcef472f755884cfce64 100644 (file)
@@ -92,11 +92,13 @@ class Widget
 
        /**
         * Return unavailable networks as array
+        *
+        * @return array Unsupported networks
         */
-       public static function unavailableNetworksAsArray()
+       public static function unavailableNetworks()
        {
                // Always hide content from these networks
-               $networks = [Protocol::PHANTOM, Protocol::FACEBOOK, Protocol::APPNET];
+               $networks = [Protocol::PHANTOM, Protocol::FACEBOOK, Protocol::APPNET, Protocol::ZOT];
 
                if (!Addon::isEnabled("discourse")) {
                        $networks[] = Protocol::DISCOURSE;
@@ -128,24 +130,6 @@ class Widget
                return $networks;
        }
 
-       /**
-        * Return unavailable networks
-        */
-       public static function unavailableNetworks()
-       {
-               $networks = self::unavailableNetworksAsArray();
-
-               if (!sizeof($networks)) {
-                       return "";
-               }
-
-               $network_filter = implode("','", $networks);
-
-               $network_filter = "AND `network` NOT IN ('$network_filter')";
-
-               return $network_filter;
-       }
-
        /**
         * Display a generic filter widget based on a list of options
         *
@@ -274,10 +258,12 @@ class Widget
                        return '';
                }
 
-               $extra_sql = self::unavailableNetworks();
+               $networks = self::unavailableNetworks();
+               $extra_sql = " AND NOT `network` IN (" . substr(str_repeat("?, ", count($networks)), 0, -2) . ")";
+               $sql_values = array_merge([local_user()], $networks);
 
                $r = DBA::p("SELECT `network` FROM `contact` WHERE `uid` = ? AND NOT `deleted` AND `network` != '' $extra_sql GROUP BY `network` ORDER BY `network`",
-                       local_user()
+                       $sql_values
                );
 
                $nets = array();
@@ -525,7 +511,7 @@ class Widget
        /**
         * Display the account types sidebar
         * The account type value is added as a parameter to the url
-        * 
+        *
         * @param string $base        Basepath
         * @param int    $accounttype Acount type
         * @return string
index c3075febedb7523d6127032bffb3d57c21fe29f9..2cd575df90eb9bef70b9af3e96ccaa0c01a186b8 100644 (file)
@@ -664,42 +664,25 @@ class Contact extends BaseModule
                }
 
                if ($group) {
-                       $sql_extra = " AND EXISTS(SELECT `id` FROM `group_member` WHERE `gid` = ? AND `contact`.`id` = `contact-id`)";
+                       $sql_extra .= " AND EXISTS(SELECT `id` FROM `group_member` WHERE `gid` = ? AND `contact`.`id` = `contact-id`)";
                        $sql_values[] = $group;
                }
 
-               $total = 0;
-               $stmt = DBA::p("SELECT COUNT(*) AS `total`
-                       FROM `contact`
-                       WHERE `uid` = ?
-                       AND `self` = 0
-                       AND NOT `deleted`
-                       $sql_extra
-                       " . Widget::unavailableNetworks(),
-                       $sql_values
-               );
-               if (DBA::isResult($stmt)) {
-                       $total = DBA::fetch($stmt)['total'];
-               }
-               DBA::close($stmt);
+               $networks = Widget::unavailableNetworks();
+               $sql_extra .= " AND NOT `network` IN (" . substr(str_repeat("?, ", count($networks)), 0, -2) . ")";
+               $sql_values = array_merge($sql_values, $networks);
 
-               $pager = new Pager(DI::l10n(), DI::args()->getQueryString());
+               $condition = ["`uid` = ? AND NOT `self` AND NOT `deleted`" . $sql_extra];
+               $condition = array_merge($condition, $sql_values);
 
-               $sql_values[] = $pager->getStart();
-               $sql_values[] = $pager->getItemsPerPage();
+               $total = DBA::count('contact', $condition);
+
+               $pager = new Pager(DI::l10n(), DI::args()->getQueryString());
 
                $contacts = [];
 
-               $stmt = DBA::p("SELECT *
-                       FROM `contact`
-                       WHERE `uid` = ?
-                       AND `self` = 0
-                       AND NOT `deleted`
-                       $sql_extra
-                       ORDER BY `name` ASC
-                       LIMIT ?, ?",
-                       $sql_values
-               );
+               $stmt = DBA::select('contact', [], $condition, ['order' => ['name'], 'limit' => [$pager->getStart(), $pager->getItemsPerPage()]]);
+
                while ($contact = DBA::fetch($stmt)) {
                        $contact['blocked'] = Model\Contact\User::isBlocked($contact['id'], local_user());
                        $contact['readonly'] = Model\Contact\User::isIgnored($contact['id'], local_user());
index f0e9450be67d0bbac22a8aa1efeaa68c466d604c..33d9e32c18ea0b663eb5b85c9c3ef163b59133da 100644 (file)
@@ -130,10 +130,8 @@ class Acl extends BaseModule
                        $group_count = DBA::count('group', $condition_group);
                }
 
-               $networks = Widget::unavailableNetworksAsArray();
-               if (!empty($networks)) {
-                       $condition = DBA::mergeConditions($condition, array_merge(["NOT `network` IN (" . substr(str_repeat("?, ", count($networks)), 0, -2) . ")"], $networks));
-               }
+               $networks = Widget::unavailableNetworks();
+               $condition = DBA::mergeConditions($condition, array_merge(["NOT `network` IN (" . substr(str_repeat("?, ", count($networks)), 0, -2) . ")"], $networks));
 
                switch ($type) {
                        case self::TYPE_MENTION_CONTACT_GROUP:
index 079b3c6d5c62521539e04dac1649bfb57aa13612..961eb2a5eb20a978cfe21eeff51b1b9c40e1caaa 100644 (file)
@@ -55,7 +55,6 @@ function frio_install()
        Hook::register('item_photo_menu', 'view/theme/frio/theme.php', 'frio_item_photo_menu');
        Hook::register('contact_photo_menu', 'view/theme/frio/theme.php', 'frio_contact_photo_menu');
        Hook::register('nav_info', 'view/theme/frio/theme.php', 'frio_remote_nav');
-       Hook::register('acl_lookup_end', 'view/theme/frio/theme.php', 'frio_acl_lookup');
        Hook::register('display_item', 'view/theme/frio/theme.php', 'frio_display_item');
 
        Logger::log('installed theme frio');
@@ -239,76 +238,6 @@ function frio_remote_nav(App $a, array &$nav_info)
        }
 }
 
-/**
- * Search for contacts
- *
- * This function search for a users contacts. The code is copied from contact search
- * in /src/Module/Contact.php. With this function the contacts will permitted to acl_lookup()
- * and can grabbed as json. For this we use the type="r". This is usful to to let js
- * grab the contact data.
- * We use this to give the data to textcomplete and have a filter function at the
- * contact page.
- *
- * @todo Is this function still in use?
- * 
- * @param App $a The app data @TODO Unused
- * @param array $results The array with the originals from acl_lookup()
- */
-function frio_acl_lookup(App $a, &$results)
-{
-       $nets = !empty($_GET['nets']) ? Strings::escapeTags(trim($_GET['nets'])) : '';
-
-       // we introduce a new search type, r should do the same query like it's
-       // done in /src/Module/Contact.php for connections
-       if ($results['type'] !== 'r') {
-               return;
-       }
-
-       $sql_extra = '';
-       if ($results['search']) {
-               $search_txt = DBA::escape(Strings::protectSprintf(preg_quote($results['search'])));
-               $sql_extra .= " AND (`attag` LIKE '%%" . $search_txt . "%%' OR `name` LIKE '%%" . $search_txt . "%%' OR `nick` LIKE '%%" . $search_txt . "%%') ";
-       }
-
-       if ($nets) {
-               $sql_extra .= sprintf(" AND network = '%s' ", DBA::escape($nets));
-       }
-
-       $total = 0;
-       $r = DBA::fetchFirst("SELECT COUNT(*) AS `total` FROM `contact`
-               WHERE `uid` = ? AND NOT `self` AND NOT `deleted` AND NOT `pending` $sql_extra ", $_SESSION['uid']);
-       if (DBA::isResult($r)) {
-               $total = $r['total'];
-       }
-
-       $sql_extra3 = Widget::unavailableNetworks();
-
-       $r = DBA::toArray(DBA::p("SELECT * FROM `contact` WHERE `uid` = ? AND NOT `self` AND NOT `deleted` AND NOT `pending` $sql_extra $sql_extra3 ORDER BY `name` ASC LIMIT ?, ? ",
-               $_SESSION['uid'], $results['start'], $results['count']
-       ));
-
-       $contacts = [];
-
-       if (DBA::isResult($r)) {
-               foreach ($r as $rr) {
-                       $contacts[] = Module\Contact::getContactTemplateVars($rr);
-               }
-       }
-
-       $results['items'] = $contacts;
-       $results['tot'] = $total;
-}
-
-/**
- * Manipulate the data of the item
- *
- * At the moment we use this function to add some own stuff to the item menu
- *
- * @param App $a App $a The app data
- * @param array $arr Array with the item and the item actions<br>
- *     'item' => Array with item data<br>
- *     'output' => Array with item actions<br>
- */
 function frio_display_item(App $a, &$arr)
 {
        // Add follow to the item menu