[trick] Pemanfaatan DropzoneJS dengan Codeigniter 2

Bismillah…

Kali ini ada trick memanfaatkan plugin js ke module API Prima SIMRS … berikut contoh video GIF singkatnya:

*Catatan: Divideo saya menggunakan Plugin Facebox.js untuk popup seperti itu.

Ikuti ajah tutorialnya disini ya:

  1. https://www.sandro.id/artikel/26-tutorial-upload-multiple-foto-dengan-ajax-dan-codeigniter-dropzone-js (Pemahaman Awal)
  2. https://www.startutorial.com/articles/view/dropzonejs-php-how-to-display-existing-files-on-server (Advanced)
  3. https://github.com/edomaru/ci_dropzone (Advanced)

Inget, sampai faham betul yah ikutin… kalo kali ini gw cuman share trick ajah, berupa script potongan. Kalo ikutin tutorial di Point 1 pasti akan menemukan script js berikut ini:

	Dropzone.autoDiscover = false;

	var foto_upload= new Dropzone(".dropzone",{
		url: "upload.php",
		maxFilesize: 2,
		method:"post",
		acceptedFiles:"image/*",
		paramName:"userfile",
		dictInvalidFileType:"Type file ini tidak dizinkan",
		addRemoveLinks:true,
	});


	//Event ketika Memulai mengupload
	foto_upload.on("sending",function(a,b,c){
		a.token=Math.random();
		c.append("token_foto",a.token); //Menmpersiapkan token untuk masing masing foto
	});


	//Event ketika foto dihapus
	foto_upload.on("removedfile",function(a){
		var token=a.token;
		$.ajax({
			type:"post",
			data:{token:token},
			url: "remove.php",
			cache:false,
			dataType: 'json',
			success: function(){
				console.log("Foto terhapus");
			},
			error: function(){
				console.log("Error");

			}
		});
	});

Ternyata script tersebut berhasil tapi yang gw butuhin tuh habis upload terus refresh halaman foto sebelumnya muncul lagi, nah ternyata ada di Point 3 script tersebut, berikut scriptnya:

// source: https://github.com/edomaru/ci_dropzone/
Dropzone.autoDiscover = false;

var myDropzone = new Dropzone(".dropzone", {
	url: "upload.php",
	acceptedFiles: "image/*",
	maxFilesize: 2,
	paramName:"userfile",
	dictInvalidFileType:"Type file ini tidak dizinkan",
	addRemoveLinks: true,
    // previewTemplate: document.querySelector('#preview-template').innerHTML,
    clickable: true,

	sending: function(a,b,c) {
		a.token 	= Math.random();
		c.append("token_foto",a.token); //Menmpersiapkan token untuk masing masing foto
	},

	removedfile: function(file) {

		var token= file.token;

		$.ajax({
			type: "post",
			url: "remove.php"+token,
			data:{token:token},
			dataType: 'json',
			cache:false,
		});
		// remove the thumbnail
		var previewElement;
		return (previewElement = file.previewElement) != null ? (previewElement.parentNode.removeChild(file.previewElement)) : (void 0);
	},

	init: function() {
		var me = this;
		$.get("<?php echo site_url();?>api/website/dokter/list_foto/", function(data) { //alert(data);
			// if any files already in server show all here
			if (data.length > 0) {
				$.each(data, function(key, value) {
					var mockFile = value;
					me.emit("addedfile", mockFile);
					me.emit("thumbnail", mockFile, "<?php echo ROOTURL; ?>/foto/real/" + value.name);
					me.emit("complete", mockFile);

				    var a = document.createElement('a');
				    a.setAttribute('href',"<?php echo ROOTURL; ?>/foto/real/" + value.name);
				    a.innerHTML = "Download<b>";
				    value.previewTemplate.appendChild(a);

				});
			}
		});
	}
});

Nah udah deh, foto yang pernah ke upload keliatan juga akhirnya.

Done.

Have a Nice Day!

