웹마스터 팁

XE 홈페이지에 기껏 한 달에 한 두번 잠깐씩 방문해보는 나그네입니다.
얼마 전, 관리자만이 채용글을 작성할 수 있는 Recruit 모듈을 권한에 따라 일반회원도 채용글을 등록할 수 있도록 도움을 요청하는 어느 회원분의 게시글을 보았습니다.
원하시는 내용이 별 복잡한 것은 아니었고, 도움을 요청하시는 분의 마음이 느껴지기에 짧은 댓글로 힌트를 드렸습니다.
그러나 몇 줄의 힌트로는 어려움이 있었는지 원하시는 사항을 해결하지 못하시고 있기에 정리하여 알려드리고자 '사용팁'게시판에 작성합니다.

Recruit 모듈을 수정하여 '채용등록글'을 권한에 따라 작성할 수 있도록 하는 것은 그리 어렵지 않고 간단한 일입니다.
그러나 그 내용을 게시글로 작성하는 일은 만만치가 않고 부담이 되는군요.
더구나 글쓰기 재주가 워낙 없다보니 더욱 망설여 집니다만, 퇴근 후 저녁시간을 이용해 작성해 보았습니다.
어쩌면 오타 및 미쳐 생각치 못한 오류가 있을 수 있습니다.
이 점 양해하여 주시면 감사하겠습니다.



1. recruit/lang/lang.xml 수정

149 라인
<value xml:lang="ko"><![CDATA[채용 정보 등록]]></value> 을 <![CDATA[입사 지원 신청]]> 으로 변경

143 라인 쯤 다음 내용 추가
<item name="cmd_write_registration">
   <value xml:lang="ko"><![CDATA[채용 정보 등록]]></value>
   <value xml:lang="en"><![CDATA[Apply Job]]></value>
   <value xml:lang="zh-CN"><![CDATA[申请]]></value>
</item>

373 라인 쯤 다음 내용 추가
<item name="fileName">
   <value xml:lang="ko"><![CDATA[파일추가]]></value>
   <value xml:lang="en"><![CDATA[File]]></value>
   <value xml:lang="zh-CN"><![CDATA[文件]]></value>
</item>




2. message.html 파일을 작성하여 업로드

파일명 message.html
경로는 recruit/skins/xe_recruit_default/message.html
파일내용은 다음과 같이 작성함.
<include target="_header.html" />
<div class="context_message">
    <h1>{$message}</h1>
    <div class="btnArea">
        <span class="btn"><a cond="!$is_logged" href="{getUrl('act','dispMemberLoginForm')}">{$lang->cmd_login}...</a></span>
        <span class="btn"><button type="button" onclick="history.back()">{$lang->cmd_back}</button></span>
    </div>
</div>
<include target="_footer.html" />




3. recruit/tpl/_header.html 수정

30 라인 쯤 다음 내용 추가
<li class="active"|cond="$act=='dispRecruitAdminSkinInfo'"><a href="{getUrl('act','dispRecruitAdminSkinInfo', 'selected_var_idx', '', 'type', '')}">{$lang->cmd_manage_skin}</a></li>




4. recruit/recruit.admin.view.php 수정

156 라인 쯤 다음 내용 추가
function dispRecruitAdminSkinInfo() {
   $oModuleAdminModel = &getAdminModel('module');
   $skin_content = $oModuleAdminModel->getModuleSkinHTML($this->module_info->module_srl);
   Context::set('skin_content', $skin_content);
   $this->setTemplateFile('skin_info');
}




5. recruit/skins/xe_recruit_default/skin.xml 수정

32 라인 </colorset> 이후 다음 내용 추가
<extra_vars>
   <var name="recruit_title" type="text">
      <title xml:lang="ko">채용 모듈 제목</title>
   </var>
   <var name="write_btn" type="radio">
      <title xml:lang="ko">글쓰기 버튼</title>
      <options value="">
         <title xml:lang="ko">권한 있으면 표시</title>
      </options>
      <options value="N">
         <title xml:lang="ko">표시 안함</title>
      </options>
   </var>
