Kursus Web Design Java Web Media

Tutorial Code Igniter Part 9: CRUD Modul Berita (Bagian 2: Tambah berita dan Installasi TinyMCE)

Kursus Web Design Java Web Media
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
Kursus Web Development Depok

Menginstall TinyMCE

Proses selanjutnya adalah installasi TinyMCE.

Berikut langkah-langkahnya:

  1. Silakan Copy file unduhan TinyMCE tersebut lalu Paste ke folder tutorial_ci/assets/ 
    Kursus Desain Web Depok
    Kursus Desain Web Depok

     

     

  2. Klik kanan pada file TinyMCE tersebut lalu pilih Extract here
  3. 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:

  1. Dengan menggunakan Code Editor (saya memakai Dreamweaver), buka file development.html yang ada dalam folder tutorial_ci/assets/tinymce/tests/manual. 
    Kursus Graphic Design
    Kursus Graphic Design

     

     

  2. 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>

  3. Buka file head.php yang ada dalam folder tutorial_ci/application/views/admin/layout.
  4. Pada baris ke-10 pada file head.php tekan Enter sebanyak 2 kali.
  5. Lalu Paste kode yang telah Anda Copy pada area kosong tersebut (Lihat Gambar).

    Installasi TinyMCE
    Installasi TinyMCE
  6. 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
  7. 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

Java Web Media: Web Design di Kota Depok

Java Web Media adalah perusahaan yang bergerak di bidang web design, web programming, web application, web education, graphic design dan graphic education yang berbasis di kota depok.

16 thoughts to “Tutorial Code Igniter Part 9: CRUD Modul Berita (Bagian 2: Tambah berita dan Installasi TinyMCE)”

  1. Kalo saya anjurkan mending di ikuti tutorialnya saja, jangan download source scriptnya, apalagi full.he.. tujuannya biar meresap dan paham. tutorial yang diberikan juga bagus kug dan tersampaikan. Rasanya seperti sekolah.he…

  2. terimaksih atas tutoriaslnya pak

    apakah dapat langsung insert gambar saat insert berita baru dengan tinymce atau apakah ada tutorial penginstalan CKEditor dan KCFinder (Text Editor WYSIWYG dan File Manager) untuk codeigniter agar bisa onsert gambar untuk berita baru…

    terima kasih

  3. Gan tolong dong, saya sudah mengikuti persis di tutorial dari part 1 hingga part ini, pada saat integrasi tinymce ke view kok tidak muncul apa2 ya? tinymce dari versi terbaru sampai versi yang sama dengan agan sudah saya coba dan hasil nihil, file sudah saya samakan dengan hasil akhir jg tidak muncul, tapi ketika saya jalankan ci dari file download hasil akhir itu bisa jalan tinymce nya, apa yg salah ya? mohon dibantu gan thx

  4. saya download tinymcenya sesuai dengan link yg diberikan dan sya ekstrak ternyata tidak ditemukan folder test dimana pun..?
    mohon pencerahannya…
    dan link yg anda berikan tidak sesuai dengan gambar yg anda paparkan diatas.
    sekian terima kasih

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.