protected function initTableData() { $this->active_record_list->getArWhereCollection()->setStatements(NULL); $this->active_record_list->getArJoinCollection()->setStatements(NULL); $this->active_record_list->getArLimitCollection()->setStatements(NULL); $this->active_record_list->getArOrderCollection()->setStatements(NULL); $this->filterTableData(); $this->beforeGetData(); $this->setOrderAndSegmentation(); $ar_data = $this->active_record_list->getArray(); $data = array(); foreach ($ar_data as $key => $item) { $data[$key] = array(); foreach ($this->getFields()->getFieldsForDisplay() as $field) { /** * @var arIndexTableField $field */ if (array_key_exists($field->getName(), $item)) { if (!$item[$field->getName()]) { $data[$key][$field->getName()] = $this->setEmptyFieldData($field, $item); } elseif ($field->getIsCreatedByField()) { $data[$key][$field->getName()] = $this->setArCreatedByField($field, $item, $item[$field->getName()]); } elseif ($field->getIsModifiedByField()) { $data[$key][$field->getName()] = $this->setArModifiedByField($field, $item, $item[$field->getName()]); } else { $data[$key][$field->getName()] = $this->setArFieldData($field, $item, $item[$field->getName()]); } } else { $data[$key][$field->getName()] = $this->setCustomFieldData($field, $item); } } } $this->setData($data); }
/** * @param ActiveRecordList $arl * * @return mixed|string */ protected function buildQuery(ActiveRecordList $arl) { // SELECTS $q = $arl->getArSelectCollection()->asSQLStatement(); // Concats $q .= $arl->getArConcatCollection()->asSQLStatement(); $q .= ' FROM ' . $arl->getAR()->getConnectorContainerName(); // JOINS $q .= $arl->getArJoinCollection()->asSQLStatement(); // WHERE $q .= $arl->getArWhereCollection()->asSQLStatement(); // ORDER $q .= $arl->getArOrderCollection()->asSQLStatement(); // LIMIT $q .= $arl->getArLimitCollection()->asSQLStatement(); //TODO: using template in the model. if ($arl->getDebug()) { global $tpl; if ($tpl instanceof ilTemplate) { ilUtil::sendInfo($q); } else { var_dump($q); // FSX } } $arl->setLastQuery($q); return $q; }