Sunday, October 14, 2018

CKEditor 5 Image Upload Adapter

CKEditor 5 Image Upload
Sumber gambar: CKEditor

Menggunakan kode JavaScript <ES6 untuk mengaktifkan fitur pengunggah gambar di CKEditor 5 tanpa layanan Easy Image.

Pembaharuan 2018/12/24: Paket CKEditor 5 Custom Builder untuk pemula sudah tersedia di https://github.com/mecha-cms/c-k-editor.5.

Labels: , , ,

Saturday, October 6, 2018

Lis Berkas dengan PHP `glob`

Kebanyakan dari kita akan menggunakan cara ini untuk mendapatkan daftar berkas pada sebuah direktori, yang mana ini akan menampilkan semua jalur berkas dan folder, namun tidak dengan jalur berkas dan folder yang memiliki awalan ., misalnya pada berkas dengan nama .htaccess:

$files = glob('.\path\to\folder\*');

Untuk mengatasi masalah ini, biasanya kita akan menggabungkan dua pola yaitu .* untuk menelusuri berkas dan folder dengan awalan . dan pola * untuk menelusuri berkas dan folder generik:

$files = array_unique(array_merge(
    glob('.\path\to\folder\.*'),
    glob('.\path\to\folder\*')
));

Kendala sekarang ada pada jalur .\path\to\folder\. dan .\path\to\folder\.. yang sebenarnya tidak kita perlukan, namun muncul juga di dalam daftar. Sehingga kita perlu melakukan usaha ekstra untuk menyingkirkan item tersebut dari daftar:

$files = array_filter(array_unique(array_merge(
    glob('.\path\to\folder\.*'),
    glob('.\path\to\folder\*')
)), function($v) {
    $n = basename($v);
    return $n !== '.' && $n !== '..';
});

Cara paling sederhana untuk menampilkan semua jalur berkas dan folder, termasuk berkas dan folder yang memiliki awalan nama . adalah seperti ini:

$files = glob('.\path\to\folder\{,.}[!.,!..]*', GLOB_BRACE);

Meskipun berkas dengan nama seperti ...foo-bar.baz akan gagal lolos pada pola penelusuran di atas, namun penamaan berkas dengan awalan . lebih dari satu sepertinya sangat jarang ada, jadi Saya kira pola ini cukup aman.


Referensi: Stack Overflow

Labels: , ,