Cara Menampilkan Subscriber

Gambar 230. Cara menambahkan file dan element untuk menampilkan subscriber website.

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:

  1. admin_subscribe.php dan
  2. 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.

Subscriber

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.

 

Post Terkait

Email dan Subscribe

Email dan Subscribe Beberapa pengguna/developer popojicms mengeluh tidak adanya action saat tombol subscribe di klik, ada juda yang mengeluh tentang...

Author

Administrator

16 September 2017

Hey..... Apa kabar? Semua artikel dan layanan yang kami sediakan di sini semata-mata untuk kepentingan pengguna dan klien. Jadi jika Anda merasa membutuhkan pelayanan kami silahkan jangan ragu untuk menghubungi. Kami juga bersedia untuk melayani konsultasi online melalui media sosial, melalui komentar dan melalui halaman testimonial yang telah kami sediakan. Selain itu Anda juga dapat menggunakan kontak form yang tersedia.

Jika apa yang anda dapatkan dari situs ini bermanfaat, silahkan dukung dengan like dan share . Terimakasih telah berkunjung, silahkan kembali kapanpun anda merasa membutuhkan layanan yang kami sediakan.

Status Akun Iklan 11 Juni 2024

Saya sampaikan bahwa status akun iklan sudah saya cek dan saya kelola. Sehingga pagi ini siap untuk di jalankan.

Abaikan notifikasi/tanda yang ada; Dibatasi anggaran, merah, kuning, apapun itu mohon di abaikan. Saya sudah pertimbangkan dan sesuaikan di masing-masing akun. Pagi ini, pukul 04.45 WIB saya baru selesai periksa dan setting semua akun. Sehingga tidak ada lagi yang perlu di tanyakan. Silahkan jalankan iklan.
Ingin berbagi dengan multibisnisindo dan memberikan kontribusi....? Tulis pengalamanmu Di Sini

Terimakasih
JOPanda

Tidak ada komentar terkait posting ini, Ingin memberi komentar?