[TikiWiki-commits] [Git][tikiwiki/tiki][29.x] [BP][FIX] Fixed TypeError when importing emails from tracker in newsletter subscriptions

"luci \(@luciash\) via TikiWiki-cvs" <[email protected]>
Newsgroups gmane.comp.cms.tiki.cvs
Message-ID <698d4346c69b0_3b1852cc93164@gitlab-sidekiq-low-urgency-cpu-bound-v2-67bf4dcc4f-cj6hj.mail>

luci pushed to branch 29.x at Tiki Wiki CMS Groupware / Tiki


Commits:
1ed21acc by Espoir Baraka at 2026-02-12T02:56:45+00:00
[BP][FIX] Fixed TypeError when importing emails from tracker in newsletter subscriptions
---
* [FIX] Fixed TypeError when importing emails from tracker in newsletter subscriptions
---
* [FIX] Fixed TypeError when importing emails from tracker in newsletter subscriptions

See merge request tikiwiki/tiki!9400

(cherry picked from commit 3b6eb76325b35113073bdef784f5159cb502942c)

See merge request tikiwiki/tiki!9532

- - - - -


2 changed files:

- lib/newsletters/nllib.php
- lib/trackers/trackerlib.php


Changes:

=====================================
lib/newsletters/nllib.php
=====================================
@@ -1362,7 +1362,7 @@ class NlLib extends TikiLib
     {
         $emails = false;
         $trklib = TikiLib::lib('trk');
-        $listItems = $trklib->list_tracker_items($trackerId, 0, -1, '', '');
+        $listItems = $trklib->list_tracker_items($trackerId, 0, -1, '', null);
 
         if (empty($listItems['data'])) {
             return false;


=====================================
lib/trackers/trackerlib.php
=====================================
@@ -522,22 +522,45 @@ class TrackerLib extends TikiLib
         return $status;
     }
 
+    /**
+     * List tracker items with optional field filtering and sorting
+     *
+     * @param int $trackerId The tracker ID (-1 for all trackers)
+     * @param int $offset Offset for pagination
+     * @param int $maxRecords Maximum number of records to return (-1 for all)
+     * @param string $sort_mode Sort mode (e.g., 'itemId_asc', 'lastModif_desc', or 'f_fieldname_asc')
+     * @param array|null $fields Array with 'data' key containing field definitions from list_tracker_fields(), or null
+     * @param string $status Filter by item status (empty string for all)
+     * @param string $initial Filter items starting with this initial character
+     * @return array Array with 'data' key containing items and 'count' key with total count
+     */
     /*shared*/
     public function list_tracker_items($trackerId, $offset, $maxRecords, $sort_mode, $fields, $status = '', $initial = '')
     {
-
         $filters = [];
-        if ($fields) {
+        $csort_mode = '';
+
+        if ($fields && is_array($fields) && isset($fields["data"])) {
             $temp_max = count($fields["data"]);
             for ($i = 0; $i < $temp_max; $i++) {
                 $fieldId = $fields["data"][$i]["fieldId"];
                 $filters[$fieldId] = $fields["data"][$i];
             }
+
+            if (! $sort_mode) {
+                for ($i = 0; $i < $temp_max; $i++) {
+                    if ($fields['data'][$i]['isMain'] == 'y') {
+                        $csort_mode = $fields['data'][$i]['name'];
+                        break;
+                    }
+                }
+            }
         }
-        $csort_mode = '';
-        if (substr($sort_mode, 0, 2) == "f_") {
+
+        if (str_starts_with($sort_mode, "f_")) {
             list($a,$csort_mode,$corder) = explode('_', $sort_mode, 3);
         }
+
         $trackerId = (int) $trackerId;
         if ($trackerId == -1) {
             $mid = " where 1=1 ";
@@ -554,15 +577,6 @@ class TrackerLib extends TikiLib
             $mid .= "and ttif.`value` like ?";
             $bindvars[] = $initial . '%';
         }
-        if (! $sort_mode) {
-            $temp_max = count($fields["data"]);
-            for ($i = 0; $i < $temp_max; $i++) {
-                if ($fields['data'][$i]['isMain'] == 'y') {
-                    $csort_mode = $fields['data'][$i]['name'];
-                    break;
-                }
-            }
-        }
         if ($csort_mode) {
             $sort_mode = $csort_mode . "_desc";
             $bindvars[] = $csort_mode;



View it on GitLab: https://gitlab.com/tikiwiki/tiki/-/commit/1ed21acc0cbc9aceb2f5604cdd79230e2343afee

-- 
View it on GitLab: https://gitlab.com/tikiwiki/tiki/-/commit/1ed21acc0cbc9aceb2f5604cdd79230e2343afee
You're receiving this email because of your account on gitlab.com.

_______________________________________________
TikiWiki-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tikiwiki-cvs
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.