Skip to content

Commit 3670d22

Browse files
committed
add fitur pesan
1 parent c2ab069 commit 3670d22

File tree

5 files changed

+210
-2
lines changed

5 files changed

+210
-2
lines changed

application/controllers/Dashboard.php

Lines changed: 70 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public function index()
2727
$data['dataKunjungan'] = $this->stats->getAllDataLimit();
2828
$data['totalPenayangan'] = $this->stats->getCountPenayangan();
2929
$data['lastPost'] = $this->post->getLastPost();
30+
$data['unreadmsg'] = $this->stats->unreadPesan();
3031

3132
$this->load->view('newdb/dbheader', $data);
3233
$this->load->view('newdb/dbwrapper', $data);
@@ -56,6 +57,7 @@ public function posts()
5657
$this->load->library('pagination');
5758
$data['webData'] = $this->settings->getWebData();
5859
$data['akunInfo'] = $this->settings->getAkunInfo($this->session->userdata('username'));
60+
$data['unreadmsg'] = $this->stats->unreadPesan();
5961

6062
$config['base_url'] = base_url() . 'dashboard/posts/';
6163
$config['total_rows'] = $this->post->getCountAllPost();
@@ -80,6 +82,7 @@ public function addpost()
8082
$data['categories'] = $this->post->getAllCategories();
8183
$data['webData'] = $this->settings->getWebData();
8284
$data['akunInfo'] = $this->settings->getAkunInfo($this->session->userdata('username'));
85+
$data['unreadmsg'] = $this->stats->unreadPesan();
8386

8487
$this->form_validation->set_rules('judul', 'Judul', 'required|is_unique[postingan.judul]');
8588
$this->form_validation->set_rules('subjudul', 'Sub Judul', 'required');
@@ -115,6 +118,7 @@ public function editpost($id)
115118
$data['post'] = $this->post->getPostById($id);
116119
$data['webData'] = $this->settings->getWebData();
117120
$data['akunInfo'] = $this->settings->getAkunInfo($this->session->userdata('username'));
121+
$data['unreadmsg'] = $this->stats->unreadPesan();
118122

