[Final] Support Ticket System für phpBB3

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.
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12178
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Beitrag von Mahony »

Hallo
Danke @nickvergessen :D - Die Änderung wurde eingebaut.

Ich habe den MOD mal komplett überarbeitet und ihr könnt die neue Version nun testen.




Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Dave
Mitglied
Beiträge: 2085
Registriert: 25.05.2003 15:03
Wohnort: Wuppertal

Beitrag von Dave »

Ich hoffe ich darf noch ein paar fehler finden :D

Code: Alles auswählen

* Deutsche Übersetzung durch Mahony
In der Englischen Sprachdatei?
Anstatt die common.php zu benutzen würde ich lieber einmal die acp_forums.php bearbeiten mit ner ja nein auswahl ob es ein support forum ist. Sind nur 10 zeilen code mehr und wesentlich besser zu bedienen. Wenn du es lieber in einer datei haben willst dann packs in die constants.php da es da meiner meinung nach besser aufgehoben is.

Code: Alles auswählen

              $phpbbtype = utf8_normalize_nfc(request_var('phpbbtype', '' , true ));
              $phpbbmods = utf8_normalize_nfc(request_var('phpbbmods', '' , true ));
würde ich ersetzen mit:

Code: Alles auswählen

              $phpbbtype = request_var('phpbbtype', 0);
              $phpbbmods = request_var('phpbbmods', 0);
was anderes als ne zahl kann es ja nicht sein!? $phpbbknowledge auch?

Dann:

Code: Alles auswählen

$aktuellesforum = request_var('f', '');
wäre

Code: Alles auswählen

$aktuellesforum = request_var('f', 0);
wobei die foren_id schon in der variablen $forum_id und der modus in $mode steht. Also wieso nicht direkt weg lassen?

Wieso änderst du die fehlermeldung beim leerem subjekt? hat das nen besonderen grund?

Die Sprachvariablen bindest du auch zweimal ein... Einmal soll man sie in die common.php einfügen und das zweite mal bindest du sie über deine eigene sprachdatei ein.

Außerdem ist das template system bißchen anders beim phpBB3. So solltest du anstatt <!-- BEGIN ..... --> lieber <!-- IF .... -> benutzen. Da auch sämtliche switch dieser art mit S_ anfangen könntest du das direkt auch ändern.

Ich hoffe du bist nun nicht zu sauer :D

MfG
Dave
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12178
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Beitrag von Mahony »

Hallo

Danke für die Anregungen. :D
Dave hat geschrieben:Ich hoffe ich darf noch ein paar fehler finden :D

Code: Alles auswählen

* Deutsche Übersetzung durch Mahony
In der Englischen Sprachdatei?
Hm....stimmt - ich hatte einfach wohl etwas gepennt (aber das ist jetzt sowieso nicht mehr wichtig, da ich die Sprachdateien wieder heraus genommen habe und nur mit den common.php Sprachdateien arbeite).
Dave hat geschrieben: Anstatt die common.php zu benutzen würde ich lieber einmal die acp_forums.php bearbeiten mit ner ja nein auswahl ob es ein support forum ist. Sind nur 10 zeilen code mehr und wesentlich besser zu bedienen. Wenn du es lieber in einer datei haben willst dann packs in die constants.php da es da meiner meinung nach besser aufgehoben is.
Bei einem Supportforum, werden sich die Foren bestimmt nicht ständig ändern, so dass es eigentlich ausreichen sollte die foren_ids in der Datei einzutragen.
Dave hat geschrieben:

Code: Alles auswählen

              $phpbbtype = utf8_normalize_nfc(request_var('phpbbtype', '' , true ));
              $phpbbmods = utf8_normalize_nfc(request_var('phpbbmods', '' , true ));
würde ich ersetzen mit:

Code: Alles auswählen

              $phpbbtype = request_var('phpbbtype', 0);
              $phpbbmods = request_var('phpbbmods', 0);
was anderes als ne zahl kann es ja nicht sein!? $phpbbknowledge auch?

Dann:

Code: Alles auswählen

$aktuellesforum = request_var('f', '');
wäre

Code: Alles auswählen

$aktuellesforum = request_var('f', 0);
wobei die foren_id schon in der variablen $forum_id und der modus in $mode steht. Also wieso nicht direkt weg lassen?
Da hast du natürlich vollkommen recht und das ist in der nächsten Version auch gleich geändert.

Dave hat geschrieben: Wieso änderst du die fehlermeldung beim leerem subjekt? hat das nen besonderen grund?
Ja, es gibt einen Grund dafür. Wenn Subjekt leer bleibt und der User nicht zurück geht, werden die Einträge vom MOD (nur die Fragen - nicht die Antworten) verdoppelt (dafür habe ich noch keine andere Lösung gefunden).