[share] Berbagi Pengetahuan tantang VPS

Berbicara tentang web pasti kita akan terpikir tentang hostingan. penyedia hosting di indonesia cukup banyak diantaranya adalah dapurhosting, rumahweb, dewaweb, idwebhost, allnetspace dll. jika kita membelinya kita langsung disediakan paket cpanel yang langsung dipakai.

Berbeda dengan vps , vps adalah virtual private security. kalau boleh di bilang vps adalah sebuah ruangan, yang kita dizinkan menginstall apapun disana, dalam bentuk versi command line. bisa juga versi xampp versi kosong. disini lah tantangannya memakai vps, serta merta kita harus mengerti command linux, karena sintak vps sama dengan linux mau itu ubuntu atau centos ataupun debian.

beberapa penyedia vps diantara : digitalocean, cloudekilat, dewaweb, rumah hosting go daddy dll. anda bisa membeli paket perbulan untuk belajar-belajar supaya bisa menguasi seutuhnya ilmu web programming.

semoga membantu ๐Ÿ™‚

 

[share] Cara Bekerja Tim IT Web Developer Bekerja Di Perusahaan

Sebagai Karyawan Perusahaan sangat pasti memiliki tim IT (secara umum), kebetulan saya juga tim IT sebuah start up di daerah jakarta , disana saya memegang Peranan mengelola server VPS dan Server Fisik, dan sekalian menangan masalah code PHP [Laravel].

Sedikit Share-Share dari Saya, TIM IT saya bekerja Menggunakan sebuah Server Alias PC Juga. untuk memanajemen CODING Saya Menggunakan Visual SVN Server bisa digoogle aja banyak.

dari visual svn itu kita bisa membagi repositori/project mana aja yang mau kita handle. dari satu folder bisa diaccess oleh banyak programmer, bahkan untuk tim UI / UX yang terpenting mereka terhubung dalam jaringan itu

selanjutnya Dari TIMย  lain di haruskan menginstall Putty Client dengan alasan untuk mengambil dari server SVN tadi, sehingga terintegrasi antara client dan server.

Dengan Aplikasi itulah kita bisa checkout data dari server SVNย  , Selanjutnya untuk database cukup install paket instalan server seperti xampp/wamp/lamp dan bisa digunakan langsung untuk mengakses phpmyadminnya jika sudah berada dalam jaringan yang sama

Selanjutnya setelah code sudah berjalan baik di server fisik kita tinggal masukan ke production/ staging dari sebuah VPS. bisa menggunakan BitBucket, Github Repository,

Untuk mengakses Bitbucket atau Github bisa menggunakan aplikasi git bash atlassian dan panduan sintak juga ada disana.

dan untuk pembagian task masing masing developert bisa menggunakan trello,email atau aplikasi task lainnya.

mungkin itu sedikit share cara bekerja tim IT di start up Saya. Moga Menambah Pengetahuan ๐Ÿ™‚

 

[trick] Menerapkan Fitur Payment Gateway dengan PHP LARAVEL

Mungkin kita pernah berfikir ,

bagaimana sie untuk penerapatan payment gateway?

bagaimana caranya integrasi antara program kita dengan rekening bank kita.?ย  nah disini saya akan coba menjelaskan konsep penerapannya.

pertama,

anda membuat akun di mitrands.com nya lalu bisaย  menerepakkannya.

anda bisa baca documentasi untuk penerapan di laravel:https://docs.midtrans.com/en/welcome/index.html

yang perlu anda perhatikan adalah gambar di bawah ini untuk penerapannya di laravel.

 

 

di snap api itulah kita akan bisa menerapkannya. untuk code sudah tersedia juga di github gratis:

Kedua

codenya sbb:

https://github.com/harrypujianto/Veritrans-Laravel5#snap

Ketiga

settingan dashboard

selanjutnya setelah anda menerapkan kode tersebut anda juga di minta untuk memasukkan access key, untuk mendapatkan accesskey anda mesti login di dashboard mitrandsnya kira-kira seperti ini:

