MyBB.de Forum

Normale Version: Zeilenumbruch bei "Eigene Profilfelder"
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Die eigenen Profilfelder werden mit dem Template postbit_profilfield angezeigt.

Wie kann ein Zeilenumbruch nach "Oberbayern" und vor "Fachgebiete:" (siehe Grafik = rote senkrechte Markierung) erzwungen werden?

[attachment=12736]

Alle Versuche über die Datei ./inc/functions_post.php (Zeile 442 und 447) schlugen bisher fehl, das muss vermutlich irgendwo anders definiert werden.

Am liebsten würde ich "Lokation/Ort:" links von "Fachgebiete:" positionieren, aber ein Zeilenumbruch wäre schon mal das erste angestrebte Ziel.

Danke vorab für Tipps und Hinweise.
Sind die beiden Überschriften "Lokation" und "Fachgebiete" eigene Profilfelder?
Dann scheint es so, als würden es inline-Elemente sein, die einfach nebeneinander positioniert werden.
Ändere das Template postbit_profilefield zurück zum Standard:
Code:
<br />{$post['fieldname']}: {$post['fieldvalue']}
oder mache alternativ Block-Elemente draus:
Code:
<div>{$post['fieldname']}: {$post['fieldvalue']}</div>

Was meinst du mit "links von Fachgebiet positionieren"?

[ExiTuS]
1. Bisheriger Code im Template:
Code:
<span style="color: #f06f0f;"><b>{$post['fieldname']}:</b></span><br />{$post['fieldvalue']}
ergibt:[attachment=12737]
2. Der von Dir definierte Code im Template:
Code:
<br /><span style="color: #f06f0f;"><b>{$post['fieldname']}:</b></span><br />{$post['fieldvalue']}
ergibt: [attachment=12738]
3. Der Code mit <div></div>
Code:
<div><span style="color: #f06f0f;"><b>{$post['fieldname']}:</b></span><br />{$post['fieldvalue']}</div>
hat das selbe Ergebnis wie 2:[attachment=12738]
Somit wurde mit mit "2" mein gewünschtes Ergebnis erzielt. Besten Dank.

Bzgl. Links anordnen, würde ich gerne (wenn überhaupt möglich) den Abschnitt:
Lokation/Ort: inkl der Ortsangabe neben den Block Fachgebiete: setzen.

Siehe Grafik:[attachment=12739] so wie das Danke rechts davon ist.
Ich würde das <div> als Block-Element dem <br /> vorziehen, damit die Inhalte unabhängig bleiben und nicht vom übergeordneten Element abhängig sind.
Das ist vor allem nötig, wenn du sie nebeneinander platzieren willst.
Hier könntest du z.B. mit floats arbeiten, um die Blöcke "Lokation", "Fachgebiet" und den anderen nebeneinader zu platzieren.

Falls eine responsive Darstellung für dich keine Rolle spielt und du sowieso mit Tabellen arbeitest, dann kannst du auch aufs floaten verzichten und eine einfache nackte Tabelle erstellen, bei der jedes Profilfeld ein eigenes <td>...</td> bekommt. Mit etwas padding hälst du einen Abstand zwischen den Zellen.

Ich kenne deinen Code nicht, sonst würde ich etwas präziser werden.

Das ganze macht natürlich nur Sinn, wenn der Autor am Kopf des Beitrags steht und du nicht die klassische Postbit-Ansicht nutzt.

[ExiTuS]
(13.05.2020, 16:04)Gerti schrieb: [ -> ]Bzgl. Links anordnen, würde ich gerne (wenn überhaupt möglich) den Abschnitt:
Lokation/Ort: inkl der Ortsangabe neben den Block Fachgebiete: setzen.

In dem Fall wäre es wohl einfacher (wenn das zwei verschiedene Profilfelder sind), den Profilfeldern eine eigene Tabellenzelle zu geben.
Template "postbit"
Code:
<td class="smalltext post_author_info" width="145">
{$post['profilefield']}
</td>
ändern in:
Code:
<td class="smalltext post_author_info" width="145">
{$post['fidX']}
</td>
<td class="smalltext post_author_info" width="145">
{$post['fidY']}
</td>

Danach suche in der /inc/functions_post.php nach:
PHP-Code:
eval("\$post['user_details'] = \"".$templates->get("postbit_author_user")."\";"); 
und füge darüber ein:
PHP-Code:
$post['fidX'] = htmlspecialchars_uni ($post['fidX']);
$post['fidY'] = htmlspecialchars_uni ($post['fidY']); 

