Seite 2 von 3

Verfasst: So 29.Mai, 2005 09:16
von Max
Hi,


das war gestern mein erster Versuch, das dort unter zu bringen - leider muss man dann schon beim Absenden eines neuen Themas die Editmessage von mindestens 10 Zeichen eingeben.
In den Bereichen, die ich dann der Editfunktion zugesprochen habe, hat sich dann garnichts getan, aber bei mir sah der Code noch ein klein Wenig anders aus, war weniger speziell.




Gruß Max

Verfasst: So 29.Mai, 2005 09:25
von Bootenks
teste ihn einfach. bei mir hat der so geklappt ^^

Verfasst: So 29.Mai, 2005 09:36
von Max
Hi,


man muss so beim Editieren eine Nachricht eingeben.

Aber man muss diese Nachricht auch beim Absenden einer Antwort oder eben auch bei neuen Topics angeben.

Siehe: www.ssv-forum.de/forum (ist nur zum Testen online - man kann also nichts verhauen)
Nick: user
PW: test

Gruß Max

Verfasst: So 29.Mai, 2005 10:14
von Bootenks
EDIT: So getestet:

ändere den Code in diesen:

Code: Alles auswählen

	if($mode == 'editpost')
	{
		$fill_reason = $_POST['reasoning'];
		$fill_reason = trim($fill_reason);
		$fill_reason_admo = $_POST['reasoning2'];
		$fill_reason_admo = trim($fill_reason_admo);

		if ((strlen($fill_reason) < 10) && (strlen($fill_reason_admo) < 10))
		{
			$error_msg = $lang['reasoning_empty'];
			$error = true;
		}
	}
Mod angepasst!

http://www.oxpus.de/fpost-33518.html#33518

Verfasst: So 29.Mai, 2005 13:36
von Max
Hallo,



es funktioniert.

Mir ist nur aufgefallen, dass im Firefox das Feld für die Begründungsabfrage beim Editieren schmaler ist als die Textbox für den Beitrag.

Ansonsten funktioniert alles bestens.



Danke und Gruß,
Max

Verfasst: So 29.Mai, 2005 14:50
von Bootenks
und läuft auch so wie gewünscht? würde gern wissen ob du zufrieden bist

Verfasst: So 29.Mai, 2005 15:03
von Stoebi
Hallo Bootenks,

ich hab eben gerade dein Mod (1.0.1) installiert.
Leider bekomme ich nach dem Absenden des Beitrages folgende Fehlermeldung:
In einem XML-Dokument ist nur ein Element höchster Ebene zugelassen. Fehler beim Bearbeiten der Ressource 'http://localhost...

<b>Warning</b>: Missing argument 31 for submit_post() in <b>D:\apachefriends\xampp\htdocs\board\includes\...</b>

Das ... wird echt nicht weitergeführt. Es kann sich aber nur um die Datei functions_post.php handeln.

Dazu ist mir auch folgende Zeile aufgefallen.
Du schreibst:

Code: Alles auswählen

#
#-----[ BEFORE, ADD ]------------------------------------------------
# 
	$sql_edit_reason = (!empty ($edit_reason) ? ", post_edit_reason = '$edit_reason'" : (!empty ($edit_reason_admo) ? ", post_edit_reason_admo = '$edit_reason_admo'" : ''));

#
#-----[ IN-LINE FIND ]----------------------------------------
# 
post_subject = '$post_subject'

#
#-----[ IN-LINE AFTER, ADD ]----------------------------------
# (without comma, no mistake)
 $sql_edit_reason
Die Zeile kann doch nicht wirklich so aussehen?
post_subject = '$post_subject' $sql_edit_reason WHERE post_id = $post_id";

Aber auch mit einem Komma bekomme ich diese Fehlermeldung.

Nutze hier ein phpbb2 Plus 1.52 Board.

Ich werde aber auch noch einmal alle Zeilen durchgehen, vielleicht habe ich auch einen Fehler gemacht.


Gruß Stöbi


