
Pada Tutorial Code Igniter Part 9: CRUD Modul Berita (Bagian 2: Tambah berita dan Installasi TinyMCE) ini Anda akan belajar:
- Membuat form untuk menambah data berita dan sekaligus memasang
- 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:
- Mengikuti Tutorial Code Igniter Part 1: Installasi Code Igniter
- Mengikuti Tutorial Code Igniter Part 2: Membuat halaman home
- Mengikuti Tutorial Code Igniter Part 3: Membuat halaman kontak
- Mengikuti Tutorial Code Igniter Part 4: Membuat halaman login administrator
- Mengikuti Tutorial Code Igniter Part 5: Membuat halaman dasbor administrator
- Mengikuti Tutorial Code Igniter Part 6: Mempersiapkan database dan konfigurasinya di Code Igniter
- Mengikuti Tutorial Code Igniter Part 7: Menampilkan daftar berita dan detailnya
- Mengikuti Tutorial Code Igniter Part 8: CRUD Modul Berita (Bagian 1)
- Mengunduh hasil akhir tutorial Part 8 ini bisa diunduh di: https://drive.google.com/file/d/0B5BhV6c89_2YNzJRS3k2ZFhLOGM/view?usp=sharing
- 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.

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 - Klik kanan pada file TinyMCE tersebut lalu pilih Extract here
- 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.
Kursus Graphic Design - 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> - Buka file head.php yang ada dalam folder tutorial_ci/application/views/admin/layout.
- Pada baris ke-10 pada file head.php tekan Enter sebanyak 2 kali.
- Lalu Paste kode yang telah Anda Copy pada area kosong tersebut (Lihat Gambar).
- 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> - 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:
- Dengan menggunakan Code Editor (saya memakai Dreamweaver), buka file development.html yang ada dalam folder tutorial_ci/assets/tinymce/tests/manual.
- 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> - Buat file PHP baru dengan nama tinymce.php dalam folder tutorial_ci/application/views/admin/berita
- Lalu Paste kode tersebut ke dalam file tinymce.php.
- Cari kode ini: selector: “textarea#elm1”,
- Lalu ubah (buang kode #elm1) sehingga menjadi: selector: “textarea”,
- 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/.

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:
- Buat file PHP baru dengan nama tambah_berita.php dalam folder tutorial_ci/application/views/berita
- 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> </p>
</div> - 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.

Berikut langkah-langkahnya:
- Buka file berita_model.php yang ada dalam folder tutorial_ci/application/models/admin/
- Pada baris ke-12 (atau sebelum kode kurung kurawal terakhir), tekan Enter sebanyak 4 kali (Lihat gambar).
- 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);
} - 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.

Berikut langkah-langkahnya:
- Buka file berita.php yang ada dalam folder tutorial_ci/application/controllers/admin/
- Pada baris ke-17 (atau sebelum kurung kurawal yang terakhir), tekan Enter sebanyak 4 kali (Lihat gambar).
Kursus Web Development Depok - 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/’);
}}
- Simpan kembali file berita.php
- Lalu tambahkan kode di bawah ini:
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.

dimana saya bisa download full scirpt nya ? by the way itu per part ya ?
Lah itu ada link downloadnya…
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…
bener gan ane seharian dah sampe part7 sekalian belajarin erorrnya lebih asik
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
mas mau tanya , kalo editornya diganti dengan CKEditor , tahapnya sama saja atau berbeda ??.
misi agan, pingin tanya kalo untuk fitur tambah page website di admin panel ada tutorial nya ? terima kasih
kok di hosting gak bisa ya ….
sedangkan di localhost bisa???
theme dari tinymce gak muncul
cuma textarea nya aja ?
Nice info gan, tp sesaat kita mau tampilkan foto dimana yah? buat base_url ny?
terima kasih
panduan ini sangat membantu
mas tinymce nya kok ga keluar ya ?
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
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
different version dammit. tutorial anda tinymce 4.6.1 and link downloadnya 4.7.1
cara upload gambar ke isi berita gimana bang.?
Apakah support tqbulasi