0) { foreach ($ezin_cfg['languages'] as $l) { $languages_html .= ''; } } $authors = ezin_get_authors(); $authors_html = ''; if (is_array($authors) && count($authors) > 0) { foreach ($authors as $author) { $access_key = strlen($author['access_key']) > 0 ? '('.$author['access_key'].')' : ''; $authors_html .= ' '; } } $sections = ezin_get_section_list(); $sections_html = ''; if (is_array($sections) && count($sections) > 0) { foreach ($sections as $section) { $access_key = strlen($section['section_access_key']) > 0 ? '('.$section['section_access_key'].')' : ''; $sections_html .= ' '; } } $articles = ezin_get_article_list(); $articles_html = ''; if (is_array($articles) && count($articles) > 0) { foreach ($articles as $article) { $access_key = strlen($article['article_access_key']) > 0 ? '('.$article['article_access_key'].')' : ''; $name = strlen($article['article_title']) > 20 ? substr($article['article_title'], 0, 20).'...' : $article['article_title']; $articles_html .= ' '; } } $users = ezin_get_users(); $users_html = ''; $users_username_html = ''; if (is_array($users) && count($users) > 0) { foreach ($users as $user) { $users_html .= ' '; $users_username_html .= ' '; } } $roles = ezin_get_roles(); $roles_html = ''; if (is_array($roles) && count($roles) > 0) { foreach ($roles as $role) { $roles_html .= ' '; } } echo '

Data
Articles [Order by ]
[Only section ]
[Only author ]
Pages [Order by ]
[Only section ]
Boxes [Order by ]
Authors [Order by ]
[Only type ]
Sections [Order by ]
[Only language ]
Editorials [Order by ]
[Only section ]
[Only article ]
Messages [Order by ]
[Only article ]
Polls [Order by ]
[Only section ]
Feedbacks [Order by ]
[Only section ]
Newsletters [Order by ]
[Only section ]
[Only active ]
Users [Order by ]
[Only role ]
Sessions [Order by ]
[Only username ]
[Only status ]
Output TXT - standard text file
HTML - hypertext markup language
CSV - comma-separated values
SQL - structured query language


