Example #1
1
 /**
  * 存储完整意见--$comments
  */
 public static function insertComment($array, $examinee_id, $manager_id)
 {
     try {
         $manager = new TxManager();
         $transaction = $manager->get();
         $interview = Interview::findFirst(array('manager_id=?0 and examinee_id=?1', 'bind' => array(0 => $manager_id, 1 => $examinee_id)));
         $interview->setTransaction($transaction);
         $advantage = array('advantage1' => $array['advantage1'], 'advantage2' => $array['advantage2'], 'advantage3' => $array['advantage3'], 'advantage4' => $array['advantage4'], 'advantage5' => $array['advantage5']);
         $interview->advantage = json_encode($advantage, JSON_UNESCAPED_UNICODE);
         $disadvantage = array('disadvantage1' => $array['disadvantage1'], 'disadvantage2' => $array['disadvantage2'], 'disadvantage3' => $array['disadvantage3']);
         $interview->disadvantage = json_encode($disadvantage, JSON_UNESCAPED_UNICODE);
         $interview->remark = $array['remark'];
         $examinee = Examinee::findFirst($examinee_id);
         $examinee->setTransaction($transaction);
         $examinee->state = 5;
         if ($interview->save() == false || $examinee->save() == false) {
             $transaction->rollback("数据插入失败");
         }
         $transaction->commit();
         return true;
     } catch (TxFailed $e) {
         throw new Exception($e->getMessage());
     }
 }
 /**
  * Execute the console command.
  *
  *	@todo  DON'T UPDATE LOCATIONS IF THEY'RE ALREADY SET
  *
  * @return mixed
  */
 public function fire()
 {
     $Bodmin = Area::firstOrCreate(['name' => 'Bodmin']);
     // Ensure current locations are saved.
     foreach (array_unique(Interview::where('location_id', '=', '')->lists('location')) as $location) {
         if (strlen($location) === 0) {
             continue;
             // don't want to clobber real locations
         }
         $L = Location::firstOrNew(['name' => $location]);
         if ($L->exists) {
             continue;
         }
         $L->area()->associate($Bodmin);
         $L->save();
     }
     Interview::all()->each(function ($Interview) {
         $Location = Location::where('name', '=', $Interview->location);
         if ($Location->count() <= 0) {
             \Log::error("This location not found despite having just been confirmed a few lines above", $Interview->toArray());
             return;
         }
         $Interview->location_id = $Location->first()->id;
         $Interview->save();
     });
 }
/**
 * Campsite interview_form block plugin
 *
 * Type:     block
 * Name:     interview_form
 * Purpose:  Provides a form for an interview
 *
 * @param string
 *     $p_params
 * @param string
 *     $p_smarty
 * @param string
 *     $p_content
 *
 * @return
 *
 */
function smarty_block_interview_form($p_params, $p_content, &$p_smarty, &$p_repeat)
{
    require_once $p_smarty->_get_plugin_filepath('shared','escape_special_chars');
    
    // gets the context variable
    $campsite = $p_smarty->get_template_vars('gimme');
    $html = '';
    
    if (0) {
        $Interview = new Interview($campsite->interview->identifier);
        return $Interview->getForm('/en/first/interview/', '', true);
    }
    
    if (isset($p_params['template'])) {
        $template = new Template($p_params['template']);
        $tpl_id = $template->getTemplateId();
    }
    if (!isset($p_params['submit_button'])) {
        $p_params['submit_button'] = 'Submit';
    }
    if (!isset($p_params['html_code']) || empty($p_params['html_code'])) {
        $p_params['html_code'] = '';
    }

    if (isset($p_content)) {
        $html = "<form name=\"interview\" action=\"{$campsite->url->uri_path}\" method=\"post\" enctype=\"multipart/form-data\">\n";
        $html .= "<input type=\"hidden\" name=\"_qf__interview\">\n";
        $html .= "<input type=\"hidden\" name=\"f_interview\" value=\"edit\">\n";
        
        if ($tpl_id) {
            $html .= "<input type=\"hidden\" name=\"".TEMPLATE_ID."\" value=\"$tpl_id\" />\n";
        }
        if ($campsite->interview->identifier) {
            $html .= "<input type=\"hidden\" name=\"f_interview_id\" value=\"{$campsite->interview->identifier}\" />\n";
        }
        $html .= $p_content;
        $html .= "<input type=\"submit\" name=\"f_interview_submit\" value=\""
              .smarty_function_escape_special_chars($p_params['submit_button'])
              ."\" ".$p_params['html_code']." />\n</form>\n";
    }

    return $html;
} // fn smarty_block_poll_form
/**
 * Campsite interview_form block plugin
 *
 * Type:     block
 * Name:     poll_form
 * Purpose:  Provides a form for an interview
 *
 * @param string
 *     $p_params
 * @param string
 *     $p_smarty
 * @param string
 *     $p_content
 *
 * @return
 *
 */
