Beispiel #1
0
                     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'];
Beispiel #2
0
 /**
  * Добавление записи в таблицу
  * @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;
 }
Beispiel #3
0
 /**
  * Добавление записи в таблицу
  * @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;
 }