Nachtrag:
Die Zeile submit_post() in meiner Datei functions_post.php sieht so aus:

Code: Alles auswählen

function submit_post($mode, &$post_data, &$message, &$meta, &$forum_id, &$topic_id, &$post_id, &$poll_id, &$topic_type, &$bbcode_on, &$html_on, &$smilies_on, &$attach_sig, &$bbcode_uid, &$post_username, &$post_subject, &$post_message, &$poll_title, &$poll_options, &$poll_length, &$edit_reason, &$edit_reason_admo, &$max_vote, &$hide_vote, &$tothide_vote, &$topic_desc, $topic_announce_duration = 0, $post_icon = 0, $topic_calendar_time = 0, $topic_calendar_duration = 0, &$news_category)

Nachtrag2:
Wie soll es auch anders sein. Es war mein Fehler.
Hab in der posting.php das Einfügen in der Zeile submit_post($mode .... übersehen.

BTW.
Mir gefällt dein Mod sehr gut. Muss nur noch einige kosmetische Fehler wegen fisubsilversh
korrigieren, dann mach ich noch ein paar Tests, dann wird Online gestellt.

Klasse Idee, klasse Leistung. Hervorragend. ^b

Dank dir/euch.


Die einzige Idee, die mir so spontan einfällt. Nicht gezwungen zu werden, einen Grund anzugeben.

Verfasst: So 29.Mai, 2005 15:21
von Bootenks
guck mal ob du in der posting.php die folgende Zeile auch eingefügt hast:

Code: Alles auswählen

#
#-----[ FIND ]------------------------------------------------
# 
				submit_post($mode, $post_data, $return_message, $return_meta, $forum_id, $topic_id, $post_id, $poll_id, $topic_type, $bbcode_on, $html_on, $smilies_on, $attach_sig, $bbcode_uid, str_replace("\'", "''", $username), str_replace("\'", "''", $subject), str_replace("\'", "''", $message), str_replace("\'", "''", $poll_title), $poll_options, $poll_length);

#
#-----[ IN-LINE FIND ]----------------------------------------
# 
, $poll_length

#
#-----[ IN-LINE AFTER, ADD ]----------------------------------
# 
, str_replace("\'", "''", $edit_reason), str_replace("\'", "''", $edit_reason_admo)

Und der Code ist richtig! den du da bezweifelst.

oder besser: schick mir mal die functions_post.php und die posting.php als Attachment.

Verfasst: So 29.Mai, 2005 15:26
von Stoebi
Dank dir Bootenks, dass du dich sofort bereit erklärst, mir helfen zu wollen.
Es war echt mal wieder eigene Dämlichkeit.

Ich versuche gerade zu erreichen, dass der Admin nicht gezungen wird,
einen Grund anzugeben.


Gruß Stöbi

Verfasst: So 29.Mai, 2005 15:29
von Bootenks
aso du mienst also das der Admin und der Mod nicht gezwungen werden oder wie jetzt? Das ist ganz einfach du musst einfach die folgende Änderung machen:

das:

Code: Alles auswählen

	if($mode == 'editpost')
	{
		$fill_reason = $_POST['reasoning'];
		$fill_reason = trim($fill_reason);
		$fill_reason_admo = $_POST['reasoning2'];
		$fill_reason_admo = trim($fill_reason_admo);

		if ((strlen($fill_reason) < 10) && (strlen($fill_reason_admo) < 10))
		{
			$error_msg = $lang['reasoning_empty'];
			$error = true;
		}
	}
zu dem:

Code: Alles auswählen

	if($mode == 'editpost')
	{
		$fill_reason = $_POST['reasoning'];
		$fill_reason = trim($fill_reason);

		if (strlen($fill_reason) < 10)
		{
			$error_msg = $lang['reasoning_empty'];
			$error = true;
		}
	}
und schon werden nur die Poster gewzungen welche nur REG Rechte haben

Verfasst: So 29.Mai, 2005 16:07
von Stoebi
[quote="Bootenks - So 29.Mai, 2005 15:29";p="33661"]aso du mienst also das der Admin und der Mod nicht gezwungen werden oder wie jetzt? Das ist ganz einfach du musst einfach die folgende Änderung machen:

das:

Code: Alles auswählen

	if($mode == 'editpost')
	{
		$fill_reason = $_POST['reasoning'];
		$fill_reason = trim($fill_reason);
		$fill_reason_admo = $_POST['reasoning2'];
		$fill_reason_admo = trim($fill_reason_admo);

		if ((strlen($fill_reason) < 10) && (strlen($fill_reason_admo) < 10))
		{
			$error_msg = $lang['reasoning_empty'];
			$error = true;
		}
	}
zu dem:

Code: Alles auswählen

	if($mode == 'editpost')
	{
		$fill_reason = $_POST['reasoning'];
		$fill_reason = trim($fill_reason);

		if (strlen($fill_reason) < 10)
		{
			$error_msg = $lang['reasoning_empty'];
			$error = true;
		}
	}
und schon werden nur die Poster gewzungen welche nur REG Rechte haben[/quote]

Tut mir leid, Bootenks.
Ich bekomme immer noch die Meldung als Admin:
Ihre Begründung ist kürzer als die vorgeschriebenen 10 Zeichen!

Gruß Stöbi

Verfasst: So 29.Mai, 2005 16:09
von oxpus

Code: Alles auswählen

 if (strlen($fill_reason) < 10)
dann mit

Code: Alles auswählen

 if (strlen($fill_reason) < 10 && $userdata['user_level'] != ADMIN)
ersetzen.

Verfasst: So 29.Mai, 2005 16:09
von Max
[quote="Bootenks - So 29.Mai, 2005 14:50";p="33657"]und läuft auch so wie gewünscht? würde gern wissen ob du zufrieden bist[/quote]


Na klar :)