function smarty_block_interview_form($p_params, $p_content, &$p_smarty, &$p_repeat)
{
    require_once $p_smarty->_get_plugin_filepath('shared','escape_special_chars');

    // gets the context variable
    $camp = $p_smarty->get_template_vars('gimme');
    $html = '';

    if (isset($p_content)) {
        require_once $p_smarty->_get_plugin_filepath('function', 'urlparameters');
        require_once $p_smarty->_get_plugin_filepath('function', 'uripath');
        
        parse_str(smarty_function_urlparameters($p_params, &$p_smarty), $urlparameters);
        $uripath = smarty_function_uripath($p_params, &$p_smarty);
        
        $Interview = new Interview($camp->interview->identifier);
        $html = $Interview->getForm($uripath, $urlparameters, true);
    }

    return $html;
} // fn smarty_block_poll_form
 /**
  * get interview questions and answers when possible
  * @param int $wikiId wiki id
  * @param bool $answeredOnly get only answered questions
  * @param bool $asArray return array of arrays instead of objects
  */
 public function getInterviewQuestions($wikiId, $answeredOnly = false, $asArray = false)
 {
     $interview = new Interview($wikiId);
     $questions = array();
     $answers = $this->parseInterviewAnswers();
     $index = 0;
     $interviewQuestions = $interview->getQuestions();
     $questionsNum = count($interviewQuestions);
     foreach ($interviewQuestions as $question) {
         $index++;
         $question->setCaption(wfMsg('userprofilepage-question-caption', $index, $questionsNum));
         if (isset($answers[$question->getId()])) {
             $question->setAnswerBody($answers[$question->getId()]);
         }
         if ($answeredOnly && $question->hasAnswer()) {
             $questions[] = $asArray ? $question->toArray() : $question;
         } else {
             if (!$answeredOnly) {
                 $questions[] = $asArray ? $question->toArray() : $question;
             }
         }
     }
     return $questions;
 }
 /**
  * Store a newly created resource in storage.
  *
  * Interviews are submitted as sets of tags and responses to questionnaires.
  *
  * @return Response
  */
 public function store()
 {
     $v = Validator::make(Request::all(), ['type' => 'required|string', 'questionSet' => 'required|string', 'recordedAt' => 'required', 'questions' => 'array', 'taggable' => 'array', 'location' => 'required|string', 'area' => 'required|string', 'houseno' => 'string']);
     if ($v->fails()) {
         return Response::json(['errors' => $v->errors()], 400);
     }
     $Date = Carbon::createFromTimeStamp(Input::get('recordedAt'));
     $interview = Interview::firstOrNew(['date' => $Date, 'interviewer_id' => Auth::user()->id]);
     $Questionnaire = Questionnaire::where('name', '=', Input::get('questionSet'))->first();
     // important to fail here, you shouldn't be able to submit an interview for a questionnaire that doesn't exist
     if (!$Questionnaire) {
         return Response::json(['message' => 'questionnaire "' . Input::get('questionSet') . '" does not exist'], 400);
     }
     $interview->questionnaire_id = $Questionnaire->id;
     $interview->type = Input::get('type');
     // similarly, area has to exist already
     $area = Area::where(['name' => Input::get('area')])->first();
     if (!$area) {
         return Response::json(['message' => 'area "' . Input::get('area') . '" does not exist'], 400);
     }
     // although we can allow for dynamically adding new locations as they come in.
     $location = Location::firstOrCreate(['name' => Input::get('location'), 'area_id' => $area->id]);
     $interview->location_id = $location->id;
     if (Input::has('houseno')) {
         $interview->house_number = Input::get('houseno');
     }
     $interview->save();
     if (Input::has('questions') && $interview->type === 'interview') {
         foreach (Input::get('questions') as $response) {
             InterviewResponse::create(['question' => $response['question'], 'answer' => $response['answer'], 'interview_id' => $interview->id]);
         }
     }
     if (Input::has('taggable') && $interview->type === 'interview') {
         foreach (Input::get('taggable') as $list) {
             if (isset($list['id'])) {
                 $this->saveTagsToQuestionnaire($list);
             }
             $TagList = new TagList();
             $TagList->name = $list['name'];
             $interview->tagLists()->save($TagList);
             foreach ($list['tagged'] as $tag) {
                 $TagList->tags()->save(Tag::create(['name' => $tag, 'tag_list_id' => $TagList->id]));
             }
         }
     }
     $interview->push();
     return Response::json(Interview::with('responses')->find($interview->id), 200);
 }
