Anzeigen der Profilbilder mit DB-Direktzugriff

Hast du Vorschläge, was wir an Admidio noch verbessern könnten ? Hier kannst du uns deine Vorstellung an neuen Funktionen mitteilen.
Antworten
harryman
Beiträge: 141
Registriert: 25. Jul 2007, 22:58
Kontaktdaten:

Anzeigen der Profilbilder mit DB-Direktzugriff

Beitrag von harryman »

Ich greife direkt mit php auf die DB zu und zeige neben bestimmten Daten auch die Profilbilder an. Zum Anzeigen der Profilbilder rufe ich die Datei /adm_program/modules/profile/profile_photo_show.php?usr_id='xx' auf.
Bei Verwendung der originalen profile_photo_show.php werden die Profilbilder nur angezeigt. wenn der User angemeldet ist.
Da meine Bilder immer angezeigt werden können rufe ich eine modifizierte profile_photo_show.php auf, bei dem der "Login-Check" entfernt wurde.

Lange Rede kurzer Sinn: Ich würde mir einen Parameter wünschen, mit dem ich das Anzeigen der Profilbilder steuern kann (angemeldet oder nicht angemeldet). Somit könnte ich mir bei ProgrammUpdates Nachbesserungen ersparen.

Besten Dank für euren SuperJob
Viele Grüsse
Harald
joesch
Beiträge: 683
Registriert: 22. Mai 2006, 14:40
Kontaktdaten:

Beitrag von joesch »

Hallo!

Als Zwischenlösung kann ich dir folgendes anbieten (was ich mit Fasses Hilfe - siehe sepatrater Beitrag hier im Forum - zusammengebastelt habe):

Code: Alles auswählen

<?php
/******************************************************************************
 * Photoresizer
 *
 * Copyright    : (c) 2004 - 2007 The Admidio Team
 * Homepage     : http://www.admidio.org
 * Module-Owner : Jochen Erkens
 *
 * Uebergaben:
 *
 * usr_id : die ID des Users dessen Bild angezeigt werden soll
 ******************************************************************************
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * version 2 as published by the Free Software Foundation
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 *
 *****************************************************************************
* Das Modul wurde so ergänzt, dass im ausgeloggten Zustand nur die Bilder der Mitglieder
* angezeigt werden, bei denen ein Ja/Nein-Profilfeld mit dem Namen weblist "angehakt"
* ist.
*****************************************************************************/
require("../adm_program/system/common.php");

// Uebergabevariablen pruefen
if(isset($_GET["usr_id"]) && is_numeric($_GET["usr_id"]) == false)
{
    $g_message->show("invalid");
}

// sql-String je nach Login-Zustand erstellen
if($g_session_valid == 1)
{
$sql = "SELECT usr_photo
        FROM ".TBL_USERS."
        WHERE usr_id= {0}";
} else {
$sql = "SELECT usr_photo, usd_value
  FROM ".TBL_USERS.", ". TBL_USER_DATA. ", ". TBL_USER_FIELDS. "
    WHERE usd_usr_id = usr_id
    AND usd_usf_id = usf_id
    AND usf_name = 'weblist'
    AND usr_id= {0}";
}

// Datenbank auslesen und Foto anzeigen (wenn erlaubt)
$sql = prepareSQL($sql, array($_GET["usr_id"]));        
$result_photo = mysql_query($sql, $g_adm_con);
header("Content-Type: image/jpeg");
echo mysql_result($result_photo,0,"usr_photo");
?>
Vielleicht kann dir das übergangsweise helfen.

Gruß Joesch
harryman
Beiträge: 141
Registriert: 25. Jul 2007, 22:58
Kontaktdaten:

Beitrag von harryman »

Hallo

Bei meiner Variante muss ich in der profile_photo_show.php nur eine Zeile entfernen, damit die Bilder (alle) angezeigt werden, denn dies ist genau das was ich brauche. Von daher werde ich mit diesem workaround leben, bis es eine "Original-Variante" gibt.

Gruss
Harald
Antworten