'; } else { // ak je nastanvene $_POST['action'] function build_condition($cond) { $cond = array_filter($cond); $con = implode(' AND ', $cond); if (strlen($con) > 0) { $con = 'WHERE '.$con; } return $con; } function escape_simple($input) { return '"'.mysqli_real_escape_string($input).'"'; } function get_output($action, $output, $out = true) { global $ezin_sys; global $ezin_cfg; $ret = ''; $cond = array(); switch ($action) { case 'articles': $cond[] = strlen($_POST['articles_section']) ? 'section_id = '.intval($_POST['articles_section']) : ''; $cond[] = strlen($_POST['articles_author']) ? 'author_id = '.intval($_POST['articles_author']) : ''; $cond[] = 'UNIX_TIMESTAMP(datetime) != 0'; $query = sprintf('SELECT *' .' FROM %s' .' %s' .' ORDER BY %s', $ezin_sys['db']['tables']['articles'], build_condition($cond), escape_simple($_POST['articles_orderby'])); $table = $ezin_sys['db']['tables']['articles']; break; case 'pages': $cond[] = strlen($_POST['pages_section']) ? 'section_id = '.intval($_POST['pages_section']) : ''; $cond[] = '(datetime IS NULL OR UNIX_TIMESTAMP(datetime) = 0)'; $query = sprintf('SELECT *' .' FROM %s' .' %s' .' ORDER BY %s', $ezin_sys['db']['tables']['articles'], build_condition($cond), escape_simple($_POST['pages_orderby'])); $table = $ezin_sys['db']['tables']['articles']; break; case 'boxes': $query = sprintf('SELECT *' .' FROM %s' .' %s' .' ORDER BY %s', $ezin_sys['db']['tables']['boxes'], build_condition($cond), escape_simple($_POST['boxes_orderby'])); $table = $ezin_sys['db']['tables']['boxes']; break; case 'authors': $cond[] = strlen($_POST['authors_type']) ? 'type = '.escape_simple(strtolower($_POST['authors_type'])) : ''; $query = sprintf('SELECT *' .' FROM %s' .' %s' .' ORDER BY %s', $ezin_sys['db']['tables']['authors'], build_condition($cond), escape_simple($_POST['authors_orderby'])); $table = $ezin_sys['db']['tables']['authors']; break; case 'sections': $cond[] = strlen($_POST['sections_lang']) ? 'lang = '.escape_simple(strtolower($_POST['sections_lang'])) : ''; $query = sprintf('SELECT *' .' FROM %s' .' %s' .' ORDER BY %s', $ezin_sys['db']['tables']['sections'], build_condition($cond), escape_simple($_POST['sections_orderby'])); $table = $ezin_sys['db']['tables']['sections']; break; case 'editorials': $cond[] = strlen($_POST['editorials_section']) ? 'section_id = '.intval($_POST['editorials_section']) : ''; $cond[] = strlen($_POST['editorials_article']) ? 'article_id = '.intval($_POST['editorials_article']) : ''; $query = sprintf('SELECT *' .' FROM %s' .' %s' .' ORDER BY %s', $ezin_sys['db']['tables']['editorials'], build_condition($cond), escape_simple($_POST['editorials_orderby'])); $table = $ezin_sys['db']['tables']['editorials']; break; case 'messages': $cond[] = strlen($_POST['messages_article']) ? 'article_id = '.intval($_POST['messages_article']) : ''; $query = sprintf('SELECT *' .' FROM %s' .' %s' .' ORDER BY %s', $ezin_sys['db']['tables']['messages'], build_condition($cond), escape_simple($_POST['messages_orderby'])); $table = $ezin_sys['db']['tables']['messages']; break; case 'polls': $cond[] = strlen($_POST['polls_section']) ? 'section_id = '.intval($_POST['polls_section']) : ''; $query = sprintf('SELECT *' .' FROM %s' .' %s' .' ORDER BY %s', $ezin_sys['db']['tables']['polls'], build_condition($cond), escape_simple($_POST['polls_orderby'])); $table = $ezin_sys['db']['tables']['polls']; break; case 'feedbacks': $cond[] = strlen($_POST['feedbacks_section']) ? 'section_id = '.intval($_POST['feedbacks_section']) : ''; $query = sprintf('SELECT *' .' FROM %s' .' %s' .' ORDER BY %s', $ezin_sys['db']['tables']['feedbacks'], build_condition($cond), escape_simple($_POST['feedbacks_orderby'])); $table = $ezin_sys['db']['tables']['feedbacks']; break; case 'newsletters': $cond[] = strlen($_POST['newsletters_section']) ? 'section_id = '.intval($_POST['newsletters_section']) : ''; $cond[] = $_POST['newsletters_active'] == 'active' ? 'dt_removed IS NULL' : ''; $cond[] = $_POST['newsletters_active'] == 'removed' ? 'dt_removed IS NOT NULL' : ''; $query = sprintf('SELECT *' .' FROM %s' .' %s' .' ORDER BY %s', $ezin_sys['db']['tables']['nl_emails'], build_condition($cond), escape_simple($_POST['newsletters_orderby'])); $table = $ezin_sys['db']['tables']['nl_emails']; break; case 'users': $cond[] = strlen($_POST['users_role']) ? 'role_id = '.intval($_POST['users_role']) : ''; $query = sprintf('SELECT *' .' FROM %s' .' %s' .' ORDER BY %s', $ezin_sys['db']['tables']['users'], build_condition($cond), escape_simple($_POST['users_orderby'])); $table = $ezin_sys['db']['tables']['users']; break; case 'sessions': $cond[] = strlen($_POST['sessions_username']) ? 'username = '.escape_simple(strtolower($_POST['sessions_username'])) : ''; $cond[] = strlen($_POST['sessions_status']) ? 'status = '.escape_simple(strtolower($_POST['sessions_status'])) : ''; $query = sprintf('SELECT *' .' FROM %s' .' %s' .' ORDER BY %s', $ezin_sys['db']['tables']['sessions'], build_condition($cond), escape_simple($_POST['sessions_orderby'])); $table = $ezin_sys['db']['tables']['sessions']; break; default: $ret = 'Error: Incorrect action "'.$action.'". Exports'; if ($out) { echo $ret; } return $ret; break; } global $ezin_db_handle; $arr = array(); $result = mysqli_query($ezin_db_handle, $query); while (($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) != null) { $arr[] = $row; } if (count($arr) > 0) { if ($out) { ob_clean(); } $ret = ''; $filename = 'export_'.$ezin_cfg['name'].'_'.$action.'_'.date('Y-m-d_H-i-s', Time()); switch($output) { case 'txt': if ($out) { header('Content-type: text/plain; charset=urf-8'); header('Content-Disposition: attachment; filename="'.$filename.'.txt"'); } foreach(array_keys($arr[0]) as $key) { $ret .= $key."\t"; } $ret .= "\r\n"; foreach($arr as $row) { foreach ($row as $value) { $value = str_replace("\n", ' ', $value); $value = str_replace("\r", ' ', $value); $ret .= $value."\t"; } $ret .= "\r\n"; } if ($out) { echo $ret; Exit(); } else { return $ret; } break; case 'html': if ($out) { header('Content-type: text/html; charset=utf-8'); header('Content-Disposition: attachment; filename="'.$filename.'.html"'); } $ret .= ' '.$filename.' '."\r\n"; $ret .= '