Example #7
0
	/**
	 * Creates the list of objects. Sets the parameter $p_hasNextElements to
	 * true if this list is limited and elements still exist in the original
	 * list (from which this was truncated) after the last element of this
	 * list.
	 *
	 * @param int $p_start
	 * @param int $p_limit
	 * @param bool $p_hasNextElements
	 * @return array
	 */
	protected function CreateList($p_start = 0, $p_limit = 0, array $p_parameters, &$p_count)
	{
	    if (!defined('PLUGIN_INTERVIEW_ADMIN_MODE')) {
    	    $operator = new Operator('is', 'integer');
    	    $context = CampTemplate::singleton()->context();
    	    
    	    if ($context->language->defined) {
        	    $comparisonOperation = new ComparisonOperation('language_id', $operator,
    	                                                       $context->language->number);
                $this->m_constraints[] = $comparisonOperation;
    	    }
	    }
	    $interviewsList = Interview::GetList($this->m_constraints, $this->m_item, $this->m_order, $p_start, $p_limit, $p_count);
        $metaInterviewsList = array();
	    foreach ($interviewsList as $interview) {
	        $metaInterviewsList[] = new MetaInterview($interview->getId());
	    }
	    return $metaInterviewsList;
	}
Example #8
0
 public function testDeleteWithCallback()
 {
     $this->assertNotNull(InterviewTest::$interviewId);
     Interview::delete(InterviewTest::$interviewId, array());
 }
Example #9
0
 /**
  * 取消面询分配
  */
 public static function delallocExaminees($data, $interviewer_id)
 {
     try {
         $manager = new TxManager();
         $transaction = $manager->get();
         foreach ($data as $value) {
             $interview = Interview::findFirst(array('examinee_id = ?1 AND manager_id = ?2', 'bind' => array(1 => $value, 2 => $interviewer_id)));
             if (!isset($interview->examinee_id)) {
                 continue;
             }
             $interview->setTransaction($transaction);
             if ($interview->delete() == false) {
                 $transaction->rollback("数据删除失败");
             }
         }
         $transaction->commit();
         return true;
     } catch (TxFailed $e) {
         throw new Exception($e->getMessage());
     }
 }
