MyBB.de Forum

Normale Version: Editfunktion & Beitragsanzeige für Gäste
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
Hallo, hast Du Dir Plugins schon mal angesehen? Ist eigentlich nicht kompliziert bei MyBB.
Im Prinzip legst Du mind. Deine Klasse in /inc/plugins/ ab. Wie genau Du die jetzt an Hooks bindest, kannst Du bei anderen vorhandenen Plugins ja mal nachschauen.
Dann machste Dein Plugin noch in der Datenbank bekannt und das sollte alles sein.

Wenn Du willst, können wir uns die Problematik mal zusammen anschauen.
(21.08.2015, 06:52)Amaryllion schrieb: [ -> ]Ja, das würde ich wirklich gerne. Smile Aber ich weiß nicht, wie ich diese Änderungen so variabel gestalten kann, daß man sie so variabel halten kann wie ein Plugin. Ich habe keinen Punkt gesehen, an dem ich einsteigen könnte, ohne die Core-Datei zu bearbeiten (und dann mühsam wieder beim nächsten Update der Datei den ganzen Kram wieder reinzufummeln). Gerade weil ja in der unmodifizierten functions_forumlist.php nicht nur die Striche (-) gesetzt werden, sondern tatsächlich auch nicht gezählt wird, so dass dann die Counter leer sind.  Das wäre mir in variabel (ohne Rumfummeln an Core-Dateien) natürlich auch lieber.

Ich hatte irgendwann mal die Nase voll davon, nach jedem Update die Dateien zu bearbeiten und habe mir deshalb ein Plugin geschrieben.
Wie du richtig erwähntest, gibt es leider an den entscheidenden Stellen keine Hooks, die man nutzen kann, darum benötigt mein Plugin auch die Pluginlibrary, um den Code jeweils an der entsprechenden Stelle einzufügen (genau genommen ist es nur ein automatischer Patch).
Aber es ist trotzdem bequemer, nach einem Update, nur das Plugin deaktivieren und neu aktivieren zu müssen. Wink
Sicher, daß da nichts passendes bei ist?
http://docs.mybb.com/1.8/development/plugins/hooks/
Ganz sicher.
Oh, die Erweiterung Pluginlibrary hab ich neulich auch mal gesehen, aber ich konnte mir darunter nichts vorstellen. Wenn sich aber nun Code an der php ändert, woher weiß denn der "Patch" in dem Falle, wo das Edit hingehört, was er ggf. auskommentieren muß, etc.?

Also wenn es jemand hinbekäme, meine Edits zu automatisieren (am Ende mit Hilfe sogar ich ^^), stelle ich gern meine PHP zur Verfügung. So ohne Automatisierung natürlich auch, aber das hilft ja keinem, wenn das nächste Update kommt. Wink Auch wenn ich eigentlich alle Änderungen aufgeschrieben und kommentiert habe.
(21.08.2015, 10:45)Amaryllion schrieb: [ -> ]Oh, die Erweiterung Pluginlibrary hab ich neulich auch mal gesehen, aber ich konnte mir darunter nichts vorstellen. Wenn sich aber nun Code an der php ändert, woher weiß denn der "Patch" in dem Falle, wo das Edit hingehört, was er ggf. auskommentieren muß, etc.?

Wenn sich der Code der Core-Datei an genau der Stelle ändert, muss der Patch natürlich auch angepasst werden. Aber zB die Stelle, die ich bei mir benutze, hat sich seit MyBB 1.2.0 (also seit 9 Jahren Smile) nicht geändert, daher musste ich bisher noch nichts anpassen.
Dank Amaryllions toller Hilfe bin ich inzwischen schon wieder einige Schritte weiter gekommen.
An dieser Stelle noch mal meinen allerherzlichsten Dank Heart Heart Heart Heart *ganz dolle knuddelt*

Allerdings stehe ich schon wieder vor einer für mich schier unlösbaren Aufgabe.
Ich würde gerne meine Teamseite erweitern. Also, speziell für die Admins etwas mit rein schreiben, was sie so an
Aufgaben haben.
Aber alles was ich versuche funktioniert nicht, weil alles, was ich rein schreibe, mehrfach bei allen gleich angezeigt wird.
Wie kann man das abstellen oder umgehen?
Ich habs mit einem neuen tpl versucht, funktionert auch nicht, das wird erst gar nicht angezeigt, definier ich das tpl in der showteam.php, hab ich wieder die Sache mit der mehrfachen Anzeige, wobei dann sogar die Gruppenmitglieder mehrfach angezeigt werden.
Das ist echt zum Haare raufen.
Um das zu erreichen muss einiges per Hand getan werden.

Mach als erstes zur Sicherheit ein DB Backup.

Schritt 1:

Danach öffnest Du die phpMyAdmin Konsole und scrollst zur Tabelle users. Klicke darauf..oben in der Navigationsstrucktur findest Du den Tab "Struktur", klicke darauf...scrolle ganz nach unten und füge eine neue Spalte hinzu.

Wähle hierfür -> Nach -->und im Optionsmenü "displaygroup"

Folgendes trägst Du da ein:

Name = aufgabe
Type = VARCHAR
Länge/Werte = 250
Standard = Wie definiert
Kollation = utf8_general_ci

Alles andere bleibt so !!

SPEICHERN

Schritt 2:

Öffne die Datei admin/modules/user/users.php und Suche nach

PHP-Code:
"usertitle" => $mybb->input['usertitle'], 

darüber dies einfügen

PHP-Code:
"aufgabe" => $mybb->input['aufgabe'], 

