웹마스터 팁

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>




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



제목 글쓴이 날짜
남양주오피 남양주출장안마 ⦑오피사이트.NET⦒ 남양주OP 남양주오피 남양주오피 koykoyah 2025.02.23
남양주오피 ⦑출장안마사이트.COM⦒ 남양주오피 남양주출장마사지 남양주오피 남양주OP koykoyah 2025.02.23
수원오피 ⦑오피사이트.NET⦒ 수원오피 수원OP 수원건마 수원오피 koykoyah 2025.02.23
충주오피 ⦑오피쓰.COM⦒ 충주오피 충주OP 충주건마 충주오피 koykoyah 2025.02.22
해운대오피 ⦑출장마사지안내.COM⦒ 해운대오피 해운대OP 해운대건마 해운대오피 koykoyah 2025.02.22
여의도오피 ⦑출장안마사이트.COM⦒ 여의도오피 여의도OP 여의도건마 여의도오피 koykoyah 2025.02.22
동두천오피 동두천오피 ⦑오피쓰.COM⦒ 동두천OP 동두천스파 동두천오피 koykoyah 2025.02.22
안양오피 ⦑출장안마사이트.COM⦒ 안양오피 안양출장마사지 안양오피 안양OP koykoyah 2025.02.22
청주오피 ⦑오피.CLUB⦒ 청주마사지 청주오피 청주오피 청주OP koykoyah 2025.02.22
강서오피 강서출장안마 ⦑출장안마사이트.COM⦒ 강서OP 강서오피 강서오피 koykoyah 2025.02.22
대구오피 ⦑오피쓰주소.COM⦒ 대구오피 대구출장마사지 대구오피 대구OP koykoyah 2025.02.22
부산오피 부산출장안마 ⦑오피쓰주소.COM⦒ 부산OP 부산오피 부산오피 koykoyah 2025.02.22
선릉오피 ⦑출장안마사이트.COM⦒ 선릉오피 선릉출장마사지 선릉오피 선릉OP koykoyah 2025.02.22
역삼오피 ⦑출장마사지안내.COM⦒ 역삼오피 역삼출장마사지 역삼오피 역삼OP koykoyah 2025.02.22
부평오피 ⦑오피.CLUB⦒ 부평OP 부평오피 부평출장샵 부평오피 koykoyah 2025.02.22
강남오피 강남오피 ⦑오피.CLUB⦒ 강남OP 강남스파 강남오피 koykoyah 2025.02.22
전주오피 ⦑출장안마사이트.COM⦒ 전주오피 전주출장마사지 전주오피 전주OP koykoyah 2025.02.22
평택오피 ⦑오피쓰.COM⦒ 평택OP 평택오피 평택출장샵 평택오피 koykoyah 2025.02.22
대전오피 대전OP ⦑오피쓰주소.COM⦒ 대전휴게텔 대전오피 대전오피 koykoyah 2025.02.22
용인오피 용인OP ⦑오피사이트.NET⦒ 용인휴게텔 용인오피 용인오피 koykoyah 2025.02.22