Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion assets/css/screen.css
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,7 @@ div.cover > img {
}
/* Contains the time, title and subtitle for an article */
.art-header-inner {
position: fixed;
position: relative;
top: 300px;
left: 50%;
margin-left: -490px;
Expand Down
42 changes: 42 additions & 0 deletions assets/js/comment.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
var http = createRequestObject();
function createRequestObject(){
var obj;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
obj = new ActiveXObject("Microsoft.XMLHTTP");
} else {
obj = new XMLHttpRequest();
}
return obj;
}
function sendRequest(id){
var uname = document.getElementById('Nama').value;
var comment = document.getElementById('Komentar').value;
var email = document.getElementById('Email').value;
var QueryString = 'comment.php?id='+id+'&nama='+uname+'&komentar='+comment+'&email='+email;
http.open('GET', QueryString);
if (uname && comment && email){
if (validateEmail(email)){
http.onreadystatechange = handleResponse;
http.send(null);
} else {
alert("Format email salah");
}
} else {
alert("Form harus diisi semua");
}
}
function handleResponse(){
if (http.readyState == 4){
var response = http.responseText;
if (response != ''){
document.getElementById('listcomment').innerHTML = response;
} else {
document.getElementById('listcomment').innerHTML = 'wrong';
}
}
}
function validateEmail(email){
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(email);
}
4 changes: 0 additions & 4 deletions assets/js/jquery.min.js

This file was deleted.

64 changes: 64 additions & 0 deletions assets/js/validation.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
function validateDate(inputDate) { //Fungsi untuk memvalidasi tanggal
// regular expression format tanggal yang valid
var re = /^\d{4}\-\d{1,2}\-\d{1,2}$/;

if(inputDate.value != '' && !inputDate.value.match(re)) { //memeriksa format tanggal
alert("Format tanggal salah: " + inputDate.value +"\nFormat tanggal yang benar: YYYY-MM-DD");
document.addPost.Tanggal.focus();
return false;
} else if(isDate(inputDate)) {
var today = new Date();
if(!isDateTrue(inputDate, today)){
alert("Tanggal harus lebih besar atau sama dengan " + today.getFullYear() + "-" + (today.getMonth()+1) + "-" + today.getDate());
document.addPost.Tanggal.focus();
return false;
}
} else {
alert("Tanggal tidak logis");
document.addPost.Tanggal.focus();
return false;
}
}

function isDate(inputDate){ //Fungsi untuk kelogisan tanggal
//Pekondisi: Format tanggal pasti benar
var date = inputDate.value.split("-");
if ((parseInt(date[0]) > 0) && (parseInt(date[1]) > 0) && (parseInt(date[2]) > 0)){
if (parseInt(date[1]) == 2){
if (parseInt(date[0])%4 == 0){
return (parseInt(date[2]) <= 29);
} else {
return (parseInt(date[2]) <= 28);
}
} else if((parseInt(date[1]) == 1) || (parseInt(date[1]) == 3) || (parseInt(date[1]) == 5) || (parseInt(date[1]) == 7) || (parseInt(date[1]) == 8) || (parseInt(date[1]) == 10) || (parseInt(date[1]) == 12)){
return (parseInt(date[2]) <= 31);
} else {
return (parseInt(date[2]) <= 30);
}
} else {
return false;
}
}

function isDateTrue(inputDate, today){ //Fungsi untuk memeriksa apakah tanggal masukan lebih besar atau sama dengan hari ini
//Pekondisi: Format tanggal pasti benar
var date = inputDate.value.split("-");
if (parseInt(date[0]) > parseInt(today.getFullYear())){
return true;
} else if (parseInt(date[0]) < parseInt(today.getFullYear())){
return false;
} else {
if (parseInt(date[1]) > parseInt(today.getMonth()+1)){
return true;
} else if (parseInt(date[1]) < parseInt(today.getMonth()+1)){
return false;
} else {
if (parseInt(date[2]) < parseInt(today.getDate())){
return false;
} else {
return true;
}
}
}

}
36 changes: 36 additions & 0 deletions comment.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<?php
require_once('config.php');

$Nama = $_GET['nama'];
$Komentar = $_GET['komentar'];
$Email = $_GET['email'];
$id = $_GET['id'];

//masukkan ke database
$stmt = $db->prepare('INSERT INTO komentar (kom_nama,kom_waktu, kom_email, kom_isi, post_id_fk) VALUES (:Nama, :Waktu, :Email, :Isi, :post_id)') ;
$stmt->execute(array(
':Nama' => $Nama,
':Waktu' => date('Y-m-d h:i:s', time()),
':Email' => $Email,
':Isi' => $Komentar,
':post_id' => $id
));

//menampilkan komentar dari database
try{
$stmt = $db->query("SELECT * FROM `komentar` WHERE post_id_fk = ".$id." ORDER BY kom_waktu DESC");
//$stmt->execute(array(post_id => $_GET['id'])); echo post_id;
while($row = $stmt->fetch()){
echo '<li class="art-list-item">';
echo '<div class="art-list-item-title-and-time">';
echo '<h2 class="art-list-title"><a href="post.php?id='.$id.'">'.$row['kom_nama'].'</a></h2>';
echo '<div class="art-list-time">'.$row['kom_waktu'].'</div>';
echo '</div>';
echo '<p>'.$row['kom_isi'].'</p>';
echo '</li>';
}
} catch(PDOException $e){
echo $e->getMessage();
}

