/** * Редактирование записи в таблице * @param string $table * @param array $data * @param int $id * @param int $parent * @param array $exc * @return mixed */ public function editTableRow($table, $data, $id, $parent = 0, $exc = array()) { $data = array_merge(array('field_id' => $id), $data); // Определяем идентификатор родителя 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'] == '') { // Удаление файла if (isset($_POST[$key . '_delete']) && (int) $_POST[$key . '_delete'] == 1) { files::deleteFile($data[$key]); $data[$key] = ''; } // Добавление файла if ($values['error'] == '') { $data[$key] = $values['name']; } } } } // Проверяем существует ли процедура if (!$this->__storedProcedureCheck($table . '_update')) { // Если процедуры не существует пользуемся генератором процедур $this->__storedProcedureGeneration($table, 'update'); } // Получение текущего родителя $current_parent = $this->getCurrentParent($table, $id); $tree_branches = $this->getNodeInfo($table, $id); $data['tree_left'] = isset($data['tree_left']) && $data['tree_left'] != '' ? $data['tree_left'] : $tree_branches['tree_left']; $data['tree_right'] = isset($data['tree_right']) && $data['tree_right'] != '' ? $data['tree_right'] : $tree_branches['tree_right']; $data['tree_level'] = isset($data['tree_level']) && $data['tree_level'] != '' ? $data['tree_level'] : $tree_branches['tree_level']; $query = 'CALL `' . $table . '_update`('; $params = array(); foreach ($data as $key => $value) { $query .= ':' . $key . ','; $params[':' . $key] = $value; } $query = substr($query, 0, -1) . ')'; PdoWrap::execute($query, $params); expSitemapAll(); // Логирование оперции $this->tableLog(PREF . $table, $id, "2"); // Обновление ветвей дерева при изменениии родителя if ($current_parent['id'] != $this->getParent()) { $tree_branches = $this->getNodeInfo($table, $id); $new_parent_tree_branches = $this->getNodeInfo($table, $this->getParent()); $query = 'CALL update_tree_branches_before_update(:current_table, :current_left, :current_right, :current_level, :new_parent_left, :new_parent_right, :new_parent_level)'; $params = array(':current_table' => $this->__getPrefixTableName($table), ':current_left' => $tree_branches['tree_left'], ':current_right' => $tree_branches['tree_right'], ':current_level' => $tree_branches['tree_level'], ':new_parent_left' => $new_parent_tree_branches['tree_left'], ':new_parent_right' => $new_parent_tree_branches['tree_right'], ':new_parent_level' => $new_parent_tree_branches['tree_level']); PdoWrap::execute($query, $params); } }
/** * setPicture - set the profile picture for an individual * * @access public * @param string */ public function setPicture($_FILE, $id) { $sql = "SELECT * FROM `zp_user` WHERE id=:id"; $stmn = $this->db->{'database'}->prepare($sql); $stmn->bindValue(':id', $id, PDO::PARAM_INT); $stmn->execute(); $values = $stmn->fetch(); $stmn->closeCursor(); $files = new files(); if (isset($values['profileId']) && $values['profileId'] > 0) { $file = $files->getFile($values['profileId']); $img = 'userdata/' . $file['encName'] . $file['extension']; $files->deleteFile($values['profileId']); } $lastId = $files->upload($_FILE, 'user', $id); var_dump($lastId); $sql = 'UPDATE `zp_user` SET profileId = :fileId WHERE id = :userId'; $stmn = $this->db->{'database'}->prepare($sql); $stmn->bindValue(':fileId', $lastId, PDO::PARAM_INT); $stmn->bindValue(':userId', $id, PDO::PARAM_INT); $stmn->execute(); $stmn->closeCursor(); }
/** * Редактирование записи в таблице * @param string $table * @param array $data * @param int $id * @param int $parent * @param array $exc * @return bool */ public function editTableRow($table, $data, $id, $parent = 0, $exc = array()) { $data = array_merge(array('field_id' => $id), $data); // Загрузка файлов $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'] == '') { // Удаление файла if (isset($_POST[$key . '_delete']) && (int) $_POST[$key . '_delete'] == 1) { files::deleteFile($data[$key]); $data[$key] = ''; } // Добавление файла if ($values['error'] == '') { $data[$key] = $values['name']; } } } } // Проверяем существует ли процедура if (!$this->__storedProcedureCheck($table . '_update')) { // Если процедуры не существует пользуемся генератором процедур $this->__storedProcedureGeneration($table, 'update'); } $query = 'CALL `' . $table . '_update`('; $params = array(); foreach ($data as $key => $value) { $query .= ':' . $key . ','; $params[':' . $key] = $value; } $query = substr($query, 0, -1) . ')'; PdoWrap::execute($query, $params); expSitemapAll(); // Логирование оперции $this->tableLog(PREF . $table, $id, "2"); }
/** * Групповые операции * @param string $return */ public function groupActions($return = '/') { if (isset($_POST['action'])) { $action = Text::get_post('group_action'); $ids = Text::get_post('id'); switch ($action) { // Скрытие case 'hide': $this->changeActive($ids, 0); location($return); exit; break; // Показ // Показ case 'show': $this->changeActive($ids, 1); location($return); exit; break; // Удаление // Удаление case 'delete': // Получение изображений $data = $this->getSomeRows(implode(',', $ids)); for ($i = 0; $i < count($data); $i++) { if (isset($data[$i]['image']) && $data[$i]['image'] != '') { files::deleteFile($data[$i]['image']); } if (isset($data[$i]['icon']) && $data[$i]['icon'] != '') { files::deleteFile($data[$i]['icon']); } if (isset($data[$i]['file']) && $data[$i]['file'] != '') { files::deleteFile($data[$i]['file']); } } $this->deleteRowsByIds($ids); location($return); exit; break; default: location($return); exit; break; } } }
<?php // Запрет на обращение к файлу. if (realpath($_SERVER['SCRIPT_FILENAME']) == realpath(__FILE__)) { header('Location: /'); exit; } // Сохранение настроек сайта if (Text::get_post('do') == 'save_options') { // Удаление файлов if (isset($_POST['delete']) && !empty($_POST['delete'])) { foreach ($_POST['delete'] as $key => $value) { files::deleteFile($_POST[$key]); } } // Загрузка файлов if (isset($_FILES) && count($_FILES) > 0) { $file = files::loadFiles(); foreach ($file as $key => $value) { if (isset($value['name'])) { $_POST[$key] = $value['name']; } } } PdoWrap::execute('CALL clear_options_checkboxes()'); foreach ($_POST as $key => $value) { if ($key != 'do' && $key != 'save') { if (isset($_POST['delete'][$key])) { $_POST[$key] = ''; } $query = 'CALL options_update(:field_name, :field_value, :field_user_edit)';