[Beta] DM-TopicDone

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
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.
Dave
Mitglied
Beiträge: 2085
Registriert: 25.05.2003 15:03
Wohnort: Wuppertal

Beitrag von Dave »

Hi

Code: Alles auswählen

// BEGIN DM-TopicDone
if ($isdone == 'yes')
{
		$sql = 'UPDATE ' . TOPICS_TABLE . '
			SET topic_done = 1
			WHERE topic_id = ' . $donetopic;
		$db->sql_query($sql);

	$redirect_url = append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $forum_id);
	redirect($redirect_url);
}
if ($isdone == 'no')
{
		$sql = 'UPDATE ' . TOPICS_TABLE . '
			SET topic_done = 0
			WHERE topic_id = ' . $donetopic;
		$db->sql_query($sql);

	$redirect_url = append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $forum_id);
	redirect($redirect_url);
}
// END DM-TopicDone
An der stelle fehlt die überprüfung ob man überhaupt die berechtigung zum ändern hat ;) Würde auch das ganze eher per true und false machen aber das is ja geschmackssache :D

Code: Alles auswählen

//BEGIN DM_TopicDone
			'TOPIC_DONE'		=> (($user->data['user_id'] == $row['topic_poster'] && $auth->acl_get('f_edit', $forum_id)) || $auth->acl_get('m_edit', $forum_id)) ? (($row['topic_done'] == 1) ? '[<a href="viewforum.php?f='.$forum_id.'&dt='.$topic_id.'&done=no"><span class="DMdone">' . $user->lang['DMDONE'] . '</span></a>]' : '[<a href="viewforum.php?f='.$forum_id.'&dt='.$topic_id.'&done=yes"><span class="DMdonenot">' . $user->lang['DMNDONE'] . '</span></a>]') : (($row['topic_done'] == 1) ? '[<span class="DMdone">' . $user->lang['DMDONE'] . '</span>]' : '[<span class="DMdonenot">' . $user->lang['DMNDONE'] . '</span>]'),
//END DM_TopicDone
Das html solltest du wohl eher in die template datei verschieben ;) Außerdem gibt es die funktion append_sid() damit die session nicht verloren geht. Habe dafür auch mal eben was gebastelt. Aber keine garantie das es klappt :D
php:

Code: Alles auswählen

$is_topic_done			=> ($row['topic_done'] == 1) ? 'yes' : 'no';
'U_TOPIC_DONE'			=> append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $forum_id . '&dt=' . $topic_id . '&done=' . $is_topic_done),
'S_CAN_TOPIC_DONE_EDIT'	=> (($user->data['user_id'] == $row['topic_poster'] && $auth->acl_get('f_edit', $forum_id)) || $auth->acl_get('m_edit', $forum_id)) ? true : false,
'S_IS_TOPIC_DONE'		=> ($row['topic_done'] == 1) ? true : false,
template:

Code: Alles auswählen

<!-- IF S_CAN_TOPIC_DONE_EDIT -->[<a href="{U_TOPIC_DONE}"><span class="<!-- IF S_IS_TOPIC_DONE -->DMdone<!-- ELSE -->DMdonenot<!-- ENDIF -->"><!-- IF S_IS_TOPIC_DONE -->'{L_DMDONE}'<!-- ELSE -->'{DMNDONE}'<!-- ENDIF --></span></a>]<!-- ELSE -->[<span class="<!-- IF S_IS_TOPIC_DONE -->DMdone<!-- ELSE -->DMdonenot<!-- ENDIF -->"><!-- IF S_IS_TOPIC_DONE -->'{{L_DMDONE}}'<!-- ELSE -->'{DMNDONE}'<!-- ENDIF --></span>]<!-- ENDIF -->
Jan Kaiser ET

Beitrag von Jan Kaiser ET »

Gefällt mir sehr gut,
sehr nützlich!

Nur was ich mir wünschen würde wäre einfach ein Link
"Thread als gelöst markieren" und dann ist dieser [gelöst]

Das hat den einfachen Grund,
dass in meinem Forum viel diskutiert wird,
eine Menge auch geboten wird und es mit der Edit-Funktion
immer mal Betrüger gegeben hat (in Diskussionen),
dafür habe ich die Editier Funktion auf 15 Minuten begrenzt,
da ist dann der Nachteil dieses MODs, dass der Thread-Autor
seinen Beitrag nichtmehr als [gelöst] markieren kann,
weil er den Beitrag nicht mehr ändern kann.

Liebe Grüße
Jan
Benutzeravatar
Pionier
Mitglied
Beiträge: 232
Registriert: 29.12.2007 19:55
Wohnort: Niebüll (S-H)
Kontaktdaten:

Beitrag von Pionier »

Ich finde den Mod sehr vielversprechend.
Die Version mir dem Drop-Down-Menu würde mir eher zusagen.
Als Wunsch hätte ich da noch die Anmerkung, dass man im ACP einstellen kann, wer (Admin, Moderator, User) den Präfix vergeben kann.
EugenM
Mitglied
Beiträge: 6
Registriert: 20.11.2008 08:11

Finde diese zeile nicht

Beitrag von EugenM »

