MarkdownPageGenerator.class.php (1371B)
1 <?php 2 3 class MarkdownPageGenerator extends GeneratorBase 4 { 5 var $page; 6 7 function __construct( $page ) 8 { 9 $this->page = $page; 10 } 11 12 function generate() 13 { 14 15 HttpUtil::lastModified( $this->page['date'] ); 16 17 $parsedown = new Parsedown(); 18 19 $html = $parsedown->text( $this->page['value'] ); 20 21 define('CONTENT',$html); 22 define('TITLE' ,$this->page['title']); 23 global $PAGE; 24 $PAGE = $this->page; 25 26 global $PAGES_RELATED; 27 $PAGES_RELATED = $this->get_related_pages(); 28 29 30 if ( is_file(SITES_DIR.SLASH.SITE.'/site-config.ini')) 31 extract(parse_ini_file( SITES_DIR.SLASH.SITE.'/site-config.ini'),EXTR_PREFIX_ALL,'site'); 32 33 $this->outputTheme(); 34 35 exit; 36 } 37 38 39 40 41 /** 42 * Determine related pages. 43 */ 44 function get_related_pages() 45 { 46 global $PAGES_BY_KEYWORD; 47 global $PAGES_BY_URL; 48 49 $relatedPages = array(); 50 foreach( $this->page['keywords'] as $keyword ) 51 { 52 foreach( $PAGES_BY_KEYWORD[$keyword] as $page) 53 { 54 if ( $page['url'] == $this->page['url'] ) 55 continue; // only other sites are related. 56 57 if ( !isset($relatedPages[$page['url']])) 58 $relatedPages[$page['url']] = 1; 59 else 60 $relatedPages[$page['url']] = $relatedPages[$page['url']] + 1; 61 } 62 } 63 arsort($relatedPages); 64 $pages = array(); 65 foreach( $relatedPages as $url=>$count) 66 { 67 $pages[] = $PAGES_BY_URL[$url]; 68 } 69 70 return $pages; 71 } 72 73 74 75 } 76 77 ?>