웹마스터 팁

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>




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



제목 글쓴이 날짜
새로고침없이 페이지 리로딩 간단하고 쉽게 서버한테는 미안하게 하는법 (서버단이 아니고 스킨에 ㅠ jquery load씀) 게시글,댓글,추천등 모든 부분다가능합니다. [2] 장포크 2013.08.08
지식인 모바일에서 답변이 보이지 않는 현상. 씨즈부스 2013.08.10
제로보드 4 -> xe 신버전으로 마이그레이션 경험담 [4] file 윤안젤로 2013.02.28
textarea 테그 제임스라 2013.08.07
문서에서 원하는 썸네일 뽑아오기. [16] Xiso 2013.02.01
[트래픽] 줄이기 팁! 레벨별 아이콘을 CDN 으로 (cafe24) [11] 999 2010.06.04
HTML5를 이용한 시멘틱 XE 레이아웃 만들기 (인트로) [3] 이온디 2013.08.04
저장된 이미지가 없는 경우 게시판 본문 및 Contentlist 위젯에 이미지 랜덤하게 나타내기 가난한법학도 2013.08.04
Recruit 모듈 - 일반회원 채용글 등록할 수 있도록 수정 [10] 홍채화 2013.07.27
XE 위키 댓글 삭제 오류수정 [1] 뒤뒤 2013.08.03
Sketchbook5 게시판 스킨 본문 부분 여백 없애기 [7] file 짤막한글 2013.08.01
XE 내가 작성한 글 모두 일괄 추천하기. [4] 엘카 2013.08.01
[위키정복]4탄 - 망할 에러까지 정복하자 [2] kukuriko 2013.07.31
XE 위키 모듈에서 소셜XE 댓글 사용하기 novelic 2013.07.31
카페24로 옮기고 나서 모바일 레이아웃 설정 저장이 안되어서.. 착한부산남자 2013.07.31
자료실(resource)모듈 등록신청 권한적용 안될때 [2] 배포 2013.07.28
게시판 및 댓글 추천/비추천 카운트가 바로 적용되지 않는 경우 KS 2013.07.28
[팁] 세상의 모든 SNS버튼을 등록해보자. [1] file socialskyo 2013.07.28
포인트복권모듈 포인트 중복수령을 차단하는 간단한 팁 [4] 나뚜르 2011.07.10
페이스북 애드온 - 뭐 팁이랄것도 아닙니다. [1] 후아아아~ 2013.07.27