Example #10
0
<FORM name="selector" method="get">
<TABLE CELLSPACING="0" CELLPADDING="0" class="table_actions">
<TR>
    <TD>
        <TABLE cellpadding="0" cellspacing="0">
        <TR>
            <TD ALIGN="left">
                <TABLE BORDER="0" CELLSPACING="0" CELLPADDING="3" >
                <TR>
                    <TD><?php  putGS('Language'); ?>:</TD>
                    <TD valign="middle">
                        <SELECT NAME="f_language_id" class="input_select" onchange="this.form.submit()">
                        <option value="0"><?php putGS("All"); ?></option>
                        <?php
                        foreach (Interview::GetCampLanguagesList() as $k => $v) {
                            echo '<OPTION value="'.$k.'"' ;
                            if ($k == $f_language_id) {
                                echo " selected";
                            }
                            echo '>'.htmlspecialchars($v).'</option>';
                        } ?>
                        </SELECT>
                    </TD>
                </TR>
                </TABLE>
            </TD>
            <TD ALIGN="left">
                <TABLE BORDER="0" CELLSPACING="0" CELLPADDING="3" >
                <TR>
                    <TD><?php  putGS('Status'); ?>:</TD>
Example #11
0
 /**
  * @depends testCreateWithQuestionAndInterviewName
  */
 public function testCreateWithCallback()
 {
     $param = ["mail" => "*****@*****.**", "alert" => false, "questions" => [["content" => "question 1", "readingTime" => 60, "answerTime" => 60, "number" => 1]], "lang" => "en", "deadline" => intval((microtime(true) + ApplicantTest::$oneMonth) * 1000), "callback" => "http://mycustomeurl.com/done"];
     $res = Applicant::create($param);
     $this->assertEquals("*****@*****.**", $res->mail);
     $this->assertFalse($res->deleted);
     $this->assertCount(1, $res->questions);
     $this->assertEquals("http://mycustomeurl.com/done", $res->callback);
     Interview::delete($res->interview, array("withApplicant" => true));
     $app = Applicant::findOne($res->id);
     $this->assertTrue($app->deleted);
 }
Example #12
0
    break;

    case 'interview_move_up_rel':
    case 'interview_move_down_rel':
        $f_interviews = Input::Get('f_interviews', 'array');
        list(,,$dir,) = explode('_', $f_action);

        foreach ($f_interviews as $interview_id) {
            $Interview = new Interview($interview_id);
            $Interview->positionRelative($dir);
        }

    break;

    case 'interview_move_abs':
        $f_interviews = Input::Get('f_interviews', 'array');
        $f_new_pos = Input::Get('f_new_pos', 'int');

        foreach ($f_interviews as $interview_id) {
            $Interview = new Interview($interview_id);
            $Interview->positionAbsolute($f_new_pos);
        }

    break;
}

