function testGetPagesFromFolderRecursive()
 {
     $entity = DocumentationService::register('testdocsrecursive', BASE_PATH . '/sapphiredocs/tests/docs-recursive/');
     $pages = DocumentationService::get_pages_from_folder($entity, null, true);
     // check to see all the pages are found, we don't care about order
     $this->assertEquals($pages->Count(), 9);
     $pages = $pages->column('Title');
     foreach (array('Index', 'SubFolder TestFile', 'SubSubFolder TestFile', 'TestFile') as $expected) {
         $this->assertContains($expected, $pages);
     }
 }
 /**
  * Generate an array of every single documentation page installed on the system. 
  *
  * @return DataObjectSet
  */
 public static function get_all_documentation_pages()
 {
     DocumentationService::load_automatic_registration();
     $modules = DocumentationService::get_registered_entities();
     $output = new DataObjectSet();
     if ($modules) {
         foreach ($modules as $module) {
             foreach ($module->getVersions() as $version) {
                 try {
                     $pages = DocumentationService::get_pages_from_folder($module, false, true, $version);
                     if ($pages) {
                         foreach ($pages as $page) {
                             $output->push($page);
                         }
                     }
                 } catch (Exception $e) {
                     user_error($e, E_USER_WARNING);
                 }
             }
         }
     }
     return $output;
 }
 /**
  * Return the content for the page. If its an actual documentation page then
  * display the content from the page, otherwise display the contents from
  * the index.md file if its a folder
  *
  * @return HTMLText
  */
 function getContent()
 {
     $page = $this->getPage();
     if ($page) {
         return DBField::create("HTMLText", $page->getHTML($this->getVersion(), $this->getLang()));
     }
     // If no page found then we may want to get the listing of the folder.
     // In case no folder exists, show a "not found" page.
     $entity = $this->getEntity();
     $url = $this->Remaining;
     if ($url && $entity) {
         $pages = DocumentationService::get_pages_from_folder($entity, implode('/', $url), false, $this->getVersion(), $this->getLang());
         return $this->customise(array('Content' => false, 'Title' => DocumentationService::clean_page_name(array_pop($url)), 'Pages' => $pages))->renderWith('DocFolderListing');
     } else {
         return $this->customise(array('Content' => false, 'Title' => _t('DocumentationViewer.MODULES', 'Modules'), 'Pages' => $this->getEntities()))->renderWith('DocFolderListing');
     }
     return false;
 }