| 1 | ========================= trunk ============================= |
|---|
| 2 | function LoadPage($tag, $time = "", $cache = 1) { |
|---|
| 3 | // retrieve from cache |
|---|
| 4 | if (!$time && $cache) { |
|---|
| 5 | $page = isset($this->pageCache[$tag]) ? $this->pageCache[$tag] : null; |
|---|
| 6 | if ($page=="cached_nonexistent_page") return null; |
|---|
| 7 | } |
|---|
| 8 | // load page |
|---|
| 9 | if (!isset($page)) $page = $this->LoadSingle("select * from ".$this->config["table_prefix"]."pages where tag = '".mysql_real_escape_string($tag)."' ".($time ? "and time = '".mysql_real_escape_string($time)."'" : "and latest = 'Y'")." limit 1"); |
|---|
| 10 | // cache result |
|---|
| 11 | if ($page && !$time) { |
|---|
| 12 | $this->pageCache[$page["tag"]] = $page; |
|---|
| 13 | } elseif (!$page) { |
|---|
| 14 | $this->pageCache[$tag] = "cached_nonexistent_page"; |
|---|
| 15 | } |
|---|
| 16 | return $page; |
|---|
| 17 | } |
|---|
| 18 | |
|---|
| 19 | ========================= proposal ============================= |
|---|
| 20 | function LoadPage($tag, $time = "", $cache = 1) { |
|---|
| 21 | // retrieve from cache |
|---|
| 22 | if (!$time && $cache) { |
|---|
| 23 | $page = isset($this->pageCache[$tag]) ? $this->pageCache[$tag] : null; |
|---|
| 24 | if ($page=="cached_nonexistent_page") return null; |
|---|
| 25 | } |
|---|
| 26 | // load page |
|---|
| 27 | $db_tag = $tag; |
|---|
| 28 | if ($db_tag == RECENT_CHANGES) { $db_tag = "RecentChanges"; } |
|---|
| 29 | elseif ($db_tag == RECENTLY_COMMENTED) { $db_tag = "RecentlyCommented"; } |
|---|
| 30 | elseif ($db_tag == USER_SETTINGS) { $db_tag = "UserSettings"; } |
|---|
| 31 | elseif ($db_tag == PAGE_INDEX) { $db_tag = "PageIndex"; } |
|---|
| 32 | elseif ($db_tag == WIKKA_RELEASE_NOTES) { $db_tag = "WikkaReleaseNotes"; } |
|---|
| 33 | elseif ($db_tag == WIKKA_DOCUMENTATION) { $db_tag = "WikkaDocumentation"; } |
|---|
| 34 | elseif ($db_tag == WANTED_PAGES) { $db_tag = "WantedPages"; } |
|---|
| 35 | elseif ($db_tag == ORPHANED_PAGES) { $db_tag = "OrphanedPages"; } |
|---|
| 36 | elseif ($db_tag == TEXT_SEARCH) { $db_tag = "TextSearch"; } |
|---|
| 37 | elseif ($db_tag == TEXT_SEARCH_EXPANDED) { $db_tag = "TextSearchExpanded"; } |
|---|
| 38 | elseif ($db_tag == MY_PAGES) { $db_tag = "MyPages"; } |
|---|
| 39 | elseif ($db_tag == MY_CHANGES) { $db_tag = "MyChanges"; } |
|---|
| 40 | elseif ($db_tag == INTER_WIKI) { $db_tag = "InterWiki"; } |
|---|
| 41 | elseif ($db_tag == PASSWORD_FORGOTTEN) { $db_tag = "PasswordForgotten"; } |
|---|
| 42 | elseif ($db_tag == WIKI_CATEGORY) { $db_tag = "WikiCategory"; } |
|---|
| 43 | elseif ($db_tag == CATEGORY_WIKI) { $db_tag = "CategoryWiki"; } |
|---|
| 44 | elseif ($db_tag == CATEGORY_CATEGORY) { $db_tag = "CategoryCategory"; } |
|---|
| 45 | elseif ($db_tag == FORMATTING_RULES) { $db_tag = "FormattingRules"; } |
|---|
| 46 | elseif ($db_tag == HIGH_SCORES) { $db_tag = "HighScores"; } |
|---|
| 47 | elseif ($db_tag == OWNED_PAGES) { $db_tag = "OwnedPages"; } |
|---|
| 48 | elseif ($db_tag == SAND_BOX) { $db_tag = "SandBox"; } |
|---|
| 49 | elseif ($db_tag == SYS_INFO) { $db_tag = "SysInfo"; } |
|---|
| 50 | elseif ($db_tag == USER_SETTINGS) { $db_tag = "UserSettings"; } |
|---|
| 51 | if (!isset($page)) $page = $this->LoadSingle("select * from ".$this->config["table_prefix"]."pages where tag = '".mysql_real_escape_string($db_tag)."' ".($time ? "and time = '".mysql_real_escape_string($time)."'" : "and latest = 'Y'")." limit 1"); |
|---|
| 52 | if ($page) { $page["tag"] = $tag; } |
|---|
| 53 | // cache result |
|---|
| 54 | if ($page && !$time) { |
|---|
| 55 | $this->pageCache[$page["tag"]] = $page; |
|---|
| 56 | } elseif (!$page) { |
|---|
| 57 | $this->pageCache[$tag] = "cached_nonexistent_page"; |
|---|
| 58 | } |
|---|
| 59 | return $page; |
|---|
| 60 | } |
|---|