119123
if ($data['post']['author'] != $this->session->userdata('id')) {
120124
redirect('dashboard/posts');
@@ -166,6 +170,7 @@ public function detailpost($id)
166170
$data['post'] = $this->post->getPostById($id);
167171
$data['webData'] = $this->settings->getWebData();
168172
$data['akunInfo'] = $this->settings->getAkunInfo($this->session->userdata('username'));
173+
$data['unreadmsg'] = $this->stats->unreadPesan();
169174

170175
$this->load->view('newdb/dbheader', $data);
171176
$this->load->view('newdb/dbwrapper', $data);
@@ -212,6 +217,7 @@ public function websettings()
212217
$data['webData'] = $this->settings->getWebData();
213218
$data['akunInfo'] = $this->settings->getAkunInfo($this->session->userdata('username'));
214219
$this->load->library('form_validation');
220+
$data['unreadmsg'] = $this->stats->unreadPesan();
215221

216222
$this->form_validation->set_rules('namaweb', 'Nama web', 'required');
217223
$this->form_validation->set_rules('sloganweb', 'Slogan web', 'required');
@@ -243,6 +249,7 @@ public function akunsettings()
243249
$data['judul'] = "Dashboard";
244250
$data['akunInfo'] = $this->settings->getAkunInfo($this->session->userdata('username'));
245251
$data['webData'] = $this->settings->getWebData();
252+
$data['unreadmsg'] = $this->stats->unreadPesan();
246253

247254
$this->load->view('newdb/dbheader', $data);
248255
$this->load->view('newdb/dbwrapper', $data);
@@ -311,7 +318,6 @@ public function addwriter()
311318
$addwriter = $this->settings->addNewWriter();
312319
if ($addwriter) {
313320
$this->session->set_flashdata('sukses', 'Berhasil menambah writer');
314-
$this->session->unset_userdata('username');
315321
redirect('dashboard/akunsettings');
316322
} else {
317323
$this->session->set_flashdata('gagal', 'Gagal menambah writer');
@@ -332,9 +338,10 @@ public function akun()
332338
$data['judul'] = "Dashboard";
333339
$data['akunInfo'] = $this->settings->getAkunInfo($this->session->userdata('username'));
334340
$this->load->library('pagination');
341+
$data['unreadmsg'] = $this->stats->unreadPesan();
335342

336343
$config['base_url'] = base_url() . 'dashboard/akun/';
337-
$config['total_rows'] = $this->post->getCountAllPost();
344+
$config['total_rows'] = $this->stats->getCountAllAkun();
338345
$config['per_page'] = 1;
339346

340347
$data['start'] = $this->uri->segment('3');
@@ -349,4 +356,65 @@ public function akun()
349356
$this->load->view('newdb/akun/list', $data);
350357
$this->load->view('newdb/dbfooter', $data);
351358
}
359+
360+
// pesan
361+
362+
public function pesan()
363+
{
364+
365+
if ($this->session->userdata('role') != 'admin') {
366+
redirect('dashboard');
367+
}
368+
369+
$data['judul'] = "Dashboard";
370+
$data['akunInfo'] = $this->settings->getAkunInfo($this->session->userdata('username'));
371+
$this->load->library('pagination');
372+
373+
$config['base_url'] = base_url() . 'dashboard/pesan/';
374+
$config['total_rows'] = $this->stats->getCountAllPesan();
375+
$config['per_page'] = 1;
376+
377+
$data['start'] = $this->uri->segment('3');
378+
$data['pesans'] = $this->stats->getListPesan($config['per_page'], $data['start']);
379+
$data['unreadmsg'] = $this->stats->unreadPesan();
380+
381+
$this->pagination->initialize($config);
382+
383+
384+
$this->load->view('newdb/dbheader', $data);
385+
$this->load->view('newdb/dbwrapper', $data);
386+
$this->load->view('newdb/dbnav', $data);
387+
$this->load->view('newdb/pesan/index', $data);
388+
$this->load->view('newdb/dbfooter', $data);
389+
}
390+
391+
public function detailpesan($id)
392+
{
393+
if ($this->session->userdata('role') != 'admin') {
394+
redirect('dashboard');
395+
}
396+
397+
$data['judul'] = "Dashboard";
398+
$data['pesan'] = $this->stats->detailPesan($id);
399+
$this->stats->pesanDibaca($id);
400+
$data['unreadmsg'] = $this->stats->unreadPesan();
401+
402+
$this->load->view('newdb/dbheader', $data);
403+
$this->load->view('newdb/dbwrapper', $data);
404+
$this->load->view('newdb/dbnav', $data);
405+
$this->load->view('newdb/pesan/detail', $data);
406+
$this->load->view('newdb/dbfooter', $data);
407+
}
408+
409+
public function hapuspesan($id)
410+
{
411+
$hapus = $this->stats->hapusPesan($id);
412+
if ($hapus) {
413+
$this->session->set_flashdata('sukses', 'Berhasil menghapus pesan.');
414+
redirect('dashboard/pesan');
415+
} else {
416+
$this->session->set_flashdata('gagal', 'Gagal menghapus pesan.');
417+
redirect('dashboard/pesan');
418+
}
419+
}
352420
}

application/models/Stats_model.php

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,4 +105,48 @@ public function getCountAllAkun()
105105
{
106106
return $this->db->get('akun')->num_rows();
107107
}
108+
109+
// pesan
110+
111+
public function getListPesan($limit, $start)
112+
{
113+
$this->db->where('del', 0);
114+
$this->db->order_by('id', 'DESC');
115+
return $this->db->get('kiriman', $limit, $start)->result_array();
116+
}
117+
118+
public function getCountAllPesan()
119+
{
120+
$this->db->where('del', 0);
121+
return $this->db->get('kiriman')->num_rows();
122+
}
123+
124+
public function hapusPesan($id)
125+
{
126+
$this->db->where('id', $id);
127+
$hapus = $this->db->update('kiriman', ['del' => 1]);
128+
129+
return $hapus ? true : false;
130+
}
131+
132+
public function detailPesan($id)
133+
{
134+
$this->db->where('id', $id);
135+
return $this->db->get('kiriman')->row_array();
136+
}
137+
138+
public function pesanDibaca($id)
139+
{
140+
$this->db->where('id', $id);
141+
$update = $this->db->update('kiriman', ['baca' => 1]);
142+
143+
return $update ? true : false;
144+
}
145+
146+
public function unreadPesan()
147+
{
148+
$this->db->where('baca', 0);
149+
$this->db->where('del', 0);
150+
return $this->db->get('kiriman')->num_rows();
151+
}
108152
}

