Ticket #340: LoadPage2.txt

File LoadPage2.txt, 2.9 KB (added by Olivier Borowski <olivier.borowski@…>, 7 years ago)

Fixed a bug in the previous LoadPage() proposal.

Line 
1========================= trunk =============================
2function 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 =============================
20function 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}