/**
  * Get all content pages.
  *
  * @return array
  */
 public function getSites()
 {
     $jd = new JsonData();
     $data = $jd->data('node', 'getTree', array('get' => array('recursive' => 'true')));
     $pageStack = array();
     $data['data']['tree'] = array_reverse($data['data']['tree']);
     foreach ($data['data']['tree'] as &$entry) {
         $entry['attr']['level'] = 0;
         array_push($pageStack, $entry);
     }
     $return = array();
     while (count($pageStack)) {
         $entry = array_pop($pageStack);
         $page = $entry['data'][0];
         $arrPage['level'] = $entry['attr']['level'];
         $arrPage['node_id'] = $entry['attr']['rel_id'];
         $children = $entry['children'];
         $children = array_reverse($children);
         foreach ($children as &$entry) {
             $entry['attr']['level'] = $arrPage['level'] + 1;
             array_push($pageStack, $entry);
         }
         $arrPage['catname'] = $page['title'];
         $arrPage['catid'] = $page['attr']['id'];
         $arrPage['lang'] = BACKEND_LANG_ID;
         $arrPage['protected'] = $page['attr']['protected'];
         $arrPage['type'] = Page::TYPE_CONTENT;
         $arrPage['alias'] = $page['title'];
         $arrPage['frontend_access_id'] = $page['attr']['frontend_access_id'];
         $arrPage['backend_access_id'] = $page['attr']['backend_access_id'];
         $jsondata = json_decode($page['attr']['data-href']);
         $path = $jsondata->path;
         if (trim($jsondata->module) != '') {
             $arrPage['type'] = Page::TYPE_APPLICATION;
             $module = explode(' ', $jsondata->module, 2);
             $arrPage['modulename'] = $module[0];
             if (count($module) > 1) {
                 $arrPage['cmd'] = $module[1];
             }
         }
         $url = '[[' . NodePlaceholder::PLACEHOLDER_PREFIX;
         // TODO: This only works for regular application pages. Pages of type fallback that are linked to an application
         //       will be parsed using their node-id ({NODE_<ID>})
         if ($arrPage['type'] == Page::TYPE_APPLICATION) {
             $url .= $arrPage['modulename'];
             if (!empty($arrPage['cmd'])) {
                 $url .= '_' . $arrPage['cmd'];
             }
             $url = strtoupper($url);
         } else {
             $url .= $arrPage['node_id'];
         }
         $url .= "]]";
         $return[] = array('click' => "javascript:{setUrl('{$url}',null,null,'" . \FWLanguage::getLanguageCodeById(BACKEND_LANG_ID) . $path . "','page')}", 'name' => $arrPage['catname'], 'extension' => 'Html', 'level' => $arrPage['level'], 'url' => $path, 'node' => $url);
     }
     return $return;
 }