/**
  * Method to get an array of data items.
  *
  * @return  mixed  An array of data items on success, false on failure.
  */
 public function getItems()
 {
     // check in items
     $this->checkInNow();
     // load parent items
     $items = parent::getItems();
     // set values to display correctly.
     if (DemoHelper::checkArray($items)) {
         // get user object.
         $user = JFactory::getUser();
         foreach ($items as $nr => &$item) {
             $access = $user->authorise('help_document.access', 'com_demo.help_document.' . (int) $item->id) && $user->authorise('help_document.access', 'com_demo');
             if (!$access) {
                 unset($items[$nr]);
                 continue;
             }
             // decode groups
             $groupsArray = json_decode($item->groups, true);
             if (DemoHelper::checkArray($groupsArray)) {
                 $groupsNames = '';
                 $counter = 0;
                 foreach ($groupsArray as $groups) {
                     if ($counter == 0) {
                         $groupsNames .= DemoHelper::getGroupName($groups);
                     } else {
                         $groupsNames .= ', ' . DemoHelper::getGroupName($groups);
                     }
                     $counter++;
                 }
                 $item->groups = $groupsNames;
             }
         }
     }
     // set selection value to a translatable value
     if (DemoHelper::checkArray($items)) {
         foreach ($items as $nr => &$item) {
             // convert type
             $item->type = $this->selectionTranslation($item->type, 'type');
             // convert location
             $item->location = $this->selectionTranslation($item->location, 'location');
         }
     }
     // return items
     return $items;
 }