</extra_vars>





6. recruit/recruit.view.php 수정

135 라인의 다음 내용을
// check if it is not a admin user
$logged_info = Context::get('logged_info');
if($logged_info->is_admin != 'Y') return new Object(-1, 'msg_not_permitted');

다음과 같이 수정
// check grant
if(!$this->grant->write_document) return $this->dispBoardMessage('msg_not_permitted');

148 라인 다음 내용을
$default_content = "<h4>Job Responsibilities:</h4><p>- </p><p>-</p><p>-</p>
   <h4>Basic Qualification<br /></h4><p>- </p><p>-</p><p>-</p>
   <h4>Preferred Qualification<br /></h4><p>- </p><p>-</p><p>-</p>";

다음과 같이 수정
$default_content = "<h4>직무 내용:</h4><p>- </p><p>-</p><p>-</p>
   <h4>자격 조건<br /></h4><p>- </p><p>-</p><p>-</p>
   <h4>우대 사항<br /></h4><p>- </p><p>-</p><p>-</p>";



7. recruit/recruit.controller.php 수정

104 ~ 105 라인 다음 내용을 삭제
$logged_info = Context::get('logged_info');
if($logged_info->is_admin != 'Y') return new Object(-1, "msg_not_permitted");

199 라인 다음 내용을 삭제
$upload_cv = $this->_insertFile($obj->module_srl, $comment_srl);




8. recruit/ruleset/insertApplication.xml 수정

5 라인 다음에 내용을 추가
<field name="fileName" required=""/>




9. recruit/skins/xe_recruit_default/application_form.html 수

66 라인 다음 내용을
<span class="btn"><input type="submit" value="{$lang->cmd_registration}"|cond="!$application_info"   value="{$lang->cmd_update}"|cond="$application_info" /></span>

다음과 같이 수정
<span class="btn"><button type="submit">{$lang->cmd_comment_registration}</button></span>




10. recruit/skins/xe_recruit_default/job_view.html 수정

12 라인 다음 내용을 
<!--@if($oDocument->isEditable() && $logged_info->is_admin == 'Y')-->

다음과 같이 수정
<!--@if($oDocument->isEditable())-->

51 라인 다음 내용을
<tr cond="$val->eid != 'Location' || ($val->eid == 'Location' && $module_info->use_location == 'Y')">
   <th >{$val->name}</th>
   <td>{$val->getValueHTML()}&nbsp;</td>
</tr>

다음과 같이 수정
<tr cond="$val->eid != 'Location' || ($val->eid == 'Location' && $module_info->use_location == 'Y')">
   <!--@if(strip_tags($val->getValueHTML()))-->
   <th >{$val->name}</th>
   <td>{$val->getValueHTML()}&nbsp;</td>
   <!--@endif-->
</tr>




11. recruit/conf/module.xml 수정

4 라인 입사지원신청 항목 위에
<grant name="write_comment" default="guest">
   <title xml:lang="ko">입사 지원 신청</title>
   <title xml:lang="en">Submit Application</title>
   <title xml:lang="zh-CN">申请工作</title>
</grant>

다음 내용을 추가
<grant name="list" default="guest">
   <title xml:lang="ko">목록</title>
   <title xml:lang="en">list</title>
</grant>
<grant name="view" default="guest">
   <title xml:lang="ko">열람</title>
   <title xml:lang="en">view</title>
</grant>
<grant name="write_document" default="guest">
   <title xml:lang="ko">채용 문서 작성</title>
   <title xml:lang="en">write document</title>
</grant>




12. recruit/skins/xe_recruit_default/job_list.html 수정

90라인의 다음 내용을