?>
17 changes: 17 additions & 0 deletions config.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php
ob_start();
session_start();

//database credentials
define('DBHOST','localhost');
define('DBUSER','root');
define('DBPASS','');
define('DBNAME','simple-blog');

$db = new PDO("mysql:host=".DBHOST.";port=3306;dbname=".DBNAME, DBUSER, DBPASS);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

//set timezone
date_default_timezone_set('Asia/Bangkok');

?>
157 changes: 157 additions & 0 deletions edit_post.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
<?php
require_once('config.php');
?>
<!DOCTYPE html>
<html>
<head>

<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="description" content="Deskripsi Blog">
<meta name="author" content="Judul Blog">

<!-- Twitter Card -->
<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="omfgitsasalmon">
<meta name="twitter:title" content="Simple Blog">
<meta name="twitter:description" content="Deskripsi Blog">
<meta name="twitter:creator" content="Simple Blog">
<meta name="twitter:image:src" content="{{! TODO: ADD GRAVATAR URL HERE }}">

<meta property="og:type" content="article">
<meta property="og:title" content="Simple Blog">
<meta property="og:description" content="Deskripsi Blog">
<meta property="og:image" content="{{! TODO: ADD GRAVATAR URL HERE }}">
<meta property="og:site_name" content="Simple Blog">

<link rel="stylesheet" type="text/css" href="assets/css/screen.css" />
<link rel="shortcut icon" type="image/x-icon" href="img/favicon.ico">

<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->

<title>Simple Blog | Edit Post</title>
<script type="text/javascript" src="assets/js/validation.js"></script>
</head>

<body class="default">
<div class="wrapper">

<nav class="nav">
<a style="border:none;" id="logo" href="index.php"><h1>Simple<span>-</span>Blog</h1></a>
<ul class="nav-primary">
<li><a href="new_post.php">+ Tambah Post</a></li>
</ul>
</nav>

<article class="art simple post">


<h2 class="art-title" style="margin-bottom:40px">-</h2>

<div class="art-body">
<div class="art-body-inner">
<h2>Edit Post</h2>

<div id="contact-area">
<?php
if(isset($_POST['submit'])){

$_POST = array_map( 'stripslashes', $_POST );

extract($_POST);
if(!isset($error)){

try {
//update database
$stmt = $db->prepare('UPDATE posts SET Judul = :Judul, Tanggal = :Tanggal, Konten = :Konten WHERE ID = :ID') ;
$stmt->execute(array(
':Judul' => $Judul,
':Konten' => $Konten,
':Tanggal' => $Tanggal,
':ID' => $ID
));

//kembali ke halaman index dengan aksi update sudah terlaksana
header('Location: index.php?action=updated');
exit;
} catch(PDOException $e) {
echo $e->getMessage();
}
}
}
?>
<?php

try {
//query untuk mendapatkan isi database
$stmt = $db->prepare('SELECT ID, Judul, Tanggal, Konten FROM posts WHERE ID = :ID') ;
$stmt->execute(array(':ID' => $_GET['id']));
$row = $stmt->fetch();

} catch(PDOException $e) {
echo $e->getMessage();
}

?>
<form method="post" action="">
<input type='hidden' name='ID' value='<?php echo $row['ID'];?>'>

<label for="Judul">Judul:</label>
<input type="text" name="Judul" id="Judul" value='<?php echo $row['Judul'];?>'>

<label for="Tanggal">Tanggal:</label>
<input type="text" name="Tanggal" id="Tanggal" value='<?php echo $row['Tanggal'];?>'>

<label for="Konten">Konten:</label><br>
<textarea name="Konten" rows="20" cols="20" id="Konten" ><?php echo $row['Konten'];?></textarea>

<input type="submit" name="submit" value="Simpan" class="submit-button" onclick="return validateDate(document.addPost.Tanggal);">
</form>

</div>
</div>
</div>

</article>

<footer class="footer">
<div class="back-to-top"><a href="">Back to top</a></div>
<!-- <div class="footer-nav"><p></p></div> -->
<div class="psi">&Psi;</div>
<aside class="offsite-links">
Asisten IF3110 /
<a class="rss-link" href="#rss">RSS</a> /
<br>
<a class="twitter-link" href="http://twitter.com/YoGiiSinaga">Yogi</a> /
<a class="twitter-link" href="http://twitter.com/sonnylazuardi">Sonny</a> /
<a class="twitter-link" href="http://twitter.com/fathanpranaya">Fathan</a> /
<br>
<a class="twitter-link" href="#">Renusa</a> /
<a class="twitter-link" href="#">Kelvin</a> /
<a class="twitter-link" href="#">Yanuar</a> /

</aside>
</footer>

</div>

<script type="text/javascript" src="assets/js/fittext.js"></script>
<script type="text/javascript" src="assets/js/app.js"></script>
<script type="text/javascript" src="assets/js/respond.min.js"></script>
<script type="text/javascript">
var ga_ua = '{{! TODO: ADD GOOGLE ANALYTICS UA HERE }}';

(function(g,h,o,s,t,z){g.GoogleAnalyticsObject=s;g[s]||(g[s]=
function(){(g[s].q=g[s].q||[]).push(arguments)});g[s].s=+new Date;
t=h.createElement(o);z=h.getElementsByTagName(o)[0];
t.src='//www.google-analytics.com/analytics.js';
z.parentNode.insertBefore(t,z)}(window,document,'script','ga'));
ga('create',ga_ua);ga('send','pageview');
</script>

</body>
</html>

Loading