commit c65052e5c44a92ea0f5939cd3e432d7fcc59bd80 Author: jan.skoda Date: Wed Jan 10 12:26:54 2024 +0100 initial commit diff --git a/Config.php b/Config.php new file mode 100644 index 0000000..5364748 --- /dev/null +++ b/Config.php @@ -0,0 +1,13 @@ +getConnection(); + +$user = new User($db); +$post = new Post($db); +$category = new Category($db); + +if(!$user->loggedIn()) { + header("location: index.php"); +} + +$category = new Category($db); + +$category->id = (isset($_GET['id']) && $_GET['id']) ? $_GET['id'] : '0'; + +$saveMessage = ''; +if(!empty($_POST["categorySave"]) && $_POST["categoryName"]!='') { + + $category->name = $_POST["categoryName"]; + if($category->id) { + if($category->update()) { + $saveMessage = "Category updated successfully!"; + } + } else { + $lastInserId = $category->insert(); + if($lastInserId) { + $category->id = $lastInserId; + $saveMessage = "Category saved successfully!"; + } + } +} + +$categoryDetails = $category->getCategory(); + +include('../template/header.php'); +?> +Admin - <?= Config::WEBSITE_NAME ?> + + + + + + + + +
+
+
+
+ +
+
+
+

Add / Edit Category

+
+
+ +
+ +
+ + +
+ + +
+ + +
+
+
+
+
+
+
+ diff --git a/admin/add_image.php b/admin/add_image.php new file mode 100644 index 0000000..f01241f --- /dev/null +++ b/admin/add_image.php @@ -0,0 +1,99 @@ +getConnection(); + +$user = new User($db); +$post = new Post($db); +$category = new Category($db); + +if(!$user->loggedIn()) { + header("location: index.php"); +} + + + + +$saveMessage = ''; +if(!empty($_POST["imageSave"])) { + + $imagesManager = new ImagesManager(); + if(empty($_POST["imageName"])){ + $imagesManager->validateImage(); + }else{ + $imagesManager->validateImage($_POST["imageName"]); + } + $imagesManager->uploadImage(); + + $saveMessage = $imagesManager->getMessage(); + + +} + + +include('../template/header.php'); +?> +Admin - <?= Config::WEBSITE_NAME ?> + + + + + + + + +
+
+
+
+ +
+
+
+

Upload Image

+
+
+ +
+ +
+ + + +
+ + +
+ +
+ + +
+ + + +
+
+
+
+
+
+
+ diff --git a/admin/add_menu.php b/admin/add_menu.php new file mode 100644 index 0000000..68cf138 --- /dev/null +++ b/admin/add_menu.php @@ -0,0 +1,101 @@ +getConnection(); + +$user = new User($db); +$post = new Post($db); +$category = new Category($db); + +if(!$user->loggedIn()) { + header("location: index.php"); +} + +$menu = new Menu($db); + +$menu->id = (isset($_GET['id']) && $_GET['id']) ? $_GET['id'] : '0'; + +$saveMessage = ''; +if(!empty($_POST["menuSave"]) && $_POST["menuTitle"]!='' && $_POST["menuLink"]!='') { + + $menu->title = $_POST["menuTitle"]; + $menu->link = $_POST["menuLink"]; + if($menu->id) { + if($menu->update()) { + $saveMessage = "Menu item updated successfully!"; + } + } else { + $lastInserId = $menu->insert(); + if($lastInserId) { + $menu->id = $lastInserId; + $saveMessage = "Menu item saved successfully!"; + } + } +} + +$menuDetails = $menu->getMenu(); + +include('../template/header.php'); +?> +Admin - <?= Config::WEBSITE_NAME ?> + + + + + + + + +
+
+
+
+ +
+
+
+

Add / Edit Menu entry

