Extension Entwicklung: mein erstes Mal

In diesem Forum gibt es Starthilfe zum neuen Extension-System von phpBB 3.1/3.2. Fragen zur Entwicklung von Extensions und zur Konvertierung von phpBB 3.0.x MODs sind ebenfalls willkommen.
traumaland
Mitglied
Beiträge: 194
Registriert: 12.03.2018 19:11

Re: Extension Entwicklung: mein erstes Mal

Beitragvon traumaland » 09.07.2018 18:30

@Mahony

Hm, das ist jetzt fies. Ich denke, eine SQL Abfrage ist mir dann doch noch ne Nummer zu groß, um es ganz alleine zu schaffen.

Vielleicht könntest du einen Code anfangen und ich muss ihn dann zu Ende bringen?
So konnte ich durchs probieren lernen.

Lehrling
Supporter
Supporter
Beiträge: 3212
Registriert: 15.01.2012 20:00
Kontaktdaten:

Re: Extension Entwicklung: mein erstes Mal

Beitragvon Lehrling » 09.07.2018 19:48

Mein Bastelvorschlag:
Du installierst die Extension Modbreak BBCode: https://www.phpbb.com/community/viewtop ... 15b3098b09
Dann deaktivierst du sie und nimmst folgende Änderungen vor:
Öffne die Datei ./ext/ger/modbreak/styles/all/theme/modbreak.css.

Ersetze diesen Teil

Code: Alles auswählen

.bbc_mod_text {
   border-style: solid;
   border-color: #246594;
   border-width: 0px 1px 1px 1px;
   border-radius: 0 0 8px 8px;
   width: 60%;
   margin-left: 50px;
   padding: 6px 12px;
}


mit

Code: Alles auswählen

.bbc_mod_text {
   border: 0px solid #ffffff;
   background-color: #df0101;
   color: #ffffff;
   width: 95%;
   min-height: 150px;
   padding: 12px;
}


Gehe zu ./ext/ger/modbreak/language
Kopiere den Ordner en und benenne die Kopie in de um. Öffne die darin befindliche Datei common.php und ändere Message from moderator in z.B. moderative Anweisung oder Wichtig! oder was du halt gerne hättest um.
Nun gehst du in den Administrationsbereich deines Forums zu Beiträge - BBCodes.
Klicke rechts von mod auf das grüne Zahnrad. Bei BBCode-Benutzung gibst du

Code: Alles auswählen

[mod]{TEXT2}[/mod]
ein.
Und bei HTML-Ersetzung gibst du

Code: Alles auswählen

<div class="bbc_mod_text"><h2>{L_MODBREAK_HEAD}</h2>{TEXT2}</div>

ein.
Die alten Einträge musst du natürlich löschen.
Dann leerst du den Cache (am besten auch den Browsercache) und aktivierst die Extension wieder.
Der Rest ist dann dein Job. ;-)

traumaland
Mitglied
Beiträge: 194
Registriert: 12.03.2018 19:11

Re: Extension Entwicklung: mein erstes Mal

Beitragvon traumaland » 09.07.2018 20:17

@Lehrling

Vielen, Vielen Dank, auch für deine Mühe. :)
Ich werde das gleich mal ausprobieren und berichten, wobei ich auch glaube, dass dort die Postprofile nicht eingefärbt wird und oben noch einen Titel hat, den ich gar nicht brauche.

Alternativ könnte ich aber auch die Meldefunktion umbauen und als Vorlage nehmen, denn die färbt ja gesamte Beiträge sowie auch die Postprofile. Da letzteres auf keinen Fall fehlen darf, könnte ich das mal versuchen.
Ich müsste nur wissen, wo sie zu finden ist.
Dann probier ich mal, mich da mal ans Werk zu machen.
Und wenns mir gelingt, kann ich für jeden, der an der Funktion interessiert ist, den Code und den Vorgang hier einstellen, wobei das eigentlich eher so ist, dass es wohl jeder hier eher als ich fertig bringt.
Aber ich werde es mal probieren.
Falls es nicht gelingt, greif ich auf deinen Vorschlag zurück, Lehrling.

traumaland
Mitglied
Beiträge: 194
Registriert: 12.03.2018 19:11

Re: Extension Entwicklung: mein erstes Mal

Beitragvon traumaland » 10.07.2018 06:09

Mahony hat geschrieben:Was du brauchst ist eine SQL-Abfrage, ob der BBCode in dem Beitrag vorkommt...Falls JA, färbe den gewünschten Bereich mit der gewünschten Farbe ein.


Ich versuche gerade, eine Funktion dazu zu programmieren, allerdings ist das momentan wie Fremdsprachen sprechen ohne Vokabeln.
@

/**
* Generate als_Moderator_posten
*/

