Attachments direkt im Post löschen

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:

Attachments direkt im Post löschen

Beitrag von oxpus »

Das angehängte Snippet erlaubt das Löschen von Attachments direkt im Post.
Löschen können auf diese Weise Admins und Moderatoren.

Das angehängte Bild zeigt auch, wo der Link zu finden ist.

History:
05.04.2005: Text wer wann ein Attachment gelöscht hat wird nun an Post-Text angehangen
20.04.2005: Snippet angepasst für diejenigen, die eine Fehlermeldung bezüglich "prepare_message" erhalten.
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!
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Interessantes und nützliches Snippet!!! :)
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Nicht wahr ;)
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!
modbo
Beiträge: 1344
Registriert: Mo 13.Dez, 2004 11:18
Kontaktdaten:

Beitrag von modbo »

Sehr nützlich. Schön wäre es natürlich, wenn automatisch nach dem Löschen auch der Post editiert und z.B.
[ Attachment gelöscht von XXX am YYY ]
als Text eingefügt werden würde :p

Leider kann ich es weder skriptseitig umsetzen, noch hab ich eine Ahnung, wie aufwändig das wäre.
Aber als Idee wollt ich es wenigstens mal loswerden :)
Zuletzt geändert von modbo am Mo 04.Apr, 2005 23:51, 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 »

Jetzt weiß ich, was ich noch vergessen hab. Danke für den Hinweis.
BTW: Ist recht einfach: Da man die Post-ID hat, braucht man nach dem Löschen (natürlich nur aus der Beitragsansicht heraus!) nur noch eine SQL-Abfrage zu machen.
So nach dem Motto:
if ($delete_viewforum == TRUE)
{
$sql = "UPDATE " . POSTS_TEXT_TABLE . "
SET post_text = post_text + '<br /><br />Attachment deleted '.create_date($userdata['user_dateformat'], time(), $userdata['user_timezone']).' by '.$userdata['user_name'].'
WHERE post_id = $post_id";
if(!$db->sql_query($sql))
{
message_die(GENERAL_ERROR, 'Could not insert attachment delete text into post', '', __LINE__, __FILE__, $sql);
}
}[/code]

Naja, so in etwa.
Wie genau, werde ich demnächst mal ausklamüsern.

EDIT
Das Snippet ist nun aktualisiert. Bitte den Part für die viewtopic.php erst deinstallieren und dann neu installieren!!!!! Die Position des Code-Blocks hat sich in dieser Datei verändert.
Dazu ist auch die lang_main.php zu bearbeiten.
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!
modbo
Beiträge: 1344
Registriert: Mo 13.Dez, 2004 11:18
Kontaktdaten:

Beitrag von modbo »

Super :)

Hat bereits in mehreren beiträgen funktioniert, aber eben kam in einem eine Fehlermeldung
Could not insert delete message for attachment

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'PAGE_ACTIVITY', [color=red:bcba3ab263]-12[/color:bcba3ab263]);

UPDATE phpbb_posts_text SET post_text = '[quote:bcba3ab263]// Arcade - Activity MOD define('PAGE_ACTIVITY', [color=red:bcba3ab263]-12[/color:bcba3ab263]); define('PAGE_PLAYING_GAMES', [color=blue:bcba3ab263]-13[/color:bcba3ab263]); define('PAGE_ARCADE_MOD', [color=brown:bcba3ab263]-14[/color:bcba3ab263]); define('PAGE_DOWNLOAD', [color=red:bcba3ab263]-12[/color:bcba3ab263]); define('PAGE_CARD', [color=blue:bcba3ab263]-13[/color:bcba3ab263]); define('PAGE_LINKS', [color=brown:bcba3ab263]-14[/color:bcba3ab263]); define('PAGE_STAFF', -22); define('PAGE_TOPIC_OFFSET', 5000);[/quote:bcba3ab263] Die Werte dürfen nicht doppelt belegt werden! Beim Einfügen die nächst höhere, frei Zahl wählen. [ Attachment gelöscht am Di 05 Apr, 2005 09:02 von svbomber ][/size:bcba3ab263]' WHERE post_id = 709

Line : 247
File : viewtopic.php


Einzig, was mir an dem Beitrag aufgefallen ist, ist, dass er eine Zitat enthält ...
// Arcade - Activity MOD
define('PAGE_ACTIVITY', -12);
define('PAGE_PLAYING_GAMES', -13);
define('PAGE_ARCADE_MOD', -14);
define('PAGE_DOWNLOAD', -12);
define('PAGE_CARD', -13);
define('PAGE_LINKS', -14);
define('PAGE_STAFF', -22);
define('PAGE_TOPIC_OFFSET', 5000);

