public function main() { $aType = call_user_func([$this->typeName, 'getFieldsInfo']); $szIndex = call_user_func([$this->typeName, 'getIndexKey']); $sql = sprintf('select `%s`, `%s` as name, `%s` from `%s` where %s order by `%s` ', $szIndex, $this->fieldName, $this->fieldOrder, $aType['table'], $this->fieldCondition, $this->fieldOrder); $aData = \Extasy\ORM\DB::query($sql); foreach ($aData as $key => $value) { foreach ($value as $key2 => $value2) { $aData[$key][$key2] = str_replace("\n", '', $value2); } } print UParser::parsePHPFile(__DIR__ . DIRECTORY_SEPARATOR . 'order.tpl', array('szTitle' => $this->szTitle, 'aBegin' => $this->aBegin, 'type' => $this->typeName, 'back' => $this->back, 'aHidden' => $this->aHidden, 'aData' => $aData)); $this->output(); }
/** * @desc Вывод на обычной форме * @return */ function getFormValue() { $builder = new QueryBuilder('select'); $fieldsInfo = call_user_func(array($this->fieldInfo['model'], 'getFieldsInfo')); $nameField = isset($this->fieldInfo['cross_name']) ? $this->fieldInfo['cross_name'] : 'name'; $index = 'id'; $order = isset($fieldsInfo['order']) ? $fieldsInfo['order'] : 'id'; $builder->setSelect($index); $builder->setSelect($nameField); $builder->setFrom($fieldsInfo['table']); $builder->setOrderFunction($order); $data = \Extasy\ORM\DB::query($builder->prepare()); array_unshift($data, ['id' => 0, 'name' => 'Не выбрано']); $select = new CSelect(); $select->name = $this->szFieldName; $select->current = $this->aValue; $select->required = !empty($this->fieldInfo['required']) ? $this->fieldInfo['required'] : false; $select->values = $data; return $select->generate(); }
protected function loadAllRows($cond = ' 1 ') { $szNameField = $this->fieldInfo['cross_name']; $szIndex = $this->fieldInfo['cross_index']; $szTable = $this->fieldInfo['cross_table']; $szDataBase = !empty($this->fieldInfo['database']) ? $this->fieldInfo['database'] : ''; // Если задано имя базы данных приаттачиваем if (!empty($szDataBase)) { $szTable = $szDataBase . '.' . $szTable; } else { $szTable = '`' . $szTable . '`'; } if (!empty($this->fieldInfo['cross_cond'])) { $szCond = ' WHERE ' . $this->fieldInfo['cross_cond']; } elseif (!empty($this->fieldInfo['cross_group'])) { $szCond = ' WHERE `' . $this->fieldInfo['cross_parent'] . '`="' . $this->document->id->getValue() . '"'; } else { $szCond = ''; } if (!empty($cond)) { $szCond .= ' and ' . $cond; } if (!empty($this->fieldInfo['ordered'])) { $szCond .= ' ORDER BY `' . $szIndex . '`'; } $sql = sprintf('SELECT `%s`,`%s` FROM %s %s ', \Extasy\ORM\DB::escape($szNameField), \Extasy\ORM\DB::escape($szIndex), \Extasy\ORM\DB::escape($szTable), $szCond); $aData = \Extasy\ORM\DB::query($sql); return $aData; }