Mecha versi 2.6.4 sudah dirilis!

Emoticon Blogger Otomatis dengan jQuery

Tabel Konten
  1. Lebih Jauh Lagi 
  2. Bagaimana Manipulasi ini Bekerja? 
jQuery Auto Emoticons for Blogger
Emoticon otomatis untuk komentar Blogger

Saya baru memutuskan bahwa eksperimen ini telah berhasil sekitar satu hari yang lalu (sepertinya begitu). Ini adalah fasilitas emoticon otomatis yang akan mengubah simbol-simbol seperti :), :(, dan yang lainnya menjadi gambar tertentu yang telah ditentukan. Saya menggunakan jQuery karena mungkin konsep emoticon dengan jQuery belum ada. Dan juga, lagipula Saya belum begitu berbakat untuk menuliskan kode dengan JavaScript metah. Meskipun di luar sana sudah ada beberapa tutorial sejenis misalnya Add Yahoo Smiley Emoticons on Blogger Comment, tapi Saya hanya ingin memberikan sesuatu yang sedikit berbeda dan dengan proses instalasi yang sangat mudah.

Untuk membuatnya, pertama-tama masuklah ke menu Tema kemudian klik Edit HTML dan klik Lanjutkan:

Edit HTML Blogger
Mengedit HTML

Temukan kode ini:

</body>

Salin kode di bawah ini dan letakkan di atasnya:

<style>
.emoWrap {
  background-color:#EEDE86;
  border:2px solid #D3BA59;
  padding:10px 14px;
  color:black;
  font:normal bold 12px/normal Tahoma,Verdana,Arial,Sans-Serif;
  text-align:center;
}

.emo,
.emoKey {
  display:inline-block; /* Penting! */
  *display:inline;
  vertical-align:middle;
}

.emoKey {
  border:1px solid #ccc;
  background-color:white;
  font:normal bold 11px/normal Arial,Sans-Serif;
  padding:1px 2px;
  margin:0 0 0 2px;
  color:black;
}
</style><script src='//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'></script><script>
//<![CDATA[
var emoRange = "#comments p, div.emoWrap",
    putEmoAbove = "#comment-editor",
    emoMessage = "Untuk menyisipkan emoticon setidaknya Anda harus menambahkan satu spasi di awal simbol.";
//]]>
</script>
<script src='//cdn.rawgit.com/tovic/dte-project/0ef9de902cf286a77272f9b3c6f8168c17ab61c6/jquery-emoticons.js'></script>

Klik Simpan Tema dan lihat hasilnya.

Kode yang Saya beri garis bawah adalah jQuery. Jika tema Anda sudah dilengkapi dengan jQuery, singkirkan kode tersebut!


Lebih Jauh Lagi 

Di situ terdapat setidaknya tiga variabel untuk pengaturan lanjutan:

  • emoRange digunakan untuk menentukan daerah mana saja yang akan dikenai manipulasi ini. Pada opsi di atas Saya menargetkan manipulasi pada elemen p yang berada di dalam elemen #comments dan juga pada elemen baris emoticon utama. Anda juga bisa menargetkannya pada elemen lain, misalnya pada posting. Untuk memberlakukan manipulasi ini pada posting, cukup tambahkan selektor .post-body pada variabel tersebut dengan memisahkannya menggunakan tanda koma.
  • putEmoAbove digunakan untuk menentukan di mana (di atas elemen apa) jQuery harus meletakkan daftar emoticon. Di sini Saya menuliskan nilainya pada #comment-editor untuk meletakkannya tepat di atas formulir komentar. Terkadang mungkin ini tidak berhasil. Anda harus mencoba untuk mengubahnya dengan div.comment-replybox-thread atau yang lainnya sebagai elemen sasaran. Intinya adalah, carilah elemen formulir komentar pada blog Anda dan temukan ID atau kelasnya sebagai petunjuk peletakkan daftar emoticon.
  • emoMessage digunakan untuk menentukan pesan yang akan muncul saat pertama kali pengunjung mengeklik salah satu emoticon. Anda bisa mengubah pesan itu sesuka hati.

Bagaimana Manipulasi ini Bekerja? 

Pada dasarnya Saya hanya menggunakan regex sederhana untuk mencari format teks tertentu. Dan dengan menggunakan fungsi .replace() Saya mengubah setiap susunan karakter yang cocok dengan elemen <img> dengan alamat gambar tertentu.

Sebagai contoh, Saya akan mengubah teks :) menjadi <img src='smile.gif'>. Maka yang Saya butuhkan hanyalah dua buah fungsi jQuery yaitu .html() untuk menyalin dokumen dan .replace() untuk mengubah teks/karakter tertentu di dalam dokumen:

