Sfoglia il codice sorgente

fixed current page

current page was find by title which could be duplicated in some files,
so changed to the url which is unique
ahmet2106 12 anni fa
parent
commit
c825e107a3
1 ha cambiato i file con 16 aggiunte e 5 eliminazioni
  1. 16 5
      lib/pico.php

+ 16 - 5
lib/pico.php

@@ -66,7 +66,7 @@ class Pico {
 		$current_page = array();
 		$next_page = array();
 		while($current_page = current($pages)){
-			if($meta['title'] == $current_page['title']){
+			if($this->gen_url($file) == $current_page['url']){
 				break;
 			}
 			next($pages);
@@ -223,12 +223,9 @@ class Pico {
 			$page_content = file_get_contents($page);
 			$page_meta = $this->read_file_meta($page_content);
 			$page_content = $this->parse_content($page_content);
-			$url = str_replace(CONTENT_DIR, $base_url .'/', $page);
-			$url = str_replace('index'. CONTENT_EXT, '', $url);
-			$url = str_replace(CONTENT_EXT, '', $url);
 			$data = array(
 				'title' => $page_meta['title'],
-				'url' => $url,
+				'url' => $this->gen_url($page),
 				'author' => $page_meta['author'],
 				'date' => $page_meta['date'],
 				'date_formatted' => date($config['date_format'], strtotime($page_meta['date'])),
@@ -333,6 +330,20 @@ class Pico {
 		$words = explode(' ',$string);
 		return trim(implode(' ', array_splice($words, 0, $word_limit))) .'...';
 	}
+	
+	/**
+	 * Helper function to generate page url
+	 *
+	 * @param string $page a content file
+	 * @return string the absolute url to the file
+	 */
+	private function gen_url($page)
+	{
+		$url = str_replace(CONTENT_DIR, $this->base_url() .'/', $page);
+		$url = str_replace('index'. CONTENT_EXT, '', $url);
+		$url = str_replace(CONTENT_EXT, '', $url);
+		return $url;
+	}
 
 }