Content Locker merupakan komponen antarmuka yang digunakan untuk menyembunyikan sementara bagian tertentu dari sebuah halaman. Pengunjung kemudian dapat membuka bagian tersebut melalui tombol yang telah disediakan.
Pada Blogger, konsep ini dahulu cukup populer dengan nama Social Content Locker. Implementasi lama biasanya menggunakan plugin jQuery dan API jejaring sosial untuk mendeteksi Like, Tweet atau Share sebelum sebuah konten dapat dibuka.
Namun cara tersebut sekarang kurang ideal. API media sosial telah banyak berubah, beberapa tombol lama sudah tidak tersedia, dan ketergantungan pada plugin pihak ketiga membuat script lebih sulit dipelihara.
Pada tutorial ini kita akan membuat ulang Content Locker menggunakan native JavaScript. Tidak ada jQuery, tidak membutuhkan Facebook App ID dan tidak perlu memaksa pengunjung membagikan artikel.
Tombol berbagi tetap tersedia sebagai pilihan, sedangkan pengunjung selalu mempunyai tombol untuk membuka konten secara langsung.
Informasi Singkat
Content Locker pada tutorial ini berfungsi sebagai elemen antarmuka untuk menyembunyikan sementara konten tambahan seperti source code, catatan bonus, informasi lanjutan atau resource artikel.
Tombol berbagi menggunakan Web Share API apabila tersedia. Pada perangkat yang tidak mendukungnya, pengguna tetap dapat menyalin link artikel atau langsung membuka konten.
Tidak ada proses verifikasi bahwa pengunjung benar-benar membagikan artikel ke media sosial.
Berikut contoh Content Locker versi baru. Konten di dalam kotak masih tersedia di halaman, tetapi disembunyikan sampai pengunjung memilih untuk membukanya.
CONTENT LOCKED
Konten Tambahan
Bagian ini berisi materi tambahan dari artikel. Anda dapat membagikan artikel, menyalin link atau langsung membuka konten.
Tidak wajib membagikan artikel untuk membuka konten.
CONTENT UNLOCKED
Berhasil!Ini adalah contoh konten yang sebelumnya disembunyikan.
Berbeda dengan Social Locker generasi lama, tombol share pada versi ini tidak digunakan sebagai syarat wajib.
Jika pengunjung menekan Bagikan, browser akan mencoba membuka menu berbagi bawaan perangkat. Jika Web Share API tidak tersedia, link artikel akan disalin sebagai alternatif.
Penting
Content Locker sebaiknya tidak digunakan untuk menyembunyikan informasi utama yang dibutuhkan pembaca. Gunakan untuk source code tambahan, bonus, resource, spoiler atau bagian interaktif yang memang masuk akal untuk dibuka secara manual.
Kenapa Script Lama Perlu Diperbarui?
Versi lama Content Locker CodeFlare dibuat pada masa ketika plugin jQuery dan tombol sosial berbasis SDK banyak digunakan.
Script tersebut memuat Facebook SDK, membutuhkan Facebook App ID, menggunakan jQuery dan menjalankan plugin Social Locker eksternal.
Sekarang kita dapat membuat fungsi dasarnya dengan JavaScript yang jauh lebih sederhana.
VERSI LAMAPlugin Social Locker
Membutuhkan jQuery
Facebook SDK
Facebook App ID
Plugin eksternal
Bergantung API sosial lama
VERSI BARUNative Content Locker
Native JavaScript
Tanpa jQuery
Tanpa App ID
Web Share API
Tetap dapat dibuka langsung
Perubahan paling penting bukan hanya pada teknologi yang digunakan, tetapi juga pada pengalaman pengguna.
Alih-alih memaksa pengunjung melakukan aktivitas tertentu, tombol share sekarang menjadi pilihan. Content Locker tetap dapat dibuka menggunakan tombol Buka Konten.
Memasang Engine Content Locker
PERINGATAN
Sebelum melakukan perubahan pada HTML template Blogger, simpan backup template terlebih dahulu agar mudah dikembalikan apabila terjadi kesalahan pemasangan.
Buka dashboard Blogger kemudian masuk ke Tema → Edit HTML. Cari tag penutup:
</body>
Letakkan JavaScript berikut tepat sebelum tag tersebut.
<script>
//<![CDATA[
(function(){
"use strict";
function cfCopyLink(url,button){
function done(){
var old=button.innerHTML;
button.innerHTML='<i class="fa fa-check"></i><span>Tersalin</span>';
setTimeout(function(){
button.innerHTML=old;
},1800);
}
if(navigator.clipboard && window.isSecureContext){
navigator.clipboard.writeText(url).then(done).catch(function(){
fallback();
});
}else{
fallback();
}
function fallback(){
var input=document.createElement("textarea");
input.value=url;
input.style.position="fixed";
input.style.opacity="0";
document.body.appendChild(input);
input.select();
try{
document.execCommand("copy");
done();
}catch(e){}
document.body.removeChild(input);
}
}
document.addEventListener("click",function(e){
var button=e.target.closest("[data-action]");
if(!button)return;
var locker=button.closest(".cfContentLocker");
if(!locker)return;
var action=button.getAttribute("data-action");
var url=location.href.split("#")[0];
var title=document.title;
if(action==="open"){
locker.classList.add("is-open");
return;
}
if(action==="copy"){
cfCopyLink(url,button);
return;
}
if(action==="share"){
if(navigator.share){
navigator.share({
title:title,
text:"Saya menemukan artikel ini menarik.",
url:url
}).catch(function(){});
}else{
cfCopyLink(url,button);
}
}
});
})();
//]]>
</script>
Script menggunakan event delegation sehingga satu engine dapat menangani beberapa Content Locker pada halaman yang sama.
Selanjutnya tambahkan CSS berikut ke template atau tempatkan bersama CSS artikel jika Content Locker hanya digunakan pada artikel tertentu.
Setelah engine terpasang, Content Locker dapat digunakan langsung dari editor HTML posting Blogger.
Gunakan struktur berikut:
<div class="cfContentLocker">
<div class="cfCLLocked">
<div class="cfCLIcon">
<i class="fa fa-lock"></i>
<span></span>
</div>
<div class="cfCLStatus">
<span><i></i> CONTENT LOCKED</span>
</div>
<b>Konten Tambahan</b>
<p>
Buka bagian ini untuk melihat konten tambahan.
</p>
<div class="cfCLShare">
<button type="button" data-action="share">
<i class="fa fa-share-alt"></i>
<span>Bagikan</span>
</button>
<button type="button" data-action="copy">
<i class="fa fa-link"></i>
<span>Salin Link</span>
</button>
</div>
<button class="cfCLOpen"
type="button"
data-action="open">
<i class="fa fa-unlock-alt"></i>
Buka Konten
</button>
</div>
<div class="cfCLContent">
ISI KONTEN YANG INGIN DISIMPAN DI SINI
</div>
</div>
Bagian:
<div class="cfCLContent">
ISI KONTEN
</div>
merupakan tempat meletakkan konten yang akan disembunyikan sementara.
Anda dapat memasukkan teks, source code, gambar, tombol, catatan tambahan atau elemen HTML lainnya sesuai kebutuhan artikel.
Pengaturan Content Locker
Judul
Ubah teks Konten Tambahan sesuai jenis materi yang disembunyikan.
Pesan
Berikan penjelasan singkat mengenai apa yang akan diperoleh pembaca setelah membuka bagian tersebut.
Bagikan
Menggunakan fitur share bawaan browser jika perangkat mendukung Web Share API.
Salin Link
Menyalin URL artikel agar pembaca dapat membagikannya melalui aplikasi pilihan mereka.
Buka Konten
Membuka konten secara langsung tanpa mewajibkan aktivitas sosial.
Contoh Penggunaan
Content Locker tidak harus digunakan untuk link download. Ada beberapa penggunaan yang lebih natural pada sebuah artikel tutorial.
01Source Code Tambahan
Menyimpan variasi atau versi alternatif source code agar artikel utama tidak terlalu panjang.
02Tips Tambahan
Membuat bagian bonus yang dapat dibuka pembaca setelah menyelesaikan tutorial utama.
03Spoiler
Menyembunyikan informasi yang tidak ingin langsung terlihat ketika halaman pertama kali dibuka.
04Resource Artikel
Menempatkan template kode atau materi pendukung dalam bagian terpisah.
Tips Penggunaan
Content Locker merupakan elemen tambahan, jadi penggunaannya sebaiknya tidak berlebihan.
Informasi utama yang menjawab kebutuhan pembaca tetap sebaiknya dapat dibaca langsung. Gunakan locker untuk materi tambahan yang memang memiliki alasan untuk disembunyikan sementara.
Jangan membuat tombol yang memberikan kesan bahwa pengunjung wajib membagikan artikel apabila sebenarnya tidak ada verifikasi share.
Selain membuat pengalaman pengguna lebih jelas, pendekatan seperti ini membuat komponen lebih sederhana karena tidak perlu berkomunikasi dengan API Facebook, X atau platform sosial lainnya.
Catatan Keamanan
Content Locker berbasis JavaScript bukan sistem keamanan atau enkripsi. Konten yang ditempatkan di dalam HTML halaman tetap dapat ditemukan melalui source halaman. Jangan menggunakannya untuk password, API key, data pribadi atau informasi rahasia.
Pembaruan ini mengubah Social Content Locker lama menjadi komponen yang lebih sederhana dan tidak lagi bergantung pada plugin jQuery maupun SDK media sosial.
Fungsi berbagi tetap dipertahankan, tetapi sekarang menjadi fitur opsional. Pembaca bebas membagikan artikel, menyalin link atau langsung membuka konten.
Dengan konsep tersebut Content Locker masih dapat digunakan sebagai elemen interaktif pada Blogger tanpa mengorbankan kenyamanan pembaca.
No comments
💬 Share Your Thoughts & Join the Hall of Fame!
Punya pendapat atau tips tentang artikel ini? Tuliskan komentar kamu sekarang! 🚀
💎 Komentar yang bermanfaat, relevan, dan positif berkesempatan tampil di CodeFlare Hall of Fame dan masuk ke Top Commentators Widget.
👉 Comment now. Share your ideas. Get noticed on codeflare.net
Informasi unik dan menarik seputar dunia blogging, SEO, template blogger, landing page blog, bisnis online, affiliasi, tips & trik, tutorial, widget dan coding.
Pusat utama bagi para penggemar dan pencipta konten yang ingin berprestasi dalam dunia kreasi konten online yang terus berkembang.
Codeflare bukan sekadar blog melainkan tempat bermain dinamis yang mampu beradaptasi untuk berkontribusi dalam arus informasi.
No comments
💬 Share Your Thoughts & Join the Hall of Fame!
Punya pendapat atau tips tentang artikel ini? Tuliskan komentar kamu sekarang! 🚀
💎 Komentar yang bermanfaat, relevan, dan positif berkesempatan tampil di CodeFlare Hall of Fame dan masuk ke Top Commentators Widget.
👉 Comment now. Share your ideas. Get noticed on codeflare.net