if (empty($v)) { $e['all'] = $e[$k] = true; } } } } } } // Обработка изображений $files = array(); if (isset($values['file'])) { foreach ($values['file'] as $v) { $files[] = array('name' => $v, 'orig' => $v); } } else { $files = Files::loadFiles(); } // Обработка зарактеристик if (isset($values['feature']) && is_array($values['feature'])) { $features_ids = array_keys($values['feature']); // Получение списка характеристик $features = $object->getAllRowsExtended('catalog_features', '`c`.`id` IN (' . implode(',', $features_ids) . ')', 'catalog_features_group', 'ASC'); unset($values['feature']); $j = 1; for ($i = 0; $i < count($features); $i++) { if ($features[$i]['catalog_features_group'] > 0) { $result = $object->getRow('catalog_features_group', $features[$i]['catalog_features_group']); $features[$i]['group_name'] = $result['name']; $values['Характеристика ' . $j] = $result['name'] . ': ' . $features[$i]['name']; } else { $values['Характеристика ' . $j] = $features[$i]['name'];
/** * Добавление записи в таблицу * @param string $table * @param array $data * @param int $parent * @return int|array */ public function insertTableRow($table, $data, $parent = 0) { // Определяем идентификатор родителя if ($parent == 0) { $this->setParent($this->getRootId()); } else { $this->setParent($parent); } // Загрузка файлов $files = Files::loadFiles(); $data_keys = array_keys($data); if (is_array($files) && !empty($files)) { foreach ($files as $key => $values) { if (in_array($key, $data_keys) && $values['error'] == '') { $data[$key] = $values['name']; } } } // Проверяем существует ли процедура if (!$this->__storedProcedureCheck($table . '_insert')) { // Если процедуры не существует пользуемся генератором процедур $this->__storedProcedureGeneration($table, 'insert'); } $tree_branches = $this->getNodeInfo($table, $this->getParent()); if ($this->getParent() > 0) { // Обновляем записи дерева $query = 'CALL update_tree_branches_before_insert(:current_table, :field_right)'; $params = array(':current_table' => $this->__getPrefixTableName($table), ':field_right' => $tree_branches['tree_right']); PdoWrap::execute($query, $params); // Получаем данные для новой ветви $tree_branches['tree_left'] = isset($tree_branches['tree_right']) ? $tree_branches['tree_right'] : 0; $tree_branches['tree_right'] = isset($tree_branches['tree_right']) ? $tree_branches['tree_right'] + 1 : 1; $tree_branches['tree_level'] = isset($tree_branches['tree_level']) ? $tree_branches['tree_level'] + 1 : 1; } else { // Получаем данные для новой ветви $tree_branches['tree_left'] = isset($tree_branches['tree_right']) ? $tree_branches['tree_right'] + 1 : 0; $tree_branches['tree_right'] = isset($tree_branches['tree_right']) ? $tree_branches['tree_right'] + 2 : 1; $tree_branches['tree_level'] = isset($tree_branches['tree_level']) ? $tree_branches['tree_level'] : 1; } $query = 'CALL `' . $table . '_insert`('; $params = array(); foreach ($data as $key => $value) { $query .= ':' . $key . ','; if (in_array($key, array_keys($tree_branches))) { $params[':' . $key] = $tree_branches[$key]; } else { $params[':' . $key] = $value; } } $query = substr($query, 0, -1) . ')'; $id = PdoWrap::selectCell($query, $params); // Логирование оперции $this->tableLog(PREF . $table, $id, "1"); expSitemapAll(); return (int) $id; }
/** * Добавление записи в таблицу * @param string $table * @param array $data * @param int $parent * @return int */ public function insertTableRow($table, $data, $parent = 0) { // Загрузка файлов $files = Files::loadFiles(); $data_keys = array_keys($data); if (is_array($files) && !empty($files)) { foreach ($files as $key => $values) { if (in_array($key, $data_keys) && $values['error'] == '') { $data[$key] = $values['name']; } } } // Проверяем существует ли процедура if (!$this->__storedProcedureCheck($table . '_insert')) { // Если процедуры не существует пользуемся генератором процедур $this->__storedProcedureGeneration($table, 'insert'); } $query = 'CALL ' . $table . '_insert('; $params = array(); foreach ($data as $key => $value) { $query .= ':' . $key . ','; $params[':' . $key] = $value; } $query = substr($query, 0, -1) . ')'; $id = PdoWrap::selectCell($query, $params); // Логирование оперции $this->tableLog(PREF . $table, $id, "1"); expSitemapAll(); return (int) $id; }