Wie ich schon sagte, es funktioniert alles bestens!

Also die Eingabe für den Editgrund ist eine feine Sache, da so immer ersichtlich wird, warum was editiert wurde - ist für den Leser schöner.


Das Einzige, woran man mal feilen könnte (nicht muss!) wäre, dass man, wenn man als Admin seinen eigenen Beitrag editiert, nachher dort stehen hat, dass der Beitrag von Mod/Admin editiert wurde - das sieht dann etwas bitter aus, wenn man als Admin seinen eigenen Beitrag befummelt hat.

Aber wie gesagt, das ist nicht zwingend notwendig, vielleicht lasse ich mir dafür eine Wortwahlanpassung einfallen, gekoppelt mit Farbe in der Ansicht oder so.




Gruß Max

Verfasst: So 29.Mai, 2005 16:10
von Bootenks
achja sorry ^^"

Code: Alles auswählen

	if($mode == 'editpost')
	{
		$fill_reason = $_POST['reasoning'];
		$fill_reason = trim($fill_reason);
		$fill_reason_admo = $_POST['reasoning2'];
		$fill_reason_admo = trim($fill_reason_admo);

		if ((strlen($fill_reason) < 10) && (strlen($fill_reason_admo) < 10))
		{
			$error_msg = $lang['reasoning_empty'];
			$error = true;
		}
	}
zu dem:

Code: Alles auswählen

	if($mode == 'editpost' && ( $userdata['user_level'] != ADMIN || $userdata['user_level'] != MOD ) )
	{
		$fill_reason = $_POST['reasoning'];
		$fill_reason = trim($fill_reason);

		if (strlen($fill_reason) < 10)
		{
			$error_msg = $lang['reasoning_empty'];
			$error = true;
		}
	}
war mein Fehler *rot werd*

Verfasst: So 29.Mai, 2005 16:16
von Stoebi
Ihr seid echt spitzenmässig.

Habt nochmals vielen Dank. Funktioniert perfekt jetzt.


Gruß Stöbi


Verbesserungsvorschlag. Aber nur wenn Zeit ist.
Wenn ich als Admin den Grund wegeditiere, bleibt dieser trotzdem nach dem Absenden des Beitrages erhalten.