Die Werte dürfen nicht doppelt belegt werden!
Beim Einfügen die nächst höhere, frei Zahl wählen.
Zuletzt geändert von modbo am Di 05.Apr, 2005 09:08, insgesamt 2-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Okay, schau ich nachher nochmal drüber, wie ich das besser abfangen kann.

EDIT
Ich hab das Snippet nochmal angepasst. Der Part in der viewtopic.php ist überarbeitet.
Bitte diesen nochmal ersetzen und erneut versuchen.
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!
modbo
Beiträge: 1344
Registriert: Mo 13.Dez, 2004 11:18
Kontaktdaten:

Beitrag von modbo »

Hab den Beitragsinhalt kopiert und ein Attachment angefügt.
Diesmal kam keine Fehlermeldung beim Löschen :)

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

Beitrag von oxpus »

Schön zu hören.
Dann ist dieser Punkt ja abgeschlossen.
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!
Feuerball
Beiträge: 636
Registriert: Mi 15.Sep, 2004 22:11

Beitrag von Feuerball »

bei mir kommt dieser Fehler beim Löshen eines attachments.
Fatal error: Call to undefined function: prepare_message() in xxx/viewtopic.php on line 206
aus der viewtopic.php Zeile 184 bis 223

Code: Alles auswählen

//
// End session management
//


if ( isset($HTTP_GET_VARS['del_attach']))
{
	$attach_id = intval($HTTP_GET_VARS['del_attach']);

	$post_id_array = $attach_id_array = array();

	$post_id_array[] = $post_id;
	$attach_id_array[] = $attach_id;

	delete_attachment($post_id_array, $attach_id_array, 0);

	$sql = "SELECT bbcode_uid FROM " . POSTS_TEXT_TABLE . "
		WHERE post_id = $post_id";
	if(!$result = $db->sql_query($sql))
	{
		message_die(GENERAL_ERROR, 'Could not insert delete message for attachment', '', __LINE__, __FILE__, $sql);
	}
	$row = $db->sql_fetchrow($result);
	$bbcode_uid = $row['bbcode_uid'];
	$db->sql_freeresult($result);

	$current_time = create_date($userdata['user_dateformat'], time(), $userdata['user_timezone']);
	$post_text_add .= ($bbcode_uid != '') ? "\n\n".prepare_message(sprintf($lang['Attachment_delete_post_text_bbcode'], $current_time, $userdata['username']), $board_config['allow_html'], $board_config['allow_bbcode'], $board_config['allow_smilies'], $bbcode_uid) : "\n\n".sprintf($lang['Attachment_delete_post_text'], $current_time, $userdata['username']);

	$sql = "UPDATE " . POSTS_TEXT_TABLE . "
		SET post_text = concat(post_text, '$post_text_add')
		WHERE post_id = $post_id";
	if(!$result = $db->sql_query($sql))
	{
		message_die(GENERAL_ERROR, 'Could not insert delete message for attachment', '', __LINE__, __FILE__, $sql);
	}
	
	redirect(append_sid("viewtopic.$phpEx?".POST_POST_URL."=".$post_id).'#'.$post_id);
}



//
// Start auth check
//
habe auch versucht das was Oxpus an Code gepostet hat gemacht, brachte aber nichts :/
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ach ja, sorry. Vergessen...

Füge in der viewtopic.php nach

Code: Alles auswählen

include($phpbb_root_path . 'common.'.$phpEx);
noch folgende Zeilen ein:

Code: Alles auswählen

include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
include($phpbb_root_path . 'includes/functions_post.'.$phpEx);
dann geht es wieder.

Das Snippet passe ich gleich mit an...
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!
Feuerball
Beiträge: 636
Registriert: Mi 15.Sep, 2004 22:11

Beitrag von Feuerball »

Danke,
aber dieses brauchte ich nicht einfüge das steht schon bei mir.

Code: Alles auswählen

include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
Zuletzt geändert von Feuerball am Mi 20.Apr, 2005 15:32, 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 »

Okay, aber die functions_post.php eben. Da ist die Funktion prepare_message() enthalten.
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!
Feuerball
Beiträge: 636
Registriert: Mi 15.Sep, 2004 22:11

Beitrag von Feuerball »

ja das stimmt und dagened habe ich ja auch nichts gesagt ;)

aber jetzt läuft das ganze.

kleine Frage, wann taucht dieser Text aus der lang_man.php eigenlich auf ?
$lang['Attachment_delete_post_text'] = 'Attachment gelöscht am %s von %s';
den anderen habe ich modifiziert bei mir.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Der Text wird an den Beitrag angehängt und ersetzt damit das Attachment. Sozusagen.
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!
Feuerball
Beiträge: 636
Registriert: Mi 15.Sep, 2004 22:11

Beitrag von Feuerball »

Danke
schmidtedv
Beiträge: 607
Registriert: So 13.Feb, 2005 10:46
Wohnort: St. Blasien (seit 01.06)
Kontaktdaten:

Beitrag von schmidtedv »

So, jetzt geb' ich au ma meinen Senf dazu bzw. hab direkt ne Frage :-)

eingebaut und läuft lecker...auch mit MorpheusX-Style sieht's gut aus....bis auf das Linksbündige...

Ich hab zwar einen [center.] BBcode drin, aber damit in der lang_main.php geht's irgendwie net...gibt's ne andere Möglichkeit, das dieser Text "Anlage gelöscht von...." zentriert erscheint? Ich nehm mal an, Du hast hier zumindest den gleichen Center-BBcode drin....sollte es nicht statt [size....] mit [center...] gehen??
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Klar geht das. Wenn der BBCode [center] vorhanden ist, dann kannst Du den selbstverständlich auch im Text verwenden...
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!
schmidtedv
Beiträge: 607
Registriert: So 13.Feb, 2005 10:46
Wohnort: St. Blasien (seit 01.06)
Kontaktdaten:

Beitrag von schmidtedv »

hm, hab ich da net uffgepasst....wohl weil ich [center] erst nach dem löschen eingenaut hab...ich nehm mal an, das ändert der dann net nachträglich, LOL

EDIT: Beim anderen nehm ich mal an sollte es <center></center> tun?
Zuletzt geändert von schmidtedv am Fr 22.Apr, 2005 11:19, 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 »

:confused:
In meinem Snippet ist in den Angaben für die $lang[] die Grösse dieses Textes eingetragen (). Hier kannst Du noch [center] mit eintragen oder die Grösse ersetzen.
Mehr ist nicht zu tun.

Der HTML-Tag <center> würde hier nicht funktionieren, ausser, Du hast den im ACP freigegeben und HTML aktiviert.
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!
schmidtedv
Beiträge: 607
Registriert: So 13.Feb, 2005 10:46
Wohnort: St. Blasien (seit 01.06)
Kontaktdaten:

Beitrag von schmidtedv »

ok, döngel
modbo
Beiträge: 1344
Registriert: Mo 13.Dez, 2004 11:18
Kontaktdaten:

Beitrag von modbo »

Ich würde gerne den Link "Attachment löschen" gegen Bild tauschen.

Anders platzieren war nicht das Problem, allerdings wird das Image nicht geparsed ( $images['icon_delpost'] ).

Was hab ich noch vergessen?
Ist $images[...] nicht generell verfügbar?

viewtopic_attach_body.tpl

Code: Alles auswählen

	<tr>
		<td width="100%" colspan="2" class="attachheader" align="left"><b><span class="gen">&nbsp;{postrow.attach.attachrow.DOWNLOAD_NAME}</span></b></td>
		<td width="100%" class="attachheader" align="right"><a href="{postrow.attach.attachrow.U_DELETE_ATTACH}" class="postdetails">{L_DELETE_ATTACH}</a></td>
	</tr>
displaying.php

Code: Alles auswählen

		if ($userdata['user_level'] == ADMIN || $userdata['user_level'] == MOD)
		{
			$del_filename = $attachments['_' . $post_id][$i]['physical_filename'];
			$l_delete_attach = '<img src="' . $images['icon_delpost'] . '" alt="' . $lang['Delete_attachment'] . '" title="' . $lang['Delete_attachment'] . '" border="0" />';
			$u_delete_attach = append_sid("viewtopic.$phpEx?del_attach=".$attachments['_' . $post_id][$i]['attach_id']."&".POST_POST_URL."=".$post_id);
		}
		else
		{
			$del_filename = '';
			$l_delete_attach = '';
			$u_delete_attach = '';
		}
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Du musst in der betreffenden Funktion noch $images globalisieren:

Code: Alles auswählen

global $images;
Erst dann stehen die dort auch bereit...
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!
modbo
Beiträge: 1344
Registriert: Mo 13.Dez, 2004 11:18
Kontaktdaten:

Beitrag von modbo »

Danke!!, habs hin bekommen :p


//edit: Eine Frage noch...

Wäre es möglich, dass Attachments nicht sofort nach klick auf den Link gelöscht werden, sondern das noch eine Zwischenabfrage erscheint "Bist du dir wirklich sicher, dass das Attachment gelöscht werden soll?"
Zuletzt geändert von modbo am Do 21.Dez, 2006 08:38, insgesamt 2-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Mit Javascript wäre das nicht ungeschickt, dann müsste man z. B. die Seite nicht neu laden...
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