function get_data($table, $format, $mysql) { //получаем данные из выбранной таблицы $query = "SELECT * FROM {$table}"; $result = $mysql->query($query); $data = $result->fetch_all(MYSQL_ASSOC); //проверка формата для вызова соответствующей функции генерирования файла switch ($format) { case "CSV": create_csv($table, $data, $mysql); break; case "JSON": create_json($table, $data, $mysql); break; case "XML": create_xml($table, $data, $mysql); break; default: echo "<h3>Выберите нужный формат из списка!</h3>"; } }
private function _create_json_news($id) { $ret = $this->_get_edit_news($id); foreach ($ret as $rs) { $rs['news_category'] = json_decode($rs['news_category'], true); $rs['news_reporter'] = json_decode($rs['news_reporter'], true); $rs['news_editor'] = json_decode($rs['news_editor'], true); $rs['news_photographer'] = json_decode($rs['news_photographer'], true); $rs['news_tags'] = json_decode($rs['news_tags_hidden'], true); $rs['news_keywords'] = json_decode($rs['news_keywords_hidden'], true); $arrCategori = $rs['news_category']; foreach ($arrCategori as $cat) { $rs['news_category']['id'] = $cat; $rs['news_category']['name'] = isset($this->arr_Categori['id_to_name'][$cat]) ? $this->arr_Categori['id_to_name'][$cat] : ''; $rs['news_category']['url'] = isset($this->arr_Categori['id_to_url'][$cat]) ? $this->arr_Categori['id_to_url'][$cat] : ''; if (!isset($this->arr_Categori['grandparent_id_to_name'][$cat])) { $rs['news_category']['parent'] = isset($this->arr_Categori['child_id_to_parent'][$cat]) ? $this->arr_Categori['child_id_to_parent'][$cat] : ''; $rs['news_category']['parent_id'] = isset($this->arr_Categori['child_url_to_parentid'][$rs['news_category']['url']]) ? $this->arr_Categori['child_url_to_parentid'][$rs['news_category']['url']] : ''; $rs['news_category']['parent_url'] = isset($this->arr_Categori['id_to_url'][$rs['news_category']['parent_id']]) ? $this->arr_Categori['id_to_url'][$rs['news_category']['parent_id']] : ''; if (!isset($this->arr_Categori['grandparent_id_to_name'][$rs['news_category']['parent_id']])) { $rs['news_category']['parent'] = isset($this->arr_Categori['child_id_to_parent'][$rs['news_category']['parent_id']]) ? $this->arr_Categori['child_id_to_parent'][$rs['news_category']['parent_id']] : ''; $rs['news_category']['parent_id'] = isset($this->arr_Categori['name_to_id'][$rs['news_category']['parent']]) ? $this->arr_Categori['name_to_id'][$rs['news_category']['parent']] : ''; $rs['news_category']['parent_url'] = isset($this->arr_Categori['id_to_url'][$rs['news_category']['parent_id']]) ? $this->arr_Categori['id_to_url'][$rs['news_category']['parent_id']] : ''; } } else { $rs['news_category']['parent'] = $rs['news_category']['name']; $rs['news_category']['parent_id'] = $cat; } } unset($rs['news_reporter_hidden']); unset($rs['news_photographer_hidden']); unset($rs['news_tags_hidden']); unset($rs['news_keywords_hidden']); unset($rs['news_category'][0]); $dt = $rs; } $filename = $this->config['json_dir'] . 'news/' . $dt['news_category']['parent_url'] . '/' . $dt['news_url'] . '.json'; $filename_outbox = $this->config['json_dir_out'] . 'news/' . $dt['news_category']['parent_url'] . '/' . $dt['news_url'] . '.json'; $json = create_json($dt, $filename); $json = create_json($dt, $filename_outbox); }
// Проверка корректности таблицы if (in_array($table, $allow_tables)) { try { $stmt = $pdo->query("SELECT * FROM {$table}"); // Получаем имена столбцов $keys_stmt = $pdo->query("SHOW COLUMNS FROM {$table}"); } catch (PDOException $e) { die("Ошибка выполенения запроса: " . $e->getMessage()); } } else { die("Неверно указана таблица"); } $data = $stmt->fetchAll(PDO::FETCH_ASSOC); $keys = $keys_stmt->fetchAll(PDO::FETCH_ASSOC); unset($pdo); $keys_array = array(); foreach ($keys as $key) { $keys_array[] = $key['Field']; } switch ($format) { case 'csv': $filename = create_csv($data, $keys_array, $filepath); break; case 'json': $filename = create_json($data, $filepath); break; case 'xml': $filename = create_xml($data, $keys_array, $filepath, $table); break; } file_download($filepath);
private function _create_json_photonews($news_id) { //$row = $this->_listData("news_id=" . $news_id); //$row = $this->news_model->dt_listData("news_id=" . $news_id, $is_photonews = false); $row = $this->news_model->dt_listData("news_id=" . $news_id, '', '', false, '', true); $data = array(); $no = 1; foreach ($row as $r) { //create rowset of rubric under this news id $temp = $this->news_rubric_model->get_data_record("news_rubrics_news_id=" . $r['news_id'], array("news_rubrics_rubrics_id" => "ASC"), 0, 0); $r['arr_rubrics'] = array(); foreach ($temp as $tmp) { $r['arr_rubrics'][$tmp['news_rubrics_id']] = $tmp; } if (count($r['arr_rubrics']) > 0) { #$r['arr_rubrics'] = $this->get_rowset_idsorted("mdk_news_rubrics", "news_rubrics_id", "news_rubrics_news_id=".$r['news_id'], array("news_rubrics_rubrics_id"=>"ASC")); $r['arr_rubrics'] = count($r['arr_rubrics']) > 0 ? $r['arr_rubrics'] : array(); //create rowset of tag under this news id $temp = $this->tag_news_model->get_data_record("tag_news_news_id=" . $r['news_id'], array("tag_news_id" => "ASC"), 0, 0); $r['arr_tags'] = array(); foreach ($temp as $tmp) { $r['arr_tags'][$tmp['tag_news_id']] = $tmp; } //create rowset of keywords under this news id $temp = $this->news_keywords_model->get_data_record("nk_news_id=" . $r['news_id'], array("nk_id" => "ASC"), 0, 0); $r['nk_id'] = array(); foreach ($temp as $tmp) { $r['arr_keywords'][$tmp['nk_id']] = $tmp; } //create rubrics name $r['rubrics_names'] = array(); foreach ($r['arr_rubrics'] as $rub) { $r['rubrics_names'][] = $rub['news_rubrics_rubrics_name']; } $r['rubrics_names'] = implode(", ", $r['rubrics_names']); //formate date into readable form $r['news_date_publish_formated'] = formatDate($r['news_date_publish'], 2); //create checkbox for editor pics if ($r['news_editor_pick'] == '1') { $arrPick = array("1" => "#"); } else { $arrPick = array("1" => ""); } //create checkbox for headline news if ($r['news_top_headline'] == '1') { $arrHead = array("1" => "#"); } else { $arrHead = array("1" => ""); } //create tag name $r['tag_names'] = array(); foreach ($r['arr_tags'] as $rub) { $r['tag_names'][] = $rub['tag_news_tags']; } $r['tag_names'] = implode(", ", $r['tag_names']); //decode editor $r['news_editor'] = json_decode($r['news_editor'], true); $r['editor_name'] = isset($r['news_editor'][0]) ? $r['news_editor'][0]['name'] : 'unknown'; //fetch photonews detail data $temp = $this->photonews_model->get_data_record("photonews_newsid=" . $r['news_id'], 'photonews_id', 0, 0); $r['photonews_detail'] = array(); foreach ($temp as $tmp) { $r['photonews_detail'][$tmp['photonews_id']] = $tmp; } $r['news_category'] = json_decode($r['news_category'], true); $arrCategori = $r['news_category']; foreach ($arrCategori as $cat) { $r['news_category']['id'] = $cat; $r['news_category']['name'] = isset($this->arr_Categori['id_to_name'][$cat]) ? $this->arr_Categori['id_to_name'][$cat] : ''; $r['news_category']['url'] = isset($this->arr_Categori['id_to_url'][$cat]) ? $this->arr_Categori['id_to_url'][$cat] : ''; if (!isset($this->arr_Categori['grandparent_id_to_name'][$cat])) { $r['news_category']['parent'] = isset($this->arr_Categori['child_id_to_parent'][$cat]) ? $this->arr_Categori['child_id_to_parent'][$cat] : ''; $r['news_category']['parent_id'] = isset($this->arr_Categori['child_url_to_parentid'][$r['news_category']['url']]) ? $this->arr_Categori['child_url_to_parentid'][$r['news_category']['url']] : ''; $r['news_category']['parent_url'] = isset($this->arr_Categori['id_to_url'][$r['news_category']['parent_id']]) ? $this->arr_Categori['id_to_url'][$r['news_category']['parent_id']] : ''; if (!isset($this->arr_Categori['grandparent_id_to_name'][$r['news_category']['parent_id']])) { $r['news_category']['parent'] = isset($this->arr_Categori['child_id_to_parent'][$r['news_category']['parent_id']]) ? $this->arr_Categori['child_id_to_parent'][$r['news_category']['parent_id']] : ''; $r['news_category']['parent_id'] = isset($this->arr_Categori['name_to_id'][$r['news_category']['parent']]) ? $this->arr_Categori['name_to_id'][$r['news_category']['parent']] : ''; $r['news_category']['parent_url'] = isset($this->arr_Categori['id_to_url'][$r['news_category']['parent_id']]) ? $this->arr_Categori['id_to_url'][$r['news_category']['parent_id']] : ''; } } else { $r['news_category']['parent'] = $r['news_category']['name']; $r['news_category']['parent_id'] = $cat; } } $data = $r; } } $filename = $this->config['json_dir'] . 'photonews/' . $data['news_category']['parent_url'] . '/' . $data['news_url'] . '.json'; $filename_outbox = $this->config['json_dir_out'] . 'photonews/' . $data['news_category']['parent_url'] . '/' . $data['news_url'] . '.json'; $json = create_json($data, $filename); $json = create_json($data, $filename_outbox); }
private function _create_json_menu() { $row = $this->menu_model->dt_listData(); $data = array(); foreach ($row as $rs) { $data[$rs['menu_url']] = array("parent_id" => $rs['menu_parent'], "sub_id" => $rs['menu_id'], "menu_caption" => $rs['menu_caption'], "menu_lead" => $rs['menu_lead'], "ctrl" => ''); } $file_json = $this->config['json_dir'] . 'method_by_url.json'; $json = create_json($data, $file_json); }
<?php require_once "main.php"; //получаем список таблиц из БД для выпадающего меню $tables = get_tables($conn); if ($_POST) { $name = $_POST['tables']; $format = $_POST['formats']; $m_format = strtolower($format); if (in_array($name, $tables)) { switch ($format) { case "CSV": create_csv($name, $conn); break; case "JSON": create_json($name, $conn); break; case "XML": create_xml($name, $conn); break; default: echo "<h3>Выберите формат файла!</h3>"; break; } //проверяем существование файла $file = DIR . $m_format . "/" . $name . "." . $m_format; if (file_exists($file)) { download_file($file); } } else { echo "<h3>Выберите таблицу из списка!</h3>";
function create_file($svg, $img_path, $json_data) { $json_source = create_json($json_data[0], $json_data[1], $json_data[2], $json_data[3], $json_data[4], $json_data[5], $json_data[6]); if (!$json_source) return -3; if ($json_data[0]['shareit'] == 'on') { $shareit = '-1'; $filename['txt'] = $img_path.$shareit.'.txt'; $fp = fopen($filename['txt'], 'w'); if (!$fp) return -1; $w = fwrite($fp, $json_source); if (!$w) { fclose($fp); return -2; } fclose($fp); } else { $shareit = '-0'; } $filename = array(); $filename['svg'] = $img_path.$shareit.'.svg'; $filename['png'] = $img_path.$shareit.'.png'; $filename['bpng'] = $img_path.'_big'.$shareit.'.png'; $fp = fopen($filename['svg'], 'w'); if (!$fp) return -1; $w = fwrite($fp, $svg); if (!$w) { fclose($fp); return -2; } fclose($fp); /* Usage of Image Imagick PHP interface $img = new Imagick($filename['svg']); $img->writeImage($filename['png']); $s = $img->getSize(); $img->scaleImage($s[0], $s[1]); $img->writeImage($filename['bpng']); $img->clear(); $img->destroy(); */ // PNG1 aus SVG erzeugen exec('convert '.$location_creation.$filename['svg'].' '.$location_creation.$filename['png']); // PNG2 aus SVG erzeugen exec('convert -scale 300% '.$location_creation.$filename['svg'].' '.$location_creation.$filename['bpng']); foreach ($filename as $short => $f) { if (!file_exists($f)) $filename[$short] = false; } if (!$filename) $filename = array(); return $filename; }