Skip to content
This repository was archived by the owner on Sep 10, 2021. It is now read-only.

Commit 1d4ac29

Browse files
committed
ENH: refs #0426. Remove the manual json encoding in live search
1 parent e52112c commit 1d4ac29

File tree

1 file changed

+46
-80
lines changed

1 file changed

+46
-80
lines changed

core/controllers/SearchController.php

Lines changed: 46 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ public function liveAction()
188188
}
189189

190190
// Return the JSON results
191-
echo '[';
191+
$results = array();
192192
$id = 1;
193193
$n = 0;
194194
// Items
@@ -198,54 +198,40 @@ public function liveAction()
198198
{
199199
break;
200200
}
201-
if($id > 1)
202-
{
203-
echo ', ';
204-
}
205-
echo '{';
206-
echo '"id":"'.$id.'"';
207-
echo ', "label":"'.$this->Component->Utility->sliceName($itemDao->getName(), 55);
201+
$label = $this->Component->Utility->sliceName($itemDao->getName(), 55);
208202
if(isset($itemDao->count) && $itemDao->count > 1)
209203
{
210-
echo ' ('.$itemDao->count.')"';
211-
}
212-
else
213-
{
214-
echo '"';
204+
$label .= ' ('.$itemDao->count.')';
215205
}
216-
217-
echo ', "value":"'.$itemDao->getName().'"';
206+
$result = array('id' => $id,
207+
'label' => $label,
208+
'value' => $itemDao->getName(),
209+
'category' => $this->t('Items'));
218210

219211
if(!isset($itemDao->count) || $itemDao->count == 1)
220212
{
221-
echo ', "itemid":"'.$itemDao->getItemId().'"';
213+
$result['itemid'] = $itemDao->getItemId();
222214
}
223-
echo ', "category":"'.$this->t('Items').'"';
224215
$id++;
225216
$n++;
226-
echo '}';
217+
$results[] = $result;
227218
}
228219
// Groups
220+
$n = 0;
229221
foreach($GroupsDao as $groupDao)
230222
{
231223
if($n == $ngroups)
232224
{
233225
break;
234226
}
235-
if($id > 1)
236-
{
237-
echo ', ';
238-
}
239-
echo '{';
240-
echo '"id":"'.$id.'"';
241-
echo ', "label":"'.$this->Component->Utility->sliceName($groupDao->getName(), 55);
242-
echo '"';
243-
echo ', "value":"'.$groupDao->getName().'"';
244-
echo ', "groupid":"'.$groupDao->getKey().'"';
245-
echo ', "category":"'.$this->t('Groups').'"';
227+
228+
$results[] = array('id' => $id,
229+
'label' => $this->Component->Utility->sliceName($groupDao->getName(), 55),
230+
'value' => $groupDao->getName(),
231+
'groupid' => $groupDao->getKey(),
232+
'category' => $this->t('Groups'));
246233
$id++;
247234
$n++;
248-
echo '}';
249235
}
250236

251237
// Folder
@@ -256,30 +242,23 @@ public function liveAction()
256242
{
257243
break;
258244
}
259-
if($id > 1)
260-
{
261-
echo ', ';
262-
}
263-
echo '{';
264-
echo '"id":"'.$id.'"';
265-
echo ', "label":"'.$this->Component->Utility->sliceName($folderDao->getName(), 55);
245+
$label = $this->Component->Utility->sliceName($folderDao->getName(), 55);
266246
if(isset($folderDao->count) && $folderDao->count > 1)
267247
{
268-
echo ' ('.$folderDao->count.')"';
269-
}
270-
else
271-
{
272-
echo '"';
248+
$label .= ' ('.$folderDao->count.')';
273249
}
274-
echo ', "value":"'.$folderDao->getName().'"';
275-
if(isset($folderDao->count) && $folderDao->count == 1)
250+
$result = array('id' => $id,
251+
'label' => $label,
252+
'value' => $folderDao->getName(),
253+
'category' => $this->t('Folders'));
254+
255+
if(!isset($folderDao->count) || $folderDao->count == 1)
276256
{
277-
echo ', "folderid":"'.$folderDao->getFolderId().'"';
257+
$result['folderid'] = $folderDao->getFolderId();
278258
}
279-
echo ', "category":"'.$this->t('Folders').'"';
280259
$id++;
281260
$n++;
282-
echo '}';
261+
$results[] = $result;
283262
}
284263

285264
// Community
@@ -290,30 +269,23 @@ public function liveAction()
290269
{
291270
break;
292271
}
293-
if($id > 1)
294-
{
295-
echo ', ';
296-
}
297-
echo '{';
298-
echo '"id":"'.$id.'"';
299-
echo ', "label":"'.$this->Component->Utility->sliceName($communityDao->getName(), 55);
272+
$label = $this->Component->Utility->sliceName($communityDao->getName(), 55);
300273
if(isset($communityDao->count) && $communityDao->count > 1)
301274
{
302-
echo ' ('.$communityDao->count.')"';
303-
}
304-
else
305-
{
306-
echo '"';
275+
$label .= ' ('.$communityDao->count.')';
307276
}
308-
echo ', "value":"'.$communityDao->getName().'"';
277+
$result = array('id' => $id,
278+
'label' => $label,
279+
'value' => $communityDao->getName(),
280+
'category' => $this->t('Communities'));
281+
309282
if(!isset($communityDao->count) || $communityDao->count == 1)
310283
{
311-
echo ', "communityid":"'.$communityDao->getKey().'"';
284+
$result['communityid'] = $communityDao->getKey();
312285
}
313-
echo ', "category":"'.$this->t('Communities').'"';
314286
$id++;
315287
$n++;
316-
echo '}';
288+
$results[] = $result;
317289
}
318290

319291
// User
@@ -324,33 +296,27 @@ public function liveAction()
324296
{
325297
break;
326298
}
327-
if($id > 1)
328-
{
329-
echo ', ';
330-
}
331-
echo '{';
332-
echo '"id":"'.$id.'"';
333-
echo ', "label":"'.$userDao->getFirstname().' '.$userDao->getLastname();
299+
$label = $userDao->getFirstname().' '.$userDao->getLastname();
300+
$value = $label;
334301
if($userDao->count > 1)
335302
{
336-
echo ' ('.$userDao->count.')"';
303+
$label .= ' ('.$userDao->count.')';
337304
}
338-
else
339-
{
340-
echo '"';
341-
}
342-
echo ', "value":"'.$userDao->getFirstname().' '.$userDao->getLastname().'"';
305+
$result = array('id' => $id,
306+
'label' => $label,
307+
'value' => $value,
308+
'category' => $this->t('Users'));
309+
343310
if($userDao->count == 1)
344311
{
345-
echo ', "userid":"'.$userDao->getUserId().'"';
312+
$result['userid'] = $userDao->getKey();
346313
}
347-
echo ', "category":"'.$this->t('Users').'"';
348314
$id++;
349315
$n++;
350-
echo '}';
316+
$results[] = $result;
351317
}
352318

353-
echo ']';
319+
echo JsonComponent::encode($results);
354320
}
355321

356322
} // end class

0 commit comments

Comments
 (0)