Update of /cvsroot/php-blog/jBlog
In directory sc8-pr-cvs1:/tmp/cvs-serv28657
Modified Files:
index.php jBlog_admin.php jBlog_admin_css.inc.php
jBlog_admin_entries.inc.php jBlog_admin_plugins.inc.php
jBlog_config.inc.php jBlog_functions.inc.php
Added Files:
jBlog_admin_category.inc.php jBlog_db_mysql.inc.php
Log Message:
Moving towards db abstraction.
Added categories support to the web interface.
--- NEW FILE: jBlog_admin_category.inc.php ---
<?php
if (IN_JBLOG !== true) die ("Don't hack!");
session_start();
$cat_to_edit = (int)$_GET['jBlog']['cat']['catid'];
$msg = "";
if (isset($_POST['SAVE'])) {
$name = addslashes($_POST['jBlog']['cat']['name']);
$desc = addslashes($_POST['jBlog']['cat']['description']);
if ($cat_to_edit == 0) {
$query = "INSERT INTO $jBlog[dbPrefix]category (category_name, category_description, authorid) values ('$name', '$desc', $_SESSION[jBlogAuthorid])";
} else {
$query = "UPDATE $jBlog[dbPrefix]category SET category_name='$name', category_description='$desc' where categoryid=$cat_to_edit";
}
$r = jBlog_db_query($query);
if (is_string($r)) {
$msg = $r;
} else {
$msg = "Category Saved";
}
}
$cats = jBlog_fetchCategories();
if ($cat_to_edit > 0) {
foreach ($cats as $cat_data) {
if ($cat_data['categoryid'] == $cat_to_edit) {
$this_cat = $cat_data;
break;
}
}
}
?>
<font color="red"><?= $msg ?></font>
<form method="POST" name="jBlogCategory">
<?php
if ($cat_to_edit == 0) {
$desc = "Create a New Category";
$save = "Create";
} else {
$desc = htmlentities("Edit \"$this_cat[category_name] - $this_cat[category_description]\"");
$save = "Save";
}
?>
<b><?= $desc ?></b>
<table cellpadding="5">
<tr>
<th>Name</th>
<td><input type="text" name="jBlog[cat][name]" value="<?= htmlentities($this_cat['category_name']) ?>" /></td>
</tr>
<tr>
<th>Description</th>
<td><input type="text" name="jBlog[cat][description]" value="<?= htmlentities($this_cat['category_description']) ?>"/></td>
</tr>
</table>
<input type="submit" name="SAVE" value="<?= $save ?>">
<br />
<br />
<b>Click on a category to edit it</b>
<table>
<?php
foreach ($cats as $cat_data) {
$name = htmlentities($cat_data['category_name']);
$desc = htmlentities($cat_data['category_description']);
echo "<tr><td>• <a href=\"?jBlog[adminModule]=category&jBlog[cat][catid]=$cat_data[categoryid]\">$name - $desc</a></td></tr>\n";
}
?>
<tr><td>• <a href="?jBlog[adminModule]=category&jBlog[cat][catid]=0">Create New Category</a></td></tr>
</table>
</form>
--- NEW FILE: jBlog_db_mysql.inc.php ---
<?php
/* Issues a query to the underlying database;
* returns:
* false if there was an error,
* true if the query succeeded but did not generate any rows
* array of field values if it returned a single row and $single is true
* array of array of field values if it returned row(s)
*/
function jBlog_db_query($sql, $single = false, $result_type = "both")
{
global $jBlog;
static $type_map = array(
'assoc' => MYSQL_ASSOC,
'num' => MYSQL_NUM,
'both' => MYSQL_BOTH
);
$c = mysql_db_query($jBlog['dbName'], $sql);
if (!$c) {
print mysql_error();
return false;
}
if ($c === true) {
return true;
}
$result_type = $type_map[$result_type];
switch(mysql_num_rows($c)) {
case 0:
if ($single) {
return false;
}
return true;
case 1:
if ($single) {
return mysql_fetch_array($c, $result_type);
}
default:
$rows = array();
while (($row = mysql_fetch_array($c, $result_type))) {
$rows[] = $row;
}
return $rows;
}
}
function jBlog_db_insert_id()
{
return mysql_insert_id();
}
function jBlog_db_affected_rows()
{
return mysql_affected_rows();
}
function jBlog_db_update($table, $keys, $values)
{
global $jBlog;
$set = "";
foreach ($values as $k => $v) {
if (strlen($set))
$set .= ", ";
$set .= "$k='" . jBlog_db_escape_string($v) . "'";
}
$where = "";
foreach ($keys as $k => $v) {
if (strlen($where))
$where .= ", ";
$where .= "$k='" . jBlog_db_escape_string($v) . "'";
}
return jBlog_db_query("UPDATE $jBlog['dbPrefix']$table SET $set $where");
}
function jBlog_db_insert($table, $values)
{
global $jBlog;
$names = implode(",", array_keys($values));
$vals = "";
foreach ($values as $k => $v) {
if (strlen($vals))
$vals .= ", ";
$vals .= "$k='" . jBlog_db_escape_string($v) . "'";
}
return jBlog_db_query("INSERT INTO $jBlog['dbPrefix']$table ($names) values ($vals)");
}
function jBlog_db_escape_string($string)
{
return mysql_escape_string($string);
}
function jBlog_db_connect()
{
global $jBlog;
$jBlog['dbConn'] = mysql_connect($jBlog['dbHost'], $jBlog['dbUser'], $jBlog['dbPass']);
return $jBlog['dbConn'];
}
?>
Index: index.php
===================================================================
RCS file: /cvsroot/php-blog/jBlog/index.php,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- index.php 11 Mar 2003 19:05:18 -0000 1.7
+++ index.php 13 Mar 2003 12:44:39 -0000 1.8
@@ -35,10 +35,8 @@
$_GET['jBlog']['action'] = 'read';
$_GET['jBlog']['id'] = $id;
- $cursor = mysql_db_query($jBlog['dbName'],
- "SELECT title FROM {$jBlog['dbPrefix']}entries " .
- 'WHERE id=' . mysql_escape_string($id));
- $title = mysql_fetch_row($cursor);
+ $title = jBlog_db_query("SELECT title FROM {$jBlog['dbPrefix']}entries " .
+ 'WHERE id=' . jBlog_db_escape_string($id), true);
$title = $title[0];
$jBlog['blogSubTitle'] = $title;
Index: jBlog_admin.php
===================================================================
RCS file: /cvsroot/php-blog/jBlog/jBlog_admin.php,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -d -r1.19 -r1.20
--- jBlog_admin.php 11 Mar 2003 18:49:06 -0000 1.19
+++ jBlog_admin.php 13 Mar 2003 12:44:39 -0000 1.20
@@ -65,6 +65,13 @@
</div>
<div class="jBlogSideBarItem">
+ <div class="jBlogSideBarTitle">Categories:</div>
+ <div class="jBlogSideBarContent">
+ • <a href='?jBlog[adminModule]=category&jBlog[adminAction]=editSelect'>Edit Categories</a><br>
+ </div>
+ </div>
+
+ <div class="jBlogSideBarItem">
<div class="jBlogSideBarTitle">Images:</div>
<div class="jBlogSideBarContent">
• <a href='?jBlog[adminModule]=images&jBlog[adminAction]=addSelect'>Add images</a><br>
@@ -111,6 +118,10 @@
case "css":
include("jBlog_admin_css.inc.php");
break;
+
+ case "category":
+ include "jBlog_admin_category.inc.php";
+ break;
case "plugins":
include "jBlog_admin_plugins.inc.php";
Index: jBlog_admin_css.inc.php
===================================================================
RCS file: /cvsroot/php-blog/jBlog/jBlog_admin_css.inc.php,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- jBlog_admin_css.inc.php 6 Mar 2003 17:09:34 -0000 1.3
+++ jBlog_admin_css.inc.php 13 Mar 2003 12:44:39 -0000 1.4
@@ -19,7 +19,7 @@
"name"=>$jBlog["POST"]["name"],
"data" =>$jBlog["POST"]["data"]);
$res = jBlog_updateCSS($entry);
- if ($res != "")
+ if (is_string($res))
jBlog_printCSSForm("?", "edit", array("jBlog[action]" => "admin", "jBlog[adminModule]" => "css", "jBlog[adminAction]" => "save"), $entry, "Error: <b>$res</b>");
else
jBlog_printCSSForm("?", "edit", array("jBlog[action]" => "admin", "jBlog[adminModule]" => "css", "jBlog[adminAction]" => "save"), $entry);
@@ -60,8 +60,8 @@
jBlog_set_config_var("default_css", $css['name']);
} else if (isset($_POST['DELETE'])) {
if (is_numeric($_POST['jBlog']['cssid'])) {
- $id = mysql_escape_string($_POST['jBlog']['cssid']);
- mysql_db_query($jBlog['dbName'], "delete from $jBlog[dbPrefix]css where cssid='$id'");
+ $id = jBlog_db_escape_string($_POST['jBlog']['cssid']);
+ jBlog_db_query("delete from $jBlog[dbPrefix]css where cssid='$id'");
}
jBlog_printCSSForm("?", "choose", array("jBlog[action]" => "admin", "jBlog[adminModule]" => "css"), $entry);
} else {
Index: jBlog_admin_entries.inc.php
===================================================================
RCS file: /cvsroot/php-blog/jBlog/jBlog_admin_entries.inc.php,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- jBlog_admin_entries.inc.php 11 Mar 2003 19:16:53 -0000 1.9
+++ jBlog_admin_entries.inc.php 13 Mar 2003 12:44:39 -0000 1.10
@@ -72,9 +72,11 @@
"title"=>$jBlog["POST"]["title"],
"timestamp" => $jBlog["POST"]["timestamp"],
"body" =>$jBlog["POST"]["body"],
- "extended" => $jBlog["POST"]["extended"]);
+ "extended" => $jBlog["POST"]["extended"],
+ "categoryid" => $jBlog['POST']['categoryid']
+ );
$res = jBlog_updertEntry($entry);
- if ($res !== true)
+ if (is_string($res))
jBlog_printEntryForm("?", array("jBlog[action]" => "admin", "jBlog[adminModule]" => "entries",
"jBlog[adminAction]" => "save"), $entry, "Error: <b>$res</b>");
else
Index: jBlog_admin_plugins.inc.php
===================================================================
RCS file: /cvsroot/php-blog/jBlog/jBlog_admin_plugins.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- jBlog_admin_plugins.inc.php 11 Mar 2003 03:24:53 -0000 1.4
+++ jBlog_admin_plugins.inc.php 13 Mar 2003 12:44:39 -0000 1.5
@@ -156,9 +156,13 @@
return $x . "</select>";
}
+$sort_order = 0;
+
foreach ($plugins as $plugin_data) {
$plugin =& jblog_plugin_api::load_plugin($plugin_data['name']);
+ $key = urlencode($plugin_data['name']);
+
/* query for its name, description and configuration data */
$bag = new jBlog_property_bag;
$plugin->introspect($bag);
@@ -176,7 +180,7 @@
}
if ($bag->is_set('configuration')) {
- $url = "?jBlog[adminModule]=plugins&jBlog[plugin_to_conf]=" . urlencode($plugin_data['name']);
+ $url = "?jBlog[adminModule]=plugins&jBlog[plugin_to_conf]=$key";
$desc = "<a href=\"$url\">$desc</a>";
$name = "<a href=\"$url\">$name</a>";
$title = "<a href=\"$url\">$title</a>";
Index: jBlog_config.inc.php
===================================================================
RCS file: /cvsroot/php-blog/jBlog/jBlog_config.inc.php,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- jBlog_config.inc.php 11 Mar 2003 19:23:21 -0000 1.3
+++ jBlog_config.inc.php 13 Mar 2003 12:44:39 -0000 1.4
@@ -56,13 +56,9 @@
// Connect to database
-$jBlog["dbConn"] = mysql_connect($jBlog["dbHost"], $jBlog["dbUser"], $jBlog["dbPass"]);
-if (!is_resource($jBlog["dbConn"]))
+if (!is_resource(jBlog_db_connect())) {
die ("jBlog error: unable to connect to database - exiting");
-
-/* $jBlog["db"] = mysql_select_db($jBlog["dbName"]);
-if (!is_resource($jBlog["db"]))
- die ("jBlog error: unable to select database - exiting"); */
+}
// Merge get and post into the jBlog array
$jBlog["GET"] = &$_GET["jBlog"];
Index: jBlog_functions.inc.php
===================================================================
RCS file: /cvsroot/php-blog/jBlog/jBlog_functions.inc.php,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -d -r1.60 -r1.61
--- jBlog_functions.inc.php 13 Mar 2003 06:58:27 -0000 1.60
+++ jBlog_functions.inc.php 13 Mar 2003 12:44:39 -0000 1.61
@@ -11,6 +11,8 @@
if (IN_JBLOG !== true) die ("Don't hack!");
+include_once "jBlog_db_mysql.inc.php";
+
$jBlog["imageList"] = array();
function jBlog_displayCommentForm($id) {
global $jBlog;
@@ -93,11 +95,11 @@
$nextYear = $year+1;}
// Find out about diary entries
- $querystring = "SELECT FROM_UNIXTIME(timestamp, '%e'),timestamp FROM ".$jBlog["dbPrefix"]."entries WHERE FROM_UNIXTIME(timestamp,'%c') LIKE $month AND FROM_UNIXTIME(timestamp,'%Y') LIKE $year";
- $query = mysql_query($querystring);
+ $querystring = "SELECT FROM_UNIXTIME(timestamp, '%e') as day, timestamp FROM ".$jBlog["dbPrefix"]."entries WHERE FROM_UNIXTIME(timestamp,'%c') LIKE $month AND FROM_UNIXTIME(timestamp,'%Y') LIKE $year";
+ $rows = jBlog_db_query($querystring);
$activeDays = array();
- while($row = @mysql_fetch_row($query)) {
- $activeDays[$row[0]] = $row[1];
+ foreach ($rows as $row) {
+ $activeDays[$row["day"]] = $row["timestamp"];
}
// Prepare the table
@@ -192,8 +194,8 @@
$query = "SELECT e.*, a.*, c.category_name FROM {$jBlog['dbPrefix']}entries e, {$jBlog['dbPrefix']}authors a left join {$jBlog['dbPrefix']}category c ON e.categoryid = c.categoryid WHERE e.authorid = a.authorid and e.authorid = c.authorid " . $and .
"ORDER BY timestamp DESC $limit";
$ret = jBlog_db_query($query);
- if (!$ret) {
- die("Query failed: " . mysql_error() . "\n");
+ if (is_string($ret)) {
+ die("Query failed: $ret");
}
return $ret;
@@ -208,24 +210,24 @@
if ($full === true) $body = ", body, extended";
$querystring = "SELECT * FROM ".$jBlog["dbPrefix"]."entries e, $jBlog[dbPrefix]authors a
WHERE a.authorid = e.authorid AND $key LIKE $val LIMIT 1";
- $query = mysql_db_query($jBlog["dbName"], $querystring);
- return mysql_fetch_assoc($query);
+ return jBlog_db_query($querystring, true);
}
/**
* Fetches a users categories
**/
-function jBlog_fetchCategories($authorid) {
+function jBlog_fetchCategories($authorid = null) {
global $jBlog;
+
+ if ($authorid === null) {
+ $authorid = $_SESSION['jBlogAuthorid'];
+ }
+
$querystring = "SELECT * FROM ".$jBlog['dbPrefix']."category
WHERE authorid = $authorid";
- $query = mysql_db_query($jBlog["dbName"], $querystring);
- $retval = array();
- while( $row = mysql_fetch_assoc($query)) {
- $retval[] = $row;
- }
- return $retval;
+
+ return jBlog_db_query($querystring);
}
@@ -237,11 +239,8 @@
$querystring = "SELECT id, author, timestamp, comments, title, body, extended FROM ".$jBlog["dbPrefix"]."entries
WHERE MATCH (title, extended, body) AGAINST ('".addslashes($term)."') ORDER BY timestamp DESC";
- $query = mysql_db_query($jBlog["dbName"], $querystring);
- while($row = mysql_fetch_assoc($query)) {
- $ret[] = $row;
- }
- return $ret;
+
+ return jBlog_db_query($query);
}
@@ -350,14 +349,10 @@
$query .= " LIMIT $limit";
}
- $cursor = mysql_db_query($jBlog['dbName'], $query);
-
- $results = array();
- while ($row = @mysql_fetch_array($cursor)) {
- array_push($results, $row);
- }
-
- return $results;
+ $comments = jBlog_db_query($query);
+ if (!is_array($comments))
+ return array();
+ return $comments;
}
function jBlog_printComments($comments)
@@ -392,27 +387,26 @@
function jBlog_saveComment($id, $commentInfo, $type='NORMAL') {
global $jBlog;
- $title = mysql_escape_string($commentInfo['title']);
- $comments = mysql_escape_string($commentInfo['comment']);
- $name = mysql_escape_string($commentInfo['name']);
- $url = mysql_escape_string($commentInfo['url']);
- $email = mysql_escape_string($commentInfo['email']);
+ $title = jBlog_db_escape_string($commentInfo['title']);
+ $comments = jBlog_db_escape_string($commentInfo['comment']);
+ $name = jBlog_db_escape_string($commentInfo['name']);
+ $url = jBlog_db_escape_string($commentInfo['url']);
+ $email = jBlog_db_escape_string($commentInfo['email']);
$t = time();
$query = "INSERT INTO {$jBlog['dbPrefix']}comments (entry_id, author, email, url, body, type, timestamp, title)";
$query .= " VALUES ('$id', '$name', '$email', '$url', '$comments', '$type', '$t', '$title')";
- mysql_db_query($jBlog['dbName'], $query);
+ jBlog_db_query($query);
$query = "UPDATE {$jBlog['dbPrefix']}entries SET comments=comments+1 WHERE id='$id'";
- mysql_db_query($jBlog['dbName'], $query);
+ jBlog_db_query($query);
$query = "SELECT email, title, mail_comments
FROM {$jBlog['dbPrefix']}entries e, {$jBlog['dbPrefix']}authors a
WHERE e.id = '$id'
AND e.authorid = a.authorid";
- $cursor = mysql_db_query($jBlog['dbName'], $query);
- $row = mysql_fetch_assoc($cursor);
+ $row = jBlog_db_query($query, true);
if($row['mail_comments']) {
jBlog_sendComment($row['email'], $name, $email, $url, $id,
$row['title'], $comments);
@@ -447,15 +441,9 @@
{
global $jBlog;
- $query = "SELECT name,link FROM {$jBlog['dbPrefix']}references WHERE entry_id='" . mysql_escape_string($id) . "'";
- $cursor = mysql_db_query($jBlog['dbName'], $query);
-
- $rows = array();
- while (($row = mysql_fetch_assoc($cursor))) {
- array_push($rows, $row);
- }
+ $query = "SELECT name,link FROM {$jBlog['dbPrefix']}references WHERE entry_id='" . jBlog_db_escape_string($id) . "'";
- return $rows;
+ return jBlog_db_query($query);
}
@@ -789,30 +777,29 @@
// Add URL references
$locations = $matches[0];
$names = $matches[1];
- $tmpid = mysql_escape_string($id);
+ $tmpid = jBlog_db_escape_string($id);
for ($i = 0, $j = count($locations); $i < $j; ++$i) {
if($locations[$i][0] == '/') {
$locations[$i] = "http://".$_SERVER['HTTP_HOST'].$locations[$i];
}
$query = "SELECT COUNT(id) FROM {$jBlog['dbPrefix']}references WHERE ";
- $query .= "entry_id=$tmpid AND link='" . mysql_escape_string($locations[$i]) . "'";
+ $query .= "entry_id=$tmpid AND link='" . jBlog_db_escape_string($locations[$i]) . "'";
- $cursor = mysql_db_query($jBlog['dbName'], $query);
- $row = mysql_fetch_row($cursor);
+ $row = jBlog_db_query($query, true, 'num');
if ($row[0] > 0) {
continue;
}
jBlog_reference_autodiscover($locations[$i], $url, $author, $title, jBlog_trackback_excerpt($text));
}
- mysql_db_query($jBlog['dbName'], "DELETE FROM {$jBlog['dbPrefix']}references WHERE entry_id='$tmpid'");
+ jBlog_db_query("DELETE FROM {$jBlog['dbPrefix']}references WHERE entry_id='$tmpid'");
for ($i = 0; $i < $j; ++$i) {
$query = "INSERT INTO {$jBlog['dbPrefix']}references (entry_id, name, link) VALUES(";
- $query .= "'$tmpid', '" . mysql_escape_string($names[$i]) . "', '";
- $query .= mysql_escape_string($locations[$i]) . "')";
+ $query .= "'$tmpid', '" . jBlog_db_escape_string($names[$i]) . "', '";
+ $query .= jBlog_db_escape_string($locations[$i]) . "')";
- mysql_db_query($jBlog['dbName'], $query);
+ jBlog_db_query($query);
}
// Add citations
@@ -820,9 +807,9 @@
foreach ($matches[1] as $citation) {
$query = "INSERT INTO {$jBlog['dbPrefix']}references (en)try_id, name) VALUES(";
- $query .= "'$tmpid', '" . mysql_escape_string($citation) . "')";
+ $query .= "'$tmpid', '" . jBlog_db_escape_string($citation) . "')";
- mysql_db_query($jBlog['dbName'], $query);
+ jBlog_db_query($query);
}
}
@@ -841,20 +828,27 @@
$exflag = 1;
}
$querystring = "REPLACE INTO ".$jBlog["dbPrefix"]."entries
- (id, title, timestamp, body, extended, comments, exflag, author, authorid)
+ (id, title, timestamp, body, extended, comments, exflag, author, authorid, categoryid)
VALUES (
".$entry["id"].",
- '".mysql_escape_string($entry["title"])."',
+ '".jBlog_db_escape_string($entry["title"])."',
".$entry["timestamp"].",
- '".mysql_escape_string($entry["body"])."',
- '".mysql_escape_string($entry["extended"])."',
+ '".jBlog_db_escape_string($entry["body"])."',
+ '".jBlog_db_escape_string($entry["extended"])."',
'0', '$exflag',
- '".mysql_escape_string($jBlog["user"])."',
- '".$jBlog["authorid"]."')";
- $query = mysql_db_query($jBlog["dbName"], $querystring);
+ '".jBlog_db_escape_string($jBlog["user"])."',
+ '".$jBlog["authorid"]."'," .
+ (int)$entry['categoryid'] .
+ ")";
+ $query = jBlog_db_query($querystring);
+
+ if (is_string($query)) {
+ return $query;
+ }
+
if ($entry['id'] == "NULL") {
$newEntry = 1;
- $entry['id'] = mysql_insert_id();
+ $entry['id'] = jBlog_db_insert_id();
}
if($exflag) {
jBlog_handle_references($entry['id'], $jBlog['blogTitle'], $entry['title'], $entry['extended'], $newEntry);
@@ -865,7 +859,7 @@
jBlog_purgeEntry($entry['id'], $entry['timestamp']);
- return mysql_error()?mysql_error():$entry['id'];
+ return (int)$entry['id'];
}
function jBlog_updateEntry($entry) {
@@ -881,11 +875,14 @@
$exflag = 1;
}
$querystring = "UPDATE ".$jBlog["dbPrefix"]."entries
- SET title = '".mysql_escape_string($entry["title"])."',
- body = '".mysql_escape_string($entry["body"])."',
- extended = '".mysql_escape_string($entry["extended"])."',
+ SET title = '".jBlog_db_escape_string($entry["title"])."',
+ body = '".jBlog_db_escape_string($entry["body"])."',
+ extended = '".jBlog_db_escape_string($entry["extended"])."',
exflag = '$exflag' WHERE id = ".$entry["id"];
- $query = mysql_db_query($jBlog["dbName"], $querystring);
+ $query = jBlog_db_query($querystring);
+ if (is_string($query)) {
+ return $query;
+ }
if($exflag) {
jBlog_handle_references($entry['id'], $jBlog['blogTitle'], $entry['title'], $entry['extended'], $newEntry);
}
@@ -893,7 +890,7 @@
jBlog_handle_references($entry['id'], $jBlog['blogTitle'], $entry['title'], $entry['body'], $newEntry);
}
jBlog_purgeEntry($entry['id'], $entry['timestamp']);
- return mysql_error()?mysql_error():$entry['id'];
+ return $entry['id'];
}
/**
@@ -906,17 +903,14 @@
if (!is_numeric($id)) return false;
// Purge the daily/monthly entries so they can be rebuilt
- $query = mysql_db_query($jBlog["dbName"], "SELECT timestamp FROM {$jBlog['dbPrefix']}entries WHERE id=$id");
- $result = mysql_fetch_row($query);
+ $result = jBlog_db_query("SELECT timestamp FROM {$jBlog['dbPrefix']}entries WHERE id=$id", true);
jBlog_purgeEntry($id, $result[0]);
- $query = mysql_db_query($jBlog["dbName"], "DELETE FROM ".$jBlog["dbPrefix"].
- "entries WHERE id=$id");
+ jBlog_db_query("DELETE FROM ".$jBlog["dbPrefix"]. "entries WHERE id=$id");
- $query = mysql_db_query($jBlog["dbName"], "DELETE FROM ".$jBlog["dbPrefix"].
- "comments WHERE entry_id=$id");
+ jBlog_db_query("DELETE FROM ".$jBlog["dbPrefix"]. "comments WHERE entry_id=$id");
- mysql_db_query($jBlog['dbName'], "DELETE FROM {$jBlog['dbPrefix']}references WHERE entry_id='$id'");
+ jBlog_db_query("DELETE FROM {$jBlog['dbPrefix']}references WHERE entry_id='$id'");
}
function jBlog_updateCSS($css) {
@@ -930,14 +924,17 @@
(cssid, name, data)
VALUES (
".$css["cssid"].",
- '".mysql_escape_string($css["name"])."',
- '".mysql_escape_string($css["data"])."')";
- $query = mysql_db_query($jBlog["dbName"], $querystring);
+ '".jBlog_db_escape_string($css["name"])."',
+ '".jBlog_db_escape_string($css["data"])."')";
+ $query = jBlog_db_query($querystring);
+ if (is_string($query)) {
+ return $query;
+ }
if ($css['cssid'] == "NULL") {
$newEntry = 1;
- $css['cssid'] = mysql_insert_id();
+ $css['cssid'] = jBlog_db_insert_id();
}
- return mysql_error();
+ return $css['cssid'];
}
/**
@@ -1102,8 +1099,8 @@
"VALUES (NULL, $id, ".time().", '".strip_tags($entry["author"])."', ".
"'".strip_tags($entry["email"])."', '".strip_tags($entry["url"])."', '$REMOTE_ADDR', ".
"'".strip_tags($entry["body"])."')";
- mysql_db_query($jBlog["dbName"], $querystring);
- mysql_db_query("UPDATE ".$jBlog["dbPrefix"]." SET comments=comments+1 WHERE id LIKE $id");
+ jBlog_db_query($querystring);
+ jBlog_db_query("UPDATE ".$jBlog["dbPrefix"]." SET comments=comments+1 WHERE id LIKE $id");
}
@@ -1113,10 +1110,21 @@
function jBlog_printEntryForm($targetURL, $hiddens = array(), $entry = array(), $errMsg = "") {
global $jBlog;
- // Determine whether we should WYSIWYG editor
+ $cats = jBlog_fetchCategories();
+
+ $cat_list = "<select name=\"jBlog[categoryid]\">";
+ foreach ($cats as $cat_data) {
+ $selected = $cat_data['categoryid'] == $entry['categoryid'] ? " selected" : "";
+ $cat_list .= "<option value=\"$cat_data[categoryid]\"$selected>" .
+ htmlentities($cat_data['category_name']) .
+ " - " .
+ htmlentities($cat_data['category_description']) .
+ "</option>\n";
+ }
+ $cat_list .= "</select>";
- if ($jBlog["wysiwyg"])
+ if (false && $jBlog["wysiwyg"])
{
?>
<font color="#ff0000"><?=$errMsg?></font>
@@ -1133,6 +1141,7 @@
<td align="left">
<input type="text" name="jBlog[title]" value="<?=$entry["title"]?>" size=30>
</td>
+ <td>Category: <?= $cat_list ?></td>
</tr>
<tr>
<td colspan="2">Entry Body</td>
@@ -1179,7 +1188,8 @@
<td align="left">
<input type="text" name="jBlog[title]" value="<?=htmlentities($entry["title"])?>" size=30>
</td>
- <td align="right">
+ <td nowrap="nowrap" align="right">
+ Category: <?= $cat_list ?>
<input type="button" value=" B " onClick="jBlog_insBasic(document.forms['jBlogEntry']['jBlog[body]'], 'b')">
<input type="button" value=" U " onClick="jBlog_insBasic(document.forms['jBlogEntry']['jBlog[body]'], 'u')">
<input type="button" value=" I " onClick="jBlog_insBasic(document.forms['jBlogEntry']['jBlog[body]'], 'i')">
@@ -1316,43 +1326,6 @@
<?php
}
-/* Issues a query to the underlying database;
- * returns:
- * false if there was an error,
- * true if the query succeeded but did not generate any rows
- * array of field values if it returned a single row and $single is true
- * array of array of field values if it returned row(s)
- */
-function jBlog_db_query($sql, $single = false)
-{
- global $jBlog;
- $c = mysql_db_query($jBlog['dbName'], $sql);
- if (!$c) {
- print mysql_error();
- return false;
- }
- if ($c === true) {
- return true;
- }
- switch(mysql_num_rows($c)) {
- case 0:
- if ($single) {
- return false;
- }
- return true;
- case 1:
- if ($single) {
- return mysql_fetch_assoc($c);
- }
- default:
- $rows = array();
- while (($row = mysql_fetch_assoc($c))) {
- $rows[] = $row;
- }
- return $rows;
- }
-}
-
function jBlog_authenticate_author($username, $password) {
global $jBlog;
@@ -1369,11 +1342,10 @@
WHERE
username = '$username'
AND password = PASSWORD('$password')";
- $cursor = mysql_db_query($jBlog['dbName'], $query);
- if(!$cursor) {
- print mysql_error();
+ $row = jBlog_db_query($query);
+ if(is_string($row)) {
+ print $row;
}
- $row = mysql_fetch_assoc($cursor);
if($row) {
$_SESSION['jBlogUser'] = $jBlog['jBlogUser'] = $username;
$_SESSION['jBlogEmail'] = $jBlog['jBlogEmail'] = $row['email'];
@@ -1409,16 +1381,15 @@
$insert = "INSERT into $jBlog[dbPrefix]referrers
(url, day, count)
VALUES ('$_SERVER[HTTP_REFERER]', now(), 1)";
- $rs = mysql_db_query($jBlog['dbName'], $suppressq);
- $count = mysql_fetch_row($rs);
+ $count = jBlog_db_query($suppressq, true);
if($count[0] > 0) {
- mysql_db_query($jBlog['dbName'], $suppressu);
+ jBlog_db_query($suppressu);
return;
}
- mysql_db_query($jBlog['dbName'], $suppressu);
- $rs = mysql_db_query($jBlog['dbName'], $update);
- if(mysql_affected_rows() == 0) {
- mysql_db_query($jBlog['dbName'], $insert);
+ jBlog_db_query($suppressu);
+ jBlog_db_query($update);
+ if (jBlog_db_affected_rows() == 0) {
+ jBlog_db_query($insert);
}
}
@@ -1426,7 +1397,7 @@
global $jBlog;
$gc = "DELETE FROM $jBlog[dbPrefix]suppress where last < now() - 900";
- mysql_db_query($jBlog['dbName'], $gc);
+ jBlog_db_query($gc);
}
function jBlog_displayTopReferrers($limit=10) {
@@ -1436,29 +1407,32 @@
GROUP BY url
ORDER BY total desc
LIMIT $limit";
- $cursor = mysql_db_query($jBlog['dbName'], $query);
- if($num_rows = mysql_num_rows($cursor)) {
- while($row = mysql_fetch_assoc($cursor)) {
- preg_match("#//([^/]+)#", $row[url], $matches);
+
+ $rows = jBlog_db_query($query);
+ if (is_array($rows)) {
+ foreach ($rows as $row) {
+ preg_match("#//([^/]+)#", $row[url], $matches);
$row['url'] = htmlentities($row['url']);
- echo "<a href=\"$row[url]\">$matches[1] ($row[total])</a><br/>";
- }
- }
+ echo "<a href=\"$row[url]\">$matches[1] ($row[total])</a><br/>";
+ }
+ }
}
function jBlog_set_config_var($name, $val) {
global $jBlog;
- $val = mysql_escape_string($val);
- mysql_db_query($jBlog['dbName'], "REPLACE INTO $jBlog[dbPrefix]config (name,value) values('$name','$val')");
- echo mysql_error();
+ $val = jBlog_db_escape_string($val);
+ $r = jBlog_db_query("REPLACE INTO $jBlog[dbPrefix]config (name,value) values('$name','$val')");
+ if (is_string($r)) {
+ echo $r;
+ }
}
function jBlog_get_config_var($name, $defval = false) {
global $jBlog;
- $name = mysql_escape_string($name);
- $c = mysql_db_query($jBlog['dbName'], "SELECT value from $jBlog[dbPrefix]config where name='$name'");
- if ($c && $row = mysql_fetch_row($c)) {
- return $row[0];
+ $name = jBlog_db_escape_string($name);
+ $c = jBlog_db_query("SELECT value from $jBlog[dbPrefix]config where name='$name'", true);
+ if (is_array($c)) {
+ return $c[0];
}
return $defval;
}
@@ -1469,8 +1443,8 @@
$names = array();
$query = "SELECT cssid, name from $jBlog[dbPrefix]css order by name";
- $cursor = mysql_db_query($jBlog['dbName'], $query);
- while (($row = mysql_fetch_assoc($cursor))) {
+ $rows = jBlog_db_query($query);
+ foreach ($rows as $row) {
$names[$row['cssid']] = $row['name'];
}
return $names;
@@ -1489,9 +1463,7 @@
$query = "SELECT * from $jBlog[dbPrefix]css where name = '$name'";
}
- $cursor = mysql_db_query($jBlog['dbName'], $query);
- $row = mysql_fetch_assoc($cursor);
- return $row;
+ return jBlog_db_query($query, true);
}
function jBlog_emit_htmlarea_code($item)
@@ -1522,11 +1494,13 @@
return;
}
$query = "UPDATE $jBlog[dbPrefix]entries set categoryid = $categories[0] where id = $postid";
- mysql_db_query($jBlog['dbName'], $query);
+ $err = jBlog_db_query($query);
+
+ /* TODO: nuke this */
$fp = fopen("/tmp/a", "w");
fwrite($fp,$query);
- if(mysql_error()) {
- fwrite($fp, mysql_error());
+ if(is_string($err)) {
+ fwrite($fp, $err);
}
fclose($fp);
}
|