Dave hat geschrieben:Die Sprachvariablen bindest du auch zweimal ein... Einmal soll man sie in die common.php einfügen und das zweite mal bindest du sie über deine eigene sprachdatei ein.
Die zusätzlichen Sprachdateien sind wieder entfernt worden (wie oben bereits erwähnt wurde).
Dave hat geschrieben:Außerdem ist das template system bißchen anders beim phpBB3. So solltest du anstatt <!-- BEGIN ..... --> lieber <!-- IF .... -> benutzen. Da auch sämtliche switch dieser art mit S_ anfangen könntest du das direkt auch ändern.
Laut Coding Guidline sollte das aber erlaubt sein (falls ich das nicht falsch verstanden habe). Warum also mehr Arbeit machen als notwendig wäre.
Dave hat geschrieben:Ich hoffe du bist nun nicht zu sauer :D

MfG
Dave
:D Nein, ich bin absolut nicht sauer. Im Gegenteil. ich freue mich über jede Anregung eines Users (umso besser kann das Endergebnis, also der MOD, dann werden).

P.S. Der Download wurde aktualisiert und die neue Version kann herunter geladen werden.




Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Beitrag von nickvergessen »

Kurz wegen der Sache mit den <!-- IF...
erlaubt ist das andere zwar auch, sollte aber bevorzugt durch IF ersetzt werden.
Mehr Aufwand ist das auch nicht.
Einfach

Code: Alles auswählen

$template->assign_block_vars('cback_vorschau', array());
mit

Code: Alles auswählen

$template->assign_vars(array('CBACK_VORSCHAU' => true,));
ersetzen (Großschreibung ist PFLICHT) und dann mit <!-- IF CBACK_VORSCHAU --><!-- ENDIF --> hantieren ;) (gleiches für die Vorschau.)

Die Absetzung der eigenen Sprachdatei sehe ich eher als Nachteil an.
Dies sollte auch vermieden werden. Schließlich gibt es für Sprachdateien (außer EN) kein Update-Script oder eine Update-Anleitung.
kein Support per PN
Dave
Mitglied
Beiträge: 2085
Registriert: 25.05.2003 15:03
Wohnort: Wuppertal

Beitrag von Dave »

nickvergessen hat geschrieben:Die Absetzung der eigenen Sprachdatei sehe ich eher als Nachteil an.
Dies sollte auch vermieden werden. Schließlich gibt es für Sprachdateien (außer EN) kein Update-Script oder eine Update-Anleitung.
Wie meinste das? bei ihm hast du gerade einmal ne extra sprachdatei die eingebunden wird und dann nochmals das ganze in der common.php.. also doppelt
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12178
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Beitrag von Mahony »

Hallo
Ich habe jetzt den MOD nochmals geändert und verwende nur noch die zusätzlichen Sprachdateien (Danke an nickvergessen). Des weiteren werden jetzt auch die korrekten Switches (<!-- IF ) verwendet.



Der MOD nähert sich so langsam der finalen Version. Danke an alle die hier ihre Tipps abgegeben haben.

P.S. Der Download wurde mal wieder aktualisiert.




Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Benutzeravatar
Metzle
Ehemaliges Teammitglied
Beiträge: 10435
Registriert: 08.03.2008 02:50
Wohnort: Waiblingen-Neustadt
Kontaktdaten:

Beitrag von Metzle »

Hallo,

ich hab mir die Mod nun auch mal in mein Testforum getippselt. Funktioniert auch alles einwandfiffi :)

Kleine Anregung hätte ich noch:

Mir ist bei der Installation aufgefallen, dass die Installationsdatei teilweise sehr verwirrend ist. Verwirrend in dem Sinne, dass Änderungen in Dateien nicht nach der Reihe angegeben sind. Zum Beispiel gibts eine Anweisung Find und After add und dann kommt die nächste [Find]-Anweisung, aber wenn man die in die Suche seines Editors eingibt, der standardmäßig vorwärts die Datei nach Text durchsucht, dann wird der Codeschnippsel nicht gefunden. Da mir das aber schon häufiger passiert ist, lass ich ihn auch immer noch rückwärts suchen und prompt hatte ich es gefunden. Fands aber relativ lästig muss ich sagen, da man so in der Datei hin- und herspringen muss.
Könnte man eventuell noch ändern.
Aufgefallen ist mir das in der posting.php. Zuerst:

Code: Alles auswählen