+
+
+ +
+ +
+ + +
+ + +
+ +
+ + +
+ + +
+
+
+
+
+
+
+ diff --git a/admin/add_page.php b/admin/add_page.php new file mode 100644 index 0000000..eaa0dae --- /dev/null +++ b/admin/add_page.php @@ -0,0 +1,109 @@ +getConnection(); + +$user = new User($db); +$post = new Post($db); +$category = new Category($db); + +if(!$user->loggedIn()) { + header("location: index.php"); +} + +$page = new Pages($db); + +$page->id = (isset($_GET['id']) && $_GET['id']) ? $_GET['id'] : '0'; + +$saveMessage = ''; +if(!empty($_POST["pageSave"]) && $_POST["pageTitle"]!='' && $_POST["pageLink"]!='' && $_POST["pageContent"]!='') { + + $page->title = $_POST["pageTitle"]; + $page->link = $_POST["pageLink"]; + $page->content = $_POST["pageContent"]; + + + if($page->id) { + if($page->update()) { + $saveMessage = "Page updated successfully!"; + } + } else { + $lastInserId = $page->insert(); + if($lastInserId) { + $page->id = $lastInserId; + $saveMessage = "Page saved successfully!"; + } + } +} + +$pageyDetails = $page->getPage(); + +include('../template/header.php'); +?> +Admin - <?= Config::WEBSITE_NAME ?> + + + + + + + + +
+
+
+
+ +
+
+
+

Add / Edit page

+
+
+ +
+ +
+ + +
+ + +
+ +
+ + +
+ +
+ + +
+ + +
+
+
+
+
+
+
+ diff --git a/admin/add_users.php b/admin/add_users.php new file mode 100755 index 0000000..22ba738 --- /dev/null +++ b/admin/add_users.php @@ -0,0 +1,134 @@ +getConnection(); + +$user = new User($db); +$post = new Post($db); +$category = new Category($db); + +if(!$user->loggedIn()) { + header("location: index.php"); +} + +$user->id = (isset($_GET['id']) && $_GET['id']) ? $_GET['id'] : '0'; +$saveMessage = ''; +if(!empty($_POST["saveUser"]) && $_POST["nick"]!='') { + + $user->first_name = $_POST["first_name"]; + $user->last_name = $_POST["last_name"]; + $user->nick = $_POST["nick"]; + $user->type = $_POST["user_type"]; + $user->deleted = $_POST["user_status"]; + if($user->id) { + $user->updated = date('Y-m-d H:i:s'); + if($user->update()) { + $saveMessage = "User updated successfully!"; + } + } else { + $user->password = $_POST["password"]; + $lastInserId = $user->insert(); + if($lastInserId) { + $user->id = $lastInserId; + $saveMessage = "User saved successfully!"; + } + } +} + +$userDetails = $user->getUser(); + +include('../template/header.php'); +?> +Admin - <?= Config::WEBSITE_NAME ?> + + + + + + + + +
+
+
+
+ +
+
+
+

Add / Edit User