ich finde in der "includes\functions_posting.php die folgende zeile nicht.
mache ich was falsch??

'topic_approved' => (!$auth->acl_get('f_noapprove', $data['forum_id']) && !$auth->acl_get('m_approve', $data['forum_id'])) ? 0 : 1,
Futurestar
Mitglied
Beiträge: 274
Registriert: 11.01.2004 03:38
Wohnort: Greifswald
Kontaktdaten:

Beitrag von Futurestar »

Sehr vielversprechend das ganze, auch ebenso sehr nützlich.
Jedoch vermisse ich was in der Anleitung und zwar der Einbau für subsilver2.
wird es eine Umsetzung für den Style-Bereich geben?
Niklas.TT.SB
Mitglied
Beiträge: 143
Registriert: 28.02.2008 21:13

Beitrag von Niklas.TT.SB »

Netter MOD.
Ich denke den baue ich bei mir irgendwann auch ein mit 2-3 Änderungen in der common.php

LG,
Niklas
CrazyAlien
Mitglied
Beiträge: 23
Registriert: 19.09.2006 21:12

Beitrag von CrazyAlien »

Hi! Finde den Mod auch sehr gut.
Habe ihn ebend mal auf einen frischen phpbb 3.03 eingebaut.
Klappt alles soweit mit dem einstellen im ACP und dem anzeigen der Topic Namen.
Aber wenn ich mit "Kennzeichnet das Topic als erledigt" antworte ändert sich nix.
Wenn ich den Topic Namen durch ändern als erledigt kennzeichnen möchte kommt:

Code: Alles auswählen

SQL ERROR [ mysqli ]

Column 'topic_done' cannot be null [1048]

SQL

UPDATE phpbb_topics SET forum_id = 4, icon_id = 0, topic_done = NULL, topic_approved = '1', topic_title = 'TestTopic', topic_first_poster_name = 'D3xT3r', topic_type = 0, topic_time_limit = 0, poll_title = '', poll_start = 0, poll_max_options = 1, poll_length = 0, poll_vote_change = 0, topic_attachment = 0 WHERE topic_id = 7

BACKTRACE

FILE: includes/db/mysqli.php
LINE: 163
CALL: dbal->sql_error()

FILE: includes/functions_posting.php
LINE: 1960
CALL: dbal_mysqli->sql_query()

FILE: posting.php
LINE: 1009
CALL: submit_post()
Benutzeravatar
Daryl van Horne
Mitglied
Beiträge: 936
Registriert: 08.07.2008 01:25
Kontaktdaten:

Re: [Beta] DM-TopicDone

Beitrag von Daryl van Horne »

Amaya hat geschrieben:Description:
Mit diesem MOD werden in der Topicübersicht Präfixe zum Topicnamen hinzugefügt, die den aktuellen Status des Topics angeben (Standartmäßig aktuell oder erledigt), der Status kann entweder beim Editieren des ersten Beitrags eines Topics geändert werden, beim Antworten oder direkt in der Viewforum-Ansicht. Der Topicstatus darf in der Viewforum-Ansicht nur von denjenigen geändert werden, die auch den ersten Beitrag des jeweiligen Themas editieren dürften, außerdem lässt sich diese Funktion für jedes Forum an und aus schalten. Außerdem besteht die Möglichkeit für jedes Forum einzeln festzulegen, ob auch das Reaktivieren erledigter Threads für andere User als den Topicstarter erlaubt werden soll, wenn diese auf den Beitrag antworten.

Version: 0.2.0
Installation Level: Easy
Installation Time: ~20 minutes

Demo: http://mods.demonicplayground.com/
In der Testarea könnt ihr als registrierte User das Umschalten in der Viewforum-Ansicht ausprobieren, wenn ihr ein neues Thema erstellt. Ohne Registrierung könnt ihr euch die Präfixe nur ansehen, aber nicht das Umschalten testen.

Testaccount
Name: Tester
Passwort: dmtopicdone

Download: 0.2.0

Möchte an der Stelle nochmal danke an Metzle, Mahony und nickvergessen sagen und bitte um fleißiges testen und Feedback, ist erst mein zweiter Versuch ein MOD öffentlich zu stellen, man möge mir Fehler verzeihen und mir umgehend mitteilen. :lol:
tolle sache... na dahat doch mal jemand eine idee gehabt... werd ich demnächt mal bei mir einbauen...
Zuletzt geändert von Daryl van Horne am 09.12.2008 06:39, insgesamt 1-mal geändert.
Fettflecken halten länger, wenn man sie ab und zu mit Butter einreibt. :D http://www.00493088535469.de/
CrazyAlien
Mitglied
Beiträge: 23
Registriert: 19.09.2006 21:12

Beitrag von CrazyAlien »

Das mit meinem SQL ERROR hat sich erledigt.
Ich sag mal .... es war schon spät. :oops:
Funzt also alles prächtig.

Ich hab da trotzdem noch eine Frage:
Wie könnte ich es hinbekommen das nur eine bestimmte Gruppe die Möglichkeit besitzt den Status zu ändern?
Antworten

Zurück zu „[3.0.x] Mods in Entwicklung“