'.$ezin_cfg['name'].' - '.$action.'

'; $ret .= ''."\r\n"; foreach(array_keys($arr[0]) as $key) { $ret .= ''."\r\n"; } $ret .= "\r\n"; foreach($arr as $row) { $ret .= ''."\r\n"; foreach ($row as $value) { $ret .= '\r\n"; } $ret .= "\r\n"; } $ret .= '
'.$key.'
'.$value."
'."\r\n"; $ret .= 'Exported: '.date('Y-m-d H:i').''."\r\n"; $ret .= ''."\r\n"; if ($out) { echo $ret; Exit(); } else { return $ret; } break; case 'csv': if ($out) { header('Content-type: application/csv; charset=WINDOWS-1250'); header('Content-Disposition: attachment; filename="'.$filename.'.csv"'); } foreach(array_keys($arr[0]) as $key) { $ret .= $key.';'; } $ret .= "\n"; foreach($arr as $row) { foreach ($row as $value) { $value = str_replace("\n", ' ', $value); $value = str_replace("\r", ' ', $value); $value = iconv ($ezin_cfg['encoding'], "WINDOWS-1250", $value); $ret .= $value.';'; } $ret .= "\n"; } if ($out) { echo $ret; Exit(); } else { return $ret; } break; case 'sql': if ($out) { header('Content-type: text/plain; charset='.$ezin_cfg['encoding']); header('Content-Disposition: attachment; filename="'.$filename.'.sql"'); } $ret .= 'INSERT INTO `'.$table.'` (`'; $ret .= implode('`, `', array_keys($arr[0])); $ret .= "`) VALUES \r\n"; $rows = array(); foreach($arr as $row) { $r = '('; $values = array(); foreach ($row as $value) { $value = str_replace("\n", ' ', $value); $value = str_replace("\r", ' ', $value); if (strlen($value) > 0) { $values[] = escape_simple($value); } else { $values[] = 'NULL'; } } $r .= implode(', ', $values); $r .= ")"; $rows[] = $r; } $ret .= implode(", \r\n", $rows); $ret .= "; \r\n"; if ($out) { echo $ret; Exit(); } else { return $ret; } break; default: $ret = 'Incorrect output "'.$output.'", Exports'; if ($out) { echo $ret; } return $ret; break; } // DEBUG /*echo '
'; print_r($query); echo '
';
				print_r($arr);
				echo '
'; echo '
Exports'; */ Exit(); } else { echo '

No matching records, back to Exports

'; } } // function get_output function get_backup_table($table) { global $ezin_db_handle; global $ezin_sys; global $ezin_cfg; $arr = array(); $query = 'SELECT * FROM '.$table; $result = mysqli_query($ezin_db_handle, $query); while (($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) != null) { $arr[] = $row; } if (count($arr) <= 0) { return '-- empty'."\r\n"; } $ret = 'INSERT INTO `'.$table.'` (`'; $ret .= implode('`, `', array_keys($arr[0])); $ret .= "`) VALUES \r\n"; $rows = array(); foreach($arr as $row) { $r = '('; $values = array(); foreach ($row as $value) { $value = str_replace("\n", ' ', $value); $value = str_replace("\r", ' ', $value); if (strlen($value) > 0) { $values[] = escape_simple($value); } else { $values[] = 'NULL'; } } $r .= implode(', ', $values); $r .= ")"; $rows[] = $r; } $ret .= implode(", \r\n", $rows); $ret .= "; \r\n"; return $ret; } function get_backup() { global $ezin_sys; $ret = array(); foreach ($ezin_sys['db']['tables'] as $name => $table) { $ret[] = '-- '; $ret[] = '-- '.$name.' ('.$table.')'; $ret[] = '-- '; $ret[] = get_backup_table($table); } return implode("\r\n", $ret); } $action = $_POST['action']; $output = $_POST['output']; if ($_POST['backup'] == 'all') { $filename = 'backup_'.$ezin_cfg['name'].'_'.date('Y-m-d_H-i-s', Time()); ob_clean(); header('Content-type: text/plain; charset='.$ezin_cfg['encoding']); header('Content-Disposition: attachment; filename="'.$filename.'.sql"'); echo get_backup(); Exit(); } else { get_output($action, $output); } } } /* * Main */ if (strstr($ezin_user['role_config'], 'C')) { ezin_admin_exports_main(0); } elseif (ezin_admin_check_full_list_privileges($ezin_user['role_config'])) { ezin_admin_exports_main(1); } elseif (ezin_admin_check_restricted_list_privileges($ezin_user['role_config'])) { ezin_admin_exports_main(2); } ?>