PluginProbe
Yatra – Travel Booking & Tour Operator Software / 3.0.16
Yatra – Travel Booking & Tour Operator Software v3.0.16
3.0.16 3.0.15 3.0.14 3.0.14.1 3.0.14.2 3.0.12 3.0.13 3.0.11 3.0.10 3.0.9 3.0.8 3.0.7 3.0.6 3.0.5 3.0.5.1 3.0.4 3.0.3 3.0.2.9 3.0.2.7 3.0.2.8 3.0.2.6 trunk 1.0.0 2.0.0 2.0.1 All 84 releases
← All changes | app/Services/CategoryService.php +17 -21 3.0.3 → 3.0.16 View file →
@@ -5,8 +5,9 @@
5 5 namespace Yatra\Services;
6 6
7 7 use Yatra\Repositories\CategoryRepository;
8 8 use Yatra\Repositories\TripCategoryRepository;
9 +use Yatra\Helpers\ClassificationLandingPageMetadata;
9 10 use Yatra\Helpers\SlugHelper;
10 11 use Yatra\Helpers\FormatHelper;
11 12 use Yatra\Database\Tables\ClassificationsTable;
12 13
@@ -115,15 +116,14 @@
115 116 }
116 117
117 118 // Handle SEO metadata
118 119 if (isset($data['seo_title']) || isset($data['seo_description']) || isset($data['seo_keywords'])) {
119 - $existing_metadata = [];
120 - if (isset($data['metadata']) && is_array($data['metadata'])) {
121 - $existing_metadata = $data['metadata'];
122 - } elseif (isset($data['metadata'])) {
123 - $existing_metadata = maybe_unserialize($data['metadata']);
124 - }
125 -
120 + $existing_metadata = ClassificationLandingPageMetadata::baseMetadataMergedWithRequest(
121 + null,
122 + $this->repository,
123 + $data
124 + );
125 +
126 126 // Add SEO fields to metadata
127 127 if (isset($data['seo_title'])) {
128 128 $existing_metadata['seo_title'] = sanitize_text_field($data['seo_title']);
129 129 unset($data['seo_title']); // Remove from main data
@@ -139,8 +139,10 @@
139 139
140 140 $data['metadata'] = $existing_metadata;
141 141 }
142 142
143 + ClassificationLandingPageMetadata::mergeLandingPageIntoData($data, null, $this->repository);
144 +
143 145 // Sanitize metadata if it's an array
144 146 if (isset($data['metadata'])) {
145 147 if (is_array($data['metadata'])) {
146 148 $data['metadata'] = maybe_serialize($data['metadata']);
@@ -225,22 +227,14 @@
225 227 }
226 228
227 229 // Handle SEO metadata
228 230 if (isset($data['seo_title']) || isset($data['seo_description']) || isset($data['seo_keywords'])) {
229 - // Get existing metadata
230 - $existing_metadata = [];
231 - if (isset($data['metadata']) && is_array($data['metadata'])) {
232 - $existing_metadata = $data['metadata'];
233 - } elseif (isset($data['metadata'])) {
234 - $existing_metadata = maybe_unserialize($data['metadata']);
235 - } else {
236 - // Get existing metadata from database
237 - $existing = $this->repository->find($id);
238 - if ($existing && isset($existing->metadata)) {
239 - $existing_metadata = maybe_unserialize($existing->metadata);
240 - }
241 - }
242 -
231 + $existing_metadata = ClassificationLandingPageMetadata::baseMetadataMergedWithRequest(
232 + $id,
233 + $this->repository,
234 + $data
235 + );
236 +
243 237 // Add/update SEO fields in metadata
244 238 if (isset($data['seo_title'])) {
245 239 $existing_metadata['seo_title'] = sanitize_text_field($data['seo_title']);
246 240 unset($data['seo_title']); // Remove from main data
@@ -255,8 +249,10 @@
255 249 }
256 250
257 251 $data['metadata'] = $existing_metadata;
258 252 }
253 +
254 + ClassificationLandingPageMetadata::mergeLandingPageIntoData($data, $id, $this->repository);
259 255
260 256 // Sanitize metadata if it's an array
261 257 if (isset($data['metadata'])) {
262 258 if (is_array($data['metadata'])) {