application/views/newdb/dbwrapper.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,21 @@
3333
</a>
3434
</li>
3535
<?php if ($this->session->userdata('role') == 'admin') : ?>
36+
<li <?php if ($this->uri->segment('2') == 'pesan') echo 'class="active"'; ?>>
37+
<a href="<?php echo base_url('dashboard/pesan'); ?>">
38+
<div class="row d-flex align-items-center">
39+
<div class="col">
40+
<i class="nc-icon nc-delivery-fast"></i>
41+
<p>Pesan</p>
42+
</div>
43+
<?php if ($unreadmsg != 0) : ?>
44+
<div class="col">
45+
<p class="badge badge-danger float-right" style="font-size: 14px"><?php echo $unreadmsg; ?></p>
46+
</div>
47+
<?php endif; ?>
48+
</div>
49+
</a>
50+
</li>
3651
<li <?php if ($this->uri->segment('2') == 'akun') echo 'class="active"'; ?>>
3752
<a href="<?php echo base_url('dashboard/akun'); ?>">
3853
<i class="nc-icon nc-settings-gear-65"></i>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<div class="content">
2+
<div class="row">
3+
<div class="col-md-12">
4+
<div class="card card-user">
5+
<div class="card-header">
6+
<h5>Pesan baru</h5>
7+
<p>Dari <?php echo $pesan['nama']; ?> ( <?php echo $pesan['email']; ?> )</p>
8+
<p>Pada <?php echo $pesan['created']; ?></p>
9+
</div>
10+
<div class="card-body">
11+
<p>
12+
<?php echo $pesan['pesan']; ?>
13+
</p>
14+
</div>
15+
<div class="card-footer">
16+
<a href="<?php echo base_url('dashboard/hapuspesan/' . $pesan['id']); ?>" class="btn btn-danger float-right mx-3"><i class="nc-icon nc-simple-remove"></i> Hapus</a>
17+
<a href="<?php echo base_url('dashboard/pesan'); ?>" class="btn btn-info float-right"><i class="nc-icon nc-minimal-left"></i> Kembali</a>
18+
</div>
19+
</div>
20+
</div>
21+
</div>
22+
</div>
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
<div class="content">
2+
3+
<?php if ($this->session->flashdata('sukses')) : ?>
4+
<div class="alert alert-success" role="alert">
5+
<span><?php echo $this->session->flashdata('sukses'); ?></span>
6+
</div>
7+
<?php endif; ?>
8+
9+
<?php if ($this->session->flashdata('gagal')) : ?>
10+
<div class="alert alert-danger" role="alert">
11+
<span><?php echo $this->session->flashdata('gagal'); ?></span>
12+
</div>
13+
<?php endif; ?>
14+
15+
<div class="row">
16+
<div class="col-md-12">
17+
<div class="card card-stats">
18+
<div class="card-header">
19+
<h5>List Pesan Masuk</h5>
20+
</div>
21+
<div class="card-body">
22+
23+
<?php if (!$pesans) : ?>
24+
<h6>Tidak ada data</h6>
25+
<?php else : ?>
26+
<div class="table-responsive">
27+
<table class="table">
28+
<thead>
29+
<tr>
30+
<th scope="col">No</th>
31+
<th scope="col">Nama Lengkap</th>
32+
<th scope="col">Email</th>
33+
<th scope="col">Role</th>
34+
</tr>
35+
</thead>
36+
<tbody>
37+
<?php foreach ($pesans as $pesan) : ?>
38+
<tr <?php if ($pesan['baca'] == 1) echo 'style="background:#dddddd"'; ?>>
39+
<td><?php echo ++$start; ?></td>
40+
<td><?php echo $pesan['nama']; ?></td>
41+
<td><?php echo $pesan['email']; ?></td>
42+
<td>
43+
<a href="<?php echo base_url('dashboard/detailpesan/' . $pesan['id']); ?>" class="badge badge-warning"><i class="nc-icon nc-zoom-split"></i></a>
44+
<a href="<?php echo base_url('dashboard/hapuspesan/' . $pesan['id']); ?>" class="badge badge-danger"><i class="nc-icon nc-simple-remove"></i></a>
45+
</td>
46+
</tr>
47+
<?php endforeach; ?>
48+
</tbody>
49+
</table>
50+
</div>
51+
<?php endif; ?>
52+
</div>
53+
<div class="card-footer pt-5 pb-3">
54+
<?php echo $this->pagination->create_links(); ?>
55+
</div>
56+
</div>
57+
</div>
58+
</div>
59+
</div>

0 commit comments

Comments
 (0)