물어보기XpressEngine
Extra Form

일정기간 지난 게시물 추천 금지하기애드온

을, 사용하고 있습니다.

여기에 추천도 금지시키고 싶어서 아래와 같이 코드를 추가하였습니다.

그런데 작동을 하지 않아서요.

 

어디가 잘못된걸까요?

 

// 일정기간 지난 게시물 추천금지
if($called_position == 'after_module_proc'){
    if($addon_info->denied_vote=='Y')
    {
        if($this->act=='procDocumentVoteUp'){
        $oDocument = Context::get('oDocument');
            if($oDocument->get('regdate') < date('YmdHis', strtotime('-'.$addon_info->permission_hours.' hours')))
            {
                $this->stop($addon_info->permission_hours.' 시간이 지난 게시글은 추천할 수 없습니다');
            }
        }
    }
}
 

  • profile
    웹지기 2018.05.24 10:55:26
    질문이 아리송 하네요.
    추천금지하기 애드온 사용중인데
    여기에 또 추천을 금지하고 싶다는...

    원래 애드온에서 되야 하는데 애드온이 이상하시다는건지 ?
    1
  • profile
    forest 2018.05.24 11:11:29
    아 그렇군요 ㅎ
    원래는 수정, 삭제만 금지시키는 애드온인데 추천까지 금지시키려고 합니다.
    질문글이 댓글달리니 수정도 안되네요 ^^
  • profile
    웹지기 2018.05.24 11:18:59

    저도 코알못이라..
    실행시기가 이미 추천을 하고 나서 그런 것 아닐까요?
    after_module_proc

    before_module_proc 로
    혹시나 될까해서

  • profile
    forest 2018.05.24 11:58:59
    네, 그렇게도 해봤는데 아예 버튼이 꿈쩍을 않더라구요.
  • profile
    웹지기 2018.05.24 12:10:36
    시간이 경과하지 않은 게시물에 추천버튼이 먹지 않는다는건가요?
  • profile
    forest 2018.05.24 12:16:25
    시간제한을 일주일로 두고 테스트 했는데 열흘이 경과한것도, 오늘것도 버튼자체가 먹지를 않네요.
    실운영중인 사이트라서 맘놓고 테스트도 못하겠고 ㅜ
  • profile
    forest 2018.05.24 12:19:43
    <?php
    if(!defined('__XE__')) exit();
    if($logged_info->is_admin =='N'){ //관리자는 권한에서 제외
    
    if($called_position == 'after_module_proc'){
    if($addon_info->denied_edit=='Y')
    {
    if($this->act=='dispBoardWrite' && Context::get('document_srl')){
    $oDocument = Context::get('oDocument');
    if($oDocument->get('regdate') < date('YmdHis', strtotime('-'.$addon_info->permission_hours.' hours')))
    {
    $this->stop($addon_info->permission_hours.' 시간이 지난 게시글에는 수정을 할 수 없습니다');
    }
    }
    }
    }
    
    if($called_position == 'after_module_proc'){
    if($addon_info->denied_delete=='Y')
    {
    if($this->act=='dispBoardDelete'){
    $oDocument = Context::get('oDocument');
    if($oDocument->get('regdate') < date('YmdHis', strtotime('-'.$addon_info->permission_hours.' hours')))
    {
    $this->stop($addon_info->permission_hours.' 시간이 지난 게시글은 삭제할 수 없습니다');
    }
    }
    }
    }
    
    // 일정기간 지난 게시물 추천금지
    //if($called_position == 'before_module_proc'){
    // if($addon_info->denied_vote=='Y')
    // {
    // if($this->act=='procDocumentVoteUp'){
    // $oDocument = Context::get('oDocument');
    // if($oDocument->get('regdate') < date('YmdHis', strtotime('-'.$addon_info->permission_hours.' hours')))
    // {
    // $this->stop($addon_info->permission_hours.' 시간이 지난 게시글은 추천할 수 없습니다');
    // }
    // }
    // }
    //}
    
    
    
    if($called_position == 'before_module_proc'){
    if($addon_info->denied_comment=='Y')
    {
    if ($this->act=='procBoardInsertComment' && Context::get('document_srl'))
    {
    $args->document_srl = Context::get('document_srl');
    $tmp_output = executeQuery('addons.regdate_edit.getDocumentComment', $args);
    if($tmp_output->toBool())
    {
    if($tmp_output->data->regdate < date('YmdHis', strtotime('-'.$addon_info->permission_hours.' hours')))
    {
    exit('<a>'.$addon_info->permission_hours.' 시간이 지난 게시글에는 수정을 할 수 없습니다'.'</a>');
    }
    }
    }
    }
    }
    }

    위 코드가 애드온파일이고,

    아래코드가 xml 파일입니다

    특별한것 없는거 같은데 ㅠㅠ

    <?xml version="1.0" encoding="UTF-8"?>
    <addon version="0.2">
        <title>일정기간 지난 게시물 수정/댓글 제한 애드온</title>
        <description></description>
        <version>0.1</version>
        <date>2015-03-03</date>
    
        <author email_address="" link="">
            <name>kdp</name>
        </author>
    
        <extra_vars>
    
    <var name="denied_vote" type="select">
    <title xml:lang="ko">추천제한</title>
    <options value="Y">
    <title xml:lang="ko">사용</title>
    </options>
    <options value="N">
    <title xml:lang="ko">사용하지 않음</title>
    </options>
    </var>
    
    
    <var name="denied_delete" type="select">
    <title xml:lang="ko">삭제제한</title>
    <options value="Y">
    <title xml:lang="ko">사용</title>
    </options>
    <options value="N">
    <title xml:lang="ko">사용하지 않음</title>
    </options>
    </var>
    
    <var name="denied_edit" type="select">
    <title xml:lang="ko">수정제한</title>
    <options value="Y">
    <title xml:lang="ko">사용</title>
    </options>
    <options value="N">
    <title xml:lang="ko">사용하지 않음</title>
    </options>
    </var>
    <var name="denied_comment" type="select">
    <title xml:lang="ko">댓글제한</title>
    <options value="Y">
    <title xml:lang="ko">사용</title>
    </options>
    <options value="N">
    <title xml:lang="ko">사용하지 않음</title>
    </options>
    </var>
            <var name="permission_hours" type="text">
                <title>제한 기간[시간기준]</title>
                <description>
                   열람제한기간
                </description>
            </var>
        </extra_vars>
    </addon>

     

  • ?
    닉네임 2018.05.24 13:35:48
    if($called_position == 'after_module_proc'){
        if($addon_info->denied_vote=='Y')
        {
            $document_srl = Context::get('document_srl');
            if($this->act=='procDocumentVoteUp' && $document_srl)
            {
                $oDocumentModel = getModel('document');
                $oDocument = $oDocumentModel->getDocument($document_srl, false, false);
                
                $module_srl = $oDocument->get('module_srl');
                $oModuleModel = getModel('module');
                $document_config = $oModuleModel->getModulePartConfig('document',$module_srl);
                if(!$module_srl || $document_config->use_vote_up=='N') {
                    return new BaseObject();
                }
                if($oDocument->get('regdate') < date('YmdHis', strtotime('-'.$addon_info->permission_hours.' hours')))
                {
                    $this->stop($addon_info->permission_hours.' 시간이 지난 게시글은 추천할 수 없습니다');
                }
            }
        }
    }
  • profile
    forest 2018.05.24 13:47:48

    닉네임님 감사합니다.
    이렇게 하니 금지되질않고 그냥 추천이 되네요.
    before_module_proc 로 해도 마찬가지입니다.


서버에 요청 중입니다. 잠시만 기다려 주십시오...