26/11/15

Memadukan TinyMCE dan Responsive File Manager di Laravel 5

Instal TinyMCE

Adanya text editor WYSIWYG (what you see is what you get) khususnya pada halaman administrator website menjadi cukup penting guna mempermudah membuat dan mengupdate postingan yang kita buat layaknya menggunakan aplikasi pengolah kata office.

Tetapi berdasarkan pengalaman saya, untuk penginstalan text editor kedalam website yang sedang kita bangun seringkali cukup merepotkan. Apalagi sistem website yang kita bangun berbeda-beda, atau kita mencoba menginstal text editor pada framework yang berbeda, misalnya.

Kali ini kita akan mencoba menginstal text editor yang cukup populer yaitu TinyMCE pada framework laravel 5. Sekaligus kita akan memadukan file manager guna meng-upload foto, video, text, dan lain-lain ke dalam text editor tersebut, yang kali ini menggunakan Responsive File Manager.

Kita mencoba menginstal secara manual tanpa menggunakan composer. Dan hal ini telah saya terapkan di laravel 5 pada localhost. Dan tanpa panjang lebar langsung saja:

Unduh TinyMCE 4 di https://www.tinymce.com/, Untuk pembuatan produksi website dapat memilih Download TinyMCE Community yang ukurannya lebih kecil. Atau menguduh Download TinyMCE Dev Package untuk developer yang juga disertakan keterangan di dalamnya, tetapi ukurannya lebih besar daripada untuk produksi.

Kemudian extract file zip ke folder public pada projek laravel anda dalam localhost.

Agar dapat digunakan tambahkan skrip javascript ke dalam file html utama anda atau pada file yang anda ingin menampilkan text editor seperti menambah dan update postingan. Secara default laravel 5 menyediakan app.blade.php pada folder resources/views.

Tambahkan link javascript antara tag head ditujukan ke tinymce.min.js  dalam folder tinymce. Mungkin bisa seperti berikut (tergantung tempat foldernya):

<script type="text/javascript" src="{{ asset('/js/tinymce/tinymce.min.js ') }}"></script>

Kemudian tambahkan lagi javascript:

<script type="text/javascript">
tinymce.init({
            selector : "textarea",
   plugins : ["advlist autolink lists link image charmap print preview anchor", "searchreplace visualblocks code fullscreen", "insertdatetime media table contextmenu paste"],

   toolbar : "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image",

   image_advtab: true ,
});
</script>


Penggunaan selector: "textarea", hal ini berarti kita akan menggunakan seluruh text editor Tiny pada semua tag textarea. Anda bisa mengganti dengan id sehingga menjadi selector: "#namatextarea", tetapi anda harus menambahkan id="namatextarea" pada textarea anda.

Plugin digunakan untuk memanggil plugin apa yang akan kita gunakan, sedangkan toolbar untuk menampilkan menu-menu yang akan kita gunakan dalam text editor. Sekarang text editor sudah dapat digunakan.

Instal Responsive File Manager

Tetapi biasanya suatu text editor juga menyediakan unggah atau upload image/gambar melalui text editornya tersebut, serperti manajemen file manager gambar. Tetapi sayangnya TinyMCE tidak menyediakan secara langsung dalam package-nya. Namun, kita dapat menambahkan plugin lain yang dapat digunakan sebagai file manager.

Anda dapat menggunakan KCFinder atau elfinder, maupun yang berbayar seperti moxiemanager, atau yang sederhana seperti justboil.

Saat ini kita akan menggunakan file manager yang tampilannya cukup menarik, gratis, dan selain itu juga responsive yaitu Responsive File Manager.

Langsung saja, unduh package di http://www.responsivefilemanager.com/. Setelah di extract, terdapat 4(empat) folder, yaitu filemanager, source, thumbs, dan tinymce.

Copy folder filemanager, source, dan thumbs pada folder public. Folder source akan digunakan sebagai tempat menyimpan file, dan thumbs sebagai thumbnail untuk di tampilkan pada text editor. Sementara, filemanager merupakan pengatur aplikasi.

Buka foder tinymce>plugin, copy folder responsivefilemanager pada folder tinymce yang telah kita taruh pada folder public. Tepatnya di dalam folder public>tinymce>plugin.

Kemudian tambahkan responsivefilemanager ke dalam skrip init tinycme, pada plugins. dan juga beberapa skrip untuk memadukan dengan tinycme. Jadinya seperti ini:

<script type="text/javascript">
   tinymce.init({
  selector     : "textarea",
  plugins      : ["advlist autolink lists link image charmap print preview anchor", "searchreplace visualblocks code fullscreen", "insertdatetime media table contextmenu paste responsivefilemanager"],
  toolbar      : "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image responsivefilemanager",
  image_advtab : true,
  relative_urls: false, 
  
  external_filemanager_path:"{!! str_finish(asset('/filemanager'),'/') !!}",
  filemanager_title        :"Responsive File Manager" , // bisa diganti terserah anda
  external_plugins         : { "filemanager" : "{{ asset('/filemanager/plugin.min.js') }}"} 
   }); 
</script>

Penjelasannya:

  • relative_urls: false agar menghindari terjadinya muncul url path lain yang berbeda, url path akan kita ubah nanti pada config.php. Dan ini penting agar file atau gambar yang diupload tetap dapat ditampilkan dimana saja, termasuk halaman frontend.
  • external_filemanager_path: tempat kita menaruh folder filemanager eksternal, saat ini kita menaruhnya pada public. str_finish() merupakan fungsi bawaan laravel 5 yang berguna menambahkan satu instance pada string. Kita menggunakan ini untuk menambah slash pada akhir url, lantaran untuk melalui asset akan menghapus slash yang kita tulis pada filemanager itu.
  • filemanager_title, judul dari dari popup file manager. Bisa kita namakan apa saja.
  • external_plugins, tempat file plugin filemanager eksternal kita.
