Cara Efektif Membuat Halaman Maintenance Website CodeIgniter

Setiap website mutlak untuk melakukan perawatan (maintenance) baik pada bagian tertentu saja atau secara keseluruhan. Entah itu hanya untuk meng-upgrade sebagian dari website atau karena beberapa masalah dengan website, inilah fakta yang tak bisa anda hindari sebagi pemilik website.

Dalam beberapa kasus, pemeliharaan website dilakukan secara offline dan memerlukan waktu sedikitnya beberapa menit dan ini akan membuat website Anda dalam keadaan down.

Jadi apa yang harus Anda lakukan ketika website Anda sedang down karena proses maintenance?

Tentunya setiap website memiliki halaman error 404 atau halaman custom error lainnya. Apakah Anda akan membiarkan pengunjung anda masuk ke halaman tersebut yang terkesan tidak baik? Oleh karena itu Anda perlu membuat halaman custom maintenance website untuk menyampaikan pesan .

Pada artikel ini saya akan membantu Anda membuat sebuah halaman khusus tersebut pada situs web Anda khusunya bagi Anda yang menggunakan framework CodeIgniter.

Sebelum kita mulai perlu Anda ketahui bahwa tutorial ini menggunakan hook, untuk informasi lebih lengkap tentang hook dapat Anda baca di Dokumentasi CodeIgniter (http://www.codeigniter.com/user_guide/general/hooks.html).
  1. Aktifkan Hooks melalui config.php
    Silahkan anda buka file config.php yang ada di dalam folder application/config/. Cari skript $config['enable_hooks'] = FALSE; menggunakan Find (Ctrl+F), kemudian ganti FALSE menjadi TRUE.
    $config['enable_hooks'] = TRUE;
  2. Buat Config khusus di config.php
    Masih pada file config.php tambahkan pada baris terkhir script berikut:
    $config['maintenance'] = TRUE;
    Code di atas yang saya maksud config khusus yang akan kita ubah nilainya pada saat maintenance website dilakukan. TRUE ketika website Anda sedang melakukan maintenance dan FALSE untuk menonaktifkan.
  3. Konfigurasi hooks
    Masih di folder application/config/ buka file hooks.php. Ganti script hooks.php dengan script berikut:
    
    <?php
    defined('BASEPATH') OR exit('No direct script access allowed');

    $hook['pre_system'][] = array(
      'class' => 'maintenance',
      'function' => 'situs_offline',
      'filename' => 'maintenance.php',
      'filepath' => 'hooks'
    );
  4. Buat file maintenance.php
    Buka folder application/hooks buat file maintenance.php isi file tersebut dengan script berikut:
    
    <?php
    defined('BASEPATH') OR exit('No direct script access allowed');

    class Maintenance {

      public function situs_offline() {
        if (file_exists(APPPATH . 'config/config.php')) {
          include(APPPATH . 'config/config.php');
          if (isset($config['maintenance']) && $config['maintenance'] === TRUE) {
            include ('maintenance.html');
            exit;
          }
        }
      }
    }
  5. Buat file maintenance.html
    Masih di folder application/hooks/ buat file maintenance.html dan isi dengan script berikut:
    
    <!DOCTYPE html>
    <html lang="id">
    <head>
      <title>Dalam Perbaikan - Silakan kembali lagi nanti</title>
      <meta name="description" content="Dalam Perbaikan - Silakan kembali lagi nanti">
      <meta name="author" content="Naz Cules">
      <style>
      body { text-align: center; padding: 150px; }
      h1 { font-size: 50px; }
      body { font: 20px Helvetica, sans-serif; color: #333; }
      article { display: block; text-align: left; width: 650px; margin: 0 auto; }
      a { color: #dc8100; text-decoration: none; }
      a:hover { color: #333; text-decoration: none; }
      </style>
    </head>
    <body>
      <article>
      <h1>Website Dalam Perbaikan</h1>
      <div>
        <p>Kami sedang melakukan update dan maintenance. Anda dapat <a href="mailto:mail@domain.com">mengubungi kami</a>, atau silakan kembali lagi nanti!</p>
        <p>&nbsp;</p>
        <p>&mdash; Admin</p>
      </div>
      </article>
    </body>
    </html>
    Catatan:
    Anda dapat memodifikasi atau menggati file maintenance.html untuk mendapatkan hasil desain yang lebih baik.
Sampai di sini Anda telah berhasil membuat halaman maintenance website, jika ada kendala mari kita bahas bersama di form komentar. Untuk hasilnya dapat Anda lihat pada gambar di berikut:

Sekian semoga bermanfaat.