From: <we...@us...> - 2003-03-13 12:44:44
|
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); } |