Suche weiter nach

PHP-Code:
$form_container->output_row($lang->custom_user_title$lang->custom_user_title_desc$form->generate_text_box('usertitle'$mybb->input['usertitle'], array('id' => 'usertitle')), 'usertitle'); 

darüber dies einfügen

PHP-Code:
$form_container->output_row("Aufgabe""Wekche Aufgabe hat das Mitglied"$form->generate_text_box('aufgabe'$mybb->input['aufgabe'], array('id' => 'aufgabe')), 'aufgabe'); 

Speichere die Datei und lade sie wieder in den Ordner.

Schritt 3:

Öffne die Datei inc/datahandlers/user.php und Suche nach

PHP-Code:
/**
* Verifies if a usertitle is valid or invalid.
*
* @param boolean True when valid, false when invalid.
*/
function verify_usertitle()
{
global 
$mybb;

$usertitle = &$this->data['usertitle'];

// Check if the usertitle is of the correct length.
if($mybb->settings['customtitlemaxlength'] != && my_strlen($usertitle) > $mybb->settings['customtitlemaxlength'])
{
$this->set_error('invalid_usertitle_length'$mybb->settings['customtitlemaxlength']);
return 
false;
}

return 
true;


darüber dies einfügen

PHP-Code:
function verify_aufgabe()
{
global 
$mybb;

$aufgabe = &$this->data['aufgabe'];

// Check if the aufgabe is of the correct length.
if(my_strlen($aufgabe))
{
return 
false;
}

return 
true;


weiterhin Suchen nach

PHP-Code:
if($this->method == "insert" || array_key_exists('usertitle'$user))
{
$this->verify_usertitle();


darüber dies einfügen

PHP-Code:
if($this->method == "insert" || array_key_exists('aufgabe'$user))
{
$this->verify_aufgabe();


weiter Suchen nach

PHP-Code:
"usertitle" => $db->escape_string(htmlspecialchars_uni($user['usertitle'])), 

darüber dies einfügen

PHP-Code:
"aufgabe" => $db->escape_string(htmlspecialchars_uni($user['aufgabe'])), 


weiter Suchen nach

PHP-Code:
if(isset($user['usertitle']))
{
$this->user_update_data['usertitle'] = $db->escape_string($user['usertitle']);



darüber dies einfügen

PHP-Code:
if(isset($user['aufgabe']))
{
$this->user_update_data['aufgabe'] = $db->escape_string($user['aufgabe']);


weiter Suchen nach

PHP-Code:
"usertitle" => ""

darüber dies einfügen

PHP-Code:
"aufgabe" => ""

Speichere die Datei und lade sie wieder in den Ordner.

Schritt 4:

Nun bearbeitest Du die Templates. Öffne dazu das Show Forum Team Templates->showteam_usergroup und füge nach

Code:
<td class="tcat"><span class="smalltext"><strong>{$lang->username}</strong></span></td>

dies ein

Code:
<td class="tcat"><span class="smalltext"><strong>Aufgabenbereich</strong></span></td>

Mach aus colspan="4" ein colspan="5", dann speichern.

Öffne im gleichem Templatset das Template -> showteam_usergroup_user und füge vor

Code:
<td width="15%" class="{$bgcolor}">{$user['lastvisit']}</td>

dies ein
Code:
<td width="15%" class="{$bgcolor}">{$user['aufgabe']}</td>

und mach aus

Code:
<td width="75%" class="{$bgcolor}">

ein

Code:
<td width="60%" class="{$bgcolor}">

speichern, fertig.

Sollte dann etwa so aussehen

[attachment=10660]


Nachwort:

Du kannst nun einem vorhandenen User einen Text in das Aufgabenfeld schreiben, aber nur als Admin und über das ACP->Benutzer & Gruppen->Benutzer->Benutzer wählen->Profil, erreichbar.

Zu finden an erste Stelle von "Optionale Profil-Informationen:"


Nun foffe ich das ich helfen konnte und selbst nichts vergaß zu erwähnen.
Supie, vielen, lieben Dank, werde das heute nacht mal einbauen ^^

Zitat:Danach öffnest Du die phpMyAdmin Konsole und scrollst zur Tabelle users. Klicke darauf..oben in der Navigationsstrucktur findest Du den Tab "Struktur", klicke darauf...scrolle ganz nach unten und füge eine neue Spalte hinzu.
*Lach* glaubst da, das ich laaaaange überlegt hab das du damit die DB meinst? Ich hab erst mal im ACP gsucht und mich schon gewundert das ich Users nicht finde. Manchmal steht man echt auf dem Schlauch Big Grin  Big Grin Big Grin
 

Hmm, das kann man doch sicher auch ausweiten, oder? Wenn ich das ganze noch mal anlege nur statt mit Aufgaben mit Avatar, oder? Also, das ich da die Url des Avatars eingeben kann, denn dummerweise zeigt es ja nur das Avatar des jeweiligen Users an, der die Teamseise grad besucht.
Oder gibt es da ne andere Möglichkeit? Das man in der DB oder in der User.php einfach nur nen Befehl umschreiben muss?
(Auch doof gemacht, statt dass das Ava des Users angezeigt wird, dessen Name da steht -.- )

Das ich das Feld nur im Adminbereich beschriften kann ist ganz gut. Es wird sowieso nur das Team angezeigt, wie es sich für eine Teamseite auch gehört.  ^^
Um den Benutzer Avatar einzufügen, braucht man keinerlei Änderungen an der DB vornehmen.

http://yaldaram.com/thread-4386.html
Seiten: 1 2 3 4