Beispiel:
Ich hab meinen Beitrag editiert und einen Grund angegeben:
Von Admin/Mod editiert! Grund: dies ist ein Test

Danach hab ich den Beitrag wieder editiert und hab aber den Text "dies ist ein Test" gelöscht.
Nach dem dem Abenden des Beitrag bleibt dieser aber erhalten:
Von Admin/Mod editiert! Grund: dies ist ein Test


Gruß Stöbi

Verfasst: So 29.Mai, 2005 16:24
von Bootenks
ok darum kümmere ich mich heute noch ^^ Aber ich nahm bis jetzt an dass man einen solchen Text mindestens haben muss... Da ja jetzt der Mod und Admin in deiner Version ausgenommen sind muss ich da nochmal schauen wo ich eine Zeile noch einfügen muss. ^^

Verfasst: So 29.Mai, 2005 16:32
von Stoebi
Ich hab da gleich noch einen Wunsch.

Ich hab mal als Registrierter User (Testuser) einen Text editiert:
Grund für Ihre Editierung: Ich liebe euch doch alle!

Dann hab ich als Admin den Text von Testuser editiert:
Grund für Ihre Editierung: Ich liebe euch doch alle!
Von Admin/Mod editiert! Grund: Test Test Test

Das ist übrigens so super genial gelöst.


Mein Wunsch wäre, wenn ich als Admin den Text von Testuser editiere,
ich auch den Grund von diesen löschen/editieren könnte.


Gruß Stöbi


Falls von Interesse, damit es auch mit Firefox gut aussieht, hab ich
style="width:450"
in
style="width:450px; margin-left:1px"
abgeändert.

Und als fiSubsilverSh Nutzer habe ich
<span class="gen">
in
<span class="explaintitle">
abgeändert.

Sieht dann wieder "einheitlicher" aus.


Nachtrag: 18:00 Uhr _ 29-05-2005
Wenn ich deine Zeile verwende:

Code: Alles auswählen

if($mode == 'editpost' && ( $userdata['user_level'] != ADMIN || $userdata['user_level'] != MOD ) )
Es kann mein Moderator überhaupt keinen Beitrag editieren, egal wieviele Zeichen eingeben sind zur Begründung der Editierung, also egal ob 1 oder 100 Zeichen, es kommt die Meldung:
Ihre Begründung ist kürzer als die vorgeschriebenen 10 Zeichen!

Ändere ich Zeile aber so um:

Code: Alles auswählen

if($mode == 'editpost' && ( $userdata['user_level'] != ADMIN && $userdata['user_level'] != MOD ) )
Dann kann der Moderator entweder keine Begründung abgeben oder eben doch, wenn er dies möchte.

Aber logisch finde ich das nicht.
Wenn der Modus 'editpost' ausgewählt wurde und der User Level nicht Administrator und der User Level nicht Moderator ist dann ...

Dann funktioniert wie eben erwähnt es soweit einwandfrei.

Dabei wäre es doch egal, ob es ein "oder" wäre, also:
Wenn der Modus 'editpost' ausgewählt wurde und der User Level nicht Administrator oder der User Level nicht Moderator ist ...

Warum funktioniert das mit der oder Abfrage nicht?

Kurios.


Gruß Stöbi

Verfasst: So 29.Mai, 2005 18:51
von Bootenks
aso ja logisch ^^"""

naja wenn du sagst dass entweder edit_post + ( nicht Admin oder nicht MOD) dann bedeutet das aufgesplittet:

wenn edit_post + nicht Mod oder edit_post + nicht Admin => und ein oder brauch nur 1 korrekte Bedinung... Also wenn er Mod ist dann ist er ja nicht Admin und deshalb stimmt die Bedinung... Deshalb war das auch falsch was ich geschrieben habe... Ich darf nicht zwei Sachen auf einmal machen... Bin imo am Smilie Add-On mit den Benutzerrechten dran ^^"

Wie du schon sagtest muss alles mit einem && verknüpft werden... dann klappts auch wieder...

Code: Alles auswählen

if($mode == 'editpost' && $userdata['user_level'] != ADMIN && $userdata['user_level'] != MOD ) )

Verfasst: So 26.Jun, 2005 17:26
von Stoebi
[quote="Bootenks - So 29.Mai, 2005 18:51";p="33700"]aso ja logisch ^^"""