$('body').html($('body').html().replace(/\s:\)/g, " <img src='smile.gif' />"));

Kode di atas akan mengubah semua karakter dengan format “satu spasi di depan + simbol :)” menjadi elemen <img src='smile.gif'>.

Dalam regular expression, karakter spasi diwakili dengan simbol \s. Dan juga, karena simbol ) merupakan salah satu karakter khusus dalam regex, oleh karena itu kita harus menonaktifkan karakter tersebut dengan cara menuliskan karakter \ di depannya, dengan begitu komputer tidak akan membaca karakter tersebut sebagai fungsi, melainkan sebagai teks biasa.

g adalah global, artinya bahwa fungsi ini akan mencari semua karakter yang cocok tanpa terkecuali kemudian dia akan mengubahnya menjadi elemen gambar.

Dalam forum-forum tertentu mungkin Anda juga akan melihat peraturan yang berbeda untuk menyisipkan gambar, misalnya seperti ini:

[img]emoticon.gif[/img]

Tidak ada perbedaan dengan semua itu. Pada dasarnya kita lah yang membuat peraturan. Dalam metode penyisipan emoticon yang ke dua, Anda harus mengubah baris karakter tersebut menjadi elemen <img> dengan nilai src berupa teks yang berada di antara simbol [img]...[/img].

Dalam jQuery kita bisa menuliskannya seperti ini:

$('body').html(
    $('body').html()
        .replace(/\[img\]/g, "<img src='")
            .replace(/\[\/img\]/g, "' />")
);

Coba Sendiri


Sumber emoticon: Emoticons4u

197 Komentar

Unknown

@Taufik Nurrohman iya mas alhamdulilah dah jadi...,,, terus ko simbol :'( kaya gini ko ga kedetek ya mas,,, ga berubah jadi simbol emoticon... Apa hapus aja ya mas,,, emo(/\s:\)+/g, maksudnya gimana mas ????

terus di postingan ga berubah ya mas ???
Padahal aku dah kasih kode div.post-body, semuanya jadi kaya gini mas var emoRange = "#comments p, div.emoWrap, div.post-body" tetep ga bisa,, apa ada yang masih salah ya mas ???

di postingan ga berubah emoticonnya...
terima kasih....

Taufik Nurrohman

@trii waluyo Sepertinya masalahnya ada di sini:

:))

^:D Pada dasarnya simbol tersebut sempat disalahartikan sebagai simbol :) dan ). Seharusnya hasilnya akan menjadi gambar emotikon pertama dan sebuah simbol ) di belakang. Ini kesalahan interpretasi karena simbol emotikon kurang spesifik. Coba ganti simbol :)) yang ada di dalam formulir pesan komentar menjadi :)):

Saya sempat mengedit bagian itu tadi untuk menjaga kesalahpahaman cara JavaScript membaca simbol.
Emotikon di dalam posting tidak bekerja karena kelas tubuh posting di blogmu bukan memakai kelas .post-body tapi memakai kelas .entry:

var emoRange = "#comments p, div.emoWrap, div.entry"

Template blogmu bukan template standar blogspot mas, mungkin hasil adaptasi dari template Wordpress *bang*

Unknown

Kesuun bgt mas,,,:)

Bukan simbol [:)] mas, coba liat salah satu postimg aku ya mas, pasti ada 1 simbol yang tidak berubah, yang tidak berubah tanda [:'(] (tanda sedih, crying)
Hehe. . .

Iya bener mas taufik, q pake template hasil dowmload, habisan saya masih newbie,
Ya kapan-kapan saya coba pake template bawaan google. . .
Berarti intinya sama ya mas, .entry sama .post-body

Mohon pencerahaanya mas taufik :)

Taufik Nurrohman

