웹마스터 팁

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>




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



제목 글쓴이 날짜
동일서버내 페이지에서 로그인정보 활용하기... [4] 수로 2008.09.06
게시판 에디터 폰트 글자(글씨)크기 변경하는 법 씨에씨에 2008.09.12
주소록 구현 (외부 페이지) [17] CSLab 2008.09.15
"권한이 없습니다." Alert 창 대신 로그인 화면으로 이동시키기 [4] Slur 2008.09.22
VPN 환경에서 제로보드 [4] superion 2008.09.26
[권한이 없습니다] 권한에 따른 다른 메시지 출력하기 [10] [1] 반도체맨 2008.10.03
제로보드XE가입 -> 트랙자동가입 기능 개돌 2008.10.14
제로보드(zbxe) 설치 후 로그인 안되는 문제. [3] sophistlv.myid.net 2008.10.15
개인 웹서버 백업 및 게시물 등록 날짜 수정 방법 [10] file eunbini 2008.10.24
카페24 계정 사용 중에 제로보드XE 로그인 오류가 날 때 [1] vltm 2008.10.24
플래시 BGM 음악 제로보드에 넣는 방법 file 푸른커튼 2008.10.29
외국에서 접속시 로그인 않되는문제 [1] minams 2008.10.30
FTP프로그램을 이용하지 않고 업로드 하기 [8] 싱하형 2008.10.31
라이트박스(facebox) 적용하기 [7] file 퍼플F 2008.11.02
일반 페이지에 로그인(세션) 정보 활용하기 [13] noirzo 2008.11.07
1.1.0 업데이트 로그인문제관련 [6] 그냥뛰어 2008.11.24
XE 로그인이 안될때 확인해 보세요. [7] 똑디 2008.12.11
XE와 별도 프로그램 연동시 세션공유 [15] 똑디 2008.12.12
로그인한 회원만 최근 게시글, 검색등 볼수 있도록 하기 [3] [_)s 2008.12.31
제로보드XE 쉽게 업데이트 하는 방법.. [13] 청개구리00 2009.01.12