In beiden Codes jeweils X und Y mit Deiner Profilfeld-ID ersetzen.
Die Abstände zwischen den Profilfeldern änderst Du einfach, indem Du eine weitere leere Zelle hinzufügst und ihr eine feste Größe gibst.
Schau mal, ob`s funktioniert. Wink
(13.05.2020, 17:23)Schnapsnase schrieb: [ -> ]
PHP-Code:
$post['fidX'] = htmlspecialchars_uni ($post['fidX']);
$post['fidY'] = htmlspecialchars_uni ($post['fidY']); 

In beiden Codes jeweils X und Y mit Deiner Profilfeld-ID ersetzen.
*grübel
a) welchen Bezug hat "fid"?
b) wieso mit meiner eigenen Profil-ID? Es soll die ID des Users verwendet werden dessen Postbit man sieht.

(13.05.2020, 16:34)[ExiTuS] schrieb: [ -> ]Ich kenne deinen Code nicht, sonst würde ich etwas präziser werden.
Ich verwende nur die Standards (was in den Templates steht) von MyBB uns somit kein besonderer Code (zuminest ist mir da nichts bekannt)
(13.05.2020, 17:47)Gerti schrieb: [ -> ]*grübel
a) welchen Bezug hat "fid"?
b) wieso mit meiner eigenen Profil-ID? Es soll die ID des Users verwendet werden dessen Postbit man sieht.

$post[fidX]
ist die ID des profilfields, welches Du im ACP erstellt hast.
Das hat hier nichts mit der UID zu tun.

Grüße
Keine PHP-Code-Änderungen, wenn sie nicht zwingend nötig sind! Smile
Die Templates geben alles her, um deinen Wunsch zu erfüllen.

(Ich habe mir ehrlich gesagt jetzt nicht die Mühe gegeben, vollständigen Template-Code wiederzugeben und es zu testen. Daher nur meine Überlegung)

Template: postbit_author_user
Hier befindet sich {$post['profilefield']}.
Das muss separiert werden. Hol' diese Variable da raus und stecke sie direkt in das Template postbit
Code:
<div class="author_statistics">
    {$post['user_details']}
</div>
<div class="author_statistics">
    {$post['profilefield']}
</div>

Die Klasse .author_statistics ist mit einem float:right belegt. Somit würden die Profilfelder direkt neben den übrigen User-Details gefloatet werden - also nebeneinander.

[ExiTuS]
@[ExiTuS]

Hi!
Evtl. habe ich ja einen Denkfehler zu Deinem Vorgehen... Wink 
Es handelt sich momentan um 2 Profilfelder (Location + Fachgebiete).
Wenn ich diese Profilfelder nicht separiere, sondern als Variable {$post['profilefield']} in ein div stecke,
wie können dann diese Felder nebeneinander dargestellt werden?

In meinem o.g. Weg konnte ich zwar die Profilfelder separieren, allerdings wird dann kein HTML mehr geparst und nur noch reiner Text dargestellt.
Den eigentlichen Kniff dazu (evtl. in der /inc/functions_post.php) habe ich leider noch nicht gefunden.
(13.05.2020, 17:23)Schnapsnase schrieb: [ -> ]In dem Fall wäre es wohl einfacher (wenn das zwei verschiedene Profilfelder sind), den Profilfeldern eine eigene Tabellenzelle zu geben.
Template "postbit"
Code:
<td class="smalltext post_author_info" width="145">
{$post['profilefield']}
</td>
ändern in:
Code:
<td class="smalltext post_author_info" width="145">
{$post['fidX']}
</td>
<td class="smalltext post_author_info" width="145">
{$post['fidY']}
</td>

Funktioniert im Grundsatz, nur dass die Überschriften fehlen und bei Fachgebieten die Auflistung nicht mehr als <ul></ul> sondern fortlaufend (sieht nicht gut aus) geführt wird.
[attachment=12740]
Die linke Spalte wurde mit Deinen Anregungen als Test verwendet. Die mittlere und rechte Spalte sind die Standardansichten.

Es stellt sich bei Deiner Lösungsvariante die Frage, wie die Überschriften sowie die Formatierungen übernommen werden können, so dass die linke Spalte = der rechten Spalte aussieht.
Seiten: 1 2 3