From 58e8ae0759ccfa97c478ccae4e0778bdce70966f Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Thu, 22 Jan 2026 22:40:02 +0000
Subject: [PATCH] =DirectoryManager.php updates, some javascript tweaks for CRUD.js, and minor style changes
---
inc/rest/routes/TermRoutes.php | 81 +++++++++++++++++++++-------------------
1 files changed, 42 insertions(+), 39 deletions(-)
diff --git a/inc/rest/routes/TermRoutes.php b/inc/rest/routes/TermRoutes.php
index 1f8c726..5dc3b87 100644
--- a/inc/rest/routes/TermRoutes.php
+++ b/inc/rest/routes/TermRoutes.php
@@ -22,8 +22,11 @@
{
$this->cache_name = 'terms';
parent::__construct();
-// $this->cache->invalidateGroup('terms');
+ if (JVB_TESTING) {
+ $this->cache->clear();
+ }
$this->per_page = 20;
+
add_action('edited_term', [$this, 'deleteTermPath']);
add_action('wp_login', [$this, 'clearUserTaxonomyCache'], 10, 2);
}
@@ -181,8 +184,7 @@
public function handleTermSelectionRequest(WP_REST_Request $request):WP_REST_Response
{
$data = $request->get_params();
- $taxonomy = jvbCheckBase($data['taxonomy'])??'';
-
+ $taxonomy = sanitize_text_field($data['taxonomy'])??'';
// Check HTTP cache headers
$cache_check = $this->checkHeaders($request, $taxonomy);
if ($cache_check) {
@@ -194,12 +196,13 @@
if (str_contains($taxonomy, ',')) {
return $this->handleBatchTermRequest($taxonomy, $data, $request);
}
+ $taxonomy = jvbCheckBase($taxonomy);
if (array_key_exists('termIDs', $data)) {
$args = [
'taxonomy' => $taxonomy,
'include' => $data['termIDs'],
- 'hide_empty' => false,
+ 'hide_empty' => true,
];
$key = $this->cache->generateKey($args);
$cached = $this->cache->get($key);
@@ -240,9 +243,9 @@
'page' => 1,
'per_page' => $per_page,
'total_pages' => 0,
- 'total_terms' => 0,
- 'has_more' => false
- ]
+ 'total_terms' => 0
+ ],
+ 'has_more' => false
]);
}
@@ -259,7 +262,7 @@
// Get terms for current level with child count
$args = [
'taxonomy' => $taxonomy,
- 'hide_empty' => false,
+ 'hide_empty' => true,
'parent' => $parent,
'number' => $per_page,
'orderby'=> 'name',
@@ -283,8 +286,8 @@
'per_page' => $per_page,
'total_pages' => 0,
'total_terms' => 0,
- 'has_more' => false
- ]
+ ],
+ 'has_more' => false
]);
return $this->addCacheHeaders($response);
}
@@ -305,9 +308,9 @@
'page' => 1,
'per_page' => $per_page,
'total_pages' => 0,
- 'total_terms' => 0,
- 'has_more' => false
- ]
+ 'total_terms' => 0
+ ],
+ 'has_more' => false
]);
return $this->addCacheHeaders($response);
}
@@ -364,9 +367,9 @@
'page' => 1,
'per_page' => $per_page,
'total_pages' => 0,
- 'total_terms' => 0,
- 'has_more' => false
- ]
+ 'total_terms' => 0
+ ],
+ 'has_more' => false
]);
return $this->addCacheHeaders($response);
@@ -402,9 +405,9 @@
'page' => $page,
'per_page' => $per_page,
'total_pages' => $total_pages,
- 'total_terms' => (int)$total_terms,
- 'has_more' => $has_more
- ]
+ 'total_terms' => (int)$total_terms
+ ],
+ 'has_more' => $has_more
];
$this->cache->set($key, $response);
@@ -441,9 +444,9 @@
'items' => $all_terms,
'pagination'=> [
'page' => $page,
- 'per_page'=> $per_page,
- 'has_more' => true,
- ]
+ 'per_page'=> $per_page
+ ],
+ 'has_more' => true,
];
$response = new WP_REST_Response($response);
@@ -532,7 +535,7 @@
// When searching, we want to search across all terms regardless of hierarchy
$args = [
'taxonomy' => $taxonomy,
- 'hide_empty' => false,
+ 'hide_empty' => true,
'search' => $search,
'search_columns' => ['name', 'slug'],
'fields' => 'all',
@@ -555,9 +558,9 @@
'page' => 0,
'per_page' => 20,
'total_pages' => 0,
- 'total_terms' => 0,
- 'has_more' => false
- ]
+ 'total_terms' => 0
+ ],
+ 'has_more' => false
]);
}
@@ -581,9 +584,9 @@
'page' => (int)$page,
'per_page' => (int)$per_page,
'total_pages' => $total_pages,
- 'total_terms' => (int)$total_terms,
- 'has_more' => $has_more
- ]
+ 'total_terms' => (int)$total_terms
+ ],
+ 'has_more' => $has_more
];
$this->cache->set($key, $response);
@@ -775,9 +778,9 @@
'page' => (int)$page,
'per_page' => (int)$per_page,
'total_terms'=> $total,
- 'total_pages'=> $total_pages,
- 'has_more' => $page < $total_pages
- ]
+ 'total_pages'=> $total_pages
+ ],
+ 'has_more' => $page < $total_pages
];
// Cache results
@@ -816,7 +819,7 @@
// Build query args
$args = [
'taxonomy' => $taxonomy,
- 'hide_empty' => false,
+ 'hide_empty' => true,
'orderby' => $search ? 'name' : 'count',
'order' => $search ? 'ASC' : 'DESC',
'number' => $per_page,
@@ -839,9 +842,9 @@
'page' => 0,
'per_page' => 20,
'total_pages' => 0,
- 'total_terms' => 0,
- 'has_more' => 0
- ]
+ 'total_terms' => 0
+ ],
+ 'has_more' => 0
]);
}
@@ -865,9 +868,9 @@
'page' => (int)$page,
'per_page' => (int)$per_page,
'total_pages' => $total_pages,
- 'total_terms' => (int)$total,
- 'has_more' => $page < $total_pages
- ]
+ 'total_terms' => (int)$total
+ ],
+ 'has_more' => $page < $total_pages
];
// Cache results
--
Gitblit v1.10.0