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
Nicht ausgefüllte Profilfelder ausblenden
#1
Hallo.

Langsam neigen sich die Forumsarbeiten dem Ende zu, deshalb wird das jetzt hoffentlich einer der letzten Threads von mir Big Grin

Ich habe im postbit_author_user verschiedene eigene Profilfelder eingefügt und mittels html und Klassen definiert. Jetzt stehe ich vor dem Problem, dass die Profilfelder auch als Platzhalter bei Usern angezeigt werden, die die Felder noch nicht ausgefüllt haben.

Durch die Suche wurde ich auf diesen Thread aufmerksam:

https://www.mybb.de/forum/thread-14389.html

Und ich habe versucht, den dort geposteten Befehl an meine Profilfelder anzupassen. Leider kam es dann zu einer Fehlermeldung und einem Syntaxerror. (Was nicht erstaunlich ist, da ich keine Ahnung von php habe :'D)

Vielleicht mag mir ja jemand (zumindest anhand eines meiner Profilfelder) ein Beispiel zeigen, wie ich es hinkriege, damit das Profilfeld nicht angezeigt wird, wenn es nicht ausgefüllt ist.

Es handelt sich um folgende Profilfelder:

PHP-Code:
  <div class="charakterinfo">{$post['fid4']}</div>
 <
div class="charakterarea"><a href="{$post['fid8']}">Charakterarea</a></div>
<
img src="{$post['fid9']}width="200px" height="*" /> 


Das Profilfeld 'fid4' wurde als eine eine 170px hohe Box definiert, mit einer automatischen Scrollbar, die erscheint, sobald der Text zu lang für diese Box ist. Wenn es nicht ausgefüllt ist, befindet sich dort also ein 170px hoher, leerer Platzhalter.

Das Profilfeld 'fid8' wurde als Link definiert, das zu einem Unterforum führt, das für die einzelnen Charaktere angelegt wird. Deshalb steht dort "Charakterarea" als Link, der ins Nirvana führt, wenn der Link noch nicht eingetragen wurde.

Und das Profilfeld 'fid9' wurde, wie man sieht, als Bild definiert, das 200px breit sein soll. Hier wird ein riesiger Platzhalter dargestellt, der darauf hinweist, dass das Bild (wegen dem noch fehlenden Bildlink) nicht angezeigt werden kann.

Ich habe es übrigens mal mit dem letzten Profilfeld versucht und den Code wie folgt abgeändert:

PHP-Code:
if(!empty($post['fid9']))
{
   $post['fid9'] = ".$post['fid9'];
}
else
{
   
$post['fid9'] = "";


Das hat zum erwähnten Syntaxerror geführt. Ich vermute, dass der <*img> Tag noch irgendwo reinmuss. Aber bevor ich mein Forum zerstöre, würde ich mich freuen, wenn mir vielleicht jemand sagen kann, wie der Code genau aussehen muss. Smile
Zitieren
#2
Ich würde nicht an der php etwas ändern, das ist sehr mühselig bei Updates Big Grin
Wenn du das Plugin PHP in templates hast, dann kannst du einfach folgenden Code verwenden

Code:
<if $user['fidX'] then>{$user['fidX']}<else>Inhalt, wenn das Profilfeld nicht ausgefüllt ist. Kann auch einfach nichts stehen.</if>

*das X du die ID des Profilfelds ersetzen
Zitieren
#3
Ah, super. Danke dir für den Tipp Smile Wo müssen die Codes denn rein, ins Postbit Template?

(Dort sind die die Felder ja als $post['fid'] definiert und nicht als $user['fid']. Deshalb frage ich lieber zuerst nach, bevor ich was falsch mache Big Grin)
Zitieren
#4
Ja, direkt ins postbit_author_user.
Du kannst das $user ersetzen mit $post Big Grin Das kann man eigentlich für alle Templates verwenden Smile

Code:
<if $post['fidX'] then>{$post['fidX']}<else>Inhalt, wenn das Profilfeld nicht ausgefüllt ist. Kann auch einfach nichts stehen.</if>
Zitieren
#5
Ich hab mir das Plugin jetzt runtergeladen und installiert. Aber irgendwie scheint es trotzdem nicht zu funktionieren, denn die Profilfelder werden immer noch als Platzhalter dargestellt. Ich hab das folgende eingefügt:

PHP-Code:
<if $post['fid4'then>{$post['fid4']}<else></if>
<if 
$post['fid8'then>{$post['fid8']}<else></if>
<if 
$post['fid9'then>{$post['fid9']}<else></if> 

Was vermutlich falsch ist? xD

[Wobei im standardmässigen Template Editor im ACP seit gestern keine Codes mehr farbig angezeigt werden und Tastenbefehle wie die Tabulatortaste (um den Code einzurücken) auch nicht mehr funktionieren? Ich weiss jetzt nicht ob es eventuell damit zusammenhängt, falls der Code so stimmen würde?]
Zitieren
#6
Was wird denn in den Profilefeldern ausgegeben, wenn sie ausgefüllt wurden, oder auch nicht ?
Mit freundlichen Grüßen

MrBrechreiz
Zitieren
#7
Das:

Zitat:Das Profilfeld 'fid4' wurde als eine eine 170px hohe Box definiert, mit einer automatischen Scrollbar, die erscheint, sobald der Text zu lang für diese Box ist. Wenn es nicht ausgefüllt ist, befindet sich dort also ein 170px hoher, leerer Platzhalter.

Das Profilfeld 'fid8' wurde als Link definiert, das zu einem Unterforum führt, das für die einzelnen Charaktere angelegt wird. Deshalb steht dort "Charakterarea" als Link, der ins Nirvana führt, wenn der Link noch nicht eingetragen wurde.

Und das Profilfeld 'fid9' wurde, wie man sieht, als Bild definiert, das 200px breit sein soll. Hier wird ein riesiger Platzhalter dargestellt, der darauf hinweist, dass das Bild (wegen dem noch fehlenden Bildlink) nicht angezeigt werden kann.

Ich habs mal anhand eines Bildes veranschaulicht.

Dabei hab ich gesehen, dass bei einem User, bei dem die besagten Profilfelder ausgefüllt sind, nun alles unter dem Avatar unformatiert ausgegeben wird. (In Bild 2 ersichtlich). Ich nehme an, das ist das Resultat von den oben genannten php-Befehlen?


Angehängte Dateien Thumbnail(s)
       
Zitieren
#8
Wie lautet dein Box Code ?
Mit freundlichen Grüßen

MrBrechreiz
Zitieren
#9
Code:
.charakterinfo {
background: none;
color: #744a46;
text-align: justify;
line-height: 1;
font-family: Trebuchet MS;
font-size: 12px;
height: 170px;
width: 200px;
overflow: auto;
}
Zitieren
#10
Ohne HTML ?
Mit freundlichen Grüßen

MrBrechreiz
Zitieren