[Phpbbkb-checkins] SF.net SVN: phpbbkb: [31] root
Status: Alpha
Brought to you by:
markthedaemon
|
From: <so...@us...> - 2006-12-16 00:23:57
|
Revision: 31
http://svn.sourceforge.net/phpbbkb/?rev=31&view=rev
Author: softphp
Date: 2006-12-15 16:23:56 -0800 (Fri, 15 Dec 2006)
Log Message:
-----------
- Added some sorting code, and finished editing and adding categories, all needs testing of course.
Modified Paths:
--------------
root/admin/admin_kb.php
root/templates/subSilver/admin/kb_editcat.tpl
Modified: root/admin/admin_kb.php
===================================================================
--- root/admin/admin_kb.php 2006-12-15 14:33:32 UTC (rev 30)
+++ root/admin/admin_kb.php 2006-12-16 00:23:56 UTC (rev 31)
@@ -50,7 +50,9 @@
{
if(!isset($HTTP_POST_VARS['submit']))
{
- $sql = "SELECT * FROM " . KB_CATEGORIES_TABLE . " WHERE cat_id = '" . $edit . "'";
+ $sql = "SELECT *
+ FROM " . KB_CATEGORIES_TABLE . "
+ WHERE cat_id = '" . $edit . "'";
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Couldn't get category from categories table", "", __LINE__, __FILE__, $sql);
@@ -62,7 +64,7 @@
);
$parent = generate_cat_parents($cat['cat_main']);
- $s_hidden_fields = "";
+ $s_hidden_fields = "<input type=\"hidden\" name=\"oldparent\" value=\"" . $cat['cat_main'] . "\">";
$template->assign_vars(array(
'L_HEADER' => $lang['kbadm_header_editcat'],
@@ -85,7 +87,88 @@
}
else
{
+ $error_msg = '';
+ if(!isset($HTTP_POST_VARS['title']) || $HTTP_POST_VARS['title'] == "")
+ {
+ $error_msg .= (!empty($error_msg)) ? '<br />' . $lang['admkb_empty_cat_title'] : $lang['admkb_empty_cat_title'];
+ }
+
+ if(!isset($HTTP_POST_VARS['desc']) || $HTTP_POST_VARS['desc'] == "")
+ {
+ $error_msg .= (!empty($error_msg)) ? '<br />' . $lang['admkb_empty_cat_title'] : $lang['admkb_empty_cat_title'];
+ }
+
+ if($error_msg != '')
+ {
+ $sql = "SELECT *
+ FROM " . KB_CATEGORIES_TABLE . "
+ WHERE cat_id = '" . $edit . "'";
+ if(!$result = $db->sql_query($sql))
+ {
+ message_die(GENERAL_ERROR, "Couldn't get category from categories table", "", __LINE__, __FILE__, $sql);
+ }
+ $cat = $db->sql_fetchrow($result);
+
+ $template->set_filenames(array(
+ 'body' => 'admin/kb_editcat.tpl')
+ );
+
+ $parent = generate_cat_parents($cat['cat_main']);
+ $s_hidden_fields = "<input type=\"hidden\" name=\"oldparent\" value=\"" . $cat['cat_main'] . "\">";
+
+ $template->set_filenames(array(
+ 'reg_header' => 'error_body.tpl')
+ );
+
+ $template->assign_vars(array(
+ 'ERROR_MESSAGE' => $error_msg)
+ );
+
+ $template->assign_var_from_handle('ERROR_BOX', 'reg_header');
+
+ $template->assign_vars(array(
+ 'L_HEADER' => $lang['kbadm_header_editcat'],
+ 'L_EXPLAIN' => $lang['kbadm_explain_editcat'],
+ 'L_CAT_SETTINGS' => $lang['kbadm_cat_settings'],
+ 'L_CAT_TITLE' => $lang['kbadm_cat_title'],
+ 'L_CAT_DESCRIPTION' => $lang['kbadm_cat_desc'],
+ 'L_CAT_PARENT' => $lang['kbadm_cat_parent'],
+
+ 'CAT_TITLE' => $cat['cat_title'],
+ 'CAT_DESC' => $cat['cat_desc'],
+
+ 'S_SUBMIT_VALUE' => $lang['kbadm_editcat'],
+ 'S_PARENT' => $parent,
+ 'S_HIDDEN_FIELDS' => $s_hidden_fields,
+ 'S_FORUM_ACTION' => append_sid("admin_kb." . $phpEx . "?edit=" . $edit)
+ );
+
+ $template->pparse('body');
+ }
+ else
+ {
+ $parent = isset($HTTP_POST_VARS['parent']) ? $HTTP_POST_VARS['parent'] : 0;
+
+ $sql = "UPDATE " . KB_CATEGORIES_TABLE . "
+ SET cat_main = '" . $parent . "',
+ cat_title = '" . trim(htmlspecialchars($HTTP_POST_VARS['title'])) . "',
+ cat_desc = '" . trim(htmlspecialchars($HTTP_POST_VARS['desc'])) . "'
+ WHERE cat_id = '" . $edit . "'";
+
+ if(!$db->sql_query($sql))
+ {
+ message_die(GENERAL_ERROR, "Couldn't edit category.", "", __LINE__, __FILE__, $sql);
+ }
+
+ if($HTTP_POST_VARS['oldparent'] != $HTTP_POST_VARS['parent'])
+ {
+ // Parent category changed, alter the order
+ sort_cats("edit", $edit, 0, array(0 => $HTTP_POST_VARS['parent'], 1 => $HTTP_POST_VARS['oldparent']));
+ }
+
+ // And a message here somewhere
+ }
}
}
@@ -123,13 +206,80 @@
}
else
{
+ $error_msg = '';
+ if(!isset($HTTP_POST_VARS['title']) || $HTTP_POST_VARS['title'] == "")
+ {
+ $error_msg .= (!empty($error_msg)) ? '<br />' . $lang['admkb_empty_cat_title'] : $lang['admkb_empty_cat_title'];
+ }
+
+ if(!isset($HTTP_POST_VARS['desc']) || $HTTP_POST_VARS['desc'] == "")
+ {
+ $error_msg .= (!empty($error_msg)) ? '<br />' . $lang['admkb_empty_cat_title'] : $lang['admkb_empty_cat_title'];
+ }
+
+ if($error_msg != '')
+ {
+ $template->set_filenames(array(
+ 'body' => 'admin/kb_editcat.tpl')
+ );
+
+ $parent = generate_cat_parents($cat['cat_main']);
+ $s_hidden_fields = "";
+
+ $template->set_filenames(array(
+ 'reg_header' => 'error_body.tpl')
+ );
+
+ $template->assign_vars(array(
+ 'ERROR_MESSAGE' => $error_msg)
+ );
+
+ $template->assign_var_from_handle('ERROR_BOX', 'reg_header');
+
+ $template->assign_vars(array(
+ 'L_HEADER' => $lang['kbadm_header_editcat'],
+ 'L_EXPLAIN' => $lang['kbadm_explain_editcat'],
+ 'L_CAT_SETTINGS' => $lang['kbadm_cat_settings'],
+ 'L_CAT_TITLE' => $lang['kbadm_cat_title'],
+ 'L_CAT_DESCRIPTION' => $lang['kbadm_cat_desc'],
+ 'L_CAT_PARENT' => $lang['kbadm_cat_parent'],
+
+ 'S_SUBMIT_VALUE' => $lang['kbadm_editcat'],
+ 'S_PARENT' => $parent,
+ 'S_HIDDEN_FIELDS' => $s_hidden_fields,
+ 'S_FORUM_ACTION' => append_sid("admin_kb." . $phpEx . "?edit=" . $edit)
+ );
+
+ $template->pparse('body');
+ }
+ else
+ {
+ $parent = isset($HTTP_POST_VARS['parent']) ? $HTTP_POST_VARS['parent'] : 0;
+
+ $sql = "INSERT INTO " . KB_CATEGORIES_TABLE . " (cat_id, cat_main, cat_title, cat_desc, cat_articles, cat_order)
+ VALUES ('', '" . $parent . "', '" . trim(htmlspecialchars($HTTP_POST_VARS['title'])) . "', '" . trim(htmlspecialchars($HTTP_POST_VARS['desc'])) . "', '0', '9999');";
+
+ if(!$db->sql_query($sql))
+ {
+ message_die(GENERAL_ERROR, "Couldn't insert new category.", "", __LINE__, __FILE__, $sql);
+ }
+
+ sort_cats("add", $db->sql_nextid(), 0, $parent);
+
+ // And a message here somewhere
+ }
}
}
if($sort != false)
{
+ $sort = explode("|", $sort);
+ // ok so ?sort=id|up(1)/down(-1)
+ sort_cats("", $sort[0], $sort[1]);
+
+ // And yes yet another message here
}
// Show categories as list
@@ -199,4 +349,89 @@
return $parent;
}
+
+function sort_cats($type = "", $id = 0, $dir = 0, $level = 0)
+{
+ if($type == "add")
+ {
+ $sql = "SELECT cat_id
+ FROM " . KB_CATEGORIES_TABLE . "
+ WHERE cat_main = '" . $level . "'
+ ORDER BY cat_order ASC";
+
+ if(!$result = $db->sql_query($sql))
+ {
+ message_die(GENERAL_ERROR, "Couldn't retrieve order data from cat table.", "", __LINE__, __FILE__, $sql);
+ }
+
+ $cat_number = $db->sql_numrows($result);
+
+ $sql = "UPDATE " . KB_CATEGORIES_TABLE . "
+ SET cat_order = '" . $cat_number + 1 . "'
+ WHERE cat_id = '" . $id . "'";
+
+ if(!$db->sql_query($sql))
+ {
+ message_die(GENERAL_ERROR, "Couldn't alter categories order.", "", __LINE__, __FILE__, $sql);
+ }
+
+ return;
+ }
+ elseif($type == "edit")
+ {
+ // First clean up in the old level where it is gone from
+ $sql = "SELECT cat_id
+ FROM " . KB_CATEGORIES_TABLE . "
+ WHERE cat_main = '" . $level[1] . "'
+ ORDER BY cat_order ASC";
+
+ if(!$result = $db->sql_query($sql))
+ {
+ message_die(GENERAL_ERROR, "Couldn't retrieve order data from cat table.", "", __LINE__, __FILE__, $sql);
+ }
+
+ $sql = "";
+ $i = 0;
+ while($old_cat = $db->sql_fetchrow($result))
+ {
+ $i++;
+ $sql .= "UPDATE " . KB_CATEGORIES_TABLE . "
+ SET cat_order = '" . $i . "'
+ WHERE cat_id = '" . $old_cat['cat_id'] . "';\n";
+ }
+
+ if(!$db->sql_query($sql))
+ {
+ message_die(GENERAL_ERROR, "Couldn't sort old level order in cat table.", "", __LINE__, __FILE__, $sql);
+ }
+
+ // Ok insert it in the back of the new one :)
+ $sql = "SELECT cat_id
+ FROM " . KB_CATEGORIES_TABLE . "
+ WHERE cat_main = '" . $level[0] . "'
+ ORDER BY cat_order ASC";
+
+ if(!$result = $db->sql_query($sql))
+ {
+ message_die(GENERAL_ERROR, "Couldn't retrieve order data from cat table.", "", __LINE__, __FILE__, $sql);
+ }
+
+ $cat_number = $db->sql_numrows($result);
+
+ $sql = "UPDATE " . KB_CATEGORIES_TABLE . "
+ SET cat_order = '" . $cat_number + 1 . "'
+ WHERE cat_id = '" . $id . "'";
+
+ if(!$db->sql_query($sql))
+ {
+ message_die(GENERAL_ERROR, "Couldn't alter categories order.", "", __LINE__, __FILE__, $sql);
+ }
+
+ return;
+ }
+ else
+ {
+ return;
+ }
+}
?>
Modified: root/templates/subSilver/admin/kb_editcat.tpl
===================================================================
--- root/templates/subSilver/admin/kb_editcat.tpl 2006-12-15 14:33:32 UTC (rev 30)
+++ root/templates/subSilver/admin/kb_editcat.tpl 2006-12-16 00:23:56 UTC (rev 31)
@@ -3,6 +3,7 @@
<p>{L_EXPLAIN}</p>
+{ERROR_BOX}
<form action="{S_FORUM_ACTION}" method="post">
<table width="100%" cellpadding="4" cellspacing="1" border="0" class="forumline" align="center">
<tr>
@@ -10,11 +11,11 @@
</tr>
<tr>
<td class="row1">{L_CAT_TITLE}</td>
- <td class="row2"><input type="text" size="25" name="forumname" value="{CAT_TITLE}" class="post" /></td>
+ <td class="row2"><input type="text" size="25" name="title" value="{CAT_TITLE}" class="post" /></td>
</tr>
<tr>
<td class="row1">{L_CAT_DESCRIPTION}</td>
- <td class="row2"><textarea rows="5" cols="45" wrap="virtual" name="forumdesc" class="post">{DESCRIPTION}</textarea></td>
+ <td class="row2"><textarea rows="5" cols="45" wrap="virtual" name="desc" class="post">{DESCRIPTION}</textarea></td>
</tr>
<tr>
<td class="row1">{L_CAT_PARENT}</td>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|