// Need to exit to avoid output of the menue.
exit;
?>
 public function listexamineeAction()
 {
     $this->view->disable();
     $manager = $this->session->get('Manager');
     if (empty($manager)) {
         $this->dataReturn(array('error' => '获取用户信息失败,请重新登陆'));
         return;
     }
     $manager_id = $manager->id;
     $page = $this->request->get('page');
     $rows = $this->request->get('rows');
     $offset = $rows * ($page - 1);
     $limit = $rows;
     $sidx = $this->request->getQuery('sidx', 'string');
     $sord = $this->request->getQuery('sord', 'string');
     if ($sidx != null) {
         $sort = $sidx;
     } else {
         $sort = 'id';
         $sord = 'desc';
     }
     if ($sord != null) {
         $sort = $sort . ' ' . $sord;
     }
     //default get
     $search_state = $this->request->get('_search');
     if ($search_state == 'false') {
         $result = $this->modelsManager->createBuilder()->columns(array('Examinee.id as id', 'Examinee.number as number', 'Examinee.name as name', 'Examinee.sex as sex', 'Examinee.last_login as last_login', 'Examinee.state as state'))->from('Examinee')->join('Interview', 'Interview.examinee_id = Examinee.id AND Interview.manager_id = ' . $manager_id)->limit($limit, $offset)->orderBy($sort)->getQuery()->execute();
         $rtn_array = array();
         $examinees = Interview::find(array('manager_id=?1', 'bind' => array(1 => $manager_id)));
         //获取该项目下答题的总人数
         $count = count($examinees);
         $rtn_array['total'] = ceil($count / $rows);
         $rtn_array['records'] = $count;
         $rtn_array['rows'] = array();
         foreach ($result as $value) {
             $rtn_array['rows'][] = $value;
         }
         $rtn_array['page'] = $page;
         $this->dataReturn($rtn_array);
         return;
     } else {
         //处理search情况
         $search_field = $this->request->get('searchField');
         $search_string = $this->request->get('searchString');
         $search_oper = $this->request->get('searchOper');
         #分情况讨论
         $filed = 'Examinee.' . $search_field;
         if ($search_oper == 'eq') {
             if ($search_field == 'name') {
                 $oper = 'LIKE';
                 $value = "'%{$search_string}%'";
             } else {
                 if ($search_field == 'number' || $search_field == 'sex') {
                     $oper = '=';
                     $value = "'{$search_string}'";
                 } else {
                     if ($search_field == 'exam_state' || $search_field == 'interview_state') {
                         $filed = 'Examinee.state';
                         if ($search_string == 'true') {
                             $oper = '>=';
                         } else {
                             $oper = '<';
                         }
                         if ($search_field == 'exam_state') {
                             $value = 1;
                         } else {
                             $value = 4;
                         }
                     }
                 }
             }
         } else {
             if ($search_oper == 'bw' || $search_oper == 'ew') {
                 if ($search_field == 'last_login') {
                     $value = "'{$search_string}'";
                 }
                 if ($search_oper == 'bw') {
                     $oper = '>=';
                 } else {
                     if ($search_oper == 'ew') {
                         $oper = '<=';
                     }
                 }
             } else {
                 //add ...
             }
         }
         $result = $this->modelsManager->createBuilder()->columns(array('Examinee.id as id', 'Examinee.number as number', 'Examinee.name as name', 'Examinee.sex as sex', 'Examinee.last_login as last_login', 'Examinee.state as state'))->from('Examinee')->join('Interview', 'Interview.examinee_id = Examinee.id AND Interview.manager_id = ' . $manager_id . " AND {$filed} {$oper} {$value}")->orderBy($sort)->getQuery()->execute();
         $rtn_array = array();
         $count = count($result);
         $rtn_array['total'] = ceil($count / $rows);
         $rtn_array['records'] = $count;
         $rtn_array['rows'] = array();
         foreach ($result as $value) {
             $rtn_array['rows'][] = $value;
         }
         $rtn_array['page'] = $page;
         $this->dataReturn($rtn_array);
         return;
     }
 }
Example #14
0
$f_order = Input::Get('f_order', 'string', 'byorder');

if ($f_status = Input::Get('f_status', 'string')) {
    $constraints .= "status is $f_status ";    
} elseif ($is_guest) {
    $constraints .= "status not draft ";
}

$parameters = array(
    'length' => $f_length,
    'order' => "$f_order ASC",
    'constraints' => $constraints
);

define('ADMIN_INTERVIEW_ID', $f_interview_id);  # we need this constant in InterviewItemsList::createList()
$Interview = new Interview($f_interview_id);
$InterviewItemsList = new InterviewItemsList($f_start, $parameters);

$count = $InterviewItemsList->count;

$TotalItems = new InterviewItemsList();
$total = $TotalItems->count;

$pager = new SimplePager($count, $f_length, "f_start", "index.php?f_order=$f_order&amp;f_interview_id=$f_interview_id&amp;", false);

include_once($GLOBALS['g_campsiteDir']."/$ADMIN_DIR/javascript_common.php");
?>
<script type="text/javascript" src="<?php echo $Campsite['WEBSITE_URL']; ?>/javascript/campsite-checkbox.js"></script>

