Halaman

Kamis, 28 Mei 2015

CRUD Modul Berita (Bagian 2: Tambah berita dan Installasi TinyMCE)

Kursus Web Design Java Web Media
Pada Tutorial Code Igniter Part 9: CRUD Modul Berita (Bagian 2: Tambah berita dan Installasi TinyMCE) ini Anda akan belajar:
  1. Membuat form untuk menambah data berita dan sekaligus memasang
  2. Installasi text editor TinyMCE
Note: tutorial Part 9 ini belum menggunakan fasilitas SESSION untuk memasukkan data id_user dan akan di-set secara manual. Tutorial tentang Session akan dijelaskan dalam satu Part tersendiri.

Sebelum mengikuti tutorial ini, pastikan Anda telah mengikuti:
  1. Mengikuti Tutorial Code Igniter Part 1: Installasi Code Igniter
  2. Mengikuti Tutorial Code Igniter Part 2: Membuat halaman home
  3. Mengikuti Tutorial Code Igniter Part 3: Membuat halaman kontak
  4. Mengikuti Tutorial Code Igniter Part 4: Membuat halaman login administrator
  5. Mengikuti Tutorial Code Igniter Part 5: Membuat halaman dasbor administrator
  6. Mengikuti Tutorial Code Igniter Part 6: Mempersiapkan database dan konfigurasinya di Code Igniter
  7. Mengikuti Tutorial Code Igniter Part 7: Menampilkan daftar berita dan detailnya
  8. Mengikuti Tutorial Code Igniter Part 8: CRUD Modul Berita (Bagian 1)
  9. Mengunduh hasil akhir tutorial Part 8 ini bisa diunduh di: https://drive.google.com/file/d/0B5BhV6c89_2YNzJRS3k2ZFhLOGM/view?usp=sharing
  10. Hasil akhir tutorial Part 9 ini bisa diunduh di: https://drive.google.com/file/d/0B5BhV6c89_2YZFI4X1ZTQmdzTTQ/view?usp=sharing

Menggunakan TinyMCE

TinyMCE adalah sebuah teks editor yang akan membantu web programmer maupun content administrator untuk mempermudah proses memasukkan data berita.

Mengunduh TinyMCE

Anda dapat mengunduh file dasar TinyMCE di website http://www.tinymce.com/download/download.php. Pilih yang Development Package.
Kursus Web Development Depok 

Menginstall TinyMCE

Proses selanjutnya adalah installasi TinyMCE.
Berikut langkah-langkahnya:
Silakan Copy file unduhan TinyMCE tersebut lalu Paste ke folder tutorial_ci/assets/ 
Kursus Desain Web Depok
  1. Klik kanan pada file TinyMCE tersebut lalu pilih Extract here
  2. Hal ini akan menghasilkan folder tinymce dalam folder tutorial_ci/assets/

Integrasi TinyMCE dengan Code Igniter

Proses selanjutnya adalah integrasi TinyMCE dengan framework Code Igniter.
Berikut langkah-langkahnya:
Dengan menggunakan Code Editor (saya memakai Dreamweaver), buka file development.html yang ada dalam folder tutorial_ci/assets/tinymce/tests/manual. 
  1. Lalu Copy kode baris ke-12 sampai dengan ke-15, atau lihat kode di bawah ini:
    <script src=”../../js/tinymce/tinymce.dev.js”></script>
    <script src=”../../js/tinymce/plugins/table/plugin.dev.js”></script>
    <script src=”../../js/tinymce/plugins/paste/plugin.dev.js”></script>
    <script src=”../../js/tinymce/plugins/spellchecker/plugin.dev.js”></script>
  2. Buka file head.php yang ada dalam folder tutorial_ci/application/views/admin/layout.
  3. Pada baris ke-10 pada file head.php tekan Enter sebanyak 2 kali.
  4. Lalu Paste kode yang telah Anda Copy pada area kosong tersebut (Lihat Gambar).
    Installasi TinyMCE
    Installasi TinyMCE
  5. Lakukan perubahan kode tersebut sehingga menjadi sebagai berikut:
    <script src=”<?php echo base_url(); ?>assets/tinymce/js/tinymce/tinymce.dev.js”></script>
    <script src=”<?php echo base_url(); ?>assets/tinymce/js/tinymce/plugins/table/plugin.dev.js”></script>
    <script src=”<?php echo base_url(); ?>assets/tinymce/js/tinymce/plugins/paste/plugin.dev.js”></script>
    <script src=”<?php echo base_url(); ?>assets/tinymce/js/tinymce/plugins/spellchecker/plugin.dev.js”></script>
    Tutorial Code Igniter
    Tutorial Code Igniter
  6. Simpan file head.php

Integrasi TinyMCE dengan form tambah berita