+
+
+ +
+ +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ id) { + ?> +
+ + +
+ + +
+ + + +
+ +
+ + + +
+ + +
+
+
+
+
+
+
+ diff --git a/admin/categories.php b/admin/categories.php new file mode 100755 index 0000000..604c592 --- /dev/null +++ b/admin/categories.php @@ -0,0 +1,81 @@ +getConnection(); + +$user = new User($db); +$post = new Post($db); +$category = new Category($db); + +if(!$user->loggedIn()) { + header("location: index.php"); +} + + +include('../template/header.php'); +?> +Admin - <?= Config::WEBSITE_NAME ?> + + + + + + + + + +
+ +
+
+
+ +
+
+
+

Categories

+
+
+
+
+
+

+
+
+ Add New +
+
+
+ + + + + + + + + +
IdCategory
+
+
+
+
+
+
+ + diff --git a/admin/compose_post.php b/admin/compose_post.php new file mode 100755 index 0000000..06b7009 --- /dev/null +++ b/admin/compose_post.php @@ -0,0 +1,133 @@ +getConnection(); + +$user = new User($db); +$post = new Post($db); +$category = new Category($db); + +if(!$user->loggedIn()) { + header("location: index.php"); +} + +$post = new Post($db); + +$categories = $post->getCategories(); + +$post->id = (isset($_GET['id']) && $_GET['id']) ? $_GET['id'] : '0'; +$saveMessage = ''; +if(!empty($_POST["savePost"]) && $_POST["title"]!=''&& $_POST["message"]!='') { + + $post->title = $_POST["title"]; + $post->message = $_POST["message"]; + $post->category = $_POST["category"]; + $post->status = $_POST["status"]; + if($post->id) { + $post->updated = date('Y-m-d H:i:s'); + if($post->update()) { + $saveMessage = "Post updated successfully!"; + } + } else { + $post->userid = $_SESSION["userid"]; + $post->created = date('Y-m-d H:i:s'); + $post->updated = date('Y-m-d H:i:s'); + $lastInserId = $post->insert(); + if($lastInserId) { + $post->id = $lastInserId; + $saveMessage = "Post saved successfully!"; + } + } +} + +$postdetails = $post->getPost(); + +include('../template/header.php'); +?> +Admin - <?= Config::WEBSITE_NAME ?> + + + + + + + + +
+
+
+
+ +
+
+
+

Add New Post

+
+
+ +
+ +
+ +
+ + +
+ +
+ + +
+ + +
+ + +
+
+ + + + +
+ +
+
+
+
+
+
+
+ diff --git a/admin/css/dataTables.bootstrap.min.css b/admin/css/dataTables.bootstrap.min.css new file mode 100755 index 0000000..16ed637 --- /dev/null +++ b/admin/css/dataTables.bootstrap.min.css @@ -0,0 +1 @@ +table.dataTable{clear:both;margin-top:6px !important;margin-bottom:6px !important;max-width:none !important;border-collapse:separate !important}table.dataTable td,table.dataTable th{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}table.dataTable td.dataTables_empty,table.dataTable th.dataTables_empty{text-align:center}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}div.dataTables_wrapper div.dataTables_length label{font-weight:normal;text-align:left;white-space:nowrap}div.dataTables_wrapper div.dataTables_length select{width:75px;display:inline-block}div.dataTables_wrapper div.dataTables_filter{text-align:right}div.dataTables_wrapper div.dataTables_filter label{font-weight:normal;white-space:nowrap;text-align:left}div.dataTables_wrapper div.dataTables_filter input{margin-left:0.5em;display:inline-block;width:auto}div.dataTables_wrapper div.dataTables_info{padding-top:8px;white-space:nowrap}div.dataTables_wrapper div.dataTables_paginate{margin:0;white-space:nowrap;text-align:right}div.dataTables_wrapper div.dataTables_paginate ul.pagination{margin:2px 0;white-space:nowrap}div.dataTables_wrapper div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-26px;text-align:center;padding:1em 0}table.dataTable thead>tr>th.sorting_asc,table.dataTable thead>tr>th.sorting_desc,table.dataTable thead>tr>th.sorting,table.dataTable thead>tr>td.sorting_asc,table.dataTable thead>tr>td.sorting_desc,table.dataTable thead>tr>td.sorting{padding-right:30px}table.dataTable thead>tr>th:active,table.dataTable thead>tr>td:active{outline:none}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{cursor:pointer;position:relative}table.dataTable thead .sorting:after,table.dataTable thead .sorting_asc:after,table.dataTable thead .sorting_desc:after,table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc_disabled:after{position:absolute;bottom:8px;right:8px;display:block;font-family:'Glyphicons Halflings';opacity:0.5}table.dataTable thead .sorting:after{opacity:0.2;content:"\e150"}table.dataTable thead .sorting_asc:after{content:"\e155"}table.dataTable thead .sorting_desc:after{content:"\e156"}table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc_disabled:after{color:#eee}div.dataTables_scrollHead table.dataTable{margin-bottom:0 !important}div.dataTables_scrollBody table{border-top:none;margin-top:0 !important;margin-bottom:0 !important}div.dataTables_scrollBody table thead .sorting:after,div.dataTables_scrollBody table thead .sorting_asc:after,div.dataTables_scrollBody table thead .sorting_desc:after{display:none}div.dataTables_scrollBody table tbody tr:first-child th,div.dataTables_scrollBody table tbody tr:first-child td{border-top:none}div.dataTables_scrollFoot table{margin-top:0 !important;border-top:none}@media screen and (max-width: 767px){div.dataTables_wrapper div.dataTables_length,div.dataTables_wrapper div.dataTables_filter,div.dataTables_wrapper div.dataTables_info,div.dataTables_wrapper div.dataTables_paginate{text-align:center}}table.dataTable.table-condensed>thead>tr>th{padding-right:20px}table.dataTable.table-condensed .sorting:after,table.dataTable.table-condensed .sorting_asc:after,table.dataTable.table-condensed .sorting_desc:after{top:6px;right:6px}table.table-bordered.dataTable th,table.table-bordered.dataTable td{border-left-width:0}table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable td:last-child,table.table-bordered.dataTable td:last-child{border-right-width:0}table.table-bordered.dataTable tbody th,table.table-bordered.dataTable tbody td{border-bottom-width:0}div.dataTables_scrollHead table.table-bordered{border-bottom-width:0}div.table-responsive>div.dataTables_wrapper>div.row{margin:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^="col-"]:first-child{padding-left:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^="col-"]:last-child{padding-right:0} diff --git a/admin/css/style.css b/admin/css/style.css new file mode 100755 index 0000000..2489b9e --- /dev/null +++ b/admin/css/style.css @@ -0,0 +1,150 @@ + +body{ + background: #f4f4f4; +} + +.navbar{ + min-height: 33px !important; + margin-bottom: 0; + border-radius: 0; + +} +.navbar-nav> li>a, .navbar-brand{ + padding-top: 6px !important; + padding-bottom: 0; + height: 33px; + +} + +.main-color-bg{ + background-color: #095f59; + color: #ffffff !important; +} + + +/*Header */ + +#header{ + background: #333333; + color: #ffffff; + padding-bottom: 10px; + margin-bottom: : 15px; +} + +#header .create{ + padding-top: 20px; +} + +.dash-box{ + text-align: center; +} + +#footer{ + background: #333333; + color: #ffffff; + text-align: center; + padding: 30px; + margin-top: 30px; + +} + + + +.navbar-default { + background-color: #095f59; + border-color: #689a9b; +} +.navbar-default .navbar-brand { + color: #efee24; +} +.navbar-default .navbar-brand:hover, +.navbar-default .navbar-brand:focus { + color: #010800; +} +.navbar-default .navbar-text { + color: #efee24; +} +.navbar-default .navbar-nav > li > a { + color: #efee24; +} +.navbar-default .navbar-nav > li > a:hover, +.navbar-default .navbar-nav > li > a:focus { + color: #010800; +} +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:hover, +.navbar-default .navbar-nav > .active > a:focus { + color: #010800; + background-color: #689a9b; +} +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:hover, +.navbar-default .navbar-nav > .open > a:focus { + color: #010800; + background-color: #689a9b; +} +.navbar-default .navbar-toggle { + border-color: #689a9b; +} +.navbar-default .navbar-toggle:hover, +.navbar-default .navbar-toggle:focus { + background-color: #689a9b; +} +.navbar-default .navbar-toggle .icon-bar { + background-color: #efee24; +} +.navbar-default .navbar-collapse, +.navbar-default .navbar-form { + border-color: #efee24; +} +.navbar-default .navbar-link { + color: #efee24; +} +.navbar-default .navbar-link:hover { + color: #010800; +} + +@media (max-width: 767px) { + .navbar-default .navbar-nav .open .dropdown-menu > li > a { + color: #efee24; + } + .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { + color: #010800; + } + .navbar-default .navbar-nav .open .dropdown-menu > .active > a, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #010800; + background-color: #689a9b; + } +} + +/*Breadcrumb*/ + +.breadcrumb{ + background: #cccccc; + color: #333333; +} +.breadcrumb a{ + color: #333333; +} + + +footer{ + background-color:#888; + text-align:center; + color:white; + font-size:1.2em; + padding:0.6em; +} + +footer a { + color:#DDD; + text-decoration:underline; +} + +.panel-heading{ + color:white!important; + background-color:#337ab7!important; +} \ No newline at end of file diff --git a/admin/dashboard.php b/admin/dashboard.php new file mode 100755 index 0000000..d61d360 --- /dev/null +++ b/admin/dashboard.php @@ -0,0 +1,84 @@ +getConnection(); + +$user = new User($db); +$post = new Post($db); +$category = new Category($db); + +if(!$user->loggedIn()) { + header("location: index.php"); +} + + +include('../template/header.php'); +?> +Admin - <?= Config::WEBSITE_NAME ?> + + + + + +
+ +
+
+
+ + + + + +
+
+
+

Website Overview

+
+
+
+
+

totalUser(); ?>

+

Users

+
+
+
+
+

totalCategory(); ?>

+

Categories

+
+
+
+
+

totalPost(); ?>

+

Posts

+
+
+
+
+ + +
+
+
+
+ + + diff --git a/admin/dropdown.php b/admin/dropdown.php new file mode 100644 index 0000000..7df4061 --- /dev/null +++ b/admin/dropdown.php @@ -0,0 +1,12 @@ +
+ +
\ No newline at end of file diff --git a/admin/images.php b/admin/images.php new file mode 100644 index 0000000..aa47a07 --- /dev/null +++ b/admin/images.php @@ -0,0 +1,83 @@ +getConnection(); + +$user = new User($db); +$post = new Post($db); +$category = new Category($db); +$images = new ImagesManager(); + +if(!$user->loggedIn()) { + header("location: index.php"); +} + + +include('../template/header.php'); +?> +Admin - <?= Config::WEBSITE_NAME ?> + + + + + + + + + +
+ +
+
+
+ +
+
+
+

Stored images

+
+
+
+
+
+

+
+
+ Add New +
+
+
+ + + + + + + +
NameImage (view by click)
+
+
+
+
+
+
+ + + diff --git a/admin/index.php b/admin/index.php new file mode 100755 index 0000000..709e147 --- /dev/null +++ b/admin/index.php @@ -0,0 +1,63 @@ +getConnection(); + + + +$user = new User($db); + +if($user->loggedIn()) { + header("location: dashboard.php"); +} + +$loginMessage = ''; +if(!empty($_POST["login"]) && $_POST["nick"]!=''&& $_POST["password"]!='') { + $user->nick = $_POST["nick"]; + $user->password = $_POST["password"]; + if($user->login()) { + header("location: dashboard.php"); + } else { + $loginMessage = 'Invalid login! Please try again.'; + } +} + +include('../template/header.php'); +?> +Admin - <?= Config::WEBSITE_NAME ?> + +
+

Administration of PSL - CMS

+
+
+
+
Login
+
+
+ +
+ +
+
+ + +
+
+ + +
+
+
+ +
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/admin/js/categories.js b/admin/js/categories.js new file mode 100755 index 0000000..8cda96a --- /dev/null +++ b/admin/js/categories.js @@ -0,0 +1,37 @@ +$(document).ready(function(){ + var categoryData = $('#categoryList').DataTable({ + "lengthChange": false, + "processing":true, + "serverSide":true, + "order":[], + "ajax":{ + url:"manage_categories.php", + type:"POST", + data:{action:'categoryListing'}, + dataType:"json" + }, + "columnDefs":[ + { + "targets":[0, 2, 3], + "orderable":false, + }, + ], + "pageLength": 10 + }); + $(document).on('click', '.delete', function(){ + var categoryId = $(this).attr("id"); + var action = "categoryDelete"; + if(confirm("Are you sure you want to delete this category?")) { + $.ajax({ + url:"manage_categories.php", + method:"POST", + data:{categoryId:categoryId, action:action}, + success:function(data) { + categoryData.ajax.reload(); + } + }) + } else { + return false; + } + }); +}); \ No newline at end of file diff --git a/admin/js/dataTables.bootstrap.min.js b/admin/js/dataTables.bootstrap.min.js new file mode 100755 index 0000000..2d824c8 --- /dev/null +++ b/admin/js/dataTables.bootstrap.min.js @@ -0,0 +1,8 @@ +/*! + DataTables Bootstrap 3 integration + ©2011-2015 SpryMedia Ltd - datatables.net/license +*/ +(function(b){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(a){return b(a,window,document)}):"object"===typeof exports?module.exports=function(a,d){a||(a=window);if(!d||!d.fn.dataTable)d=require("datatables.net")(a,d).$;return b(d,a,a.document)}:b(jQuery,window,document)})(function(b,a,d){var f=b.fn.dataTable;b.extend(!0,f.defaults,{dom:"<'row'<'col-sm-6'l><'col-sm-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-5'i><'col-sm-7'p>>",renderer:"bootstrap"});b.extend(f.ext.classes, +{sWrapper:"dataTables_wrapper form-inline dt-bootstrap",sFilterInput:"form-control input-sm",sLengthSelect:"form-control input-sm",sProcessing:"dataTables_processing panel panel-default"});f.ext.renderer.pageButton.bootstrap=function(a,h,r,m,j,n){var o=new f.Api(a),s=a.oClasses,k=a.oLanguage.oPaginate,t=a.oLanguage.oAria.paginate||{},e,g,p=0,q=function(d,f){var l,h,i,c,m=function(a){a.preventDefault();!b(a.currentTarget).hasClass("disabled")&&o.page()!=a.data.action&&o.page(a.data.action).draw("page")}; +l=0;for(h=f.length;l",{"class":s.sPageButton+" "+g,id:0===r&&"string"===typeof c?a.sTableId+"_"+c:null}).append(b("",{href:"#", +"aria-controls":a.sTableId,"aria-label":t[c],"data-dt-idx":p,tabindex:a.iTabIndex}).html(e)).appendTo(d),a.oApi._fnBindAction(i,{action:c},m),p++)}},i;try{i=b(h).find(d.activeElement).data("dt-idx")}catch(u){}q(b(h).empty().html('