Mitgliederprofil für jeden sichtbar

Hast du Vorschläge, was wir an Admidio noch verbessern könnten ? Hier kannst du uns deine Vorstellung an neuen Funktionen mitteilen.
Waldgeister
Beiträge: 10
Registriert: 8. Feb 2008, 14:30

Beitrag von Waldgeister »

entschuldigt, dass ich nochmals den alten thread raufhole...

ich möchte ebenso eine Seite mit Steckbriefen der Mitglieder ausserhalb von Admidio für alle Besucher sichtbar machen. Der Steckbrief sollte folgende Infos enthalten:
Vorname
Nachname
Geburtstag
und evtl. ein eigenes Profilfeld wie z.B. "Mitglied seit"
sowie das Foto

Bei folgendem Code

Code: Alles auswählen

<?php 
include_once("adm_program/system/common.php"); 

    $user_id=1; 
    $user = new User($g_adm_con); 
    $user->GetUser($user_id); 
    echo" 
    <div class=\"formHead\" style=\"width: 400px\">"; 
        echo strspace($user->first_name. " ". $user->last_name, 1); echo"</div> 
    <div class=\"formBody\" style=\"width: 400px; height: 180px; text-align: left;\"> 
        <div style=\"width: 250px; float: left;\"> 
            Geburtsdatum: "; echo mysqldatetime('d.m.y', $user->birthday);echo"<br><br> 
            <a class=\"normalLight\" href=\"mailto:".$user->email."\">E-Mail an ".$user->first_name." schreiben</a> 
    </div> 
    <br><br>";         
?>
bekomme ich diese Fehlermeldung:
Fatal error: Call to a member function query() on a non-object in /www/htdocs/w0085592/wgr/seite/intern/adm_program/system/table_access_class.php on line 112
Ich habe erhlich gesagt nicht wirklich eine Ahnung von PHP. Kann mir jemand von euch helfen?
Ich verwende die neuste admidio version.

Vielen Dank.
Gruss
Benutzeravatar
fasse
Administrator
Beiträge: 6170
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Du hast das Objekt soweit richtig angelegt, wenn du aber auf Feldinhalte zugreifen willst musst du folgende Methode aufrufen:
$user->getValue("Nachname");
In den Hochkomma kannst du jetzt jedes Feld abrufen, welches du in der Profilverwaltung angelegt hast, auch deine eigenen. Einfach den Namen des Feldes reinschreiben.

Gruß
Fasse
Waldgeister
Beiträge: 10
Registriert: 8. Feb 2008, 14:30

Beitrag von Waldgeister »

Entschuldigt, aber jetzt habe ich irgendwie den Überblick verloren.

Fasse könntest du, oder jemand anderes, mir einmal einen vollständigen PHP Code schreiben, in dem die
> common.php included ist,

> aus der Tabelle "adm_user_data" die
-->"usd_usf_id" 1 (Nachname) 2 (Vorname) und 10 (Geburtstag) ausgelesen wird. und

> aus der Tabelle "adm_photos"
--> das dazugehörige Bild

Ich hoffe ich verlange jetzt nicht zuviel von euch... es reicht auch wenn die Ausgabe völlig unformatiert ist, wenigstens dass sollte ich dann selber schaffen.

Wäre euch für eure Hilfe sehr dankbar.

Gruss
Benutzeravatar
fasse
Administrator
Beiträge: 6170
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Hallo Waldgeist,

ich hab jetzt mal deinen Code genommen und angepasst. Du warst auf dem richtigen Weg, nur die Abfrage der Felder muss sich ein bischen ändern.

Code: Alles auswählen

<?php
include_once("adm_program/system/common.php");

    $user_id=1;
    $user = new User($g_adm_con);
    $user->GetUser($user_id);
    echo"
    <div class=\"formHead\" style=\"width: 400px\">".
        $user->getValue("Vorname"). " ". $user->getValue("Nachname"). "</div>
    <div class=\"formBody\" style=\"width: 400px; height: 180px; text-align: left;\">
        <div style=\"width: 250px; float: left;\">
            Geburtsdatum: "; echo mysqldatetime('d.m.y', $user->getValue("Geburtstag");echo"<br><br>
            <a class=\"normalLight\" href=\"mailto:".$user->getValue("E-Mail")."\">E-Mail an ".$user->getValue("Vorname")." schreiben</a>
           <img src=\"". $g_root_path. "/adm_program/modules/profile/profile_photo_show.php?usr_id=".$a_user_id."&id=". time(). "\" alt=\"Profilfoto\" />
    </div>
    <br><br>";         