<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="1" class="action_buttons" style="padding-top: 5px;">
<TR>
 public function getdetailAction()
 {
     $this->view->disable();
     $id = $this->request->getPost('id', 'int');
     $project = Project::findFirst($id);
     if (!isset($project->id)) {
         $this->dataReturn(array('error' => '该编号下的项目不存在,请返回刷新!'));
         return;
     }
     $ans_array = array();
     $ans_array['project_name'] = $project->name;
     $ans_array['begintime'] = $project->begintime;
     $ans_array['endtime'] = $project->endtime;
     //添加绿色通道与正常被试判断
     $examinees = Examinee::find(array('project_id=?1 AND type= 0', 'bind' => array(1 => $id)));
     //获取该项目下答题的总人数
     $ans_array['exam_count'] = count($examinees);
     $examinee_com = 0;
     $examinee_coms = array();
     $examinee_not_coms = array();
     foreach ($examinees as $examinee) {
         if ($examinee->state > 0) {
             $examinee_com++;
             $examinee_coms[$examinee_com - 1] = $examinee->id;
         } else {
             $examinee_not_coms[] = $examinee->id;
         }
     }
     //答题完成人数
     $ans_array['exam_finish'] = $examinee_com;
     $interview_com = 0;
     for ($i = 0; $i < $examinee_com; $i++) {
         $interview = Interview::findFirst(array("examinee_id =:id:", 'bind' => array('id' => $examinee_coms[$i])));
         //判定条件
         if (!empty($interview->advantage) && !empty($interview->disadvantage) && !empty($interview->remark)) {
             $interview_com++;
         }
     }
     $ans_array['interview_finish'] = $interview_com;
     $this->dataReturn(array('success' => $ans_array));
     return;
 }
 public function getComments($examinee_id)
 {
     $interview = Interview::findFirst(array('examinee_id=?1', 'bind' => array(1 => $examinee_id)));
     if (!isset($interview->examinee_id)) {
         throw new Exception($examinee_id . '-专家面询未完成');
     }
     $advantage = json_decode($interview->advantage, true);
     $disadvantage = json_decode($interview->disadvantage, true);
     $comments = array('advantage' => $advantage, 'disadvantage' => $disadvantage, 'remark' => $interview->remark);
     return $comments;
 }
Example #17
0
    /**
     * Gets an issue list based on the given parameters.
     *
     * @param array $p_parameters
     *    An array of ComparisonOperation objects
     * @param string item
     *    An indentifier which assignment should be used (publication/issue/section/article)
     * @param string $p_order
     *    An array of columns and directions to order by
     * @param integer $p_start
     *    The record number to start the list
     * @param integer $p_limit
     *    The offset. How many records from $p_start will be retrieved.
     *
     * @return array $issuesList
     *    An array of Issue objects
     */
    public static function GetList($p_parameters, $p_item = null, $p_order = null,
                                   $p_start = 0, $p_limit = 0, &$p_count)
    {
        global $g_ado_db;

        if (!is_array($p_parameters)) {
            return null;
        }

        // adodb::selectLimit() interpretes -1 as unlimited
        if ($p_limit == 0) {
            $p_limit = -1;
        }

        $selectClauseObj = new SQLSelectClause();

        // sets the where conditions
        foreach ($p_parameters as $param) {
            $comparisonOperation = self::ProcessListParameters($param);
            if (empty($comparisonOperation)) {
                continue;
            }

            $whereCondition = $comparisonOperation['left'] . ' '
            . $comparisonOperation['symbol'] . " '"
            . $g_ado_db->escape($comparisonOperation['right']) . "' ";
            $selectClauseObj->addWhere($whereCondition);
        }

        // sets the columns to be fetched
        $tmpInterview = new Interview();
		$columnNames = $tmpInterview->getColumnNames(true);
        foreach ($columnNames as $columnName) {
            $selectClauseObj->addColumn($columnName);
        }

        // sets the main table for the query
        $mainTblName = $tmpInterview->getDbTableName();
        $selectClauseObj->setTable($mainTblName);
        unset($tmpInterview);

        if (is_array($p_order)) {
            $order = self::ProcessListOrder($p_order);
            // sets the order condition if any
            foreach ($order as $orderField=>$orderDirection) {
                $selectClauseObj->addOrderBy($orderField . ' ' . $orderDirection);
            }
        }

        $sqlQuery = $selectClauseObj->buildQuery();

        // count all available results
        $countRes = $g_ado_db->Execute($sqlQuery);
        $p_count = $countRes->recordCount();

        //get tlimited rows
        $interviewRes = $g_ado_db->SelectLimit($sqlQuery, $p_limit, $p_start);

        // builds the array of interview objects
        $interviewsList = array();
        while ($interview = $interviewRes->FetchRow()) {
            $interviewObj = new Interview($interview['interview_id']);
            if ($interviewObj->exists()) {
                $interviewsList[] = $interviewObj;
            }
        }

        return $interviewsList;
    } // fn GetList
 /**
  * Returns the data model based on the primary key given in the GET variable.
  * If the data model is not found, an HTTP exception will be raised.
  * @param integer $id the ID of the model to be loaded
  * @return Interview the loaded model
  * @throws CHttpException
  */
 public function loadModel($id)
 {
     $model = Interview::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     return $model;
 }
