질문/조언질답게시판

    if($called_position == 'before_display_content') {
        Context::loadLang('./addons/block_document_ext/lang');
        global $lang;

        if(Context::getResponseMethod() == "HTML"){
            /**
             * @brief 추천/비추천,스크랩,신고기능등 특정 srl에 대한 특정 module/action을 호출하는 함수
             * doCallModuleAction 를 overwrite 
            **/                
            $script = '<script type="text/javascript">
            var bdevars = {};
            function doCallModuleAction(d,b,c,k){
                if("procDocumentDeclare"==b||"procCommentDeclare"==b){
                    bdevars = {type:d, act:b, srl:c, imme:k};
                    jQuery(function($){ 
                        var y = jQuery("#prompt");
                        var q = jQuery(window);
                        var cb = jQuery("#prompt_checkbox").is("div");                    
                        if(k=="block") {
                            if(!cb) jQuery("#prompt_msg").after(\'<div style="margin:10px;" id="prompt_checkbox"><input type="checkbox" id="ip_block" value="Y">%s</div>\');
                        }else{
                            if(cb) jQuery("#prompt_checkbox").detach();
                        }
                        jQuery("#prom_title").text(k=="block"?"%s":"%s");                        
                        y.css("top", ( q.height() - y.height()) / 2 + q.scrollTop()).css("left", ( q.width() - y.width()) / 2 - q.scrollLeft()).show();
                        jQuery("#prompt_msg").val("").focus();
                    });
                }else{
                    a="%s";if("procDocumentVoteUp"==b||"procCommentVoteUp"==b)a="%s - "+a;if("procDocumentVoteDown"==b||"procCommentVoteDown"==b)a="%s - "+a;%s(c={target_srl:c,cur_mid:current_mid,mid:current_mid},exec_xml(d,b,c,completeCallModuleAction))
                }
            }            
            jQuery(function($){ 
                jQuery("input[name=\'btn_ok\']").click(function(){ 
                    var a = jQuery("#prompt_msg").val();
                    var vv = jQuery("#ip_block").attr("checked");
                    var e = (vv == true || vv == "checked")? "Y" : "";                    
                    if(a != "") {
                        var c={block_imme:bdevars.imme=="block",prompt_msg:a,target_srl:bdevars.srl,cur_mid:current_mid,mid:current_mid,block_ip:e};
                        exec_xml(bdevars.type,bdevars.act,c,completeCallModuleAction);
                        jQuery("#prompt").hide();
                    }else{
                        jQuery("#prompt_msg").focus();
                    }
                });
                jQuery("input[name=\'btn_close\']").click(function(){ 
                    jQuery("#prompt").hide();
                });
                jQuery(document).keydown(function(event){
                    if(event.keyCode != 27) return true; // ESC
                    return jQuery("#prompt").hide();
                });
            });
            
            </script>';
            $script = sprintf($script,  $lang->add_block_ip, $lang->prompt_block_msg, $lang->prompt_msg, $lang->confirm_msg, $lang->cmd_vote, $lang->cmd_vote_down, $addon_info->vote_confirm == "N" ? "" : "confirm(a)&&");

            Context::addHtmlFooter($script);

            // js의 prompt를 대신하는 팝업
            $popup = '<div id="prompt" style="padding:10px;display: none; position: absolute;background-color: white;white-space: nowrap;border: 1px solid #444;z-index:999999"><div style="text-align:center;"><h4 id="prom_title" style="margin:20px; 0"></h4></div><div style="text-align:center;margin:10px;"><input type="text" id="prompt_msg" style="width:200px;"></div><div style="text-align:center;"><span class="btn" ><input type="button" name="btn_ok" value="%s" ></span> <span class="btn"><input type="button" name="btn_close" value="%s" ></span></div></div>';

            $popup = sprintf($popup, "    ".$lang->cmd_confirm."    ", "    ".$lang->cmd_cancel."    ");
            Context::addHtmlFooter($popup);
        }
        

 

 

 

추천버튼과 비추천 모두 같은 알럿이 나오니 회원들이 확인창 확인을 잘 하지 않고 비추천을 눌렀다는걸 나중에 알게 되는 경우가 생겨 난감해 하십니다.

 

 

추천은 확인창 띄우는걸 제외 시키고 싶은데 아무리 해도 잘 안되네요...

자료 제작자분은 유지보수를 중단하셔서요...

  • ?
    a="%s";if("procDocumentVoteUp"==b||"procCommentVoteUp"==b)a="%s - "+a;if("procDocumentVoteDown"==b||"procCommentVoteDown"==b)a="%s - "+a;%s(c={target_srl:c,cur_mid:current_mid,mid:current_mid},exec_xml(d,b,c,completeCallModuleAction))

     

    아마 이 부분이 핵심인가 보네요. 저야 뭐 잘 모르겠습니다만;;

     

    근데 코드 하이라이터를 이용해서 등록해주시면 더 좋을 거 같네요