#
#-----[ FIND ]------------------------------------------
#
	'U_VIEW_TOPIC'			=> ($mode != 'post') ? append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&t=$topic_id") : '',
	'U_PROGRESS_BAR'		=> append_sid("{$phpbb_root_path}posting.$phpEx", "f=$forum_id&mode=popup"),
	'UA_PROGRESS_BAR'		=> addslashes(append_sid("{$phpbb_root_path}posting.$phpEx", "f=$forum_id&mode=popup")),


#
#-----[ AFTER, ADD ]------------------------------------------
#

    //Beginn Support Ticket System MOD
	'CST_MODE' => $supportsystem,
    'CST_HEAD' => $user->lang['CST_HEAD'],
....
Dann hoppst man zurück auf:

Code: Alles auswählen

#
#-----[ FIND ]------------------------------------------
#
	if (!$subject || !utf8_clean_string($subject))
		{
			$error[] = $user->lang['EMPTY_SUBJECT'];
		}


#
#-----[ REPLACE WITH ]------------------------------------------
#
	if (!$subject || !utf8_clean_string($subject))
		{
			$error[] = $user->lang['CST_ERRMESSAGE'];
		}
Weiß nicht mehr genau, ob hier noch mehr war, aber auf jeden Fall war es nur in der posting.php

EDIT: Ich hab jetzt so nen bißchen gespielt damit und mir die Mod ein wenig umgebaut, da ich sie nebenbei noch ein wenig anders einsetzen werde ( ähnlich dem Formular wie die Jobbörse hier ). Nun habe ich allerdings ein kleines Problemchen.
Ich möchte das Formular ausschließlich Forenmoderatoren sichtbar machen. Soweit so gut...nun kommt es aber...mit <!-- IF MODERATORS --> bekomme ich es nicht weg für normale User. Das haben zumindest die Tests ergeben, die ich gemacht habe mit den verschiedenen Benutzerberechtigungen.
Metzle
phpBB.de-Support-Team
Allround-phpBB.de
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Beitrag von nickvergessen »

<!-- IF U_MCP --> soltle dein Problem lösen...

@Mahony: die Vorschau ist immer noch deaktiviert?
kein Support per PN
Benutzeravatar
Metzle
Ehemaliges Teammitglied
Beiträge: 10435
Registriert: 08.03.2008 02:50
Wohnort: Waiblingen-Neustadt
Kontaktdaten:

Beitrag von Metzle »

nickvergessen hat geschrieben:<!-- IF U_MCP --> soltle dein Problem lösen...
Leider tut es das nicht :( Es ist dann zwar ausgeblendet, aber auch für die einzelnen Forenmoderatoren.
Habe die Forenmoderation in den Foren so gelöst, da ich die Leute nicht in die Gruppe der globalen Moderatoren stecken möchte:
ACP ---> Foren ---> Foren-Moderatoren ---> Forum ausgewählt ---> Benutzer hinzugefügt ---> entsprechende Rechte vergeben

Selbst wenn ich nun aber das ganze über die Gruppe globale Moderatoren regel, bleibt es ausgeblendet.

Ich hab das in der posting_body.html im Style subsilver2 eingebaut und zwar wie folgt:

Code: Alles auswählen

<!-- IF U_MCP -->
   <input type="hidden" name="supportsystem" value="{CST_MODE}">
    <!-- IF CBACK_STS -->
    <tr>
      <th colspan="2">Supportticket System</th>
    </tr>
	<tr height="40px">
	  <td colspan="2" style="vertical-align: top;" class="row2">
...
    <tr>
      <th colspan="2">{L_CST_HEAD_MSG}</th>
    </tr>
    <!-- ENDIF -->
<!-- ENDIF -->
Hab auch die ganze Sache mal hin- und hergeschoben, dass es mal zum Beispiel auch so dasteht:

Code: Alles auswählen

   <input type="hidden" name="supportsystem" value="{CST_MODE}">
<!-- IF U_MCP -->
    <!-- IF CBACK_STS -->
...
Es bringt immer nur das Ergebnis, dass es komplett ausgeblendet ist. Lass ich den Teil weg, ist es ganz normal vorhanden und wird halt eben allen angezeigt.
Metzle
phpBB.de-Support-Team
Allround-phpBB.de
Benutzeravatar
Berliner Schildkroete
Mitglied
Beiträge: 563
Registriert: 30.03.2007 19:02
Wohnort: Berlin

Beitrag von Berliner Schildkroete »

Ich hab mal eine Frage:
Warum werden die Language-Variablen so eingebunden, ist das nicht überflüssig? Reicht nicht einfach im Template {L_XXX}?

Code: Alles auswählen

'CST_PHPBBVERSION' => $user->lang['CST_PHPBBVERSION'],
Grüße
Berliner Schildkröte
kein Support via PN, etc. - Befolgung meiner Vorschläge auf eigene Gefahr!
Antworten

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