18/02/16

Cara Update Composer Via Command Line

Ketika sedang update atau instal aplikasi seperti laravel mungkin mendapatkan pesan "Warning: This development build of composer is over 60 days old. It is recommended to update it by running "Composer.phar self-update" to get the latest version." Yang dimaksudkan composer yang kita gunakan minta di update.

Namun, ketika mengikuti perintah tersebut tetapi gagal. Caranya cukup tambahkan php di depan di tempat menyimpan file composer.phar seperti ini:

php c:\ProgramData\ComposerSetup\bin\composer.phar self-update


28/01/16

Ubah Validasi Laravel 5.1 Jadi Bahasa Indonesia (Trik Singkat)

Setelah instal Laravel,  kita akan mendapatkan default Bahasa Inggris untuk authentikasi, pagination, password, dan validasi. Skrip ini berada di resources\lang\en

Saya tulis judul hanya ubah validasi

Untuk merubahnya menjadi Bahasa Indonesia dapat langsung di download di sini. Yang akan diubah keempat file tersebut. Saya tulis judul hanya validasi lantaran file ini yang cukup banyak isinya, hehe.

Kemudian extract file tersebut, dan copy satu folder id ke dalam folder resources\lang.

Terakhir, edit file app.php yang berada di folder config. Ubah 'locale' => 'en' menjadi 'locale' => 'id'.

Itu saja.

09/01/16

OrderBy dari Relasi Eloquent. Tips Singkat: Laravel 5.1

Kalau kita membuat relasi Product dan Costumer menggunakan eloquent laravel, ketika ingin memanggil costumer akan begini: App\Product::find(1)->costumer, dan akan ditampilkan menggunakan foreach. Secara default eloquent akan memanggil costumer berdasarkan urutan id dari costumer tersebut, serta secara ascending atau ASC, jadi akan berurutan dari id ke-1 sampai seterusnya.

Apabila ingin memanggil costumer berdasarkan urutan nama secara abjad misalnya, salah satu caranya melalui model, jadi akan kita ubah pada model yang merelasi custumer yakni product:

Sebelumnya mungkin akan seperti ini:


class Product extends Model

{

    public function customer()

    {

        return $this->hasMany('App\Customer');

    }

}


Untuk membuat orderBy, tambahkan pada hasMany seperti ini:


class Product extends Model

{

    public function customer()

    {

        return $this->hasMandy('App\Customer')->orderBy('name', 'DESC');

    }

}


Untuk memanggilnya sama saja, App\Product::find(1)->costumer;

06/01/16

Membuat url seo friendly laravel 5.1

Selah satu yang membuat website kita yaitu melalui URL yang Search Engine Optimize (SEO) sehingga mudah terindex oleh mesin pencari seperti google dan lainnya.

Langung saja, pada laravel 5.1 kita dapat menggunakan library, salah satunya Cocur/slugify.

Menggunakan library ini selain menghapus beberapa karakter yang sering digunakan, juga menghapus banyak karakter lainnnya. Selain itu dapat mengkustom beberapa bahasa yang dalam hurufnya menggunakan berbagai karakter, seperti Bahasa Jerman, Perancis, Rusia, Arab, Vietnam, dan lain sebagainya.

Secara umum, dari dokumentasi yang diberikannya, saya singkat seperti berikut:
1. Kita dapat instal library ini melalui terminal : masuk ke project kita:

$ composer require cocur/slugify

2. Pada config/app tambahkan service provider

'providers' => array(
    "Cocur\Slugify\Bridge\Laravel\SlugifyServiceProvider",
)

3. Kemudian tambahkan facade  ke array aliases:

'aliases' => array(
    "Slugify" => "Cocur\Slugify\Bridge\Laravel\SlugifyFacade",
)

4. Cara menggunakan bisa menggunakan

$url = Slugify::slugify('welcome to the homepage');

Tambahan:
Pada dokumentasi tersebut untuk di laravel tidak disebutkan pemanggilan use, ketika saya mencoba menggunakan use Cocur\Slugify\Slugify; facade tidak bekerja pada model, sedangkan menggunakan terminal bisa saja.
Tanpa berpusing panjang :D, jadi agar dapat menggunakan library ini pada model saya menggunakan

use Cocur\Slugify\Slugify;

$slugify = new Slugify();
echo $slugify->slugify('Hello World!'); // hello-world

Praktek realnya, saya menggunakan mutator untuk menyimpan ke dalam database:

namespace App;

use Illuminate\Database\Eloquent\Model;
use Cocur\Slugify\Slugify;

class Post extends Model
{
    ...
    public function setSeopostAttribute($seopost)
    {
        $slugify = new Slugify();

        $this->attributes['seopost'] = $slugify->slugify($seopost);
    }
}

seopost dalam array attributes merupakan nama field pada tabel. Sedangkan Seopost yang berada di setSeopostAttribute harus sama dengan nama field.

And work. 

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:

27/06/14

Kolom atau Baris Tetap Muncul pada Excel

Agar baris atau kolom selalu tetap ditampilkan meski kursor digeser dapat menggunakan fasilitas freeze pada ms. excel.


24/06/14

Aplikasi Persediaan Barang dengan Excel

Apabila barang dagangan masih sedikit, perhitungan secara manual untuk manajemen persediaan dan penjualan barang masih mudah teratasi. Namun apabila sudah banyak, ratusan bahkan ribuan tentu akan memakan waktu lama dan bermasalah dalam tingkat keakuratan perhitungan.

Maka itu, disini akan dibahas cara pembuatan aplikasi persediaan barang menggunakan excel. Yang akan kita buat nantinya adalah :
  • Dashboard Penjualan
  • Tabel Kode Barang
  • Tabel Stok atau Persediaan Barang
  • Tabel Pembelian Barang
  • Tabel Penjualan Barang
Untuk mudah memahaminya silakan simak penjelasannya sebagai berikut :
Dashboard Penjualan, fungsinya untuk memantau perkembangan penjualan (omzet penjualan) dan keuntungan setiap bulannya yang disertai dengan grafik perkembangannya.
Tabel Kode Barang, berisi tentang kode-kode atas barang yang dibeli hal ini membantu dalam pengawasan barang di tabel persediaan barang.
Tabel Stok atau Persediaan Barang, berisi data persediaan awal barang ketika terjadi pembelian, data penjualan selama tahun berjalan dan data persediaan akhir dimana akan diketahui kondisi barang untuk terakhir kali setelah terjadinya transaksi penjualan.
Tabel Pembelian Barang, berisi tentang data-data pembelian barang.
Tabel Penjualan Barang, berisi tentang data-data penjualan sekaligus memonitor keuntungan yang didapatnya.

21/06/14

Kembalikan Tab yang Telah di Tutup Pada Firefox

Sebenarnya hanya masalah sederhana, kadang tanpa sengaja maupun sengaja menutup atau close tab sebelumnya pada firefox. Dan biasanya mencari pada daftar Riwayat Firefox akan cukup memakan waktu.

Ada cara mudah yaitu dengan menekan tombol ctrl + shift + T, maka tab sebelumnya akan kembali. Dan apabila ingin mengembalikan tab yang telah ditutup sebelumnya lagi, tekan saja tombol itu lagi, dan seterusnya. Easy.

Belajar PHP

Diberdayakan oleh Blogger.
 

© 2013 Belajar. All rights resevered. Designed by Templateism

Back To Top