Example #19
0
<?php

// Check permissions
if (!$g_user->hasPermission('plugin_interview_admin')) {
    camp_html_display_error(getGS('You do not have the right to manage interviews.'));
    exit;
}

$f_interview_id = Input::Get('f_interview_id', 'int', 0, true);

if (!Input::IsValid()) {
    camp_html_display_error(getGS('Invalid input: $1', Input::GetErrorString()), $_SERVER['REQUEST_URI']);
    exit;
}

$Interview = new Interview($f_interview_id);

// new usernames may exist
foreach(array('guest') as $type) {
    if ($_REQUEST['f_'.$type.'_user_id'] == '__new__') {
        require_once($GLOBALS['g_campsiteDir']. "/$ADMIN_DIR/users/users_common.php");
    
        if (User::UserNameExists($_REQUEST['f_'.$type.'_new_user_login']) || Phorum_user::UserNameExists($_REQUEST['f_'.$type.'_new_user_login'])) {
            $errorMsg = getGS('User name $1 already exists, please choose a different login name.', $_REQUEST['f_'.$type.'_new_user_login']);
            camp_html_add_msg($errorMsg);
            $error = true;
        }
    }    
};

if (!$error && $Interview->store()) {
Example #20
0
 public function listinterviewerAction()
 {
     $this->view->disable();
     $manager = $this->session->get('Manager');
     if (empty($manager)) {
         $this->dataReturn(array('error' => '获取用户信息失败,请重新登陆'));
         return;
     }
     $project_id = $manager->project_id;
     $page = $this->request->get('page');
     $rows = $this->request->get('rows');
     $offset = $rows * ($page - 1);
     $limit = $rows;
     $sidx = $this->request->getQuery('sidx', 'string');
     $sord = $this->request->getQuery('sord', 'string');
     if ($sidx != null) {
         $sort = $sidx;
     } else {
         $sort = 'id';
         $sord = 'desc';
     }
     if ($sord != null) {
         $sort = $sort . ' ' . $sord;
     }
     //default get
     $search_state = $this->request->get('_search');
     if ($search_state == 'false') {
         $result = $this->modelsManager->createBuilder()->columns(array('Manager.id as id', 'Manager.username as username', 'Manager.name as name', 'Manager.password as password', 'Manager.last_login as last_login', 'count(Interview.examinee_id) as count'))->from('Manager')->where('Manager.project_id = ' . $project_id . " AND Manager.role = 'I'")->leftJoin('Interview', "Interview.manager_id = Manager.id")->groupBy('Manager.id')->limit($limit, $offset)->orderBy($sort)->getQuery()->execute();
         $result = $result->toArray();
         foreach ($result as &$value) {
             $term = "remark<>'' AND advantage<>'' AND disadvantage<>'' AND manager_id=:manager_id:";
             $interview_info = Interview::find(array($term, 'bind' => array('manager_id' => $value['id'])));
             $finish = count($interview_info);
             $value['count'] = $finish . '/' . $value['count'];
         }
         $rtn_array = array();
         $interviewers = Manager::find(array('project_id=?1 AND role = ?2', 'bind' => array(1 => $project_id, 2 => 'I')));
         //获取该项目下答题的总人数
         $count = count($interviewers);
         $rtn_array['total'] = ceil($count / $rows);
         $rtn_array['records'] = $count;
         $rtn_array['rows'] = $result;
         $rtn_array['page'] = $page;
         $this->dataReturn($rtn_array);
         return;
     } else {
         //处理search情况
         $search_field = $this->request->get('searchField');
         $search_string = $this->request->get('searchString');
         $search_oper = $this->request->get('searchOper');
         if ($search_field == 'username') {
             $filed = 'Manager.' . $search_field;
             $oper = '=';
             $value = $search_string;
         } else {
             if ($search_field == 'name') {
                 $filed = 'Manager.' . $search_field;
                 $oper = 'LIKE';
                 $value = '%' . $search_string . '%';
             } else {
                 if ($search_field == 'last_login') {
                     $filed = 'Manager.' . $search_field;
                     if ($search_oper == 'bw') {
                         $oper = '>=';
                     } else {
                         if ($search_oper == 'ew') {
                             $oper = '<=';
                         }
                     }
                     $value = $search_string;
                 } else {
                     //..
                     return;
                 }
             }
         }
         $result = $this->modelsManager->createBuilder()->columns(array('Manager.id as id', 'Manager.username as username', 'Manager.name as name', 'Manager.password as password', 'Manager.last_login as last_login', 'count(Interview.examinee_id) as count'))->from('Manager')->where('Manager.project_id = ' . $project_id . " AND Manager.role = 'I' AND {$filed} {$oper} '{$value}'")->leftJoin('Interview', "Interview.manager_id = Manager.id")->groupBy('Manager.id')->limit($limit, $offset)->orderBy($sort)->getQuery()->execute();
         $result = $result->toArray();
         foreach ($result as &$value) {
             $term = "remark<>'' AND advantage<>'' AND disadvantage<>'' AND manager_id=:manager_id:";
             $interview_info = Interview::find(array($term, 'bind' => array('manager_id' => $value['id'])));
             $finish = count($interview_info);
             $value['count'] = $finish . '/' . $value['count'];
         }
         $rtn_array = array();
         $interviewers = Manager::find(array('project_id=?1 AND role = ?2', 'bind' => array(1 => $project_id, 2 => 'I')));
         //获取该项目下答题的总人数
         $count = count($interviewers);
         $rtn_array['total'] = ceil($count / $rows);
         $rtn_array['records'] = $count;
         $rtn_array['rows'] = $result;
         // 			foreach($result as $value){
         // 				$rtn_array['rows'][] = $value;
         // 			}
         $rtn_array['page'] = $page;
         $this->dataReturn($rtn_array);
         return;
     }
 }
Example #21
0
<?php

// Check permissions
if (!$g_user->hasPermission('plugin_interview_admin')) {
    camp_html_display_error(getGS('You do not have the right to manage interviews.'));
    exit;
}

$f_interview_id = Input::Get('f_interview_id', 'int');

if (!Input::IsValid()) {
    camp_html_display_error(getGS('Invalid input: $1', Input::GetErrorString()), $_SERVER['REQUEST_URI']);
    exit;
}

$Interview = new Interview($f_interview_id);

if (isset($_REQUEST['f_preview'])) {
    $Interview->storeInvitation();
}

if (isset($_REQUEST['f_invite_now'])) {
    $Interview->sendGuestInvitation();
    ?>
    <script language="javascript">
        window.opener.location.reload();
        window.close();
    </script>
    <?php
    exit();
}