@trii waluyo Ya, memang bukan simbol :)), tapi kalau salah satu simbol gagal/error, yang lain juga biasanya akan ikut terpengaruh.

Template download tidak berarti tidak standar. Periksa saja elemen-elemen di dalamnya.
.post-body dan .entry itu bukan masalah sama atau tidaknya, mereka berdua diambil dari elemen ini:

<div class='post-body'>
Isi artikel di sini...
</div>

atau elemen ini:

<div class='entry'>
Isi artikel di sini...
</div>

Yang pada dasarnya memiliki tigas yang sama, yaitu membungkus isi artikel. Itu saja inti dari penyeleksian emoRange di sini :yaya:

Unknown

@Taufik Nurrohman Lah terus aku harus gimana ya mas ??? Supaya simbol (:'() jadi emoticon :'( :'( :'( :'(

Taufik Nurrohman

@trii waluyo Coba ganti bagian ini:

emo(/\s:&#39;\(/g, "http://lh3.googleusercontent.com/-PChZ52qAc5c/T6NQiun5CxI/AAAAAAAAAcI/qbMCrPN5mJs/s128/Crying.gif", ":&#39;(");

jadi seperti ini:

emo(/\s:(&#39;|\')\(/g, "http://lh3.googleusercontent.com/-PChZ52qAc5c/T6NQiun5CxI/AAAAAAAAAcI/qbMCrPN5mJs/s128/Crying.gif", ":'(");

Anonim

dan kalo Symbol (y) Menjadi Emoticon , gimana mas...?

Taufik Nurrohman

emo(/\s\(y\)/ig, "https://reader-sync.googlecode.com/svn/trunk/mini_like.png", "(y)");

uki

Nice,ijin post di blogku. B) B) B)
tapi cara buat supaya transparent tanpa background(seperti di sini) caranya gmn ? :-bd :-bd :-bd

Taufik Nurrohman

@Uqi Hapus background-color dan border di bagian ini:

.emoWrap {
background-color:#EEDE86; /* <== hapus! */
border:2px solid #D3BA59; /* <== hapus! */
padding:10px 14px;
color:black;
font:bold 12px Tahoma,Arial,Sans-Serif;
text-align:center;
}

Unknown

mas ko simbol:) ga jadi emoticon ya di blogku ?
mohon bantuannya mas :(

Unknown

woww... it's great... :-bd keren dah,,, \o/ ane mah bikin'y juga masih yg standar, :D boleh belajar ga? hehe ^_^ ..

Surga Kenari

makasih pak, gue udah terapkan dan berhasil di post body otomatis berubah jadi emot

Yusril Ibnu Maulana

saya sudah coba...., work, tapi begini nih...
di blog saya kan gambarnya pake efek kalau di hover letak nya sedikit ke bawah (kalau gk salah namanya efek Nudging ), nah kalau di hover gambar emo nya juga jadi ikut kena efek... karena kecil jadi susah di klik nya.. :(
saya kan efek hover gambanya pake img:hover .
W: Gimana caranya agar gambar emo gk kena efek img:hover, atau mungkin bagaimana ??

Taufik Nurrohman

Coba netralkan semua transisinya di img.emo:

img.emo, img.emo:hover {
-webkit-transition:none;
-moz-transition:none;
-ms-transition:none;
-o-transition:none;
transition:none;
}

Yusril Ibnu Maulana

kalau kode itu kan hanya transisi saja... :( , jadi efeknya juga harus dihilangi dengan kode :

-webkit-transform:translate(0px,0px);
-moz-transform:translate(0px,0px);
-ms-transform:translate(0px,0px);
-o-transform:translate(0px,0px);
transform:translate(0px,0px);

tapi thanks bantuanya ...

Unknown

mas taufik kalau mau bikin kotak search kayak di WP gimana yah?
yg bisa bergerak gitu. :D terima kasih sebelumnya

Ichsan Ramadhani

wahh, makasih mas, lgsung bekerja tu emot di blog si ayam, tambah unyu aja jadinya blog saya, heheheh, makaih ya mas :)

Bakteri

bg taufic ini saya mau tanya kenapa saya klick di komentar yang udah ada Emoticonnya eh malah ada tulisan code nya misal nya saya klick emoticon yang :p : p gitu disampingnya coba deh bg taufic test di koment abg taufic..! cara fix nya gimana yah ?

indolaron

Mangtabs Kang tutorialnya... :-bd
Kemarin saya pernah mencoba memasang emo pada blog,ehhh malah efeknya "Folloers" kga muncul.
Dan saya terakkan trik ini 100% berhasil \o/

Yandi Mulyadi

Gan , Saya Sudah Memasang kode nya .. Tapi Saat Saya Masukin Kode Contoh : (:() eh malah gagal mas ...

Jadi gak ada gambarnya di komentarnya !

Yandi Mulyadi

gAN , cOBA Deh liat template blog saya ..

http://demomytemplatez.blogspot.com/2012/08/blog-post.html?showComment=1343899840788#c2011786881110214876

Masa gak ada emotikonnya?

Liat deh di http://i49.tinypic.com/2diq5pz.jpg

Taufik Nurrohman

Di depannya harus ada spasi. Kalau tidak ada spasi emotikon tidak bisa tampil.

Unknown

bErhasil juga. Thank you Bos.. :-bd

KMKO Sipil Unhas

KMKO Sipil Unhas

kalo mau bikin yang gambar sesuai keinginan kita gimana mas??
misalnya kayak gambar diatas.
tapi kode simbolnya tetap pendek, seperti yang mas bikin..
:)

Taufik Nurrohman

Baca komentar-komentar di atasnya.

KMKO Sipil Unhas

ohhh iyaaaaa...
udah bisaaa nihh..

makasih banget yaaa...
kunjungi blog kami juga yaaa..
http://kmkosipil.blogspot.com/

DARK

work bang
thanks !!

admin

mas cara membuat kode emot nya tertutup otomatis dan menambah tulisan "klik utk melihat kode"" bagaimana? "seperti punya mas diatas"

Taufik Nurrohman

JavaScript sudah diperbaharui. Tinggal memakai saja :)
Tulisan "klik untuk melihat kode" bisa dibuat dengan cara menuliskan daftar emotikon secara manual, dan mengganti nilai variabel putEmoAbove menjadi false:

putEmoAbove = false

Unknown

Terima kasih ya membantu sekali artikelnya...

Unknown

:) thank you Gan...
folow me ya?

Unknown

Bang Taufik, kalau Emotionnya yang ini untuk postingan saja bukan untuk komentar, apa scriptnya bang?? :(

Unknown

Setelah saya tambahin class nya kok malah gak muncul ya bang di postingan dan komentarnya juga?? munculnya cuman di HOMEpage saja..
beginikan cara nambahinnya bang??
emoRange = "#comments p, div.emoWrap, .post",

ada solusinya gak bang?? ini blog saya gubuk45.com

Unknown

emoRange = "#comments p, div.emoWrap, div.post-body ",
begini juga sama bang hasilnya.. :(

Taufik Nurrohman

Coba ini:

emoRange = "#main > div"

Unknown

tidak berhasil juga bang,,,, >.<

Unknown

ad alternatif lain gak bang??? :(

Taufik Nurrohman

Tidak ada. Sesuai salah satu komentar dari trii waluyo di atas, seharusnya memakai cara sebelumnya sudah cukup.

vongola

berarti kesimpulannya, ini gak bisa di pake buat di postingan ya bang?
soalnya seru aja ngasih emot di postingan :D
kalau pake manual kan repot bang..

Nyak

Mas, mau tanya, apakah ini ringan atau berat untuk loading blog..? :Q

Anonim

mas cara ngilanin link css ini di blog gimana ya
//www.blogger.com/static/v1/widgets/1937454905-widget_css_bundle.css

soalnya ada yg ga bisa saya ubah gara2 itu

Unknown

kalo mau itu bisa di ilangin tapi lupa kemarin tk taruh aman, tp ati2 aja kalo itu kamuilangin entar banyak widget yang berantakan, soalnya css widget bawaan blogger bersal dari situ semua.

kalo mau gampang pake cara ini, tambahin ini !important di belakang kode cssmu
Contoh
#bd-box {
width: 96%;
height: 300px !important;
border-radius: 10px;
background: #222
color: #fff !important;/*tambahin kode itu fungsinya agar css yg baru lebih diutamakan drpada css wbundle dari blogger */
padding: 10px;
}

alansinggih

mas taufik yang pintar and jenius \o/ ,,, saya minta izin ambil nie kode,,, salam kenal :) hebat pokok,na :-bd,,,
tapi sya boleh ngrubah kan,,,,,,,,????????? ;)

Unknown

NICE !!! :yaya:

IRIL SAGITA

Kak taufik, kalau di blog kenapa ini bisa tampil setelah ada komentar, tapi sebelum ada komentar tidak bisa tampil ?

dan kenapa area coe emotnya gak bisa ketutup sacara otomatis jika di klik diluar area itu ?

kira-kira dimana letak kesalahannya, apa saya salah dalam edit javascript nya ya ?

tolong bantuannya kak....

IRIL SAGITA

Maaf, sekaran sudah bisa ketutup secara otomatis, tetapi masalahnya sekarang jika di klik kanan and copy pada area code emotikcon gak bisa, karena langsung ketutup.

satu lagi jika dalam posting belum ada komentar emoticon gak tampil.

sampai puyeng utak-utik code, tolong aku ya kak ?

Taufik Nurrohman

Coba pada bagian klik emot diganti pakai ini:

// Click to show the code!
$(document).css('cursor','pointer').on("click", ".emo", function() {
$('.emoKey').remove();
$(this).after('<input class="emoKey" type="text" size="6" value=" ' + this.alt + '"/>');
$('.emoKey').trigger("select");
$(this).on("click", function() {
$('.emoKey').remove();
});
});

monz

mas, kok emoticon nya tetep gk muncul ya di blog saya waktu masukin symbolnya??
tolong pencerahannya ya.. thanks

azewdsignet

Mas ko jadi gini, pas saya merubah tampilan lebih sedikit emoticonya..!!

mohon bantuanya.. :'( :'(

Taufik Nurrohman

Ganti selektornya menjadi seperti ini:

var emoRange = "#comments p, div.emoWrap, #comment-form, #threaded-comment-form",
...
...

azewdsignet

makasih sudah berhasil mas..!!
tapi sayang tulisan ( klik untuk melihat code!) munculnya seperti gambar di atas :(

azewdsignet

kira" kalau emoticonya tampil di komentar " disqus " bisa ga mas taufik??

Taufik Nurrohman

Tidak bisa. Bukannya Disqus sudah punya emot sendiri?

azewdsignet

engga ada mas`udah di cari" di disqus ga ada..!!
oh iya mas`mau naya lagi knpa emoticon yg tampil pada gambar di atas malah ada yg di bawah kan kalau punya mas itu sejajar..!!

Taufik Nurrohman

Ganti karakter < jadi &lt; dan > jadi &gt;
Jangan menekan tombol ganti baris.

Yopi Hasopa

Mas Tovic, saya sudah pasang emoticon otomatis ini dalam tag entry-content. Nah masalahnya dalam tag entry-content ada tag lainnya, misal tag pre yang terdapat beberapa kode malah menjadi gambar emoticon. Bisa tidak tag pre ini menjadi daerah pengecualian emoticon otomatis?? :p

Terima kasih :)

Taufik Nurrohman

Kalau kamu memakai tag <p> untuk mengitari teks, bisa dengan cara menargetkan tag paragraf itu (tag PRE berada di luar paragraf):

.entry-content p

Yopi Hasopa

Blogspot kan gak pake tag p buat ngebungkus paragrafnya Mas? Beda sama wordpress :(

Jadi gak bisa pake trik pengecualian area ya Mas? hehe.. =p*

Unknown

wah kalau saya menggunakan komentar bertingkat dari artikel mas taufik yang ini: http://www.dte.web.id/2013/01/membuat-fitur-komentar-berbalas.html

berarti saya hanya perlu merubah
putEmoAbove = "#comment-editor", menjadi putEmoAbove = ".custom-comments #comment-editor" ya?

tapi kenapa emoticon nya tidak muncul sama sekali mas diatas formulir komentarnya? :(

Taufik Nurrohman

Harusnya muncul.

Unknown

saya juga bingung kenapa gak muncul mas
contohnya gini: http://metal-x-gen.blogspot.com/2013/01/lorem-ipsum.html

Unknown

udah bisa mas, ternyata saya mengalami kesalahan saat mengubah id daerah yang akan terkena manipulasi, tapi udah berhasil sekarang :D makasih

budkalon

bang Taufik, kalau mau si gambarnya diberi max size bisa ga?
Jadi nanti pas gambarnya muncul, ukurannya tidak bisa melebihi ukuran maksimal yang telah ditentukan.

Mohon bantuannya. :)

Taufik Nurrohman

/* maksimal 200 piksel */
img.emo {max-width:200px}

Alwan

Mas kok saya nggak bisa di kopi paste, pas diklik kan keluar kodenya, pas klik kanan, kodenya langsung hilang. :p

Alwan

udah bisa mas makasih banyak.
oh iya, kalo pengen mengurangi julah emoticonnya gimana mas?

ARLIAN

berjalan dengan sempurna.. mantap gan..
emotion nya bisa di ganti gan??

EM

kalo mau ganti icon, mau gak mau harus ngedit code javascriptnya:
reader-download.googlecode.com/svn/trunk/jquery.autoemoticons.js

Unknown

Mas, kalo ga ada komentar letak emotikonnya diatas, pas ada komentar kok jadi dibawah :'(

Unknown

Sudah bisa mas , hehehee .. Abis baca artikelnya yg masalah pesan itu \o/

Unknown

@Beben Koben: \o/ Betul² Blogger Yang Ulet dari blogger india,spanyol,ingris dll slalu saya ketemu dengan Komentar Beben Koben :Q :Q :Q =p*Rajin benerrrrrrrrr

Kang Rian

sangat membantu sekaliii !!! :D

Unknown

Mau Tanya ... !!

Kenapa Emoticon Saya Pas Di Klik Ga keluar Kodenya.. ?? Itu Kenapa.... ??

Anonim

Kalau Ingin Membuat Alertnya Seperti Mas Taufik Gimana...?

Taufik Nurrohman

Ada di bagian ini:

// Click to show the code!
$('.emo').css('cursor', 'pointer').on("click", function(e) {
$('.emoKey').remove();
$(this).after('<input class="emoKey" type="text" size="6" value=" ' + this.alt + '" />');
$('.emoKey').trigger("select");
if (emoMessage && one === 0) {
alert(emoMessage);
one = 1;
}
e.stopPropagation();
});

Buat kotak dialogmu sendiri kemudian tampilkan saat emotikon diklik. Sisipkan pesan emoMessage ke dalam kotak dialog tersebut:

$('.emo').css('cursor', 'pointer').on("click", function(e) {
$('.emoKey').remove();
$(this).after('<input class="emoKey" type="text" size="6" value=" ' + this.alt + '" />');
$('.emoKey').trigger("select");
if (emoMessage && one === 0) {
// Tampilkan kotak dialog di sini
$('#kotak-dialog').fadeIn(400).html(emoMessage);
one = 1;
}
e.stopPropagation();
});

Imron Fhatoni

permisi mas taufik selamat siang saya mau bertanya nie mas kira2 menurut mas taufik apa saja permasalahan emoticon tidak mau berjalan di form komentar soalnya setelah saya mengganti sistem komentar saya emoticonnya tidak berjalan mas saya binggung dengan permasalahannya..

mohon pencerahannya mas taufik...

kalau mas taufik berkenan mohon chek disini mas

http://imronfhatoni94.blogspot.com

Taufik Nurrohman

emoRange digunakan untuk menentukan daerah mana saja yang akan dikenai manipulasi ini. Pada opsi di atas Saya menargetkan manipulasi pada elemen p yang berada di dalam elemen #comments dan juga pada elemen baris emotikon utama. Anda juga bisa menargetkannya pada elemen lain, misalnya pada […]

Imron Fhatoni

alhamdulillah sudah teratasi mas taufik trimakasih banyak..

oh iya ada satu pertanyaan saya lagi mas membuat dalam membuat menampilkan comments target saya ambil contoh seperti blognya mas taufik jika selesai berkomentar targetnya muncul,,,mohon pencerahannya mas taufik...

Unknown

coba tanya diblog kang ismet