?>
Waldgeister
Beiträge: 10
Registriert: 8. Feb 2008, 14:30

Beitrag von Waldgeister »

wenn ich den Code 1:1 kopiere meldet er mir
Parse error: syntax error, unexpected ';' in /www/htdocs/w0085592/wgr/seite/intern/mitglieder.php on line 20
line 20 ist die folgende:
Geburtsdatum: "; echo mysqldatetime('d.m.y', $user->getValue("Geburtstag");echo"<br><br>
hast du mir noch ein Tip?
Benutzeravatar
fasse
Administrator
Beiträge: 6170
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Code: Alles auswählen

Geburtsdatum: ". mysqldatetime('d.m.y', $user->getValue("Geburtstag")). "<br><br>
Waldgeister
Beiträge: 10
Registriert: 8. Feb 2008, 14:30

Beitrag von Waldgeister »

danke und tut mir leid wenn ich weiter nerven muss...
:oops:
Fatal error: Call to a member function query() on a non-object in /www/htdocs/w0085592/wgr/seite/intern/adm_program/system/table_access_class.php on line 112

line 112:

Code: Alles auswählen

 $this->db->query($sql);
matzman2000
Former team member
Beiträge: 1087
Registriert: 2. Sep 2007, 17:12
Wohnort: Itzstedt
Kontaktdaten:

Beitrag von matzman2000 »

Da sind noch ein paar Fehler im Code enthalten, so ist es richtig:

Code: Alles auswählen

<?php
include_once("adm_program/system/common.php");

    $user_id=1;
    $user = new User($g_db, $user_id);
    $user->GetUser($user_id);
    echo"
    <div class=\"formHead\" style=\"width: 400px\">".
        $user->getValue("Vorname"). " ". $user->getValue("Nachname"). "</div>
    <div class=\"formBody\" style=\"width: 400px; height: 180px; text-align: left;\">
        <div style=\"width: 250px; float: left;\">
            Geburtsdatum: "; echo mysqldatetime('d.m.y', $user->getValue("Geburtstag"));echo"<br><br>
            <a class=\"normalLight\" href=\"mailto:".$user->getValue("E-Mail")."\">E-Mail an ".$user->getValue("Vorname")." schreiben</a>
           <img src=\"". $g_root_path. "/adm_program/modules/profile/profile_photo_show.php?usr_id=".$user_id."&id=". time(). "\" alt=\"Profilfoto\" />
    </div>
    <br><br>";         
?>
Was ist anders?
In Zeile 5 wurde der Aufruf des Users mit der alten Methode (wie in Admidio 1.4.x) durchgeführt. Mit der neuen Methode klappt es dann auch.
In Zeile 12 fehlte hinter dem Abruf des Feldinhaltes "Geburtstag" noch eine ")".
In Zeile 14 wurde das Profilfoto mit der Übergabe der Variable $a_user_id durchgeführt, hier im eigenen Code heisst sie aber $user_id (war 1:1 aus dem Photomodul kopiert...).

So sollte es dann nun hinhauen. :wink:

Gruss,
Matze
bk7
Beiträge: 69
Registriert: 3. Aug 2006, 12:07

Beitrag von bk7 »

hallo,

ist es vielleich auch möglich jeden user selbst entscheiden zu lassen welche daten "sichtbar" sind und welche nicht. beispielsweise möchte nicht jeder seine adresse veröffentlichen, einige aber schon. andere möchten nicht im geburtstagskalender erscheinen....
wär ne super sache wenn es irgendwann mal möglich wäre, dass jeder user selbt auswählen kann wo seine daten zugänglich sind und wo nicht...
was haltet ihr davon... ?
Antworten