/** * 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('ADMIN_INTERVIEW_ID')) { $interview_id = ADMIN_INTERVIEW_ID; } else { $interview_id = CampTemplate::singleton()->context()->interview->identifier; } if (!$interview_id) { return false; } $operator = new Operator('is'); $comparisonOperation = new ComparisonOperation('interview_id', $operator, $interview_id); $this->m_constraints[] = $comparisonOperation; $interviewItemsList = InterviewItem::GetList($this->m_constraints, $this->m_item, $this->m_order, $p_start, $p_limit, $p_count); $metaInterviewItemsList = array(); foreach ($interviewItemsList as $interviewItem) { $metaInterviewItemsList[] = new MetaInterviewItem($interviewItem->getId()); } return $metaInterviewItemsList; }
$f_items = Input::Get('f_items', 'array'); list(,,$dir,) = explode('_', $f_action); foreach ($f_items as $item_id) { $InterviewItem = new InterviewItem(null, $item_id); $InterviewItem->positionRelative($dir); } break; case 'item_move_abs': $f_items = Input::Get('f_items', 'array'); $f_new_pos = Input::Get('f_new_pos', 'int'); foreach ($f_items as $item_id) { $InterviewItem = new InterviewItem(null, $item_id); $InterviewItem->positionAbsolute($f_new_pos); } 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); }
/** * 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; } if (strpos($comparisonOperation['left'], 'interview_id') !== false) { $interview_id = $g_ado_db->escape($comparisonOperation['right']); } else { $whereCondition = $comparisonOperation['left'] . ' ' . $comparisonOperation['symbol'] . " '" . $g_ado_db->escape($comparisonOperation['right']) . "' "; $selectClauseObj->addWhere($whereCondition); } } // sets the columns to be fetched $tmpInterviewItem = new InterviewItem(); $columnNames = $tmpInterviewItem->getColumnNames(true); foreach ($columnNames as $columnName) { $selectClauseObj->addColumn($columnName); } // sets the main table for the query $mainTblName = $tmpInterviewItem->getDbTableName(); $selectClauseObj->setTable($mainTblName); unset($tmpInterviewItem); // set constraints which ever have to care of $selectClauseObj->addWhere("$mainTblName.fk_interview_id = '$interview_id'"); #$selectClauseObj->addWhere("$mainTblName.is_online = 1"); if (is_array($p_order)) { $order = InterviewItem::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 $interviewItemRes = $g_ado_db->SelectLimit($sqlQuery, $p_limit, $p_start); // builds the array of interview objects $interviewItemsList = array(); while ($interviewItem = $interviewItemRes->FetchRow()) { $interviewItemObj = new InterviewItem($interviewItem['interview_id'], $interviewItem['item_id']); if ($interviewItemObj->exists()) { $interviewItemsList[] = $interviewItemObj; } } return $interviewItemsList; } // fn GetList
} // Check permissions if (!$is_admin && !$is_moderator && !$is_guest) { camp_html_display_error(getGS('You do not have the right to manage interviews.')); exit; } $f_item_id = Input::Get('f_item_id', 'int'); if (!Input::IsValid()) { camp_html_display_error(getGS('Invalid input: $1', Input::GetErrorString()), $_SERVER['REQUEST_URI']); exit; } $InterviewItem = new InterviewItem(null, $f_item_id); if ($InterviewItem->getId()==0){ $InterviewItem->setInterviewId(Input::Get('f_interview_id','int',0)); $questioneer = Input::Get('questioneer','int',0); if ($questioneer>0){ $InterviewItem->setQuestioneerwId($questioneer); } } if ($InterviewItem->store()) { ?> <script language="javascript"> window.opener.location.reload(); window.close(); </script> <?php exit();
/** * Get answer object for this interview by given number * * @param unknown_type $p_nr_answer * @return object */ public function getInterviewItems() { $InterviewItems = InterviewItem::GetInterviewItems($this->m_data['interview_id']); return $InterviewItems; }