Skip to content

IF3110-01-Simple-Blog by Hayyu Luthfi Hanifah 13512080 #105

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 27 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
e554942
commit pertama
hayyuelha Oct 7, 2014
b65e735
Please enter the commit message for your changes. Lines starting
hayyuelha Oct 7, 2014
77ecfab
newly organized
hayyuelha Oct 7, 2014
6a14523
delete inner folder (duplicate)
hayyuelha Oct 7, 2014
00b17e0
Penanganan post baru, belum ada validasi tanggal
hayyuelha Oct 12, 2014
e99c66c
Menampilkan single post, komentar belum berfungsi
hayyuelha Oct 12, 2014
76b82c2
Penanganan edit post, validasi tanggal belum berjalan
hayyuelha Oct 12, 2014
6c6b217
Penanganan delete post menggunakan javascript, belum berfungsi dengan…
hayyuelha Oct 12, 2014
928b48e
JavaScript untuk menangani konfirmasi delete post, belum berjalan den…
hayyuelha Oct 12, 2014
9697471
JavaScript untuk validasi tanggal pada form Post dan Edit, belum berj…
hayyuelha Oct 12, 2014
d01ad92
changed
hayyuelha Oct 12, 2014
5b5ee45
Jquery dihapus
hayyuelha Oct 12, 2014
03617ad
belum berjalan dengan benar
hayyuelha Oct 13, 2014
ffe429b
delete.php fix
hayyuelha Oct 13, 2014
63ee0b4
penambahan javascript konfirmasi untuk menghapus post
hayyuelha Oct 13, 2014
ce322f6
penambahan placeholder untuk field Tanggal
hayyuelha Oct 13, 2014
8025f40
...
hayyuelha Oct 13, 2014
9e8fa15
validasi tanggal sudah berjalan dengan benar
hayyuelha Oct 14, 2014
a3e191a
penambahan validasi tanggal
hayyuelha Oct 14, 2014
535ce81
penambahan fungsionalitas komentar
hayyuelha Oct 14, 2014
852aed6
penanganan komentar
hayyuelha Oct 14, 2014
cde547a
unused file
hayyuelha Oct 14, 2014
28b0168
database simple blog
hayyuelha Oct 14, 2014
9acf58f
validasi komentar dengan AJAX
hayyuelha Oct 14, 2014
8f8604e
penambahan query delete comment
hayyuelha Oct 14, 2014
f9c7da0
perbaikan input datetime
hayyuelha Oct 14, 2014
d661dc5
echo pesan error jika ada field yang masih kosong
hayyuelha Oct 14, 2014
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
4 changes: 0 additions & 4 deletions assets/js/jquery.min.js

This file was deleted.

64 changes: 64 additions & 0 deletions assets/js/validate_comment.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
function add(pid)
{
var xmlhttp = new XMLHttpRequest();
var Content = document.getElementById('useAjax');
var Nama = document.getElementById('Nama').value;
var Komentar = document.getElementById('Komentar').value;
var Email = document.getElementById('Email').value;



xmlhttp.onreadystatechange = function()
{
if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
document.getElementById('Nama').value="";
document.getElementById('Komentar').value="";
document.getElementById('Email').value="";
content.innerHTML = xmlhttp.responseText;
}
};



xmlhttp.open("GET","insertComment.php?pid="+pid+"&Nama="+Nama+"&Komentar="+Komentar+"&Email="+Email,true);
xmlhttp.send();

}

function loadpost(pid)
{
var xmlhttp = new XMLHttpRequest();
var content = document.getElementById('useAjax');
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4 && xmlhttp.status==200)
{
content.innerHTML=xmlhttp.responseText;
}
};
xmlhttp.open("GET", "getComment.php?pid=" + pid, true);
xmlhttp.send();
}

function validate_comment(pid)
{
var email = document.getElementById('Email').value;
var regex = /^(([^<>()[\]\\.,;:\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,}))$/;
if(email != "")
{
var valid = regex.test(email);
var errormessage = document.getElementById('errormsg');

if(valid)
{
errormessage.innerHTML="";
add(pid);
}
else
{
errormessage.innerHTML="Format email tidak valid";
}
}
}

41 changes: 41 additions & 0 deletions assets/js/validate_date.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
function validate_date()
{
var tanggal = document.getElementById('Tanggal').value;
document.getElementById('errormsg').innerHTML="";
var tanggal1 = strToDate(tanggal);
if(tanggal1 == null)
{
return false;
}
else
{
var tanggal2 = new Date();
var result = tanggal1 > tanggal2;
if(result)
{
var tanggal_reverse = tanggal.split("-").reverse().join("-");
document.getElementById('Tanggal').value=tanggal_reverse;
return true;
}
else
{
document.getElementById('errormsg').innerHTML="*Tanggal sudah lewat. Masukkan tanggal yang valid.";
return false;
}
}
}

