From be4f83cd2a17a0ec05f5bce50c91befaafaa6e0c Mon Sep 17 00:00:00 2001 From: jhunkeler Date: Sun, 20 Dec 2009 18:38:08 +0000 Subject: Test. git-svn-id: http://svn.3rd-infantry-division.org/testing/branches/Bayonet CMS v2@376 c5b2fb0a-d05d-0410-98c8-828840a80ff6 --- modules/admin/admin_functions.php | 151 ++++++++++++++++++++++ modules/admin/blocks/functions.php | 173 +++++++++++++++++++++++++ modules/admin/blocks/index.php | 59 +++++++++ modules/admin/images/addnewarticle.png | Bin 0 -> 6420 bytes modules/admin/images/addnewpage.png | Bin 0 -> 7511 bytes modules/admin/images/announcement.png | Bin 0 -> 9409 bytes modules/admin/images/calendar.png | Bin 0 -> 10174 bytes modules/admin/images/editfiles.png | Bin 0 -> 7336 bytes modules/admin/images/editpage.png | Bin 0 -> 7775 bytes modules/admin/images/file_doc.png | Bin 0 -> 6993 bytes modules/admin/images/file_pdf.png | Bin 0 -> 7336 bytes modules/admin/images/file_rtf.png | Bin 0 -> 6958 bytes modules/admin/images/file_word.png | Bin 0 -> 9196 bytes modules/admin/images/photogallery.png | Bin 0 -> 9687 bytes modules/admin/index.php | 73 +++++++++++ modules/admin/operation.php | 53 ++++++++ modules/admin/pages/functions.php | 230 +++++++++++++++++++++++++++++++++ modules/admin/pages/index.php | 68 ++++++++++ 18 files changed, 807 insertions(+) create mode 100644 modules/admin/admin_functions.php create mode 100644 modules/admin/blocks/functions.php create mode 100644 modules/admin/blocks/index.php create mode 100644 modules/admin/images/addnewarticle.png create mode 100644 modules/admin/images/addnewpage.png create mode 100644 modules/admin/images/announcement.png create mode 100644 modules/admin/images/calendar.png create mode 100644 modules/admin/images/editfiles.png create mode 100644 modules/admin/images/editpage.png create mode 100644 modules/admin/images/file_doc.png create mode 100644 modules/admin/images/file_pdf.png create mode 100644 modules/admin/images/file_rtf.png create mode 100644 modules/admin/images/file_word.png create mode 100644 modules/admin/images/photogallery.png create mode 100644 modules/admin/index.php create mode 100644 modules/admin/operation.php create mode 100644 modules/admin/pages/functions.php create mode 100644 modules/admin/pages/index.php (limited to 'modules/admin') diff --git a/modules/admin/admin_functions.php b/modules/admin/admin_functions.php new file mode 100644 index 0000000..30a40d0 --- /dev/null +++ b/modules/admin/admin_functions.php @@ -0,0 +1,151 @@ +. + */ + +if(!defined("ADMIN_FILE")) +{ + die("Access denied."); + return; +} + +function is_loggedin() +{ + $id = session_id(); + if($id == "") + { + header("location: index.php"); + return false; + } + return true; +} + +function login() +{ + global $db; + + if(isset($_SESSION['username']) || isset($_SESSION['password'])) + { + return true; + } + + if(isset($_POST['processed'])) + { + $username = addslashes($_POST['username']); + $password = addslashes($_POST['password']); + $password = crypt(md5($password),'iamnotadirtywhorebitch'); + $result = $db->Query("SELECT * FROM bayonet_users WHERE username = '$username' AND password = '$password'"); + $rows = $db->Rows($result); + + if($rows > 0) + { + $_SESSION['username'] = stripslashes($username); + $_SESSION['password'] = stripslashes($password); + return true; + } + else + { + ReportError("Login incorrect."); + return false; + } + + } + else + { + echo "
\n"; + OpenTable(); + echo "Administrative Login\n"; + + echo "\n + \n + \n + \n +
Username
Password
\n"; + CloseTable(); + echo "
\n"; + return false; + } +} + +function logout() +{ + session_unset(); + session_destroy(); +} + +/** + * CompileAdmin() + * + * because we want to have a horizontal display of options, we need to have + * the data separated by arrays. the data is processed into single tables, and is + * echoed in realtime. we checked to make sure they were arrays, but there is no + * checking to make sure the data passed is not malicious in nature. + * + * @param mixed $head + * @param mixed $body + * @return + */ +function CompileAdmin($head,$body) +{ + /*if we were not passed arrays, then say goodbye*/ + if(!is_array($head) || !is_array($body)) + { + echo "must be array\n"; + return; + } + + echo ""; + echo ""; + + $num = 1; + foreach($body as $td) + { + echo "\n"; + if($num%4 == 0){ + echo ""; + } + $num++; + } + echo "
$td
\n"; +} + +/** + * OpenTable() + * + * The administration OpenTable() function requires an argument to define + * the header title. It may be wise to replace the standard OpenTable() function + * with this one... that's alot of code to unfuck though. + * + * @param mixed $title + * @return + */ +function OpenTable_Ex($title) +{ + echo "
{$title}
"; +} + +/** + * CloseTable() + * + * @return + */ +function CloseTable_Ex() +{ + echo "
"; +} + +?> \ No newline at end of file diff --git a/modules/admin/blocks/functions.php b/modules/admin/blocks/functions.php new file mode 100644 index 0000000..660b8e7 --- /dev/null +++ b/modules/admin/blocks/functions.php @@ -0,0 +1,173 @@ +. + */ + +function ListBlocks() +{ + global $db; + $result = $db->Query("SELECT * FROM bayonet_blocks"); + while(($rows = $db->fetch($result))!=false) + { + $blocks[] = $rows; + } + + echo ""; + foreach($blocks as $block) + { + echo ""; + } + echo "
Existing Blocks
{$block['weight']} : {$block['dir_name']}EditDelete
"; +} + +function NewBlock() +{ + global $db; + if(isset($_POST['processed'])) + { + //Secure our data to prevent injection attacks. + $weight = addslashes($_POST['weight']); + $dir_name = addslashes($_POST['dir_name']); + $position = addslashes($_POST['position']); + $active = addslashes($_POST['active']); + + if(empty($weight) || empty($dir_name) || empty($position)) + { + echo "You must fill everything out before proceeding."; + return; + } + //Update the database with the new data. + $db->Query("INSERT INTO bayonet_blocks SET weight = '$weight', dir_name = '$dir_name', position = '$position', active = '$active'"); + //die, because we have completed what we wanted to do. + echo "New block, '$dir_name', at position '$weight' added.\n"; + return; + } + + ?> +
+ + + + + + +
Weight
Position
Directory Name
Active +
+
+ 'Yes',0 => 'No'); + foreach($options as $option => $value) + { + $selected = NULL; + if($active == $option) + { + $selected = "selected"; + } + echo "\n"; + } + + +} + +function EditBlock($block_id) +{ + global $db; + if(isset($_POST['processed'])) + { + //Secure our data to prevent injection attacks. + $weight = addslashes($_POST['weight']); + $dir_name = addslashes($_POST['dir_name']); + $position = addslashes($_POST['position']); + $active = addslashes($_POST['active']); + + if(empty($weight) || empty($dir_name) || empty($position)) + { + echo "You must fill everything out before proceeding."; + return; + } + + //Update the database with the new data. + $db->Query("UPDATE bayonet_blocks SET weight = '$weight', dir_name = '$dir_name', position = '$position', active = '$active' WHERE block_id = '$block_id'"); + //$isActive = $active ? "IS" : "IS NOT"; + echo "Block, '$dir_name', at position '$weight' has been edited.\n"; + //die, because we have completed what we wanted to do. + return; + } + + //Grab the page from the database according to the $page_id passed to the function. + $result = $db->Query("SELECT weight,dir_name,position,active FROM bayonet_blocks WHERE block_id = '$block_id'"); + while(($row = $db->Fetch($result))!=false) + { + //We only want one row, so we don't have to $block[]... No foreach necessary. + $block = $row; + } + + ?> +
+ + + + + + + +
Weight
Position
Directory Name
Active + +
+
+ Query("SELECT dir_name FROM bayonet_blocks WHERE block_id = '$block_id'"); + $block = $db->Fetch($result); + + if(isset($_POST['proceed'])) + { + echo "Block '{$block['dir_name']}', was deleted."; + $db->Query("DELETE FROM bayonet_blocks WHERE block_id = '$block_id' LIMIT 1"); + return; + } + if(isset($_POST['cancel'])) + { + echo "User cancelled deletion of page: '{$block['dir_name']}'"; + return; + } + + ?> +
+ + + +
Are you SURE you want to delete the block titled: ''?
   
+
+ \ No newline at end of file diff --git a/modules/admin/blocks/index.php b/modules/admin/blocks/index.php new file mode 100644 index 0000000..6dac3d2 --- /dev/null +++ b/modules/admin/blocks/index.php @@ -0,0 +1,59 @@ +. + */ + +/** + * This file administers the site blocks. + * + * -weight + * -directory name + */ + +if(!defined("ADMIN_FILE")) +{ + die("Access denied."); +} + + +include $basedir.'blocks/functions.php'; + +if(isset($_GET['edit'])) +{ + $block_id = $_GET['edit']; + EditBlock($block_id); + return; +} + +if(isset($_GET['delete'])) +{ + $block_id = $_GET['delete']; + DeleteBlock($block_id); + return; +} + +if(isset($_GET['create'])) +{ + NewBlock(); + return; +} + +echo "
".LinkInternal('Create a Block','?load=admin&op=blocks&create=true')."
"; + +ListBlocks(); + +?> \ No newline at end of file diff --git a/modules/admin/images/addnewarticle.png b/modules/admin/images/addnewarticle.png new file mode 100644 index 0000000..0e29960 Binary files /dev/null and b/modules/admin/images/addnewarticle.png differ diff --git a/modules/admin/images/addnewpage.png b/modules/admin/images/addnewpage.png new file mode 100644 index 0000000..c60c68c Binary files /dev/null and b/modules/admin/images/addnewpage.png differ diff --git a/modules/admin/images/announcement.png b/modules/admin/images/announcement.png new file mode 100644 index 0000000..c70591d Binary files /dev/null and b/modules/admin/images/announcement.png differ diff --git a/modules/admin/images/calendar.png b/modules/admin/images/calendar.png new file mode 100644 index 0000000..86b9861 Binary files /dev/null and b/modules/admin/images/calendar.png differ diff --git a/modules/admin/images/editfiles.png b/modules/admin/images/editfiles.png new file mode 100644 index 0000000..500e206 Binary files /dev/null and b/modules/admin/images/editfiles.png differ diff --git a/modules/admin/images/editpage.png b/modules/admin/images/editpage.png new file mode 100644 index 0000000..ab3fd58 Binary files /dev/null and b/modules/admin/images/editpage.png differ diff --git a/modules/admin/images/file_doc.png b/modules/admin/images/file_doc.png new file mode 100644 index 0000000..b1da1ef Binary files /dev/null and b/modules/admin/images/file_doc.png differ diff --git a/modules/admin/images/file_pdf.png b/modules/admin/images/file_pdf.png new file mode 100644 index 0000000..500e206 Binary files /dev/null and b/modules/admin/images/file_pdf.png differ diff --git a/modules/admin/images/file_rtf.png b/modules/admin/images/file_rtf.png new file mode 100644 index 0000000..39304c1 Binary files /dev/null and b/modules/admin/images/file_rtf.png differ diff --git a/modules/admin/images/file_word.png b/modules/admin/images/file_word.png new file mode 100644 index 0000000..3011f00 Binary files /dev/null and b/modules/admin/images/file_word.png differ diff --git a/modules/admin/images/photogallery.png b/modules/admin/images/photogallery.png new file mode 100644 index 0000000..a161a55 Binary files /dev/null and b/modules/admin/images/photogallery.png differ diff --git a/modules/admin/index.php b/modules/admin/index.php new file mode 100644 index 0000000..4dd4539 --- /dev/null +++ b/modules/admin/index.php @@ -0,0 +1,73 @@ +. + */ + + if(!defined("MODULE_FILE")) + { + die("Access denied."); + } + + define("ADMIN_FILE",'admin_file'); + include 'admin_functions.php'; + + if($_GET['op'] == 'logout') + { + logout(); + } + +/* if(login()) + { + //this is so dirty... sigh. + if(is_loggedin()) + { + */ ?> + + + + + + +
+ +
+
+ Administrative Tools: +
Manage Pages','?load=admin&op=pages'), + LinkInternal('
Edit Navigation','?load=admin'), + LinkInternal('
Edit Announcements','?load=admin'), + LinkInternal('
Manage Events','?load=admin'), + LinkInternal('
Manage Galleries', '?load=admin') + + ); + + //render administration table + CompileAdmin($th,$td); + ?> +
+ +
+ + \ No newline at end of file diff --git a/modules/admin/operation.php b/modules/admin/operation.php new file mode 100644 index 0000000..0ac2a9b --- /dev/null +++ b/modules/admin/operation.php @@ -0,0 +1,53 @@ +. + */ + +if(!defined("ADMIN_FILE")) +{ + die("Access denied."); + return; +} + +if(!isset($_GET['op'])) +{ + echo "
No operation selected
\n"; + return; +} + +$op = $_GET['op']; +$basedir = 'modules/admin/'; + +if(file_exists($basedir)) +{ + if(file_exists($basedir . $op)) + { + include $basedir . $op . '/index.php'; + } + else + { + ReportError("Administrative operation '$op' does not exist."); + } +} +else +{ + ReportError("Administrative base directory path does not exist."); +} + + + +?> \ No newline at end of file diff --git a/modules/admin/pages/functions.php b/modules/admin/pages/functions.php new file mode 100644 index 0000000..104a19a --- /dev/null +++ b/modules/admin/pages/functions.php @@ -0,0 +1,230 @@ +. + */ + +/** + * Note to anyone feeling the need to edit this file... + * You MUST declare $db as global inside your functions in order access MySQL from here. + */ + +function ListArticles($pageid){ + + global $db; + $result = $db->Query("SELECT article_id,title FROM bayonet_articles WHERE `page_id` = $pageid ORDER BY `weight`"); + while(($row = $db->Fetch($result))!=false) + { + $articles[] = $row; + } + + echo ""; + + if(count($articles)==0){ + echo "
There are no articles posted on this page.
"; + return; + } + foreach($articles as $article) + { + if($_GET['aid'] == $article['article_id']) + echo ''; + else + echo ''; + ?> + + ^ + + + + v + + + "; + + + +} + +function EditArticle($article_id){ + + global $db; + //Grab the page from the database according to the $article_id passed to the function. + $result = $db->Query("SELECT title,text FROM bayonet_articles WHERE article_id = '$article_id'"); + while(($row = $db->Fetch($result))!=false) + { + //We only want one row, so we don't have to $article[]... No foreach necessary. + $article = $row; + } + ?> +
+ + + +
+ + +
+
+ Query("SELECT page_id,title FROM bayonet_pages"); + while(($row = $db->Fetch($result))!=false) + { + $pages[] = $row; + } + + echo 'Select page: '; + // echo ""; +} + +function NewPage() +{ + global $db; + if(isset($_POST['processed'])) + { + //Secure our data to prevent injection attacks. + $title = addslashes($_POST['title']); + $text = addslashes($_POST['text']); + if(empty($title) || empty($text)) + { + echo "You must fill everything out before proceeding."; + return; + } + + //Update the database with the new data. + $db->Query("INSERT INTO bayonet_pages SET title = '$title', text = '$text'"); + echo "New page, '$title', has been added.\n"; + //die, because we have completed what we wanted to do. + return; + } + + ?> +

Add New Page

+
+ + + + +
Title
Text
+
+ Query("UPDATE bayonet_pages SET title = '$title', text = '$text' WHERE page_id = '$page_id'"); + echo "Page, '$title', has been edited.\n"; + //die, because we have completed what we wanted to do. + return; + } + + $aid = $_GET['aid']; +?> + + + + + + +
 View this Page','?load=page&id='.$page_id); ?> Delete this Page','?load=admin&op=pages&delete='.$page_id); ?>
+
+ + + + + +
+ + + 0){ + EditArticle($aid); + } + ?> +
+ Query("SELECT title FROM bayonet_pages WHERE page_id = '$page_id'"); + $page = $db->Fetch($result); + + if(isset($_POST['proceed'])) + { + echo "Page '{$page['title']}', was deleted."; + $db->Query("DELETE FROM bayonet_pages WHERE page_id = '$page_id' LIMIT 1"); + return; + } + if(isset($_POST['cancel'])) + { + echo "User cancelled deletion of page: '{$page['title']}'"; + return; + } + if($page_id == 1){ + echo "You can not delete the home page."; + return; + } + + ?> +
+ + + +
Are you SURE you want to delete the page titled: ''?
   
+
+ \ No newline at end of file diff --git a/modules/admin/pages/index.php b/modules/admin/pages/index.php new file mode 100644 index 0000000..0fb6cff --- /dev/null +++ b/modules/admin/pages/index.php @@ -0,0 +1,68 @@ +. + */ + ?> + +
+
+ Manage Pages: + + + + + + + + +
+  Create a Page','?load=admin&op=pages&create=true'); ?> +
+
+
-- cgit