Selanjutnya kita akan mengubah file config.php yang berada pada public>filemanager>config. Buka config.php tersebut pada text editor skrip kesayangan anda.

Pada 'upload_dir' => '/source/' , ubah menjadi 'upload_dir' => '/namaprojekanda/public/source/', agar path penyimpanan diarahkan ke folder source, atau anda dapat mengganti nama lain seperti images dan sebagainya, tetapi anda juga harus menambahkan folder images itu ke dalam folder public. 

Saat ini saya hanya dapat mengubah secara manual path folder penyimpanan file upload, maksudnya anda harus mengubahnya kembali ketika terjadi berbagai perubahan seperti domain dan lainnya. Mungkin termasuk ketika website telah berada pada hosting sebenarnya, karena saya belum mencobanya.

Apabila teman-teman ada saran yang lebih baik, saya harap dapat menambahkan pada komentar. 






14/03/15

CMS Lokomedia dengan TinyMCE 4 dan Upload Gambar

Default TinyCME 4 tidak menyertakan upload gambar dalam text editornya WYSIWYG. Pada CMS Lokomedia sebelumnya, oleh Mastah Lukmanul Hakim telah dibuatkan tutorial menggabungkan TinyCME dengan KCFinder pada 2012, namun sayang saya belum mendengar update terbarunya.

Kali ini saya memberikan tutorial untuk memadukan TinyMCE 4.9.1 dengan KCFinder 3.20. Dengan KCFinder selain mudah pemasangannya, ada fitur proteksi dari penjebolan dari luar lantaran menggunakan teknik session apabila user telah login ke halaman admin. Maksudnya session yang ada di kcfinder menyatu dengan CMS. KCFinder akan memeriksa sendiri session user atau admin dari CMS tersebut.

Langsung dicoba saja:

Langkah 1, download TinyMCE 4.1.9 di sini atau di sini . Dan juga download KCFinder  3.20 di sini.

Apabila anda menggunakan TinyMCE sebelumnya upgrade atau ganti dengan versi tersebut. Saat saya membuat artikel ini TinyMCE merupakan versi terbaru. Apabila menggunakan CMS Lokomedia, hapus semua folder tinymce ganti dengan yang baru.

Ekstrak file zip yang telah anda download di server hosting atau localhosting anda. Saya contohkan di localhost menggunakan xampp, saya ekstrak di folder utama yaitu namadomain/.

Langkah 2, selanjutnya masuk folder adminweb buka file media.php (untuk CMS Lokomedia). Hapus script src yang mengarah ke TinyMCE, ganti dengan


tinymce.init({ 
    selector: "#tinymce_full",
plugins: ["advlist autolink lists link image charmap print preview hr anchor pagebreak", "searchreplace wordcount visualblocks visualchars code fullscreen", "insertdatetime media nonbreaking save table contextmenu directionality", "emoticons template paste textcolor",
    toolbar1: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image",

    toolbar2: "print preview media | forecolor backcolor emoticons", image_advtab: true,
    relative_urls : false,
});
</script>


sebelum tag </body>






Langkah 3, ekstrak KCFinder 3.20 pada folder utama anda.  ganti kcfinder-master menjadi kcfinder. Edit script tadi dan tambahkan script berikut:




<script>
tinymce.init({
 	//ini yang ditambahkan
	file_browser_callback: function(field, url, type, win) {
		tinyMCE.activeEditor.windowManager.open({
			file: '../kcfinder/browse.php?opener=tinymce4&field=' + field + '&type=' + type,
			title: 'KCFinder',
			width: 700,
			height: 500,
			inline: true,
			close_previous: false
		}, {
			window: win,
			input: field
		});
		return false;
	}
}),
</script>
 //sampai di sini selector: "textarea", bla-bla dan seterusnya. Langkah 4, selanjutnya kita membuat session untuk KCFinder di CMS Lokomedia, buka file cek_login.php yang ada di folder adminweb, lalu tambahkan script berikut sebelum:  $_SESSION[namauser] = $r[username]; yaitu:

  $_SESSION['KCFINDER']=array();

  $_SESSION['KCFINDER']['disabled'] = false;

  $_SESSION['KCFINDER']['uploadURL'] = "../image";

  $_SESSION['KCFINDER']['uploadDir'] = "";
Langkah 5, masuk ke folder kcfinder/conf, buka file config.php. Ketik folder tempat penyimpanan anda seperti session di atas pada "uploadURL' => "..", . Misalnya saya taruh di folder image: 'uploadURL' => "../image", Pada script paling bawah hilangkan tanda komentar pada bagian ini dan sesuaikan dengan letak tinymce: '_tinyMCEPath' => "../tiny_mce", Selesai, halaman admin anda telah menggunakan text editor WYGIWYS dengan upload image dan video denga KCFinder terbaru.

08/03/15

Agar Halaman Error 404 Redirect Ke Index.php

Apabila ada pengunjung website yang mengetik url di website kita yang tidak ada atau konten sudah di hapus, akan terjadi error 404 dan lain-lain. 

Biasanya dibuatkan halaman khusus error 404 ini agar tampilan di website tetap cantik.

Tetapi apabila ingin langsung dialihkan ke index.php atau halaman depan, beranda, atau home, maka lakukan langkah berikut ini:

Belajar PHP

Diberdayakan oleh Blogger.
 

© 2013 Belajar. All rights resevered. Designed by Templateism

Back To Top