2015-01-05 2 views
1

orangehrm의 공석 섹션을 추가 할 때 사용자 정의 텍스트 상자 (기술)를 추가해야합니다.orangehrm에 사용자 정의 입력 필드를 추가하는 방법 (공석 섹션 추가)

나는 다음과 같은 코드를 시도하고 있습니다. 양식에 파일을 제출했지만 데이터베이스에 추가하지는 마십시오.

orangehrm-3.1 \ 심포니 \ 플러그인 \ orangehrmRecruitmentPlugin 모듈 \ 채용 \ 템플릿 addJobVacancySuccess.php

코드를 \ \ -

<?php 
use_stylesheet(plugin_web_path('orangehrmRecruitmentPlugin', 'css/addJobVacancySuccess')); 
use_javascript(plugin_web_path('orangehrmRecruitmentPlugin', 'js/addJobVacancySuccess')); 
?> 

<div class="box" id="addJobVacancy"> 

    <div class="head"> 
     <h1><?php echo isset($vacancyId) ? __('Edit Job Vacancy') : __('Add Job Vacancy'); ?></h1> 
    </div> 

    <div class="inner"> 
     <?php include_partial('global/flash_messages'); ?> 
     <form name="frmAddJobVacancy" id="frmAddJobVacancy" method="post"> 

      <?php echo $form['_csrf_token']; ?> 
      <?php echo $form["hiringManagerId"]->render(); 

      ?> 
      <fieldset> 
       <ol> 

        <li> 
         <?php echo $form['jobTitle']->renderLabel(__('Job Title') . ' <em>*</em>'); ?> 
         <?php echo $form['jobTitle']->render(array("maxlength" => 50)); ?> 
        </li> 
        <li> 
         <?php echo $form['name']->renderLabel(__('Vacancy Name') . ' <em>*</em>'); ?> 
         <?php echo $form['name']->render(array("maxlength" => 50)); ?> 
        </li> 
        <li> 
         <?php echo $form['hiringManager']->renderLabel(__('Hiring Manager') . ' <em>*</em>'); ?> 
         <?php echo $form['hiringManager']->render(array("maxlength" => 100)); ?> 
        </li> 
        <li> 
         <?php echo $form['noOfPositions']->renderLabel(__('Number of Positions')); ?> 
         <?php echo $form['noOfPositions']->render(array("maxlength" => 2)); ?> 
        </li> 
        <li class="largeTextBox"> 
         <?php echo $form['description']->renderLabel(__('Description')); ?> 
         <?php echo $form['description']->render(array("cols" => 30, "rows" => 9)); ?> 
        </li> 
        <li> 

         <?php echo $form['skill']->renderLabel(__('Vacancy Skills') . ' <em>*</em>'); ?> 
         <?php echo $form['skill']->render(array("maxlength" => 50)); ?>      
         </li> 

        <li> 
         <?php echo $form['status']->renderLabel(__('Active')); ?> 
         <?php echo $form['status']->render(); ?> 
        </li> 

        <li class="labelRight"> 
         <?php echo $form['publishedInFeed']->render(); ?> 
         <?php echo $form['publishedInFeed']->renderLabel(__('Publish in RSS feed(1) and web page(2)')); ?> 
        </li> 

        <?php include_component('core', 'ohrmPluginPannel', array('location' => 'add_layout_before_navigation_bar_1')) ?> 

        <li class="required"> 
         <em>*</em> <?php echo __(CommonMessages::REQUIRED_FIELD); ?> 
        </li> 
        <li class="helpText"> 
         1 : <?php echo __('RSS Feed URL') ?> : <?php echo link_to(null, 'recruitmentApply/jobs.rss', array('absolute' => true, 'target' => '_new')); ?> 
        </li> 
        <li class="helpText"> 
         2 : <?php echo __('Web Page URL') ?> : <?php echo link_to(null, 'recruitmentApply/jobs.html', array('absolute' => true, 'target' => '_new')); ?> 
        </li> 

       </ol> 
       <p> 
        <?php if (isset($vacancyId)) { ?> 
         <input type="button" class="savebutton" name="btnSave" id="btnSave" value="<?php echo __("Edit"); ?>"/> 
         <input type="button" class="backbutton" name="btnBack" id="btnBack" value="<?php echo __("Back"); ?>"/> 
        <?php } else { ?> 
         <input type="button" class="savebutton" name="btnSave" id="btnSave"value="<?php echo __("Save"); ?>"/> 
        <?php } ?> 
       </p> 
      </fieldset> 
     </form> 
    </div> 
    <?php 
    if (isset($vacancyId)) { 
     echo include_component('recruitment', 'attachments', array('id' => $vacancyId, 'screen' => JobVacancy::TYPE)); 
    } 
    ?> 
