Cara Menampilkan Subscriber
- Administrator
- Subscriber
- 1857 Kali Dilihat
- 0 Komentar
Cara Menampilkan Sebscriber
Kita semua tahu bahwasanya pada platform PopojiCms yang kita gunakan memiliki komponen subscribe. Sehingga memungkinkan pengunjung website untuk subscribe atau berlangganan kabar berita dari website kita. Dari situlah pernah timbul pertanyaan dari salah seorang pengguna melalui kabar berita di group oficial PopojiCms, "Cara Menampilkan Sebscriber". Dan untuk itu pula, maka saya berusaha melengkapi komponen subscribe dengan menambahkan element untuk menampilkan halaman subscriber pada dashboard admin.
Baca Juga tentang Email dan Subscribe
Bagi anda yang ingin menambahkan dan melengkapi komponen subscribe, silahkan ikuti petunjuk berikut:
UPDATE
Bagi anda yang didalam root_directory/po-content/component belum memiliki folder subscribe, sebaiknya anda cek database di PhpMyadmin apakah dalam database website anda sudah memiliki table subscribe atau belum? Jika ternyata pada database website anda belum memiiliki table subscribe silahkan jalankan perintah SQL berikut untuk menambahkan table subsribe.
CREATE TABLE `subscribe` (
`id_subscribe` int(5) NOT NULL,
`email` varchar(255) NOT NULL DEFAULT '',
`name` varchar(255) NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Indexes for table `subscribe`
--
ALTER TABLE `subscribe`
ADD PRIMARY KEY (`id_subscribe`);
--
-- AUTO_INCREMENT for table `subscribe`
--
ALTER TABLE `subscribe`
MODIFY `id_subscribe` int(5) NOT NULL AUTO_INCREMENT;
Langkah selanjutnya silahkan tambahkan folder subscribe pada root_directory/po-content/component sehingga sekarang anda memiliki struktur root_directory/po-content/component/subscribe
Tambahkan 2 file bernama subscribe.php dan index.html(304) di dalam folder subscribe, untuk file index.html dapat anda copy dari folder lain.
Dan berikut adalah kode yang harus berada didalam fle subscribe.php:
<?php
/*
*
* - PopojiCMS Front End File
*
* - File : subscribe.php
* - Version : 1.0
* - Author : Clark
* - License : MIT License
*
*
* Ini adalah file php yang di gunakan untuk menangani proses di bagian depan untuk halaman subscribe.
* This is a php file for handling front end process for subscribe page.
*
*/
/**
* Router untuk menampilkan request halaman subscribe.
*
* Router for display request in subscribe page.
*
*/
$router->match('GET|POST', '/subscribe', function() use ($core, $templates) {
$lang = $core->setlang('home', WEB_LANG);
$info = array(
'page_title' => 'Subscribe',
'page_desc' => 'Subscribe to update our interesting articles and information',
'page_key' => 'subscribe,langganan,update,article,information,pembaharuan,artikel',
'social_mod' => 'Subscribe',
'social_name' => $core->posetting[0]['value'],
'social_url' => $core->posetting[1]['value'].'/subscribe',
'social_title' => 'Subscribe',
'social_desc' => 'Subscribe to update our interesting articles and information',
'social_img' => $core->posetting[1]['value'].'/'.DIR_INC.'/images/favicon.png'
);
$adddata = array_merge($info, $lang);
$templates->addData(
$adddata
);
echo $templates->render('subscribe', compact('lang'));
});
Sekarang lanjutkan dengan artikel dibawah:
Langkah Cara Menampilkan Sebscriber
Silahkan buka root_directory/po-content/component/subscribe
Lalu buatlah 2 buah file didalam folder subscribe bernama:
- admin_subscribe.php dan
- admin_javascript.js
Baca Juga Tentang Kontak Website dan Email
Membuat dan menambahkan Kode Script Pada file admin_subscribe.php
Bukalah file admin_subscribe.php yang baru saja anda buat, lalu tambahkan kode berikut di dalamnya, lalu simpan:
<?php
/*
*
* - PopojiCMS Admin File
*
* - File : admin_subscribe.php
* - Version : 1.0
* - Author : Jenuar Dalapang
* - License : MIT License
*
*
* Ini adalah file php yang di gunakan untuk menangani proses admin pada halaman subscribe.
* This is a php file for handling admin process for subscribe page.
*
*/
/**
* Fungsi ini digunakan untuk mencegah file ini diakses langsung tanpa melalui router.
*
* This function use for prevent this file accessed directly without going through a router.
*
*/
if (!defined('CONF_STRUCTURE')) {
header('location:index.html');
exit;
}
/**
* Fungsi ini digunakan untuk mencegah file ini diakses langsung tanpa login akses terlebih dahulu.
*
* This function use for prevent this file accessed directly without access login first.
*
*/
if (empty($_SESSION['namauser']) AND empty($_SESSION['passuser']) AND $_SESSION['login'] == 0) {
header('location:index.php');
exit;
}
class Subscribe extends PoCore
{
/**
* Fungsi ini digunakan untuk menginisialisasi class utama.
*
* This function use to initialize the main class.
*
*/
function __construct()
{
parent::__construct();
}
/**
* Fungsi ini digunakan untuk menampilkan halaman index subscribe.
*
* This function use for index subscribe page.
*
*/
public function index()
{
if (!$this->auth($_SESSION['leveluser'], 'subscribe', 'read')) {
echo $this->pohtml->error();
exit;
}
?>
<div class="block-content">
<div class="row">
<div class="col-md-12">
<?=$this->pohtml->headTitle('Subscribe', '
<div class="btn-title pull-right">
<a href="admin.php?mod=subscribe&act=addnew" class="btn btn-success btn-sm"><i class="fa fa-plus"></i> '.$GLOBALS['_']['addnew'].'</a>
</div>
');?>
</div>
</div>
<div class="row">
<div class="col-md-12">
<?=$this->pohtml->formStart(array('method' => 'post', 'action' => 'route.php?mod=subscribe&act=multidelete', 'autocomplete' => 'off'));?>
<?=$this->pohtml->inputHidden(array('name' => 'totaldata', 'value' => '0', 'options' => 'id="totaldata"'));?>
<?php
$columns = array(
array('title' => 'Id', 'options' => 'style="width:30px;"'),
array('title' => 'Email', 'options' => ''),
array('title' => 'Name', 'options' => ''),
array('title' => 'Action', 'options' => 'class="no-sort" style="width:50px;"')
);
?>
<?=$this->pohtml->createTable(array('id' => 'table-subscribe', 'class' => 'table table-striped table-bordered'), $columns, $tfoot = true);?>
<?=$this->pohtml->formEnd();?>
</div>
</div>
</div>
<?=$this->pohtml->dialogDelete('subscribe');?>
<?php
}
/**
* Fungsi ini digunakan untuk menampilkan data json pada tabel.
*
* This function use for display json data in table.
*
*/
public function datatable()
{
if (!$this->auth($_SESSION['leveluser'], 'subscribe', 'read')) {
echo $this->pohtml->error();
exit;
}
$table = 'subscribe';
$primarykey = 'id_subscribe';
$columns = array(
array('db' => $primarykey, 'dt' => '0', 'field' => $primarykey,
'formatter' => function($d, $row, $i){
return "<div class='text-center'>
<input type='checkbox' id='titleCheckdel' />
<input type='hidden' class='deldata' name='item[".$i."][deldata]' value='".$d."' disabled />
</div>";
}
),
array('db' => $primarykey, 'dt' => '1', 'field' => $primarykey),
array('db' => 'email', 'dt' => '2', 'field' => 'email',
'formatter' => function($d, $row, $i){
return "".$d."<br/><i><a href='mailto:".$d."' onclick='window.open('mailto:".$d."','popUpWindow','height=500,width=400,left=100,top=100,resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no, status=yes')'>".$d."</a></i>";
}
),
array('db' => 'name', 'dt' => '3', 'field' => 'name'),
array('db' => $primarykey, 'dt' => '4', 'field' => $primarykey,
'formatter' => function($d, $row, $i){
return "<div class='text-center'>
<div class='btn-group btn-group-xs'>
<a href='admin.php?mod=subscribe&act=edit&id=".$d."' class='btn btn-xs btn-default' id='".$d."' data-toggle='tooltip' title='{$GLOBALS['_']['action_1']}'><i class='fa fa-pencil'></i></a>
<a class='btn btn-xs btn-danger alertdel' id='".$d."' data-toggle='tooltip' title='{$GLOBALS['_']['action_2']}'><i class='fa fa-times'></i></a>
</div>
</div>";
}
),
);
echo json_encode(SSP::simple($_POST, $this->poconnect, $table, $primarykey, $columns));
}
/**
* Fungsi ini digunakan untuk menampilkan dan memproses halaman tambah subscribe.
*
* This function is used to display and process add subscribe page.
*
*/
public function addnew()
{
if (!$this->auth($_SESSION['leveluser'], 'subscribe', 'create')) {
echo $this->pohtml->error();
exit;
}
if (!empty($_POST)) {
$subscribe = array(
'email' => $this->postring->valid($_POST['email'], 'xss'),
'name' => $this->postring->valid($_POST['name'], 'xss'),
);
$query = $this->podb->insertInto('subscribe')->values($subscribe);
$query->execute();
$this->poflash->success('Subscribe has been successfully added', 'admin.php?mod=subscribe');
}
?>
<div class="block-content">
<div class="row">
<div class="col-md-12">
<?=$this->pohtml->headTitle('Add Subscribe');?>
</div>
</div>
<div class="row">
<div class="col-md-12">
<?=$this->pohtml->formStart(array('method' => 'post', 'action' => 'route.php?mod=subscribe&act=addnew', 'autocomplete' => 'off'));?>
<div class="row">
<div class="col-md-12">
<div class="form-group">
<label for="email">Email</label>
<input type="text" name="email" class="form-control" id="email" value="<?=(isset($_POST['email']) ? $_POST['email'] : '');?>" placeholder="Email" />
</div>
</div>
<div class="col-md-12">
<div class="form-group">
<label for="name">Name</label>
<input type="text" name="name" class="form-control" id="name" value="<?=(isset($_POST['name']) ? $_POST['name'] : '');?>" placeholder="Name" />
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<?=$this->pohtml->formAction();?>
</div>
</div>
<?=$this->pohtml->formEnd();?>
</div>
</div>
</div>
<?php
}
/**
* Fungsi ini digunakan untuk menampilkan dan memproses halaman edit subscribe.
*
* This function is used to display and process edit subscribe.
*
*/
public function edit()
{
if (!$this->auth($_SESSION['leveluser'], 'subscribe', 'update')) {
echo $this->pohtml->error();
exit;
}
if (!empty($_POST)) {
$subscribe = array(
'email' => $this->postring->valid($_POST['email'], 'xss'),
'name' => $this->postring->valid($_POST['name'], 'xss'),
);
$query = $this->podb->update('subscribe')
->set($subscribe)
->where('id_subscribe', $this->postring->valid($_POST['id'], 'sql'));
$query->execute();
$this->poflash->success('Subscribe has been successfully updated', 'admin.php?mod=subscribe');
}
$id = $this->postring->valid($_GET['id'], 'sql');
$current_subscribe = $this->podb->from('subscribe')
->where('id_subscribe', $id)
->limit(1)
->fetch();
if (empty($current_subscribe)) {
echo $this->pohtml->error();
exit;
}
?>
<div class="block-content">
<div class="row">
<div class="col-md-12">
<?=$this->pohtml->headTitle('Update Subscribe');?>
</div>
</div>
<div class="row">
<div class="col-md-12">
<?=$this->pohtml->formStart(array('method' => 'post', 'action' => 'route.php?mod=subscribe&act=edit', 'autocomplete' => 'off'));?>
<?=$this->pohtml->inputHidden(array('name' => 'id', 'value' => $current_subscribe['id_subscribe']));?>
<div class="row">
<div class="col-md-12">
<div class="form-group">
<label for="email">Email</label>
<input type="text" name="email" class="form-control" id="email" value="<?=(isset($_POST['email']) ? $_POST['email'] : $current_subscribe['email']);?>" placeholder="Email" />
</div>
</div>
<div class="col-md-12">
<div class="form-group">
<label for="name">Name</label>
<input type="text" name="name" class="form-control" id="name" value="<?=(isset($_POST['name']) ? $_POST['name'] : $current_subscribe['name']);?>" placeholder="Name" />
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<?=$this->pohtml->formAction();?>
</div>
</div>
<?=$this->pohtml->formEnd();?>
</div>
</div>
</div>
<?php
}
/**
* Fungsi ini digunakan untuk menampilkan dan memproses halaman hapus subscribe.
*
* This function is used to display and process delete subscribe page.
*
*/
public function delete()
{
if (!$this->auth($_SESSION['leveluser'], 'subscribe', 'delete')) {
echo $this->pohtml->error();
exit;
}
if (!empty($_POST)) {
$query = $this->podb->deleteFrom('subscribe')->where('id_subscribe', $this->postring->valid($_POST['id'], 'sql'));
$query->execute();
$this->poflash->success('Subscribe has been successfully deleted', 'admin.php?mod=subscribe');
}
}
/**
* Fungsi ini digunakan untuk menampilkan dan memproses halaman hapus multi subscribe.
*
* This function is used to display and process multi delete subscribe page.
*
*/
public function multidelete()
{
if (!$this->auth($_SESSION['leveluser'], 'subscribe', 'delete')) {
echo $this->pohtml->error();
exit;
}
if (!empty($_POST)) {
$totaldata = $this->postring->valid($_POST['totaldata'], 'xss');
if ($totaldata != "0") {
$items = $_POST['item'];
foreach($items as $item){
$query = $this->podb->deleteFrom('subscribe')->where('id_subscribe', $this->postring->valid($item['deldata'], 'sql'));
$query->execute();
}
$this->poflash->success('Subscribe has been successfully deleted', 'admin.php?mod=subscribe');
} else {
$this->poflash->error('Error deleted subscribe data', 'admin.php?mod=subscribe');
}
}
}
}
Membuat dan menambahkan Kode Script Pada file admin_javascript.js
Bukalah file admin_javascript.js lalu tambahkan kode script berikut di dalamnya, lalu simpan:
/*
*
* - PopojiCMS Javascript
*
* - File : admin_javascript.js
* - Version : 1.0
* - Author : Clark
* - License : MIT License
*
*
* Ini adalah file utama javascript PopojiCMS yang memuat semua javascript di subscribe.
* This is a main javascript file from PopojiCMS which contains all javascript in subscribe.
*
*/
$(document).ready(function() {
$('#table-subscribe').buildtable('route.php?mod=subscribe&act=datatable');
});
$(document).ready(function() {
$('#date').datetimepicker({
format: 'YYYY-MM-DD',
showTodayButton: true,
showClear: true
});
$('#time').datetimepicker({
format: 'HH:mm:ss'
});
$('#datetime').datetimepicker({
format: 'YYYY-MM-DD HH:mm:ss',
showTodayButton: true,
showClear: true
});
$("#date").mask("9999/99/99");
$("#time").mask("99:99:99");
$("#datetime").mask("9999/99/99 99:99:99");
});
Langkah terakhir silahkan login pada dashboard admin, perhatikan pada address bar. Pada saat baru login akan menampilkan URL https://nama-domain.com/folder-admin/admin.php?mod=home
Rubahlah URL pada address bar tersebut menjadi https://nama-domain.com/folder-admin/admin.php?mod=subscribe lalu enter. Anda akan melihat list daftar subscriber yang anda miliki.
Berikan Hak Akses untuk user Superadmin
Pada dashboard admin, silahkan klik menu user > All User > User Level > Edit pada level user superadmin dan berikan hak akses untuk subscribe > dengan checklish semua radiochecklish pada subscribe.