dimulai dari isi config.php, pada file ini merupakan file terpenting dalam skem directory website, keterangan lebih jelasnya besok saja, nanti juga sobat bloger pada mengerti dengan sendirinya, isinya kira-kira seperti ini:
<?php
ini_set( "display_errors", true );
date_default_timezone_set( "Bangkok/Jakarta" );
define( "DB_DSN", "mysql:host=host;dbname=percobaan" );
define( "DB_USERNAME", "dbusername" );
define( "DB_PASSWORD", "dbpassword" );
define( "CLASS_PATH", "classes" );
define( "TEMPLATE_PATH", "templates" );
define( "HOMEPAGE_NUM_ARTICLES", 5 );
define( "ADMIN_USERNAME", "admin" );
define( "ADMIN_PASSWORD", "adminpasword" );
require( CLASS_PATH . "/Article.php" );
?>
karena ini merupakan CMS sederhana maka kami membuat username dan password sekalian ada di config ini, jadi tidak perlu lagi membuat table Mysql, silahkan di edit tulisan yang berwarna merah sesuai kebutuhan anda.(jangan lupa simpan dalam extensi php : config.php)
sedangkan untuk Index.php silahkan di tulis seperti ini:
<?php
require( "config.php" );
$action = isset( $_GET['action'] ) ? $_GET['action'] : "";
switch ( $action ) {
case 'archive':
archive();
break;
case 'viewArticle':
viewArticle();
break;
default:
homepage();
}
function archive() {
$results = array();
$data = Article::getList();
$results['articles'] = $data['results'];
$results['totalRows'] = $data['totalRows'];
$results['pageTitle'] = "Website kita | artikel";
require( TEMPLATE_PATH . "/archive.php" );
}
function viewArticle() {
if ( !isset($_GET["articleId"]) || !$_GET["articleId"] ) {
homepage();
return;
}
$results = array();
$results['article'] = Article::getById( (int)$_GET["articleId"] );
$results['pageTitle'] = $results['article']->title . " | Artikel";
require( TEMPLATE_PATH . "/viewArticle.php" );
}
function homepage() {
$results = array();
$data = Article::getList( HOMEPAGE_NUM_ARTICLES );
$results['articles'] = $data['results'];
$results['totalRows'] = $data['totalRows'];
$results['pageTitle'] = "Artikel";
require( TEMPLATE_PATH . "/homepage.php" );
}
?>
Silahkan di tulis atau di Copas dan jangan lupa save as sebagai: Index.php
Langsung saja pada bagian Admin.php, kira-kira di tulis seperti di bawah ini:
<?php
require( "config.php" );
session_start();
$action = isset( $_GET['action'] ) ? $_GET['action'] : "";
$username = isset( $_SESSION['username'] ) ? $_SESSION['username'] : "";
if ( $action != "login" && $action != "logout" && !$username ) {
login();
exit;
}
switch ( $action ) {
case 'login':
login();
break;
case 'logout':
logout();
break;
case 'newArticle':
newArticle();
break;
case 'editArticle':
editArticle();
break;
case 'deleteArticle':
deleteArticle();
break;
default:
listArticles();
}
function login() {
$results = array();
$results['pageTitle'] = "Administrator Login | Website Kita";
if ( isset( $_POST['login'] ) ) {
// User akan mendapati log in form
if ( $_POST['username'] == ADMIN_USERNAME && $_POST['password'] == ADMIN_PASSWORD ) {
// Login sukses: sessi menuju admin homepage
$_SESSION['username'] = ADMIN_USERNAME;
header( "Location: admin.php" );
} else {
// Login gagal: display pesan error
$results['errorMessage'] = "Username atau Password Salah, coba lagi.";
require( TEMPLATE_PATH . "/admin/loginForm.php" );
}
} else {
// User belum ada post,tampilkan form
require( TEMPLATE_PATH . "/admin/loginForm.php" );
}
}
function logout() {
unset( $_SESSION['username'] );
header( "Location: admin.php" );
}
function newArticle() {
$results = array();
$results['pageTitle'] = "Buat Artikel";
$results['formAction'] = "newArticle";
if ( isset( $_POST['saveChanges'] ) ) {
// User telah posting, edit dan simpan artikel
$article = new Article;
$article->storeFormValues( $_POST );
$article->insert();
header( "Location: admin.php?status=Tersimpan" );
} elseif ( isset( $_POST['cancel'] ) ) {
// User tidak melakukan editing: kembali ke artikel
header( "Location: admin.php" );
} else {
// User belum posting atau edit, tampilkan form
$results['article'] = new Article;
require( TEMPLATE_PATH . "/admin/editArticle.php" );
}
}
function editArticle() {
$results = array();
$results['pageTitle'] = "Edit Article";
$results['formAction'] = "editArticle";
if ( isset( $_POST['saveChanges'] ) ) {
// User telah posting, edit dan simpan
if ( !$article = Article::getById( (int)$_POST['articleId'] ) ) {
header( "Location: admin.php?error=artikel tidak di temukan" );
return;
}
$article->storeFormValues( $_POST );
$article->update();
header( "Location: admin.php?status=tersimpan" );
} elseif ( isset( $_POST['cancel'] ) ) {
// User tidak jadi editing, kembali ke artikel
header( "Location: admin.php" );
} else {
$results['article'] = Article::getById( (int)$_GET['articleId'] );
require( TEMPLATE_PATH . "/admin/editArticle.php" );
}
}
function deleteArticle() {
if ( !$article = Article::getById( (int)$_GET['articleId'] ) ) {
header( "Location: admin.php?error=articleNotFound" );
return;
}
$article->delete();
header( "Location: admin.php?status=artikel dihapus" );
}
function listArticles() {
$results = array();
$data = Article::getList();
$results['articles'] = $data['results'];
$results['totalRows'] = $data['totalRows'];
$results['pageTitle'] = "list Artikel";
if ( isset( $_GET['error'] ) ) {
if ( $_GET['error'] == "articleNotFound" ) $results['errorMessage'] = "Error: Artikel tidak ditemukan.";
}
if ( isset( $_GET['status'] ) ) {
if ( $_GET['status'] == "changesSaved" ) $results['statusMessage'] = "Perubahan telah disimpan.";
if ( $_GET['status'] == "articleDeleted" ) $results['statusMessage'] = "Artikel dihapus.";
}
require( TEMPLATE_PATH . "/admin/listArticles.php" );
}
?>
jangan lupa Simpan ini sebagai admin.php,
Untuk susunan directory nya lihat gambar di bawah ini:
Simpan semua file Config.php, Index.php, dan Admin.php di bawah directory website.com sejajar dengan folder Classes, Images dan Template,.
sebenarnya masih ada satu lagi yaitu file style.css yang harus di simpan bersama dengan file yang kita buat tadi, tetapi karena css itu berfungsi sebagai design html, maka untuk sementara di biarkan kosong dahulu dan kita siapkan file2 program yang lebih penting lainnya,.
untuk tahap ini, sebaiknya kita persiapkan file pada directory Template, Admin, Include, dan Classes.
untuk directory Template kita siapkan:
1. Archive.php
2. homepage.php
3.viewArticle.php
untuk directory Admin kita siapkan:
1. editArticle.php
2. listArticle.php
3. loginForm.php
untuk directory Classes kita siapkan:
1. Article.php
untuk directory include kita siapkan:
1. header.php
2. footer.php
yah susun semua pada tempatnya masing -masing sesuai gambar diatas, dan setelah selesai untuk sementara biarkan kosong semua file tersebut, kita minum kopi dulu dan nyantai, biar gak terlalu pusing ato capek karena posting akan saya lanjutkan besok ,,, hehehe.
:)


0 comments:
Post a Comment