function strToDate(str) {
var m = str.match(/^(\d{1,2})-(\d{1,2})-(\d{4})$/);
var tanggal3;
if(m)
{
var tanggal3 = new Date(m[3],m[2]-1,m[1]-(-1));
}
else
{
document.getElementById("errormsg").innerHTML="Format tanggal salah. (format:dd-mm-yyyy)";
var tanggal3 = null;
}
return tanggal3;
}
37 changes: 37 additions & 0 deletions database.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?php
class Database
{
private static $dbName = 'simpleblog' ;
private static $dbHost = 'localhost:3306' ;
private static $dbUsername = 'root';
private static $dbUserPassword = '';

private static $cont = null;

public function __construct() {
die('Init function is not allowed');
}

public static function connect()
{
// One connection through whole application
if ( null == self::$cont )
{
try
{
self::$cont = new PDO( "mysql:host=".self::$dbHost.";"."dbname=".self::$dbName, self::$dbUsername, self::$dbUserPassword);
}
catch(PDOException $e)
{
die($e->getMessage());
}
}
return self::$cont;
}

public static function disconnect()
{
self::$cont = null;
}
}
?>
31 changes: 31 additions & 0 deletions delete.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<?php

require 'database.php';

$pid = 0;
if (!empty($_GET['pid'])){
$pid = $_REQUEST['pid'];
}


$sambung = mysql_connect("localhost:3306","root","");
if (!$sambung) {
die('Tidak bisa tersambung: ' . mysql_error());
}
mysql_select_db("simpleblog");
$deleteComment = "DELETE FROM komentar WHERE pid='$pid'";
if (!mysql_query($deleteComment,$sambung)){
die('Error: ' . mysql_error());
}
$deletePost = "DELETE FROM blogitem WHERE pid='$pid' ";
if (!mysql_query($deletePost,$sambung)){
die('Error: ' . mysql_error());
}

mysql_close($sambung);
header("Location: index.php");




?>
52 changes: 52 additions & 0 deletions edit.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<?php

require 'database.php';

$pid = null;
if (!empty($_GET['pid'])){
$pid = $_REQUEST['pid'];
}
if (null == $pid){
header("Location: index.php");
}
if (!empty($_POST)){
$titleerror = null;
$dateerror = null;
$contenterror = null;

$title = $_POST['Judul'];
$date = $_POST['Tanggal'];
$content = $_POST['Konten'];
$valid = true;
if (empty($title)){
$titleerror = "Judul harus diisi!"; #pesan error blm tampil
$valid = false;
}
if (empty($date)){
$dateerror = "Tanggal harus diisi!"; #pesan error blm tampil
#sisipkan validasi untuk tanggal >= timestamp
$valid = false;
}
if (empty($content)){
$contenterror = "Konten harus diisi!"; #pesan error blm tampil
$valid = false;
}

if ($valid){
$sambung = mysql_connect("localhost:3306","root","");
if (!$sambung) {
die('Tidak bisa tersambung: ' . mysql_error());
}
mysql_select_db("simpleblog");
$post = "UPDATE blogitem SET posttitle='$title', postdate='$date', postcontent='$content' WHERE pid='$pid' ";
if (!mysql_query($post,$sambung)){
die('Error: ' . mysql_error());
}

mysql_close($sambung);
header("Location: post.php?pid=$pid");
}
}


?>
132 changes: 132 additions & 0 deletions edit_post.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
<?php
require 'database.php';
$pid = null;
if ( !empty($_GET['pid'])) {
$pid = $_REQUEST['pid'];
}

if ( null==$pid ) {
header("Location: index.php");
} else {
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT * FROM blogitem where pid = ?";
$q = $pdo->prepare($sql);
$q->execute(array($pid));
$data = $q->fetch(PDO::FETCH_ASSOC);
Database::disconnect();
}
?>

<!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>


</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">
<form method="post" action="edit.php?pid=<?php echo $data['pid']?>" onsubmit="return validate_date()">
<label for="Judul">Judul:</label>
<input type="text" name="Judul" id="Judul" value="<?php echo $data['posttitle']?>">

<label for="Tanggal">Tanggal:</label>
<input type="text" name="Tanggal" id="Tanggal" value="<?php echo $data['postdate']?>"><div id="errormsg"></div>

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

<input type="submit" name="submit" value="Simpan" class="submit-button">
</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>
30 changes: 30 additions & 0 deletions getComment.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?php

//get data from info_comment
$link = mysqli_connect('localhost:3306', 'root', "", 'simpleblog');
$pid = mysqli_real_escape_string($link, $_GET['pid']);
$query = "SELECT * FROM komentar WHERE pid = $pid ORDER BY c_date DESC";

if(!($results = mysqli_query($link, $query)))
{
die('Error ' + mysqli_errno($link));
}

foreach ($results as $row)
{
?>
<li class="art-list-item">
<div class="art-list-item-title-and-time">
<h2 class="art-list-title"><?php echo $row['c_name']; ?></h2>
<?php
//formatting tanggal
$date = date_create($row['c_date']);
?>
<div class="art-list-time"><?php echo date_format($date, 'g:ia \o\n l jS F Y'); ?></div>
</div>
<p><?php echo $row['comment']; ?></p>
</li>
<?php
}
mysqli_close($link);
?>
Loading