웹마스터 팁

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>




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



제목 글쓴이 날짜
일정 기간이 지난 글에 코멘트 등록 제한 [3] file 老姜君 2008.06.03
링크 사이트 제작을 위한 어드바이스 - Planning 1 - [7] file Hammer 2008.06.04
링크 사이트 제작을 위한 어드바이스 - MouseOver Preview - [6] file Hammer 2008.06.10
페이지 숫자에 네이버처럼 사각테두리 씌우기 [8] file 탑심 2008.06.15
페이지 작성이나 수정후 적용이 안돼서 고생하는 많은 분들을 위하여 [1] cyric 2008.06.17
아이프레임속 링크를 기존페이지에서 이동하기 [1] file 정다운804 2008.06.19
php폼메일 관련 한번 올려봅니다. 사용하실분들은 수정하셔서 사용해보세요.. [10] file 코리아프럼 2008.06.26
동일한 계정내에서의 포워딩 방법 [2] file 하이쿠 2008.07.01
[팁]페이지별 댓글 출력 초간단 팁.. [4] 키티나 2008.07.04
1차 메뉴에서 하위 메뉴 없을때 생기는 여백 없애는 방법 [7] 제로시오 2008.07.04
최고관리자 이외에는 ''회원정보보기''를 막기 [13] 비나무 2008.07.10
최근게시물에 권한주어서 회원만 내용물보게하기 [1] 팔공산 2008.07.11
조건별로 스킨 바꾸기 file 라르게덴 2008.07.11
게시판 가로조절(width) 및 가운데로 이동 태그 [4] 박상욱860 2008.07.12
초보 헤메다가 팁//검색기능 보이기 감추기 [3] file 리히토 2008.07.15
초보 헤메다가 팁//댓글기능 보이기 감추기 [5] 리히토 2008.07.15
winxp IE7 rwapm에서 한글이름파일 업로드 [7] file 공수래 2008.07.15
로컬 설치 후 몇가지 문제점에 대해서 - 인덱싱. DB선택 등 서정일643 2008.07.22
본문의 서명과 프로필이미지를 끌어올려보자 [11] file CL님 2008.07.22
1.0.3 버전 이상부터 본문 내 이미지 자동 리사이징이 안되는 경우 [1] kirrie 2008.08.01