Langkah berikutnya adalah meng-Copy javascript yang berfungsi untuk memanggil fungsi TinyMCE.
Berikut langkah-langkahnya:
  1. Dengan menggunakan Code Editor (saya memakai Dreamweaver), buka file development.html yang ada dalam folder tutorial_ci/assets/tinymce/tests/manual.
  2. Lalu Copy kode baris ke-16 sampai dengan ke-94 dari kode yang ada dalam file development.html tersebut
    <script>
    tinymce.init({
    selector: “textarea#elm1″,
    theme: “modern”,
    plugins: [
    “advlist autolink link image lists charmap print preview hr anchor pagebreak spellchecker”,
    “searchreplace wordcount visualblocks visualchars code fullscreen insertdatetime media nonbreaking”,
    “save table contextmenu directionality emoticons template paste textcolor importcss colorpicker textpattern”
    ],
    external_plugins: {
    //”moxiemanager”: “/moxiemanager-php/plugin.js”
    },
    content_css: “css/development.css”,
    add_unload_trigger: false,
    toolbar: “insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image | print preview media fullpage | forecolor backcolor emoticons table”,
    image_advtab: true,
    style_formats: [
    {title: ‘Bold text’, format: ‘h1′},
    {title: ‘Red text’, inline: ‘span’, styles: {color: ‘#ff0000′}},
    {title: ‘Red header’, block: ‘h1′, styles: {color: ‘#ff0000′}},
    {title: ‘Example 1′, inline: ‘span’, classes: ‘example1′},
    {title: ‘Example 2′, inline: ‘span’, classes: ‘example2′},
    {title: ‘Table styles’},
    {title: ‘Table row 1′, selector: ‘tr’, classes: ‘tablerow1′}
    ],
    template_replace_values : {
    username : “Jack Black”
    },
    template_preview_replace_values : {
    username : “Preview user name”
    },
    link_class_list: [
    {title: ‘Example 1′, value: ‘example1′},
    {title: ‘Example 2′, value: ‘example2′}
    ],
    image_class_list: [
    {title: ‘Example 1′, value: ‘example1′},
    {title: ‘Example 2′, value: ‘example2′}
    ],
    templates: [
    {title: ‘Some title 1′, description: ‘Some desc 1′, content: ‘<strong class=”red”>My content: {$username}</strong>’},
    {title: ‘Some title 2′, description: ‘Some desc 2′, url: ‘development.html’}
    ],
    setup: function(ed) {
    /*ed.on(
    ‘Init PreInit PostRender PreProcess PostProcess BeforeExecCommand ExecCommand Activate Deactivate ‘ +
    ‘NodeChange SetAttrib Load Save BeforeSetContent SetContent BeforeGetContent GetContent Remove Show Hide’ +
    ‘Change Undo Redo AddUndo BeforeAddUndo’, function(e) {
    console.log(e.type, e);
    });*/
    },
    spellchecker_callback: function(method, data, success) {
    if (method == “spellcheck”) {
    var words = data.match(this.getWordCharPattern());
    var suggestions = {};
    for (var i = 0; i < words.length; i++) {
    suggestions[words[i]] = [“First”, “second”];
    }
    success({words: suggestions, dictionary: true});
    }
    if (method == “addToDictionary”) {
    success();
    }
    }
    });
    </script>
  3. Buat file PHP baru dengan nama tinymce.php dalam folder tutorial_ci/application/views/admin/berita
  4. Lalu Paste kode tersebut ke dalam file tinymce.php.
  5. Cari kode ini: selector: “textarea#elm1″,
  6. Lalu ubah (buang kode #elm1) sehingga menjadi: selector: “textarea”,
  7. Simpan file tinymce.php

Membuat form untuk menambah berita

Form berita ini akan disimpan dalam folder tutorial_ci/application/views/admin/berita. Form tambah berita ini nantinya akan dilengkapi dengan text editor TinyMCE. Terkait dengan TinyMCE Anda bisa melihat website resminya di www.tinymce.com. Action dari form akan di-handle oleh controller htttp://localhost/tutorial_ci/berita/tambah/.
Kursus Web Programming Java Web Media
Kursus Web Programming Java Web Media
Dalam form tambah berita ini, input id_user masih diset secara default dengan value=1. Nanti dalam tutorial berikutnya akan kita set menjadi dynamic content yang berasal dari data session id_user. Berikut langkah-langkahnya:
  1. Buat file PHP baru dengan nama tambah_berita.php dalam folder tutorial_ci/application/views/berita
  2. Ketik kode di bawah ini:
    <div class=”konten”>
    <h1>Menambah berita</h1>
    <?php require_once(‘tinymce.php’) ?>
    <?php echo validation_errors(); ?>
    <form name=”form1″ method=”post” action=”<?php echo base_url() ?>admin/berita/tambah” class=”myform”>
    <p>
    <label for=”judul”>Judul berita</label>
    <input name=”judul” type=”text” id=”judul” size=”70″>
    </p>
    <p>
    <label for=”ringkasan”>Ringkasan berita</label>
    <textarea name=”ringkasan” id=”ringkasan” cols=”45″ rows=”5″></textarea>
    </p>
    <p>
    <label for=”isi”>Isi berita</label>
    <textarea name=”isi” id=”isi” cols=”45″ rows=”5″></textarea>
    </p>
    <p>
    <label for=”status_berita”>Status berita</label>
    <select name=”status_berita” id=”status_berita”>
    <option value=”Publish”>Publikasikan</option>
    <option value=”Draft”>Simpan sebagai draft</option>
    </select>
    <input name=”id_user” type=”hidden” id=”id_user” value=”1″>
    </p>
    <p>
    <input type=”submit” name=”submit” id=”submit” value=”Submit”>
    <input type=”reset” name=”submit2″ id=”submit2″ value=”Reset”>
    </p>
    </form>
    <p>&nbsp;</p>
    </div>
  3. Simpan file tambah_berita.php
Di dalam file tambah_berita.php tersebut ada 2 baris kode PHP, yaitu:
  • <?php require_once(‘tinymce.php’); ?> : kode tersebut adalah kode untuk memanggil fungsi TinyMCE yang nanti akan diterapkan di form tambah berita.
  • <?php echo validation_errors(); ?> : kode tersebut dipakai untuk mencetak data error jika form tidak diisi.

Menambahkan model untuk menambah

Pada Tutorial Code Igniter Part 8: CRUD Modul Berita (Bagian 1) telah dibuat model dengan nama berita_model. Nah Anda akan menambahkan anak/sub model dari berita_model tersebut.
Kursus Desain Web
Kursus Desain Web
Berikut langkah-langkahnya:
  1. Buka file berita_model.php yang ada dalam folder tutorial_ci/application/models/admin/
  2. Pada baris ke-12 (atau sebelum kode kurung kurawal terakhir), tekan Enter sebanyak 4 kali (Lihat gambar).
    Kursus Graphic Design Depok
    Kursus Graphic Design Depok
  3. Lalu tambahkan kode ini pada area yang telah di Enter tersebut.
    // Model untuk menambah berita
    public function tambah($data) {
    return $this->db->insert(‘berita’, $data);
    }
  4. Simpan kembali file berita_model.php

Menambah fungsi tambah dalam controller berita

Form tambah berita akan berada di bawah controller utama, yaitu controller berita, sehingga nantinya dapat diakses dengan alamat http://localhost/tutorial_ci/admin/berita/tambah. File controller berita ini nanti juga akan me-load model berita_model > tambah.
Kursus Web Design Depok
Kursus Web Design Depok
Berikut langkah-langkahnya:
  1. Buka file berita.php yang ada dalam folder tutorial_ci/application/controllers/admin/
  2. Pada baris ke-17 (atau sebelum kurung kurawal yang terakhir), tekan Enter sebanyak 4 kali (Lihat gambar).
    Kursus Web Development Depok
    Kursus Web Development Depok
    1. Lalu tambahkan kode di bawah ini:
      // Controler tambah berita di sini
      public function tambah() {
      $this->form_validation->set_rules(‘judul’, ‘Judul’, ‘required’);
      $this->form_validation->set_rules(‘ringkasan’, ‘Ringkasan’, ‘required’);
      $this->form_validation->set_rules(‘isi’, ‘Isi berita’, ‘required’);
      if ($this->form_validation->run() === FALSE) {
      $data=array(‘title’=>’Menambah Berita – Java Web Media’,
      ‘isi’ =>’admin/berita/tambah_berita’
      );
      $this->load->view(‘admin/layout/wrapper’,$data);
      }else{
      $slug = url_title($this->input->post(‘judul’), ‘dash’, TRUE);
      $data = array(
      ‘judul’ => $this->input->post(‘judul’),
      ‘slug’ => $slug,
      ‘ringkasan’ => $this->input->post(‘ringkasan’),
      ‘isi’ => $this->input->post(‘isi’),
      ‘status_berita’ => $this->input->post(‘status_berita’),
      ‘id_user’ => $this->input->post(‘id_user’)
      );
      $this->berita_model->tambah($data);
      redirect(base_url().’admin/berita/’);
      }
      }
    2. Simpan kembali file berita.php

Melakukan uji coba

Langkah selanjutnya adalah uji coba. Silakan akses di browser Anda dengan alamat http://localhost/tutorial_ci/admin/berita/tambah.
File hasil akhir tutorial ini dapat diunduh di link berikut ini: https://drive.google.com/file/d/0B5BhV6c89_2YZFI4X1ZTQmdzTTQ/view?usp=sharing
Dan hasilnya adalah sebagai berikut.
Kursus Web Design Java Web Media
Kursus Web Design Java Web Media
 

 

Tidak ada komentar:

Posting Komentar