TR Kodlama › Forumlar › Yorumları alıntı olarak yorum metin kutusuna yazdırmak
- Bu konu boş.
-
YazarYazılar
-
-
15 Ekim 2011: 12:18 #7025Phpci_CocukZiyaretçi
Merhaba arkadaşlar.Yazdığım sistemde yazıya yapılan yorumlar var.Ben burada bir yorumu alıntı yapmak istiyorum.Kısacası kullanıcı yorumun altındaki alıntı yap resmine basınca o yorum altta yorum yap metin kutusunun içerisine eklenecek.(Tıpkı bu forumda da olduğu gibi)
İstediğim Alıntı Örneği : http://togl.me/7A8 bu sayfada mevcut (sayfanın altındaki yorumlara bakarsanız yorumun alt sağ köşesindeki resme tıklanınca olanları görebilirsiniz)
Aslında mantığını tam olarak kavrayamadım. Yukarıda verdiğim sitenin kaynak kodlarını karıştırdım. Örneğin bir yorumu alıntı yapmak için şu kodlar kullanılmış:
1<a href="javascript:;" onclick="javascript:quote_comment('114','./comments/ajaxquote.php');" class="quote" title="Quote vicky's commment" rel="nofollow"></a>quote_comment(); fonksiyonu ve yoruma ait diğer fonksiyonlar ise
comment.js adlı dosyada:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290var comm_ajax_timer_id = 0;<br /><br />function hide_all()<br />{<br />$comm("#comments").hide();<br />}<br /><br /><br />function click_checkbox(check_id)<br />{<br />check_handle = document.getElementById(check_id);<br />check_handle.checked = !check_handle.checked;<br />}<br /><br /><br />function update_preview()<br />{<br />var name = nl2br(strip_tags($comm("#comment-form-name").val()));<br />var email = nl2br(strip_tags($comm("#comment-form-email").val()));<br />var website = nl2br(strip_tags($comm("#comment-form-website").val()));<br />var cmt = $comm("#comment-form-comment").val();<br />cmt = cmt.replace(/</g, "<");<br />cmt = cmt.replace(/<blockquote/g, '<blockquote');<br />cmt = cmt.replace(/</blockquote/g, '</blockquote');<br />var comment = nl2br(strip_tags(cmt));<br /><br /><br />if (trim(comment) == '')<br />{<br />$comm("#comment-preview-div").hide();<br />$comm("#comment-preview-title").hide();<br />}<br />else<br />{<br />$comm("#comment-preview-div").show();<br />$comm("#comment-preview-title").show();<br />}<br /><br /><br /><br /><br />$comm("#comment-preview").html(nl2br(strip_tags(cmt, '<a><br /><strong><b><em><i><blockquote><pre><code><img /><ul><ol><li><del>')));<br />if (trim(email) != '')<br />$comm("#comment-preview-avatar").attr("src", "http://www.gravatar.com/avatar/" + md5(email) + ".jpg?s=50");<br /><br /><br />if (trim(name) != '')<br />$comm("#comment-preview-author").html("<a href='"+website+"' rel="nofollow">"+name+"</a>");<br />}<br /><br /><br />function ajax_error(page)<br />{<br />$comm("#comments-loading").addClass("invisible");<br />shownote('error', 'AJAX Error: There is something wrong with ' + page + '. Please contact website administrator!');<br />}<br /><br /><br />function quote_comment(commid,page)<br />{<br />$comm("#comments-loading").removeClass("invisible");<br />comm_ajax_timer_id = setTimeout('ajax_error("'+page+'");', 10000);<br />$comm.postJSON(page, { id: commid }, function (data){hendluj_quote(data);});<br />}<br /><br /><br />function hendluj_quote(json)<br />{<br />$comm("#comments-loading").addClass("invisible");<br />clearTimeout(comm_ajax_timer_id);<br />var old = $comm('#comment-form-comment').text();<br />$comm('#comment-form-comment').text(old+"<blockquote><a href="#comment"+json.id+"" rel="nofollow">"+json.wrote+"</a>n"+json.comment+"</blockquote>nn");<br />$comm.scrollTo('#comment-form-div', 1000);<br />}<br /><br /><br />function shownote(cssclass, note)<br />{<br />$comm("#comments-note").removeClass("invisible");<br />$comm("#comments-note").removeClass("warning");<br />$comm("#comments-note").removeClass("info");<br />$comm("#comments-note").removeClass("success");<br />$comm("#comments-note").removeClass("error");<br /><br /><br />$comm("#comments-note").addClass(cssclass);<br />$comm("#comments-note").html(note);<br />$comm("#comments-note").show("slow");<br />}<br /><br /><br />function hidenote()<br />{<br />$comm("#comments-note").hide("slow");<br />}<br /><br /><br />function try_ajax_submit(page)<br />{<br /><br /><br />$comm("#comments-loading").removeClass("invisible");<br /><br /><br />comm_ajax_timer_id = setTimeout('ajax_error("'+page+'");', 30000);<br /><br /><br />var what = document.getElementById("comment-form-what").value;<br />var name = document.getElementById("comment-form-name").value;<br />var email = document.getElementById("comment-form-email").value;<br />var website = document.getElementById("comment-form-website").value;<br />var comment = document.getElementById("comment-form-comment").value;<br />var captcha = document.getElementById("comment-form-captcha").value;<br />var image = document.getElementById("comment-form-image").value;<br />var notify = document.getElementById("comment-form-notify").checked;<br /><br /><br />$comm.postJSON(page, { ajax: "true", what: what, name: name, email: email, website: website, comment: comment, captcha: captcha, image: image, notify: notify }, function (data){hendluj(data);});<br /><br /><br />return false; //prevent classic form submit<br />}<br /><br /><br />function hendluj(json)<br />{<br /><br /><br />$comm("#comments-loading").addClass("invisible");<br />clearTimeout(comm_ajax_timer_id);<br />shownote(json.status, json.note);<br />if (json.comment != undefined) {<br />window.location.reload();<br />//$comm("#comments").append("<li class='new-comment' id='commentNEW'><div class='comment-author'>"+json.youwrote+"</div><div class='comments-gravatar'><img src='"+json.avatar+"' /></div><div class='comment-content'><p>"+json.comment+"</p></div></li>");<br />}<br />}<br /><br /><br />function jqCheckAll( flag )<br />{<br />$comm(":checkbox").attr('checked', flag);<br />}<br /><br /><br />/**<br />*<br />* @access public<br />* @return void<br />**/<br />function get_title(id, sURL)<br />{<br />$comm.ajaxq ("comm_ajax_queue", {<br />url: "get-title.php?url="+sURL,<br />cache: false,<br />success: function(html)<br />{<br />$comm("#"+id).html(html);<br />}<br />});<br /><br /><br />}<br /><br /><br />/**<br />*<br />* @access public<br />* @return void<br />**/<br />function check_batch_form()<br />{<br />var value1 = document.getElementsByName("action")[0].value;<br />var value2 = document.getElementsByName("action")[1].value;<br />if (value1 == 'none' && value2 == 'none') {<br />alert('You have not selected batch action!');<br />return false;<br />}<br />else return true;<br />}<br /><br /><br />//added in 2.2<br /><br /><br />function make_star_rating(id, saveURL)<br />{<br />var $val = $comm("#rate"+id).val();<br /><br /><br />$comm("#rate"+id).children().not("select, .rating_title").hide();<br /><br /><br />$comm("#rate"+id).stars({<br />inputType: "select",<br />oneVoteOnly: true,<br />callback: function(ui, type, value)<br />{<br />$comm("#ajax"+id).removeClass("ajax_ok_small");<br />$comm("#ajax"+id).addClass("ajax_loader_small");<br />$comm("#ajax"+id).show();<br /><br /><br />$comm.post(saveURL, {rate: value, id: id}, function(json)<br />{<br />$comm("#ajax"+id).removeClass("ajax_loader_small");;<br />if (json.status != 'ok')<br />$comm("#ajax"+id).addClass("ajax_error_small");<br />else<br />$comm("#ajax"+id).addClass("ajax_ok_small");<br /><br /><br />setTimeout(function(){<br />$comm("#ajax"+id).fadeOut();<br />ui.select(json.avg);<br />}, 2000);<br /><br /><br />}, "json");<br />}<br />});<br />}<br /><br /><br />function ajax_remove_comment(id, delURL)<br />{<br />if (!confirm("Are you sure?")) return false;<br /><br /><br />$comm.post(delURL, {id: id}, function(json)<br />{<br />if (json.status == 'ok')<br />{<br />$comm("#comment"+id).fadeOut();<br />}<br />}, "json");<br /><br /><br />return false;<br />}<br /><br /><br />function ajax_unapprove_comment(id, theURL)<br />{<br />//if (!confirm("Are you sure?")) return false;<br /><br /><br />$comm.post(theURL, {id: id}, function(json)<br />{<br />if (json.status == 'ok')<br />{<br />$comm("#comment"+id).fadeOut();<br />}<br />}, "json");<br /><br /><br />return false;<br />}<br /><br /><br />function ajax_approve_comment(id, theURL)<br />{<br />//call the unapprove function, but pass the active=1 to make it actually active<br />return ajax_unapprove_comment(id, theURL+"?active=1");<br />}<br /><br /><br />function ajax_toggle_ban(el, criteria, theURL)<br />{<br />$comm(el).html("<span class='ajax_loader_small'></span>")<br /><br /><br />$comm.post(theURL, {criteria: criteria}, function(json)<br />{<br />if (json.status == 'ok')<br />$comm(el).html("<em>"+json.poruka+"</em>");<br />else<br />$comm(el).html("<strong>"+json.poruka+"</strong>");<br /><br /><br />}, "json");<br /><br /><br />return false;<br />}<br /><br /><br />var $comm = $;<br />$comm.postJSON = function(url, data, callback) {<br />$comm.post(url, data, callback, "json");<br />};</del></li></ol></ul>Görüldüğü üzere ajax kullanılmış ve benim bu konu hakkında pek bilgim yok ve sanırım yorum yapan adını ve yorumu regex ile almamız gerekiyor (preg_match ve preg_replace)
Bu sitedekine benzer yada daha değişik bir alıntı sistemini nasıl oluşturabilirim (yorumu yazan ve yorum bilgileri veritabanında mevcut)
Örn:
Phpci_Cocuk demişki;
"Arkadaşlar yardımlarınızı bekliyorum..."
Herkese iyi çalışmalar... -
4 Kasım 2011: 05:26 #9037
AnonimZiyaretçijQuery ile şu şekilde yapabilirsin.
123456// Önce her alıntı yap butonuna atanacak kopyalama fonksiyonunu hazırlayalım..<br />// Bunun için ilk şartımız her yorumun farklı bir id'ye sahip olmasıdır. Bunu class olarak değiştirebilirsiniz.<br />function yorum_kopyala(id){<br />yorum = $("#yorum-"+id).text();<br />$("#yorum-textarea").text(yorum);<br />}Şimdi HTML kısmını örnekliyorum:
12345<div id="yorum-1">yorum 1 <a href="void(0)" rel="nofollow">Alıntı Yap</a></div><br /><div id="yorum-2">yorum 2 <a href="void(0)" rel="nofollow">Alıntı Yap</a></div><br /><div id="yorum-3">yorum 3 <a href="void(0)" rel="nofollow">Alıntı Yap</a></div><br /><br />Anlatabildim mi bilmiyorum :)
-
4 Kasım 2011: 05:28 #9038
AnonimZiyaretçiHmm senin sorunu tam olarak şimdi okuyorum ve anladım ne istediğini.. Ben yanlış bir açıklama yapmışım :D daha uyku uyumadım ve bunu hazırlamak ölüm gibi geliyor gözüme :)
-
-
YazarYazılar
- Bu konuyu yanıtlamak için giriş yapmış olmalısınız.