MEMBUAT PENDAFTARAN NEWSLETTER DI CODEIGNITER 2.1.3

Biasanya para pengunjung yang suka dengan artikel-artikel yang ada di blog atau website sobat, ingin mendapatkan info update tentang artikel terbaru. Untuk itulah sobat perlu membuat form pendaftaran newsletter. Disini saya akan membuat sedikit coretan kodingnya disini hanya untuk sobat-sobat tercinta. Let's have fun with coding.


STEP 1 : Konfigurasi CodeIgniter
Buka file application\config\config.php rubah isinya menjadi
$config['base_url'] = 'http://localhost/email/';
//email adalah nama folder dalam localhost
$config['server_root']  = $_SERVER['DOCUMENT_ROOT'];
Buka file application\config\autoload.php dan load otomatis helper form dan url dengan merubah
$autoload['helper'] = array('url','form');
Buat file bernama email.php dalam folder application\config\email.php dan isikan skrip dibawah ini
<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');  
/* 
| ------------------------------------------------------------------- 
| EMAIL CONFIG 
| ------------------------------------------------------------------- 
| Konfigurasi email keluar melalui mail server
| */  
$config['protocol']='smtp';  
$config['smtp_host']='ssl://smtp.googlemail.com';  
$config['smtp_port']='465';  
$config['smtp_timeout']='30';  
$config['smtp_user']='alamat_email_gmail_sobat';  
$config['smtp_pass']='Passwor_akun_gmail_sobat';  
$config['charset']='utf-8';  
$config['newline']="\r\n";  
   
/* End of file email.php */ 
/* Location: ./system/application/config/email.php */
Note : Ingat dalam baris 12, hanya masukkan alamat email punya nya google alias gmail sobat saja. Konfigurasi email ini hanya bisa dijalankan untuk email gmail. Sobat bisa klik ini untuk konfigurasi email di codeigniter lebih lanjut.


STEP 2 : Membuat Controller letter.php
Buat file controller application\controllers\letter.php dan isikan skrip dibawah
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Letter extends CI_Controller {
function __construct()
{
 parent::__construct();
 
}

 function index(){
 $this->load->view('letter_v');
 }
 function send()
 {
 $this->load->library('form_validation');
  
  // field name, error message, validation rules
  $this->form_validation->set_rules('name', 'Name', 'trim|required');
  $this->form_validation->set_rules('email', 'Email Address', 'trim|required|valid_email');
  
  if($this->form_validation->run() == FALSE)
  {
   $this->load->view('letter_v');
  }
  else
  {
   // validation berhasil. Tinggal mengirimkan email
   $name = $this->input->post('name');
   $email = $this->input->post('email');
  
  // mengirim email  
  $this->load->library('email');  
  $this->email->from('bapakdarul@gmail.com','ahmad darul abror');  
  $this->email->to($email);  
  $this->email->subject('Tes Konfirmasi Signup Newsletter');  
  $this->email->message("kamu sudah terdaftar sob!");  
  $this->email->send();   
  
  $path = $this->config->item('server_root');
  $file = $path . '/email/attachments/newsletter1.txt';

  $this->email->attach($file);
   if($this->email->send())
   {
    echo 'Your email was sent, fool.';
    //$this->load->view('signup_confirmation_view');
   }

   else
   {
    show_error($this->email->print_debugger());
   }
  }
}}

/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */

Penjelasan :

  • Pada baris 11 pada fungsi index kita memanggil file letter_v.php pada folder application\views\letter_v.php yang akan dibuat dibawah ini.
  • Pada baris 21, jika validasi pada baris18 dan 19 dijalankan dan menghasilkan FALSE maka yang akan ditampilkan adalah file letter_v.php dengan keterangan error.
  • Pada baris 34, email akan dikirimkan ke variabel $email email yang sudah didefinisikan diatasnya
  • Pada baris 39, ada variabel yang berfungsi menangkap path atau alamat file yang di attach
  • Pada baris 42 merupakan method untuk mengirimakan file attachment di codeigniter


STEP 3 : Membuat file letter_v.php 
Isikan file application\views\letter_v.php dengan skrip dibawah :
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">

<html lang="en">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
 <title>untitled</title>
 <link rel="stylesheet" href="<?php echo base_url();?>css/style.css" type="text/css" media="screen" charset="utf-8">

</head>
<body>

<div id="newsletter_form">
 <h2>Newsletter</h2>
 <?php echo form_open('letter/send'); ?>
 
 <?php
 
 $name_data = array(
  'name' => 'name',
  'id' => 'name',
  'value' => set_value('name')
 );
 
 ?>
 
 <p><label for="name">Name: </label><?php echo form_input($name_data); ?></p>
 
 <p>
  <label for="name">Email Address: </label>
  <input type="text" name="email" id="email" value="<?php echo set_value('email');?>">
 </p>
 
 <p><?php echo form_submit('submit', 'Submit'); ?></p>
 
 <?php echo form_close(); ?>
 
 <?php echo validation_errors('<p class="error">'); ?>
 
</div><!--end newsletter-form-->
</body>
</html>


STEP 4 : Membuat file CSS
Buatlah file css/style.css dengan css adalah folder diluar sistem, dan isikan file dengan skrip dibawah :
label {
display: block;
}

.error {
color: #373737;
font-style: italic;
}

#newsletter_form {
background: #e3e3e3;
width: 20%;
margin: 5em auto 0;
padding: 32px;
border: 1px solid #d5d5d5;
}

#newsletter_form form input[type=text] {
width: 100%;
}

h2 {
margin-top: -54px;
color: #aa2828;
font-family: arial;
}

input[type=submit] {
border: 1px solid #c62828;
background: #aa2828;
color: #e3e3e3;
padding: .5em;
cursor: pointer;
}

input[type=submit]:hover {
background: #9a2222;
}
Jika sobat benar dalam melakukan semua langkah-langkah hasilnya akan seperti screenshot di bawah
newsletter signup in codeigniter

0 comments: