Gruppeninformationen in CSV-Datei speichern

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Gruppeninformationen in CSV-Datei speichern

Beitrag von oxpus »

Einen Export mal ganz anderer Art liefert das angehangene Snippet.
Damit ist es möglich, daß Moderatoren und Administratoren die Informationen einer Gruppe, also genauer, über deren Mitglieder, per CSV-Datei herunterladen können.
Dabei werden 3 Blöcke in der Datei erstellt, die da sind

- Gruppenmoderator
- Gruppenmitglieder
- Wartende Benutzer

Jeweils mit einer Überschriftszeile je Block.
Diese Datei kann man dann z. B. bequem in Excel öffnen und weiterverarbeiten.

-- Snippet angepasst, da unklar, wo wsa eingefügt werden soll --
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von oxpus am Di 25.Apr, 2006 12:25, insgesamt 1-mal geändert.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

Ganz super-grosse-klasse!

Ich vermute mal, dass ich hier eingreifen muss wenn ich weitere Felder exportieren will:

Code: Alles auswählen

#
#-----[ FIND ]-----
#
function generate_user_info(&$row, $date_format, $group_mod, &$from, &$posts, &$joined, &$poster_avatar, &$profile_img, &$profile, &$search_img, &$search, &$pm_img, &$pm, &$email_img, &$email, &$www_img, &$www, &$icq_status_img, &$icq_img, &$icq, &$aim_img, &$aim, &$msn_img, &$msn, &$yim_img, &$yim)

#
#-----[ BEFORE, ADD ]-----
#
function generate_user_short_info(&$row, &$username, &$from, &$posts, &$email, &$www)
{
	$username = "'".$row['username']."'";
	$from = "'".$row['user_from']."'";
	$posts = ($row['user_id'] == ANONYMOUS) ? 0 : $row['user_posts'];
	$email = "'".$row['user_email']."'";
	$www = "'".$row['user_website']."'";

	return;
}
und

Code: Alles auswählen

#
#-----[ FIND ]-----
#
		$template->pparse('info');

#
#-----[ AFTER, ADD ]-----
#
	}
	else
	{
		generate_user_short_info($group_moderator, $username, $from, $posts, $email, $www);
		$export_string = $lang['Group_Moderator'].';'.$lang['Posts'].';'.$lang['Location'].';'.$lang['Email'].';'.$lang['Website']."\n";
		$export_string .= $username.';'.$posts.';'.$from.';'.$email.';'.$www."\n";
		
		$export_string .= $lang['Group_Members'].';'.$lang['Posts'].';'.$lang['Location'].';'.$lang['Email'].';'.$lang['Website']."\n";
		for ($i = 0; $i < sizeof($group_members); $i++)
		{
			generate_user_short_info($group_members[$i], $username, $from, $posts, $email, $www);
			
			$export_string .= $username.';'.$posts.';'.$from.';'.$email.';'.$www."\n";
		}

		$export_string .= $lang['Pending_members'].';'.$lang['Posts'].';'.$lang['Location'].';'.$lang['Email'].';'.$lang['Website']."\n";
		for ($i = 0; $i < sizeof($modgroup_pending_list); $i++)
		{
			generate_user_short_info($modgroup_pending_list[$i], $username, $from, $posts, $email, $www);
			
			$export_string .= $username.';'.$posts.';'.$from.';'.$email.';'.$www."\n";
		}

		$fp = fopen($phpbb_root_path.'cache/g'.$group_id.'.csv', "w");
		fwrite($fp, $export_string);
		fclose($fp);
		
		$size = @filesize($phpbb_root_path.'cache/g'.$group_id.'.csv');
		header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
		header("Content-Type: application/octet-stream");
		header("Content-Transfer-Encoding: binary");
		header("Content-Disposition: attachment; filename=\"".'g'.$group_id.'.csv'."\"");
		readfile($phpbb_root_path.'cache/g'.$group_id.'.csv');
		@unlink($phpbb_root_path.'cache/g'.$group_id.'.csv');

		exit;
	}
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Yepp. Richtig.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

Ahem,

dies kommt in meiner groucp.php zweimal vor:

Code: Alles auswählen

#
#-----[ FIND ]-----
#
		$page_title = $lang['Group_Control_Panel'];
		include($phpbb_root_path . 'includes/page_header.'.$phpEx);
