/[cvs]/bareface/yakka/storage-providers/YakkaMySqlPageAdapter.php
ViewVC logotype

Contents of /bareface/yakka/storage-providers/YakkaMySqlPageAdapter.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (show annotations)
Sun Jan 5 00:22:26 2003 UTC (21 years, 6 months ago) by bareface
Branch: MAIN
CVS Tags: HEAD
init;

1 <?php
2 /*
3
4 YakkaMySqlPageAdapter
5
6 Default implementation of a YakkaPageStorage.
7
8 This is the reference implementation of a YakkaPageStorage enabling access to a mysql-based storage-provider.
9 */
10
11 require_once("YakkaMySqlDatabase.php");
12 require_once("library/YakkaPage.php");
13
14 class YakkaMySqlPageAdapter extends YakkaMySqlDatabase {
15 var $table;
16
17 function YakkaMySqlPageAdapter($parameters = null) {
18 $this->YakkaMySqlDatabase();
19
20 if ($parameters)
21 $this->connect($parameters["host"], $parameters["database"], $parameters["user"], $parameters["password"]);
22
23 if (!$prefix = $parameters["table-prefix"])
24 $this->table = "pages";
25 else
26 $this->table = $prefix."pages";
27
28 }
29
30 function hasPage($id) {
31 $sql = "select page_id from $this->table where page_tag = '".$this->escapeString($id)."' and page_is_latest_flag = 'Y' limit 1";
32 return $this->queryRecord($sql) ? true : false;
33 }
34
35 function loadPage($id) {
36 $id = $this->escapeString($id);
37 $sql =
38 <<<MYSQL
39 SELECT
40 page_tag,
41 page_name,
42 page_source,
43 page_comment,
44 page_version,
45 page_is_latest_flag,
46 page_create_user_tag,
47 page_modify_user_tag,
48 unix_timestamp(page_create_date) AS page_create_timestamp,
49 unix_timestamp(page_modify_date) AS page_modify_timestamp
50 FROM
51 $this->table
52 WHERE
53 page_tag = '$id'
54 AND
55 page_is_latest_flag = 'Y'
56 LIMIT 1
57 MYSQL;
58
59 if ($result = $this->queryRecord($sql))
60 return array(
61 "id" => $result["page_tag"],
62 "name" => $result["page_name"],
63 "source" => $result["page_source"],
64 "version" => $result["page_version"],
65 "comment" => $result["page_comment"],
66 "islatest" => ($result["page_is_latest_flag"] == 'Y' ? true : false),
67 "createuserid" => $result["page_create_user_tag"],
68 "modifyuserid" => $result["page_modify_user_tag"],
69 "createtimestamp" => $result["page_create_timestamp"],
70 "modifytimestamp" => $result["page_modify_timestamp"]
71 );
72
73 return null;
74 }
75
76 function savePage($tag, $name, $source, $version, $comment = null, $createUserId = null, $modifyUserId = null, $createTimestamp = null, $modifyTimestamp = null) {
77 $tag = $this->escapeString($tag);
78 $name = $this->escapeString($name);
79 $source = $this->escapeString(trim($source));
80 $version = $this->escapeString($version);
81 if ($comment)
82 $comment = $this->escapeString($comment);
83
84 $createDate = $createTimestamp ? date("Y-m-d H:i:s", $createTimestamp) : date("Y-m-d H:i:s");
85 $modifyDate = $modifyTimestamp ? date("Y-m-d H:i:s", $modifyTimestamp) : date("Y-m-d H:i:s");
86
87 $update =
88 <<<MYSQL
89 UPDATE
90 $this->table
91 SET
92 page_is_latest_flag = 'N'
93 WHERE
94 page_tag = '$tag'
95 AND
96 page_is_latest_flag = 'Y'
97 MYSQL;
98
99 $insert =
100 <<<MYSQL
101 INSERT INTO
102 $this->table
103 SET
104 page_tag = '$tag',
105 page_name = '$name',
106 page_source = '$source',
107 page_version = '$version',
108 MYSQL;
109
110 if ($comment)
111 $insert .= "page_comment = '$comment',";
112
113 if ($createUserId)
114 $insert .= "page_create_user_tag = '$createUserId',";
115
116 if ($modifyUserId)
117 $insert .= "page_modify_user_tag = '$modifyUserId',";
118
119 $insert .=
120 <<<MYSQL
121 page_create_date = '$createDate',
122 page_modify_date = '$modifyDate',
123 page_is_latest_flag = 'Y'
124 MYSQL;
125
126 return $this->execute($update) && $this->execute($insert);
127 }
128 }
129
130 ?>

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed