Beitrag nachträglich ergänzen aber nicht ändern?
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
-
- Mitglied
- Beiträge: 325
- Registriert: 05.05.2012 08:57
Beitrag nachträglich ergänzen aber nicht ändern?
Hi zusammen
Ich glaube ehrlich gesagt nicht, dass so eine Möglichkeit besteht, möchte aber trotzdem nachfragen.
Bis vor kurzem konnte man in meinem Forum Texte nachträglich ändern. Das ging dann aber teilweise so weit, dass Beiträge so krass verändert wurde, dass diese komplett aus dem Zusammenhang gerissen wurden und die darauf folgenden Beiträge schlichtweg keinen Sinn mehr ergaben.
Nun habe ich das komplett deaktiviert, mit der Möglichkeit, dass sich die Nutzer über den "Diesen Beitrag melden" Button an mich wenden können, wenn sie eine nachträgliche Änderung wünschen.
Nun meine Frage: Gibt es die Möglichkeit, dass User ihre Beiträge ergänzen aber nicht verändern können?
Also z.B. als erster Beitrag
Hallo zusammen, meine Packliste besteht aus:
- Rucksack
- Schlafsack
- Matte
Ändern, bzw. löschen daran kann man nix, also an dem was bereits geschrieben wurde.
Ergänzen aber sehr wohl, also z.B.
Hallo zusammen, meine Packliste besteht aus:
- Rucksack
- Schlafsack
- Matte
- Flasche
- Feuerzeug
Gibt es irgendeine Möglichkeit?
Ich glaube ehrlich gesagt nicht, dass so eine Möglichkeit besteht, möchte aber trotzdem nachfragen.
Bis vor kurzem konnte man in meinem Forum Texte nachträglich ändern. Das ging dann aber teilweise so weit, dass Beiträge so krass verändert wurde, dass diese komplett aus dem Zusammenhang gerissen wurden und die darauf folgenden Beiträge schlichtweg keinen Sinn mehr ergaben.
Nun habe ich das komplett deaktiviert, mit der Möglichkeit, dass sich die Nutzer über den "Diesen Beitrag melden" Button an mich wenden können, wenn sie eine nachträgliche Änderung wünschen.
Nun meine Frage: Gibt es die Möglichkeit, dass User ihre Beiträge ergänzen aber nicht verändern können?
Also z.B. als erster Beitrag
Hallo zusammen, meine Packliste besteht aus:
- Rucksack
- Schlafsack
- Matte
Ändern, bzw. löschen daran kann man nix, also an dem was bereits geschrieben wurde.
Ergänzen aber sehr wohl, also z.B.
Hallo zusammen, meine Packliste besteht aus:
- Rucksack
- Schlafsack
- Matte
- Flasche
- Feuerzeug
Gibt es irgendeine Möglichkeit?
Meine Website: http://www.freie-bildung.ch
Mein Forum: http://www.freie-bildung.ch/forum
Version: 3.0.11 / Style prosilver
Mein Forum: http://www.freie-bildung.ch/forum
Version: 3.0.11 / Style prosilver
Re: Beitrag nachträglich ergänzen aber nicht ändern?
Hi,
Eine Mod ist mir da jetzt nicht bekannt, aber du könntest den Beirag abfragen, bevor er in die Datenbank geschrieben wird.
Dazu suchst du in
und ersetzt es durch:
Um den Error schön auszugeben müssen dann noch die language - Dateien angepasst werden:
Füge am Ende der Datei
Man kann die Fehlermeldung sicher schöner gestalten.
Will man das schöner gestalten, muss man aber sicherlich etwas mehr Aufwand betreiben
Eine Mod ist mir da jetzt nicht bekannt, aber du könntest den Beirag abfragen, bevor er in die Datenbank geschrieben wird.
Dazu suchst du in
includes/functions_posting.php
Code: Alles auswählen
else if ($mode == 'edit')
{
$post_mode = ($data['topic_replies_real'] == 0) ? 'edit_topic' : (($data['topic_first_post_id'] == $data['post_id']) ? 'edit_first_post' : (($data['topic_last_post_id'] == $data['post_id']) ? 'edit_last_post' : 'edit'));
}
Code: Alles auswählen
else if ($mode == 'edit')
{
$post_mode = ($data['topic_replies_real'] == 0) ? 'edit_topic' : (($data['topic_first_post_id'] == $data['post_id']) ? 'edit_first_post' : (($data['topic_last_post_id'] == $data['post_id']) ? 'edit_last_post' : 'edit'));
if (!$auth->acl_gets('a_', 'm_'))
{
$cur_post_id = $data['post_id'];
$sql = 'SELECT post_text, post_id FROM ' . POSTS_TABLE . ' WHERE post_id = ' . $cur_post_id;
$result = $db->sql_query($sql);
if ($row = $db->sql_fetchrow($result) )
{
$cur_message = $row['post_text'];
}
//check, if user just append something, else forbid the edit
if (stripos( $data['message'], $cur_message) !== 0)
{
trigger_error($user->lang['ONLY_ATTACHING_ALLOWED']);
}
}
}
Füge am Ende der Datei
language/[sprache]/posting.php
vor ?>
ein:
Code: Alles auswählen
$lang = array_merge($lang, array(
'ONLY_ATTACHING_ALLOWED' => 'Du darfst an deinen ursprünglichen Post nur etwas weiteres anhängen',
));
Will man das schöner gestalten, muss man aber sicherlich etwas mehr Aufwand betreiben

-
- Mitglied
- Beiträge: 325
- Registriert: 05.05.2012 08:57
Re: Beitrag nachträglich ergänzen aber nicht ändern?
Vielen Dank paddle!
Funktioniert - gerade getestet
Das einzige was noch schöner wäre, als diese Lösung, wenn man auch zwischen dem bereits geschriebenen Text ergänzen könnte, statt nur unter dem Text. Dafür hast nicht auch einen Tipp bereit?
Danke nochmals
Funktioniert - gerade getestet

Danke nochmals
Meine Website: http://www.freie-bildung.ch
Mein Forum: http://www.freie-bildung.ch/forum
Version: 3.0.11 / Style prosilver
Mein Forum: http://www.freie-bildung.ch/forum
Version: 3.0.11 / Style prosilver
Re: Beitrag nachträglich ergänzen aber nicht ändern?
Das einzige was mir dazu einfällt, was einfach umzusetzen wäre, wäre zu überprüfen, ob der neue Beitrag länger ist, als der alte, anstatt zu überprüfen, ob der alte Beitrag vorne steht.
Das hat allerdings den Nachteil, dass diejenigen, die Chaos stiften wollen, einfach ein Beitrag mit Zufallszeichen füllen um auf den alten Beitrag zu kommen.
---------------
Und 5 min weiter drüber nachgedacht, könnte man das auch so machen:
Nun muss im neuen Post jedes Wort des alten Posts in der gleichen Reihenfolge vorkommen. Allerdings darf an den Leerzeichen weitere Zeichen eingefügt werden. Ebenso vor und nach dem ursprünglichen Beitrag.
Den Code da ersetzt du mit dem Code, welchen du bereits ersetzt hast.
Das hat allerdings den Nachteil, dass diejenigen, die Chaos stiften wollen, einfach ein Beitrag mit Zufallszeichen füllen um auf den alten Beitrag zu kommen.
---------------
Und 5 min weiter drüber nachgedacht, könnte man das auch so machen:
Code: Alles auswählen
else if ($mode == 'edit')
{
$post_mode = ($data['topic_replies_real'] == 0) ? 'edit_topic' : (($data['topic_first_post_id'] == $data['post_id']) ? 'edit_first_post' : (($data['topic_last_post_id'] == $data['post_id']) ? 'edit_last_post' : 'edit'));
if (!$auth->acl_gets('a_', 'm_'))
{
$cur_post_id = $data['post_id'];
$sql = 'SELECT post_text, post_id FROM ' . POSTS_TABLE . ' WHERE post_id = ' . $cur_post_id;
$result = $db->sql_query($sql);
if ($row = $db->sql_fetchrow($result) )
{
$cur_message = $row['post_text'];
}
//replace all spaces with a placeholder
$message_pattern = str_replace(' ', '.*', $cur_message);
$message_pattern = '/.*' . $message_pattern . '.*/';
print $message_pattern;
//check, if user just append something, else forbid the edit
if(preg_match($message_pattern, $data['message']) !== 1) {
trigger_error($user->lang['ONLY_ATTACHING_ALLOWED']);
}
}
}
Den Code da ersetzt du mit dem Code, welchen du bereits ersetzt hast.
-
- Mitglied
- Beiträge: 325
- Registriert: 05.05.2012 08:57
Re: Beitrag nachträglich ergänzen aber nicht ändern?
Also hab ich dich richtig verstanden, dass ich den Code vom letzten Beitrag "über" den Code den du im ersten Beitrag geschrieben hast ersetzen soll?
Das gibt mir nämlich eine Warnung:
Warning: Cannot modify header information - headers already sent by (....../includes/functions_posting.php:1688) in .... includes/functions.php on line 4785, 4787, 4788, 4789
Das gibt mir nämlich eine Warnung:
Warning: Cannot modify header information - headers already sent by (....../includes/functions_posting.php:1688) in .... includes/functions.php on line 4785, 4787, 4788, 4789
Meine Website: http://www.freie-bildung.ch
Mein Forum: http://www.freie-bildung.ch/forum
Version: 3.0.11 / Style prosilver
Mein Forum: http://www.freie-bildung.ch/forum
Version: 3.0.11 / Style prosilver
Re: Beitrag nachträglich ergänzen aber nicht ändern?
Genauso meint ich das.
Damit wir uns nicht missverstehen:
Datei:
Suche:
Ersetze mit:
Da sollte eigentlich keine Fehlermeldung erscheinen.
Poste ansonsten mal den eingefügten Code mit 10 Zeilen darüber und darunter.
Damit wir uns nicht missverstehen:
Datei:
includes/functions_posting.php
Suche:
Code: Alles auswählen
else if ($mode == 'edit')
{
$post_mode = ($data['topic_replies_real'] == 0) ? 'edit_topic' : (($data['topic_first_post_id'] == $data['post_id']) ? 'edit_first_post' : (($data['topic_last_post_id'] == $data['post_id']) ? 'edit_last_post' : 'edit'));
if (!$auth->acl_gets('a_', 'm_'))
{
$cur_post_id = $data['post_id'];
$sql = 'SELECT post_text, post_id FROM ' . POSTS_TABLE . ' WHERE post_id = ' . $cur_post_id;
$result = $db->sql_query($sql);
if ($row = $db->sql_fetchrow($result) )
{
$cur_message = $row['post_text'];
}
//check, if user just append something, else forbid the edit
if (stripos( $data['message'], $cur_message) !== 0)
{
trigger_error($user->lang['ONLY_ATTACHING_ALLOWED']);
}
}
}
Code: Alles auswählen
else if ($mode == 'edit')
{
$post_mode = ($data['topic_replies_real'] == 0) ? 'edit_topic' : (($data['topic_first_post_id'] == $data['post_id']) ? 'edit_first_post' : (($data['topic_last_post_id'] == $data['post_id']) ? 'edit_last_post' : 'edit'));
if (!$auth->acl_gets('a_', 'm_'))
{
$cur_post_id = $data['post_id'];
$sql = 'SELECT post_text, post_id FROM ' . POSTS_TABLE . ' WHERE post_id = ' . $cur_post_id;
$result = $db->sql_query($sql);
if ($row = $db->sql_fetchrow($result) )
{
$cur_message = $row['post_text'];
}
//replace all spaces with a placeholder
$message_pattern = str_replace(' ', '.*', $cur_message);
$message_pattern = '/.*' . $message_pattern . '.*/';
print $message_pattern;
//check, if user just append something, else forbid the edit
if(preg_match($message_pattern, $data['message']) !== 1) {
trigger_error($user->lang['ONLY_ATTACHING_ALLOWED']);
}
}
}
Da sollte eigentlich keine Fehlermeldung erscheinen.
Poste ansonsten mal den eingefügten Code mit 10 Zeilen darüber und darunter.
-
- Mitglied
- Beiträge: 325
- Registriert: 05.05.2012 08:57
Re: Beitrag nachträglich ergänzen aber nicht ändern?
Guten Morgen
Okay, das hatte ich auch so gemacht. Der Fehler besteht:
Der Code sieht so aus:

Okay, das hatte ich auch so gemacht. Der Fehler besteht:
Der Code sieht so aus:
Code: Alles auswählen
sync('topic_reported', 'topic_id', array($topic_id));
}
return $next_post_id;
}
/**
* Submit Post
* @todo Split up and create lightweight, simple API for this.
*/
function submit_post($mode, $subject, $username, $topic_type, &$poll, &$data, $update_message = true, $update_search_index = true)
{
global $db, $auth, $user, $config, $phpEx, $template, $phpbb_root_path;
// We do not handle erasing posts here
if ($mode == 'delete')
{
return false;
}
$current_time = time();
if ($mode == 'post')
{
$post_mode = 'post';
$update_message = true;
}
else if ($mode != 'edit')
{
$post_mode = 'reply';
$update_message = true;
}
else if ($mode == 'edit')
{
$post_mode = ($data['topic_replies_real'] == 0) ? 'edit_topic' : (($data['topic_first_post_id'] == $data['post_id']) ? 'edit_first_post' : (($data['topic_last_post_id'] == $data['post_id']) ? 'edit_last_post' : 'edit'));
if (!$auth->acl_gets('a_', 'm_'))
{
$cur_post_id = $data['post_id'];
$sql = 'SELECT post_text, post_id FROM ' . POSTS_TABLE . ' WHERE post_id = ' . $cur_post_id;
$result = $db->sql_query($sql);
if ($row = $db->sql_fetchrow($result) )
{
$cur_message = $row['post_text'];
}
//replace all spaces with a placeholder
$message_pattern = str_replace(' ', '.*', $cur_message);
$message_pattern = '/.*' . $message_pattern . '.*/';
print $message_pattern;
//check, if user just append something, else forbid the edit
if(preg_match($message_pattern, $data['message']) !== 1) {
trigger_error($user->lang['ONLY_ATTACHING_ALLOWED']);
}
}
}
// First of all make sure the subject and topic title are having the correct length.
// To achieve this without cutting off between special chars we convert to an array and then count the elements.
$subject = truncate_string($subject);
$data['topic_title'] = truncate_string($data['topic_title']);
// Collect some basic information about which tables and which rows to update/insert
$sql_data = $topic_row = array();
$poster_id = ($mode == 'edit') ? $data['poster_id'] : (int) $user->data['user_id'];
// Retrieve some additional information if not present
if ($mode == 'edit' && (!isset($data['post_approved']) || !isset($data['topic_approved']) || $data['post_approved'] === false || $data['topic_approved'] === false))
{
$sql = 'SELECT p.post_approved, t.topic_type, t.topic_replies, t.topic_replies_real, t.topic_approved
FROM ' . TOPICS_TABLE . ' t, ' . POSTS_TABLE . ' p
WHERE t.topic_id = p.topic_id
AND p.post_id = ' . $data['post_id'];
$result = $db->sql_query($sql);
$topic_row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
$data['topic_approved'] = $topic_row['topic_approved'];
$data['post_approved'] = $topic_row['post_approved'];
}
Meine Website: http://www.freie-bildung.ch
Mein Forum: http://www.freie-bildung.ch/forum
Version: 3.0.11 / Style prosilver
Mein Forum: http://www.freie-bildung.ch/forum
Version: 3.0.11 / Style prosilver
Re: Beitrag nachträglich ergänzen aber nicht ändern?
Das verstehe ich nicht.
Bei mir lokal läuft das ohne Probleme.
Da ist noch eine Zeile zu viel sehe ich gerade, die ich zu Debug-Zwecken eingebaut hatte.
Die Zeile:
Der Code ist richtig eingefügt.
Welche Version von PHP und phpBB nutzt du denn?
Bei mir lokal läuft das ohne Probleme.
Da ist noch eine Zeile zu viel sehe ich gerade, die ich zu Debug-Zwecken eingebaut hatte.
Die Zeile:
print $message_pattern;
kannst du getrost löschen, auch wenn sie nicht den Fehler verursachen sollte.Der Code ist richtig eingefügt.
Welche Version von PHP und phpBB nutzt du denn?
-
- Mitglied
- Beiträge: 325
- Registriert: 05.05.2012 08:57
Re: Beitrag nachträglich ergänzen aber nicht ändern?
Hallo
Also ich nutze momentan noch 3.0.12 und PHP 5 läuft.
Also ich nutze momentan noch 3.0.12 und PHP 5 läuft.
Meine Website: http://www.freie-bildung.ch
Mein Forum: http://www.freie-bildung.ch/forum
Version: 3.0.11 / Style prosilver
Mein Forum: http://www.freie-bildung.ch/forum
Version: 3.0.11 / Style prosilver
Re: Beitrag nachträglich ergänzen aber nicht ändern?
Wann genau wird denn die Warnung ausgegeben?
Wenn du versuchst einen modifizierten Beitrag abzuschicken, oder schon beim Aufruf des Forums?
Ich kann die Warnung hier grad nicht nachvollziehen, dass macht ein Fehlerfinden recht schwer.
Wenn du versuchst einen modifizierten Beitrag abzuschicken, oder schon beim Aufruf des Forums?
Ich kann die Warnung hier grad nicht nachvollziehen, dass macht ein Fehlerfinden recht schwer.