function make_als_Moderator_posten ($action, $select) {

if ($user_groups == “global_moderators“) {

}

Hier würde ich erstmal definieren, was überhaupt passieren soll, wenn man den globalen Moderatoren angehört. Momentan glaube ich, dass das bei Includes in die functions_content.php gehört.
In diesem Fall dann die jetzt vorhandene Funktion “als Moderator posten“ im Editor der globalen Moderatoren sichtbar machen, eine zweite Variable wäre dann das ausblenden der Funktion, wenn man nicht dieser Gruppe angehört.
Aber hier wird dank fehlender Kenntnisse der Parameter, der Argumente ein Problem für mich sichtbar.

Wenn die Funktion für Moderatoren sichtbar ist, braucht die Funktion natürlich eine Aufgabe, die sie ausführen kann.
Wenn sie also ausgewählt wird, benutzt die Funktion einfach eine custom.css, die ich anlege und per Urlanweisung an die Funktion übergeben wird. Dazu kopiere ich einfach die Datei, in der die Backgroundfarbe der Beiträge definiert wird und seinem Postprofil und weise dem einfach einen anderen Farbwert zu.

Ich hatte gehofft, ich könnte ein bisschen mehr Code schreiben, aber PHP ist echt nicht so schnell in den Kopf zu kriegen. Leider.

Lehrling
Supporter
Supporter
Beiträge: 3212
Registriert: 15.01.2012 20:00
Kontaktdaten:

Re: Extension Entwicklung: mein erstes Mal

Beitragvon Lehrling » 10.07.2018 17:00

Also, was bei mir im Testforum jetzt funktioniert hat, war das:
du legst einen neuen globalen Moderator an. Seine einzige Aufgabe besteht darin, moderative Anweisungen auszusprechen (du müsstest dann dafür immer den Account wechseln.

Du schaust nach, welche User-ID dieser Moderator hat. Bei mir war es die ID 48. Du kannst es nachschauen, indem du mit der Maus über seinen Nick fährst. Dann werden dir unten in einer schwarzen Leiste Infos zu ihm angezeigt. Die letzte Info lautet z.B. u=48. Seine User-ID ist also 48.
Nun öffnest du die viewtopic_body.html und findest folgenden Abschnitt

Code: Alles auswählen

<div id="p{postrow.POST_ID}" class="post has-profile <!-- IF postrow.S_ROW_COUNT is odd -->bg1<!-- ELSE -->bg2<!-- ENDIF -->

Danach fügst du nahtlos folgendes ein

Code: Alles auswählen

<!-- IF postrow.POSTER_ID eq '48' --> reported<!-- ENDIF -->

Nun ist sowohl Beitrags- als auch Profilfeld in der Farbe eines gemeldeten Beitrags. Du kannst natürlich auch eine eigene Klasse für den Hintergrund definieren, z.B..anweisung { background-color: #df0101; } Dann müsstest du im obigen Code reported durch anweisung ersetzen.
Danach den Cache leeren.
Beachte, dass das Beitragsfeld bei dieser Änderung ALLE Beiträge dieses Mitglieds mit der besonderen Hintergrundfarbe anzeigt. Dieser Account sollte dann tatsächlich nur verwendet werden, wenn eine moderative Anweisung ausgesprochen soll.

WICHTIG! Du hast hiermit die viewtopic_body.html verändert. Dokumentiere die Änderungen und denke dran, beim nächsten Update, die Änderungen wieder manuell einzubauen.

traumaland
Mitglied
Beiträge: 194
Registriert: 12.03.2018 19:11

Re: Extension Entwicklung: mein erstes Mal

Beitragvon traumaland » 10.07.2018 18:39

Lehrling,

das ist recht genial... *-*
Das bringt schon echt viel weiter.
Also möglich ist es schon mal. Aber die letzte Baustelle alle Beiträge/wahlweise wählbar möchte ich unbedingt noch knacken oder geknackt haben.

(ich habe noch sie so verrückt gegoogelt wie in letzter Zeit :D )

Lehrling
Supporter
Supporter
Beiträge: 3212
Registriert: 15.01.2012 20:00
Kontaktdaten:

Re: Extension Entwicklung: mein erstes Mal

Beitragvon Lehrling » 11.07.2018 07:23

Eine letzte Möglichkeit wäre vielleicht diese hier:
du legst für jeden Moderatoren einen "Klon" an. z.B. für Tim zusätzlich noch den Mod_Tim oder so. Diesem Klon verpasst du dann einen Spezialrang wie z.B. Supervisor.
Du öffnest die viewtopic_body.html und suchst nach

Code: Alles auswählen

<div id="p{postrow.POST_ID}" class="post has-profile <!-- IF postrow.S_ROW_COUNT is odd -->bg1<!-- ELSE -->bg2<!-- ENDIF -->

Dann fügst du nahtlos ein

Code: Alles auswählen

<!-- IF postrow.RANK_TITLE eq 'Supervisor' --> reported<!-- ENDIF -->


Die Moderatoren können standardmäßig den Autor eines Beitrags ändern. Das heißt, der Moderator Tim würde einen Beitrag verfassen und umgehend danach den Autor ändern, indem er oben rechts im Beitragsfeld auf den Button i für Information klickt und dann bei Ändere Autor:
Mod_Tim auswählen würde.

Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 15448
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: Extension Entwicklung: mein erstes Mal

Beitragvon Dr.Death » 11.07.2018 08:31


traumaland
Mitglied
Beiträge: 194
Registriert: 12.03.2018 19:11

Re: Extension Entwicklung: mein erstes Mal

Beitragvon traumaland » 11.07.2018 15:52

@Lehrling

Du warst mit dem ModBreak auf dem richtigen Weg.
Es ist jetzt geschafft.
Ergebnis:
https://alternatefamily.4crew.de/viewto ... 2431#p2431

Ganz runterscrollen zu den letzten Beiträgen.

Für alle, die es interessiert, wie es letzten Endes doch geklappt hat, darf hier die grandiose Arbeit von Ger bestaunen:

https://www.phpbb.com/community/viewtop ... #p15050341

letzter Beitrag.

Great Thing.

Benutzeravatar
gn#36
Administrator
Administrator
Beiträge: 9257
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: Extension Entwicklung: mein erstes Mal

Beitragvon gn#36 » 27.07.2018 00:02

Nachdem ich bisher noch keine links auf unsere KB gesehen habe obwohl da sehr genau die Funktionen der wichtigsten Dateien einer Ext erklärt werden möchte ich noch mal explizit an unsere Anleitungen für Erweiterungen in der KB erinnern, die viele simple Fälle bereits voll erklären und abdecken.

Eigene phpBB Erweiterungen erstellen
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.


Zurück zu „Extension Bastelstube“