naja wenn du sagst dass entweder edit_post + ( nicht Admin oder nicht MOD) dann bedeutet das aufgesplittet:

wenn edit_post + nicht Mod oder edit_post + nicht Admin => und ein oder brauch nur 1 korrekte Bedinung... Also wenn er Mod ist dann ist er ja nicht Admin und deshalb stimmt die Bedinung... Deshalb war das auch falsch was ich geschrieben habe... Ich darf nicht zwei Sachen auf einmal machen... Bin imo am Smilie Add-On mit den Benutzerrechten dran ^^"

Wie du schon sagtest muss alles mit einem && verknüpft werden... dann klappts auch wieder...

Code: Alles auswählen

if($mode == 'editpost' && $userdata['user_level'] != ADMIN && $userdata['user_level'] != MOD ) )
[/quote]

Klappt soweit wunderbar. Herzlichen Dank. So kommt der MOD gut an.

Ich hätte da noch einige Wünsche.

Ich editiere als Admin einen Beitrag eines User oder meinen Beitrag, wo ich schon vorher einen Grund für die Editierung angab. Da wird der zuvor eingegebene Grund in die Message Box übernommen. Beim User, der seinen eigenen Beitrag editiert und vorher den Grund der Editierung angab, wird der vorher eingebene Grund der Editierung nicht übernommen. Ist wohl eher kosmetischer Natur. Könntest du das fixen?

Als Admin hätte ich gerne den Wunsch auch den Grund der Editierung des Users zu löschen bzw.
einzusehen, wenn ich dessen Beitrag editiere. Ist das irgendwie machbar?


Gruß Stöbi

Verfasst: So 26.Jun, 2005 20:41
von oxpus
Das ist so Absicht!

Verfasst: So 26.Jun, 2005 20:51
von Stoebi
Echt, alle beide Sachen, die ich vorgetragen habe?

Gruß Stöbi

Verfasst: So 26.Jun, 2005 21:30
von oxpus
Wenn ich Bootenks Ausführungen verstanden habe, ja.
Der User sollte immer einen neue Grund angeben und der alte wird dabei gelöscht.
Der Admin/Mod kann diesen ebenfalls neu eingeben und seinen ändern.

Verfasst: So 26.Jun, 2005 21:44
von Stoebi
[quote="oxpus - So 26.Jun, 2005 21:30";p="36913"]Wenn ich Bootenks Ausführungen verstanden habe, ja.
Der User sollte immer einen neue Grund angeben und der alte wird dabei gelöscht.
Der Admin/Mod kann diesen ebenfalls neu eingeben und seinen ändern.[/quote]

Verstehe. Aber weder der User noch der Admin kann seinen Grund auch wieder rückgängig machen.
Das finde ich eher unbefriedigt, einmal ein Grund angegeben, immer einen Grund angegeben.

Gibt leider auch ne Menge Spielkinder, die auch alles erst einmal ausprobieren. Und dann ist
nichts mehr mit zurückgängig machen.

Spielkinder nicht falsch verstehen. Ich bin ja froh, wenn einige die Neuerungen usw. auch austesten usw. usf. Zähle ich mich auch selbst dazu.


Gruß Stöbi

Verfasst: So 26.Jun, 2005 22:06
von oxpus
Das ist aber Sinn der Übung gewesen...

Verfasst: So 26.Jun, 2005 22:28
von Stoebi
[quote="oxpus - So 26.Jun, 2005 22:06";p="36925"]Das ist aber Sinn der Übung gewesen...[/quote]


Gut, ist vielleicht ein bischen exotisch mein Wunsch. Ich habe mir gerade noch mal den MOD angeschaut. Könnte man vielleicht auch selbst anpassen. Mal demnächst reinschauen.

Gruß Stöbi