如何在orangehrm中添加自定义输入字段(添加空缺部分) [英] How to add custom input field in orangehrm (add vacancy section)

查看:24
本文介绍了如何在orangehrm中添加自定义输入字段(添加空缺部分)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要在 orangehrm 的添加空缺部分添加自定义提交的文本框(技能).

我正在尝试以下代码.它显示表单中提交的文本,但不添加到数据库中.

orangehrm-3.1\symfony\plugins\orangehrmRecruitmentPlugin\modules\recruitment\templates\addJobVacancySuccess.php

代码:-

<div class="box" id="addJobVacancy"><div class="head"><h1><?php echo isset($vacancyId) ?__('编辑职位空缺') : __('添加职位空缺');?></h1>

<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();?><字段集><ol><li><?php echo $form['jobTitle']->renderLabel(__('Job Title') . ' <em>*</em>');?><?php echo $form['jobTitle']->render(array("maxlength" => 50));?><li><?php echo $form['name']->renderLabel(__('Vacancy Name') .' <em>*</em>');?><?php echo $form['name']->render(array("maxlength" => 50));?><li><?php echo $form['hiringManager']->renderLabel(__('招聘经理') .' <em>*</em>');?><?php echo $form['hiringManager']->render(array("maxlength" => 100));?><li><?php echo $form['noOfPositions']->renderLabel(__('Number of Positions'));?><?php echo $form['noOfPositions']->render(array("maxlength" => 2));?><li class="largeTextBox"><?php echo $form['description']->renderLabel(__('Description'));?><?php echo $form['description']->render(array("cols" => 30, "rows" => 9));?><li><?php echo $form['skill']->renderLabel(__('Vacancy Skills') .' <em>*</em>');?><?php echo $form['skill']->render(array("maxlength" => 50));?><li><?php echo $form['status']->renderLabel(__('Active'));?><?php echo $form['status']->render();?>

  • <?php echo $form['publishedInFeed']->render();?><?php echo $form['publishedInFeed']->renderLabel(__('Publish in RSS feed(1) and web page(2)'));?>
  • <?php include_component('core', 'ohrmPluginPannel', array('location' => 'add_layout_before_navigation_bar_1')) ?><li class="必需"><em>*</em><?php echo __(CommonMessages::REQUIRED_FIELD);?>
  • 1 : <?php echo __('RSS Feed URL') ?>: <?php echo link_to(null, 'recruitmentApply/jobs.rss', array('absolute' => true, 'target' => '_new'));?>
  • 2 : <?php echo __('网页网址') ?>: <?php echo link_to(null, 'recruitmentApply/jobs.html', array('absolute' => true, 'target' => '_new'));?>
  • </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></表单>

    <?php如果(isset($vacancyId)){echo include_component('recruitment', 'attachments', array('id' => $vacancyId, 'screen' => JobVacancy::TYPE));}?>

    <script type="text/javascript">//<![CDATA[varhiringManagers = <?php echo str_replace('&#039;', "'", $form->getHiringManagerListAsJson()) ?>;varhiringManagersArray = eval(hiringManagers);var lang_typeForHints = '<?php echo __("Type for hints") .……";?>';var lang_negativeAmount = "<?php echo __("应该是一个正数"); ?>";var lang_tooLargeAmount = " '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 __("已经存在"); ?>";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 = " 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 } ?>//]]>

    解决方案

    试试这个..

    1)您需要在表中创建文件名(技能).

    2) 将以下行添加到 orangehrm-3.1\symfony\lib\model\doctrine\orangehrmRecruitmentPlugin\base\BaseJobVacancy.class.php

     内部公共函数 setTableDefinition(){}$this->hasColumn('skill', 'string', 100, array('类型' =>'细绳','长度' =>100,));

    3) 将以下行添加到 orangehrm-3.1\symfony\plugins\orangehrmRecruitmentPlugin\modules\recruitment\templates\addJobVacancySuccess.php

    在表格里面下面几行<li><?php echo $form['skill']->renderLabel(__('Vacancy Skills') .' <em>*</em>');?><?php echo $form['skill']->render(array("maxlength" => 50));?>

    4) 将以下行添加到 orangehrm-3.1\symfony\plugins\orangehrmRecruitmentPlugin\lib\form\AddJobVacancyForm.php

    在 Widgetarray 里面像下面的代码$this->setWidgets(array('jobTitle' =>新 sfWidgetFormSelect(array('choices' => $jobTitleList)),'名称' =>新 sfWidgetFormInputText(),'招聘经理' =>新 sfWidgetFormInputText(),...........'技能' =>新 sfWidgetFormInputText(),));在 setValidatorsarray 中,如以下代码$this->setValidators(array('jobTitle' =>新 sfValidatorString(array('required' => true)),'名称' =>新 sfValidatorString(array('required' => true)),'招聘经理' =>新 sfValidatorString(array('required' => true)),..............'技能' =>新 sfValidatorString(array('required' => true)),));在 if 循环中的以下代码中if (isset($vacancy) && $vacancy != null) {}"$this->setDefault('skill', $vacancy->getSkill());在 save() 函数中添加以下代码$jobVacancy->skill = $this->getValue('skill');

    I need to add custom filed textbox(skill) in add vacancy section in orangehrm.

    I am trying following code.It show text filed in the form but not add in the database.

    orangehrm-3.1\symfony\plugins\orangehrmRecruitmentPlugin\modules\recruitment\templates\addJobVacancySuccess.php

    Code:-

    <?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>
    

    解决方案

    Try this..

    1)You need to create filed name (skill) in your table.

    2)Add following lines to orangehrm-3.1\symfony\lib\model\doctrine\orangehrmRecruitmentPlugin\base\BaseJobVacancy.class.php

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

    3)Add following lines to orangehrm-3.1\symfony\plugins\orangehrmRecruitmentPlugin\modules\recruitment\templates\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)Add following lines to orangehrm-3.1\symfony\plugins\orangehrmRecruitmentPlugin\lib\form\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');
    

    这篇关于如何在orangehrm中添加自定义输入字段(添加空缺部分)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

    查看全文
    相关文章
    PHP最新文章
    热门教程
    热门工具
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