예제 #1
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('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;
	}
예제 #2
0
        $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);
        }
예제 #3
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;
            }

            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
예제 #4
0
}

// 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();
예제 #5
0
    /**
     * 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;
    }