Ich vermute, Du meinst die Zweite.

Und:

Code: Alles auswählen

#
#-----[ FIND ]-----
#
		$template->pparse('info');
gibt es bei mir nicht.
Dafür aber

Code: Alles auswählen

		$template->pparse('user');
und

Code: Alles auswählen

		$template->pparse('confirm');
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ich habe das Snippet angepasst, um die erste Stelle besser zu finden.
Und in der original groupcp.php gibt es sehr wohl die Zeile

Code: Alles auswählen

      $template->pparse('info');
;)
Zuletzt geändert von oxpus am Di 25.Apr, 2006 12:28, insgesamt 1-mal geändert.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

Danke UND entschuldige! Muss tomaten auf den Augen gehabt haben! Natürlich ist es da!

/Holger
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

SORRY! Aber auch das taucht zweimal auf:

Code: Alles auswählen

#
#-----[ FIND ]-----
#
		$template->assign_vars(array(
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

Habe es mal eingebaut und bekomme diese Fehlermeldung:
Template->loadfile(): No file specified for handle info
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Öhm, Grundlagen beim MOD-Einbau:
Immer von der Stelle aus das nächste suchen, von wo man gemoddet hat.
Wenn Du "make_jumpbox(..." korrekt gefunden hast, gibt es nur EINE nächste möglich Stelle, die zu finden ist ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

Trotzdem, einige sind anders eingerückt.
Ist dieser gemeint:

Code: Alles auswählen

		$template->assign_vars(array(
			'MESSAGE_TITLE' => $lang['Confirm'],
			'MESSAGE_TEXT' => $unsub_msg,
			'L_YES' => $lang['Yes'],
			'L_NO' => $lang['No'],
			'S_CONFIRM_ACTION' => append_sid("groupcp.$phpEx"),
			'S_HIDDEN_FIELDS' => $s_hidden_fields)
		);
Edit: es funktioniert. Danke für Deine Hilfe!
Zuletzt geändert von Holger am Di 25.Apr, 2006 14:50, insgesamt 1-mal geändert.
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

Leider wird nun die normale Ansicht vergrützelt. Es wird alles kommasepariert angezeigt.
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

:hh:
Ab besten, Du hängst mal Deine groupcp.php an.
Da ist jetzt nun sicher einiges im Argen...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

Bitte!
Danke!

[ Attachment gelöscht am Di 25.Apr, 2006 16:42 von oxpus ]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Wie ich vermutet hatte:

Code: Alles auswählen

$template->assign_vars(array(
hattest Du an falscher Stelle gefunden.
Hiermit sollte es jetzt gehen:
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

Klasse! Danke! Geht!
(wie füge ich nun mehr Spalten ein?)
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Mehr Spalten?
In der neuen Funktion werden die Werte aus dem Array, das als erster Parameter übergeben wird (beinhaltet alle Daten aus den Abfragen!) in Variablen gepackt.
Wenn es nun mehr als die 5 sein sollen, musst Du die weiteren Variablen wie vorgegeben anlegen.
Also in der Funktionsdefinition und Erstellung.

Dann in der Dateibearbeitung genau das gleiche:
Hier zuerst die Beschreibung, wird ja die "Kopfzeile" des jeweiligen Bereiches, und dann die Werte selber.

Ich denke, die "Vorlage" sollte hier eigentlich eindeutig genug sein.

Und immer beachten, daß Strings IMMER in Hochkommas zu setzen sind!
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

Danke ich werde es versuchen!
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

Oxpus,
ich versuche ein weiteres Feld einzufügen.
Ich habe in usercp_viewprofile.php folgende Felder:

Code: Alles auswählen

	'FORALDERTILL' => ( $profiledata['user_foraldertill'] ) ? $profiledata['user_foraldertill'] : '&nbsp;',
	'L_FORALDERTILL' => $lang['Foraldertill'],
	'HEMTEL' => ( $profiledata['user_hemtel'] ) ? $profiledata['user_hemtel'] : '&nbsp;',
	'L_HEMTEL' => $lang['Hemtel'],
	'MOBILTEL' => ( $profiledata['user_mobiltel'] ) ? $profiledata['user_mobiltel'] : '&nbsp;',
	'L_MOBILTEL' => $lang['Mobiltel'],
	'JOBBTEL' => ( $profiledata['user_jobbtel'] ) ? $profiledata['user_jobbtel'] : '&nbsp;',
	'L_JOBBTEL' => $lang['Jobbtel'],
	'ADDRESS' => ( $profiledata['user_address'] ) ? $profiledata['user_address'] : '&nbsp;',
	'L_ADDRESS' => $lang['Address'],
	'POSTNUMMER' => ( $profiledata['user_postnummer'] ) ? $profiledata['user_postnummer'] : '&nbsp;',
	'L_POSTNUMMER' => $lang['Postnummer'],
	'STAD' => ( $profiledata['user_stad'] ) ? $profiledata['user_stad'] : '&nbsp;',
	'L_STAD' => $lang['Stad'],
	'FORALDRARGRUPP' => ( $profiledata['user_foraldrargrupp'] ) ? $profiledata['user_foraldrargrupp'] : '&nbsp;',
	'L_FORALDRARGRUPP' => $lang['Foraldrargrupp'],
Ich habe in der groupcp.php versucht www in foraldertill zu ändern, klappt aber nicht.

Code: Alles auswählen

function generate_user_short_info(&$row, &$username, &$from, &$posts, &$email, &$foraldertill)
{
	$username = "'".$row['username']."'";
	$from = "'".$row['user_from']."'";
	$posts = ($row['user_id'] == ANONYMOUS) ? 0 : $row['user_posts'];
	$email = "'".$row['user_email']."'";
	$foraldertill = "'".$row['user_foraldertill']."'";

	return;
}
Die Spalte foraldertill bleibt in der Excel-Tabelle leer.
Zuletzt geändert von Holger am Di 20.Nov, 2007 10:53, insgesamt 1-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Hast Du das Feld auch in der betreffenden SQL-Abfrage mit angeführt?
Vermutlich nicht.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

Ich habe die entsprechenden www-Stellen mit foraldertill ersetzt.
Natürlich nicht alle, sondern nur die, die von dem Excel-Export betroffen sind.

Muss ich noch irgendwo was ändern?
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Die Abfrage in der groupcp.php!
Dort wird sicherlich noch user_www anstelle user_foraldertill abgefragt!
Kannst aber auch user_foraldertill zusätzlich dort einfügen, um für die Ansicht im Board weiterhin die Webseite zu haben.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

In der groupcp.php taucht nirgends user_www auf.
Ich habe aber

Code: Alles auswählen

function generate_user_short_info(&$row, &$username, &$from, &$posts, &$email, &$foraldertill)
{
	$username = "'".$row['username']."'";
	$from = "'".$row['user_from']."'";
	$posts = ($row['user_id'] == ANONYMOUS) ? 0 : $row['user_posts'];
	$email = "'".$row['user_email']."'";
	$foraldertill = "'".$row['user_foraldertill']."'";

	return;
}
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Die Daten werden doch abgefragt, müssen also damit ja zunächst aus der Datenbank kommen.
Und in genau dieser Abfrage muss das Feld mit rein, damit Du es weiter verwenden kannst.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

Das heisst hier:

Code: Alles auswählen

	//
	// Get user information for this group
	//
	$sql = "SELECT u.username, u.user_id, u.user_viewemail, u.user_posts, u.user_regdate, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_msnm, ug.user_pending
		FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug
		WHERE ug.group_id = $group_id
			AND u.user_id = ug.user_id
			AND ug.user_pending = 0
			AND ug.user_id <> " . $group_moderator['user_id'] . "
		ORDER BY u.username";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Error getting user list for group', '', __LINE__, __FILE__, $sql);
	}

	$group_members = $db->sql_fetchrowset($result);
	$members_count = count($group_members);
	$db->sql_freeresult($result);

	$sql = "SELECT u.username, u.user_id, u.user_viewemail, u.user_posts, u.user_regdate, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_msnm
		FROM " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug, " . USERS_TABLE . " u
		WHERE ug.group_id = $group_id
			AND g.group_id = ug.group_id
			AND ug.user_pending = 1
			AND u.user_id = ug.user_id
		ORDER BY u.username";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Error getting user pending information', '', __LINE__, __FILE__, $sql);
	}
Oder?
Mann, ist das schwierig! ¦4
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ja, genau.
Und da muss u.user_foraldertill mit rein, damit Du die Angaben auch weiter verarbeiten kannst.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Antworten