</div> 

<script type="text/javascript"> 
    //<![CDATA[ 
    var hiringManagers = <?php echo str_replace('&#039;', "'", $form->getHiringManagerListAsJson()) ?> ; 
    var hiringManagersArray = eval(hiringManagers); 
    var lang_typeForHints = '<?php echo __("Type for hints") . "..."; ?>'; 
    var lang_negativeAmount = "<?php echo __("Should be a positive number"); ?>"; 
    var lang_tooLargeAmount = "<?php echo __("Should be less than %amount%", array("%amount%" => '99')); ?>"; 
    var lang_jobTitleRequired = '<?php echo __(ValidationMessages::REQUIRED); ?>'; 
    var lang_vacancyNameRequired = '<?php echo __(ValidationMessages::REQUIRED); ?>'; 
    var lang_enterAValidEmployeeName = "<?php echo __(ValidationMessages::INVALID); ?>"; 
    var lang_nameExistmsg = "<?php echo __("Already exists"); ?>"; 
    var vacancyNames = <?php echo $form->getVacancyList(); ?>; 
    var vacancyNameList = eval(vacancyNames); 
    var lang_edit = "<?php echo __("Edit"); ?>"; 
    var lang_save = "<?php echo __("Save"); ?>"; 
    var lang_cancel = "<?php echo __("Cancel"); ?>"; 
    var lang_back = "<?php echo __("Back"); ?>"; 
    var linkForAddJobVacancy = "<?php echo url_for('recruitment/addJobVacancy'); ?>"; 
    var lang_descriptionLength = "<?php echo __(ValidationMessages::TEXT_LENGTH_EXCEEDS, array('%amount%' => 40000)) ?>"; 
    var backBtnUrl = '<?php echo url_for('recruitment/viewJobVacancy?'); ?>'; 
    var backCancelUrl = '<?php echo url_for('recruitment/addJobVacancy?'); ?>'; 
<?php if (isset($vacancyId)) { ?> 
     var vacancyId = '<?php echo $vacancyId; ?>'; 
<?php } else { ?> 
     var vacancyId = ""; 
<?php } ?> 
    //]]> 
</script> 

답변

5

이 시도 ..

1) 테이블에 파일 이름 (기술)을 작성해야합니다.

2) orangehrm - 3.1 라인을 다음과 같은 추가 \ 심포니 \ lib 디렉토리 \ 모델 \ 교리 \ orangehrmRecruitmentPlugin \ 기본 \ BaseJobVacancy.class.php

Inside public function setTableDefinition(){} 
    $this->hasColumn('skill', 'string', 100, array(
      'type' => 'string', 
      'length' => 100, 
      )); 

3) orangehrm-하는 라인을 다음과 같은 추가 3.1 \ 심포니 \ 플러그인 \ orangehrmRecruitmentPlugin 모듈 \ 채용 \ 템플릿 \ \ addJobVacancySuccess.php

Inside the form following lines 

    <li>      
    <?php echo $form['skill']->renderLabel(__('Vacancy Skills') . ' <em>*</em>'); ?> 
    <?php echo $form['skill']->render(array("maxlength" => 50)); ?>      
    </li> 

4) 광고 orangehrm-3.1 \ 심포니 \ 플러그인 \ orangehrmRecruitmentPlugin \ lib 디렉토리 \ 양식 \의 AddJobVacancyForm.php

Inside Widgetarray like following code 

    $this->setWidgets(array(
      'jobTitle' => new sfWidgetFormSelect(array('choices' => $jobTitleList)), 
      'name' => new sfWidgetFormInputText(), 
      'hiringManager' => new sfWidgetFormInputText(), 
      ...... 
      ..... 
      'skill' => new sfWidgetFormInputText(), 
      )); 

    Inside setValidatorsarray like following code 

    $this->setValidators(array(
      'jobTitle' => new sfValidatorString(array('required' => true)), 
      'name' => new sfValidatorString(array('required' => true)), 
      'hiringManager' => new sfValidatorString(array('required' => true)), 
      ..... 
      ..... 
      .... 
      'skill' => new sfValidatorString(array('required' => true)), 
      )); 

    Inside following code in if loop "if (isset($vacancy) && $vacancy != null) {}" 

    $this->setDefault('skill', $vacancy->getSkill()); 

    Inside save() function add following following code 

     $jobVacancy->skill = $this->getValue('skill'); 
관련 문제