===================================================================== init : function() { CPoll.redraw = this.redraw; CAppCMS.bind("poll-bind",this,function(){ CAppCMS.bind("poll-vote:-50",this,this.vote); }); }, --------------------------------------------------------------------- CPoll.redraw = this.redraw; --------------------------------------------------------------------- 既にCPollはv2.23としてリリースしてしまったので変更することはできない。 従って、run timeで、CPoll.redrawを差し替えて、redraw内に 以下のコードが走るようにする。 if ( "b1" in px.sels ) { jqo_btns.attr("data-sel","1"); } else { jqo_btns.attr("data-sel","0"); } ===================================================================== CAppCMS.bind("poll-bind",this,function(){ CAppCMS.bind("poll-vote:-50",this,this.vote); }); --------------------------------------------------------------------- poll-voteメッセージをインターセプトする。 editアドオンがpoll-vote:-100でインターセプトするので、それより後の-50でインターセプトする。 editアドオンが有効の場合、poll-voteをアボートするので、その場合は、sdvoteのpoll-voteは 呼ばれなくなる。 ===================================================================== 実際"poll-vote”より、以下のCApp.ajaxSendの部分だけをインターセプトできれば、 ベストなのだが、残念ながらCApp.ajaxSendを直接呼んでしまっているのでできない。 --------------------------------------------------------------------- vote : function( data ) { var rec = CApp.wmap[data.wid]; var requ = { "cmd":"vote", "bid":data.bid, "wid":data.wid, "pid":rec.pid, "tid":rec.tid }; CAppCMS.trigger("poll-vote-data",{requ:requ}); if ( CPoll.beginServer(rec.jqo_host) ) { CApp.ajaxSend(requ,this,function(resp){ <================= CPoll.endServer(rec.jqo_host); CAppCMS.trigger("poll-vote-done",{resp:resp}); }); } }, --------------------------------------------------------------------- 次回、voteを行う際は、CApp.ajaxSendを直接呼ばず、CAppCMS.triggerで ひとつ別のfunctionを通したい。 ===================================================================== 以下のrespがサーバーから帰ってくるデータです。サーバーから帰ってくたように見せるように respの値を決定します。 --------------------------------------------------------------------- voteSend : function( requ, obj, func ) { var resp = { "result":"OK", "bid":requ.bid, "wid":requ.wid, "pid":requ.pid, "tid":requ.tid, "change":0, "sels":{}, "vcnts":{} }; =====================================================================