disini ada dua kategori, yaitu dev [mode] dan production, pastikan code anda sudah berjalan dengan benar sebelum menerapkannya karena ini berhubungan dengan payment.

kalau anda berhasil tampilannya akan seperti ini :

dan uang anda akan masuk ke bank yang dituju dengan sample berikut:

selesai , jika ada yang bingung silahkan komen dibawah ๐Ÿ™‚

 

[Trik] berbagai fitur email pada library laravel

Kali ini kita akan berbagi ilmu tentang beberapa tentang email pada library laravel, karena sebernarnya saya pengguna laravel.

diantara library mail nya adalah sbb:

  1. sendgrid mail.
  2. zoho mail.
  3. redis mail. [biasanya bawaan dari laravel]
  4. mail chimp, mail jet, new relic dll

disini saya akan menerapkan sendgrid laraval.

cara penerapan nya cukup mudah, pertama anda buat account di sendgrid bisa lewat link berikut klik

yang terpenting anda mempunyai akun di sana terlebih dahulu dan pilih bagian sendgrid email api, anda akan dapatkan info seperti berikut:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=587
MAIL_USERNAME=username_sendgrid
MAIL_PASSWORD=password_email
MAIL_ENCRYPTION=TLS

anda masukkan ke .env laravel anda code yang di bold diatas.

kemudian di bagian controller anda tinggal menggunakan [ use MAIL ] di bawah namespace dari controllernya.

selanjutnya tinggal input code email dari laravel seperti di bawah ini:


$user = array(
'email'=> 'email tujuan',
'name'=> 'nama tujuan'
);

$data = array(
'email'=>'data email yang akan dikirim',
'name'=> 'data nama yang akan dikirim'
);

Mail::send('nama_folder.nama_file_php',$datas , function($message) use ($users){
$message->to($users['email'],$users['name'])->subject('Isi Subject');

SEMOGA BERMANFAAT ๐Ÿ™‚

[Trik] berbagai SMS API dengan PHP dan MYSQL

Sudah Cukup Lama tidak menulis lagi di blog di karena kan kesibukan dan hal penting lainnya.

sudah banyak keinginan untuk menulis lagi di blog TOPIDESTA.

Sekarang saya coba berbagi ilmu tentang sms api dengan PHP.

beberapa contoh di internet diantaranya adalah:

  1. nexmo sms API.
  2. twilio sms API
  3. sinch sms API
  4. facebook SMS API
  5. zenziva sms API
  6. dll

kalau penulis biasanya menggunakan zenziva sms API dan facebook sms API. karena lebih mudah dan cocok untuk pemula, tapi untuk beberapa perusahaan besar sudah memiliki API sendiri.

contoh code dari zenziva:


$hp = $_POST['no_hp'];

$userkey = "key_anda"; // ini didapat setelah kita mendaftar di websitenya, posisinya di API setting.
$passkey = "pass_anda";
$nohp = $hp;
$message = rand(0000,9999);
$url = "https://reguler.zenziva.net/apps/smsapi.php";
$curlHandle = curl_init();
curl_setopt($curlHandle, CURLOPT_URL, $url);
curl_setopt($curlHandle, CURLOPT_POSTFIELDS, 'userkey='.$userkey.'&passkey='.$passkey.'&nohp='.$nohp.'&pesan='.urlencode($message));
curl_setopt($curlHandle, CURLOPT_HEADER, 0);
curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlHandle, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($curlHandle, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curlHandle, CURLOPT_TIMEOUT,30);
curl_setopt($curlHandle, CURLOPT_POST, 1);
$results = curl_exec($curlHandle);
curl_close($curlHandle);

contoh diatas kita bisa pakai untuk validasi no hp seperti web kelas atas, atau pun bisa untuk promo-promo tertentu.

dari code diatas anda akan mendapatkan sms kode dari rand(00000,99999) yang kita buat tadi.

selamat mencoba , ๐Ÿ™‚