Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.37 veröffentlicht (04.11.23)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Usertitel Auswertung ändern
#1
Hallo Leute.

Die Usertitel werden ja standardmäßig nach der Anzahl der Post vergeben.
Wir würden das ganz gerne umbauen, sodass es nach den Bewertungssystem funktioniert.

Ist dies ohne Probleme möglich?
In welcher php Datei werden die Usertitle ausgewertet, ich konnte sie nicht finden!?

Danke
Zitieren
#2
Möglich ist das auf jeden Fall, allerdings findet sich der Code in mehreren Dateien (z.B. inc/functions_post.php).
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#3
Ah, dann hab ich mich doch nicht ganz verschaut.
In der Members.php ist es glaube ich auch drin.

Gehe ich recht in der Annahme, dass es sich um diesen Codeteil handelt:
PHP-Code:
elseif(is_array($titlescache) && !$usergroup['usertitle'])
{
reset($titlescache);
foreach(
$titlescache as $key => $titleinfo)
{
if(
$post['postnum'] >= $key)
{
if(!
$hascustomtitle)
{
$post['usertitle'] = $titleinfo['title'];
}
$post['stars'] = $titleinfo['stars'];
$post['starimage'] = $titleinfo['starimage'];
break;
}
}


Hier wird immer abgefragt, ob die Postanzahl mit den im ACP hinterlegten Werten übereinstimmt!?
Was alles auch noch gecached wird!?
Man müsste also nur die Anzahl der Likes abfragen und hier anstatt vergleichen.
Und ebenfalls in den anderen Skripten abändern!?
Zitieren
#4
Die passende Abfrage hast du gefunden.
(15.06.2016, 22:04)cthulhu schrieb: In der Members.php ist es glaube ich auch drin.
Der Code kommt in eigenen Dateien vor, nicht nur diesen beiden. Um das genau zu sagen, müsste ich aber auch erst einmal suchen.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#5
Das ist aus der member.php:
PHP-Code:
if($memprofile['postnum'] >= $title['posts'])
{
$usertitle $title['title'];
$stars $title['stars'];
$starimage $title['starimage'];

break;

Das ist klar, wenn die Postanzahl größer gleich dem eingestellten Wert ist, werden die Variablen dementsprechend gesetzt.

Das hier ist aus der functions_post.php
PHP-Code:
foreach($titlescache as $key => $titleinfo)
{
if(
$post['postnum'] >= $key)
{
if(!
$hascustomtitle)
{
$post['usertitle'] = $titleinfo['title'];
}
$post['stars'] = $titleinfo['stars'];
$post['starimage'] = $titleinfo['starimage'];
break;


Wieso wird hier $key abgefragt? Sollten hier nichr auch die Posts abgefragt werden?
Zitieren
#6
Das Array $titlescache ist anders aufgebaut. Wink
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#7
Kannst du mir das genauer erklären bitte?
Möchte es gerne verstehen.

Das Array ist doch aufgebaut, wie man es im Cache Manager aufrufen kann oder!?
Dann nimmt die Variable $key doch nur die Werte 1 - n (n Anzahl der Usertitle) an oder!?

PS:
Konnte schon erfolgreich die Anzeige im Profil, sowie in der Memberliste auf Likes umbauen, danke schonmal.
Zitieren
#8
$titlescache wird weiter oben in der inc/functions_post.php definiert. Es wird zwar der Cache verwendet, aber das Array sieht ganz anders aus.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren