Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.8 veröffentlicht (17.10.16)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
[Erledigt] Profildaten in einem PopUp Fenster
#1
Hay @all

Ich möchte gerne diverse Profilfelder (Customfields) in einem PopUpfenster darstellen.

Ich habe mich daran versucht und bin bisher kläglich gescheitert.
Angelehnt habe ich mich an dieses Thema: Mitglieder Templates -> member_profil -> {$customfields}.

Ich habe versucht es meinen Bedürfnisen entsprechend anzupassen.

Ich habe z.B. in der Member.php folgendes hinzu gefügt:
PHP-Code:
if ($customfield['fid'] != '5')
        {
            eval(
"\$customfields .= \"".$templates->get("profilepkw")."\";");
            
$bgcolor alt_trow();
        }
        else
        {
            
$Modell htmlspecialchars_uni($userfields[$field]);
        }
if (
$customfield['fid'] != '6')
        {
            eval(
"\$customfields .= \"".$templates->get("profilepkw")."\";");
            
$bgcolor alt_trow();
        }
        else
        {
            
$Baujahr htmlspecialchars_uni($userfields[$field]);
        }
if (
$customfield['fid'] != '7')
        {
            eval(
"\$customfields .= \"".$templates->get("profilepkw")."\";");
            
$bgcolor alt_trow();
        }
        else
        {
            
$KW/PS htmlspecialchars_uni($userfields[$field]);
        }
if (
$customfield['fid'] != '8')
        {
            eval(
"\$customfields .= \"".$templates->get("profilepkw")."\";");
            
$bgcolor alt_trow();
        }
        else
        {
            
$Motorart htmlspecialchars_uni($userfields[$field]);
        } 

in der Member.lang.php habe ich dann das eingefügt:
PHP-Code:
$l['Modell'] = "Modell:";
$l['Baujahr'] = "Baujahr:";
$l['KW/PS'] = "KW / PS:";
$l['Motorart'] = "Motorart:"

und im Template (profilepkw - (ist als globales Template gespeichert)) dann das:
PHP-Code:
<strong>{$lang->Modell}</strong> {$Modell}<br />
<
strong>{$lang->Baujahr}</strong> {$Baujahr}<br />
<
strong>{$lang->KW/PS}</strong> {$KW/PS}<br />
<
strong>{$lang->Motorart}</strong> {$Motorart}<br /> 

Jedoch wird mir dann im PopUp-Fenster nichts angezeigt.

Kann mir einer sagen was ich falsch mache ?

Die angelegten Customfields sind folgender maßen:
[Bild: http://img440.imageshack.us/img440/245/e...wh7.th.jpg]

Aussehen soll das ganze dann in etwa So:
[Bild: http://img524.imageshack.us/img524/9862/...ie7.th.jpg]

Für das PopUpfenster benutze ich zweierlei. Zum einen Coppermine im Rechten Teil des PopUps und zum zweiten für die linke Seite des PopUps das Plugin
Easy Seiten 1.0

Das PopUp-Fenster ist durch zwei Frames getrennt die unabhängig von einander die entsprechenden Befehle per URL abrufen und werden über eine HTML Seite per Javascript-Link aufgerufen.


Das Easy Seiten 1.0 besteht aus zwei Teilen: Der pkw.php:
PHP-Code:
<?php

// Erlaubte Templates

$templatesallowed[] = 'profilepkw';

$templatenot $_GET['action'];

foreach (
$templatesallowed as $profilepkw) if ($profilepkw == $templatenot$template $profilepkw;

//**** Eigene Seite *****

define("KILL_GLOBALS"1);
define("IN_MYBB"1);


require_once 
"./global.php";
require_once 
"./inc/functions_post.php";


add_breadcrumb("$template");


eval(
"\$seite .= \"".$templates->get("$template")."\";");
output_page($seite);

?>

und dem Global-Templat profilepkw:

Code:
<html>
<head>
<title>{$settings[bbname]} - PKW-Daten</title>
{$headerinclude}
</head>
<body>

<table cellspacing="0" cellpadding="0" border="0" width="100%" align="center">
<tr><td class="tborder">
<table border="0" cellspacing="1" cellpadding="4" width="100%">
<tr>
<td class="thead" width="14%"><b>PKW - Daten</b></td>
</tr>
<tr>
<td class="trow1" valign="top" colspan="2">
<table cellspacing="0" cellpadding="0" border="0" width="100%"><tr>
<td valign="top">


</-- HIER KOMMT DEIN TEXT!!!! <!--


</td>
</tr></table>
</td>
</tr>
</table>
</td></tr></table>
<!---- Du bist nicht berechtigt dieses Copyright zu entfernen----!>
<center>Copyright von Eigene Seiten easy by <a href="http://www.duxfreak.com">DuxFreak</a></center>

</body>
</html>


Ich hoffe einer von Euch kann mir bei meinem Problem helfen.
Denn ich selbst sehe den Wald vor lauter Bäumen nicht mehr.

Gruß Maitre
Zitieren
#2
Du musst in der PHP-Datei die Profilfelder auslesen und auswerten. Die Variablen im Template sind leer, so dass auch nichts ausgegeben wird.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#3
Hay Michael,

Danke für Deine Antwort.
Könntest Du es bitte noch etwas spezifizieren ?

in welcher php Datei muss ich wie die Profilfelder auslesen ?

ist Mein Ansatz denn soweit richtig gewesen ?
Zitieren
#4
Wenn ich das richtig verstanden habe wird in dem Popup die Datei pkw.php aufgerufen, in der das Template geladen wird. Bevor das passiert müssen die Variablen in der Datei noch definiert werden. Beispiel:
PHP-Code:
$Modell "Text";
$Baujahr "1999";
eval(
"\$seite .= \"".$templates->get("$template")."\";"); 
Die Daten müssen natürlich aus der Datenbank geholt werden.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#5
Michael schrieb:Wenn ich das richtig verstanden habe wird in dem Popup die Datei pkw.php aufgerufen, in der das Template geladen wird. Bevor das passiert müssen die Variablen in der Datei noch definiert werden. Beispiel:
PHP-Code:
$Modell "Text";
$Baujahr "1999";
eval(
"\$seite .= \"".$templates->get("$template")."\";"); 
Die Daten müssen natürlich aus der Datenbank geholt werden.

Oha - und genau da muss ich passen - wie muss ich das schreiben damit es sinvoll aus der Datenbank gelesen wird ?

Danke für Deine Mühe
Gruß Maitre
Zitieren
#6
Hier mal ein kleines Beispiel. Das Skript muss mit der Benutzer-ID des Users aufgerufen werden, über den die Informationen angezeigt werden sollen (pkw.php?uid=x).
PHP-Code:
$query $db->query("SELECT * FROM ".TABLE_PREFIX."userfields WHERE ufid = '".intval($mybb->input['uid'])."'");
$content $db->fetch_array($query);

if(!empty(
$content['fid5'])) {
    
$Modell htmlspecialchars_uni($content['fid5']);
} else {
    
$Modell "Nicht angegeben";
}

if(!empty(
$content['fid6'])) {
    
$Baujahr htmlspecialchars_uni($content['fid6']);
} else {
    
$Baujahr "Nicht angegeben";
}

eval(
"\$seite .= \"".$templates->get("$template")."\";"); 

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#7
Hallo Michael,

Hab es so gemacht. Ergebnis ist eine weisse Seite mit der Fehlermeldung:

Parse error: parse error, unexpected '/', expecting '}' in /var/www/web1/html/Forum/pkw.php(49) : eval()'d code on line 1

Warning: Cannot modify header information - headers already sent by (output started at /var/www/web1/html/Forum/pkw.php(49) : eval()'d code:1) in /var/www/web1/html/Forum/inc/functions.php on line 78


Was bedeutet das ?

Die Url rufe ich über: "http://www.forum.rc-buxtehude.de/pkw.php?action=profilepkw&uid=2" auf.

Die pkw.php sieht zur Zeit so aus:
PHP-Code:
<?php

// Erlaubte Templates

$templatesallowed[] = 'profilepkw';

$templatenot $_GET['action'];

foreach (
$templatesallowed as $profilepkw) if ($profilepkw == $templatenot$template $profilepkw;

//**** Eigene Seite *****

define("KILL_GLOBALS"1);
define("IN_MYBB"1);


require_once 
"./global.php";
require_once 
"./inc/functions_post.php";

add_breadcrumb("$template");

$query $db->query("SELECT * FROM ".TABLE_PREFIX."userfields WHERE ufid = '".intval($mybb->input['uid'])."'");
$content $db->fetch_array($query);

if(!empty(
$content['fid5'])) {
    
$Modell htmlspecialchars_uni($content['fid5']);
} else {
    
$Modell "Nicht angegeben";
}

if(!empty(
$content['fid6'])) {
    
$Baujahr htmlspecialchars_uni($content['fid6']);
} else {
    
$Baujahr "Nicht angegeben";
}

if(!empty(
$content['fid7'])) {
    
$KW_PS htmlspecialchars_uni($content['fid7']);
} else {
    
$KW_PS "Nicht angegeben";
}

if(!empty(
$content['fid8'])) {
    
$Motorart htmlspecialchars_uni($content['fid8']);
} else {
    
$Motorart "Nicht angegeben";
}

eval(
"\$seite .= \"".$templates->get("$template")."\";");
output_page($seite);

?>
Zitieren
#8
Im Template stimmt etwas mit einer Variablen nicht. Vermutlich fehlt eine geschlossene geschweifte Klammer.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#9
Michael schrieb:Im Template stimmt etwas mit einer Variablen nicht. Vermutlich fehlt eine geschlossene geschweifte Klammer.

Danke Michael. Habe den Fehler gefunden.

Hatte Statt KW_PS - KW/PS geschrieben.

Jetzt wirft er es so aus:
Twingo - Phase 1
1993
44 / 54
F bla Bla

und das Zentriert

Ich hätte es aber gerne linksbündig.
Wie mus ich die Zeilen schreiben damit es linksbündig ist ?
<strong>{$lang->Modell}</strong> {$Modell}<br />
<strong>{$lang->Baujahr}</strong> {$Baujahr}<br />
<strong>{$lang->KW_PS}</strong> {$KW_PS}<br />
<strong>{$lang->Motorart}</strong> {$Motorart}<br />

und davor die entsprechende Feldbezeichnug, jedoch rechtsbündig angeordnet, so das es in der mitte eine klare Linie gibt.

ist das machbar ? und wenn ja wie ?
Danke Dir auf jedenfall schon mal für Deine hilfe bis hier her.
Zitieren
#10
Erstelle eine Sprachdatei mit dem Namen pkw.lang.php im Ordner der jeweiligen Sprache mit diesem Inhalt:
PHP-Code:
<?php
$l
['Modell'] = "Modell:";
$l['Baujahr'] = "Baujahr:";
$l['KW/PS'] = "KW / PS:";
$l['Motorart'] = "Motorart:"
?>
Suche dann in der Datei pkw.php die Zeile:
PHP-Code:
require_once "./global.php"
Darunter einfügen:
PHP-Code:
$lang->load("pkw"); 
Dass der Text linksbündig angezeigt wird ist über HTML-Anpassungen zu erreichen. Wenn du nicht weiter weißt poste bitte den gesamten Inhalt des Template.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Erledigt/Nicht erledigt Button Mato 4 359 21.11.2015, 12:14
Letzter Beitrag: Mato
  PN Popup Fenster erscheint nicht mehr M'era Luna 20 2.504 06.11.2007, 15:11
Letzter Beitrag: Lo$tY
  Popup fenster Mod vip3r 5 1.299 15.06.2006, 12:32
Letzter Beitrag: vip3r