<div cond="$logged_info->is_admin == 'Y'" class="btnArea addJobBtn">
   <span class="etc">
      <span class="deleteJobs btn"><a href="#" onclick="doDeleteGroup('delete_job');return false;">{$lang->cmd_deleteJobs}</a></span>
   </span>
   <a href="{getUrl('act','dispJobWrite','document_srl','')}" class="addJob_btn" ><span>{$lang->cmd_addJob}</span></a>
</div>


다음과 같이 수정

<div class="btnArea addJobBtn">
   <span>
      <span class="deleteJobs btn" cond="$logged_info->is_admin=='Y'"><a href="#" onclick="doDeleteGroup('delete_job');return false;">{$lang->cmd_deleteJobs}</a></span>
      <span class="deleteJobs btn" cond="$module_info->write_btn!='N' && $grant->write_document && $is_logged"><a href="{getUrl('act','dispJobWrite','document_srl','')}">{$lang->cmd_write_registration}</a></span>
   </span>
</div>




* 채용글 등록 권한 설정에서 모든사용자를 선택할 수 있지만, 모듈의 특성 상 로그인도 하지 않은 게스트 상태에서 채용글을 쓰는 경우는 문제가 있을 것 같기에 기본적으로 '로그인 사용자' 및 '가입한 사용자' 이상으로 쓰기 권한을 제한하였습니다.
이 점 참고하시기 바랍니다.



제목 글쓴이 날짜
회원정보 페이지에 작성 댓글 보기 추가하기 [7] file 늘푸른이 2012.07.12
XE와 마인크래프트 서버 화이트리스트 연동하기 [9] file 연가시먹었다 2012.08.25
관리자의 회원정보 수정 페이지에 '가입일/최근접속일' 추가하기 [6] file showjean 2012.09.17
회원설정에 레이아웃 설정이 생겼습니다. 회원정보보기페이지 레이아웃 설정 가능 [2] 똑디 2012.10.04
외부로그인 (레이아웃 파일만 수정) [4] 투씨 2012.10.13
닉네임 변경시 기존 게시물 연동 팁 (레벨 아이콘 에드온 이용) [9] 바붕아 2012.10.23
1.5.4 회원정보에서 회원이 자기 이름 마음대로 수정 못하게 하는 거... [2] 샤로우 2012.12.31
회원정보 수정 위해 비밀번호 재입력 후 튕기는 경우 [2] sejin7940 2013.01.06
회원 정보에 내 포인트 현황 출력하기 [3] file 화랑529 2013.01.08
XE 그룹아이콘 레벨아이콘 아이콘샵 동시출력하기(모르는분들 있으까봐올립니다.) [1] 모앱 2013.02.22
윈도우 서버 2012 에서 제로보드XE 설치부터 사용하기. [16] file 부롱이 2013.03.29
그누보드 > XE 이전툴 이용하여 이전하는 방법 [4] 개터리 2013.04.26
스팸 회원 삭제시 동시에 관련 글 / 댓글 자동 삭제 + 스팸IP 등록기능 구현방법입니다 [20] sejin7940 2013.05.22
아이디 계정때도 이메일 변경시 재인증 메일 발송하기 [1] 혼ME 2013.06.19
IPGUARD 모듈 배포 [33] file 우진홈 2013.07.10
Recruit 모듈 - 일반회원 채용글 등록할 수 있도록 수정 [10] 홍채화 2013.07.27
[주옥시리즈]닉네임/이메일 변경 금지 팁 [10] socialskyo 2013.08.10
회원가입확장 모듈 - 가입절차중 오류 발생시 처음으로 돌아가는 현상 [1] 김개발 2013.08.30
XE 로만든 앱 + 푸쉬기능 구현하기 (안드로이드) [53] file Xiso 2013.10.16
.htaccess 파일 관련 팁(웹 사이트 퍼포먼스 향상 및 트래픽 절감 효과) [21] file 서시빈목 2013.10.22