Author Topic: Problems using additional user fields in details.php / Probleme mit zusätzliche  (Read 15938 times)

0 Members and 1 Guest are viewing this topic.

Offline skink

  • Newbie
  • *
  • Posts: 34
    • View Profile
Hi,

I need a bit of help in showing my additional user fields in the details template. What I've done so far is:

1) Added the fields "firstname, lastname, address, postalcode, city, phone, cellular" in my database
2) Added the fields to the db_field_definitions.php
3) Added the fields to the main.php

What I'm trying to do is show the contact information of the copyright owner of the image shown on the detail page. I'm just trying to save my users the hassle of having to click onto the image username to get the users infos.

According to the FAQ I can now use the tags i.e {firstname} and {lang_firstname}. 

Well somewhere along the line I missed something. I figure I need to do some changes in the details.php, but I don't know what.

Can anyone help me out here?

Thanks in advance.
Steve

Used Version 1.7.2

----German-----

Hallo,

ich bräuchte hilfe, um die zusätzliche user felder in der details.php anzuzeigen. Folgendes habe ich bisher gemacht:

1) Die zusätzliche Felder "firstname, lastname, address, postalcode, city, phone, cellular" in der Datenbank eingefügt
2) Die zusätzliche Felder in der db_field_definitions.php eingefügt
3) Die zusätzliche Felder in der main.php eingefügt

Ich versuche die kontakt infos der Urheberrechtbesitzer auf die Detailseite anzuzeigen. Ich versuche meine Benutzer einen Schritt zu ersparen.

Laut FAQ kann ich nach die o.g Schritte die Tags z.B. {firstname} und {lang_firstname} nutzen.

Anscheind habe ich etwas übersehen, weil ich sehe gar nichts. Ich vermute ich habe Veränderungen in der details.php vergessen, aber ich weiss nicht welche.

Kann mir bitte Jemand aushelfen?
Danke im voraus.

Steve

Used Version 1.7.2

« Last Edit: March 27, 2006, 09:32:36 AM by skink »

Offline skink

  • Newbie
  • *
  • Posts: 34
    • View Profile
No ideas?


Keine Ideen?

Offline IcEcReaM

  • Hero Member
  • *****
  • Posts: 714
    • View Profile
    • My little Testboard
Versuch mal das:
Vor:
Code: [Select]
//-----------------------------------------------------
//--- Save Comment ------------------------------------
//-----------------------------------------------------
das einfügen:
Code: [Select]
    if (!empty($additional_user_fields)) {
      $additional_field_array = array();
      foreach ($additional_user_fields as $key => $val) {
        $additional_field_array[$key] = (!empty($user_info[$key])) ? format_text($user_info[$key], 1) : REPLACE_EMPTY;
        $additional_field_array['lang_'.$key] = $val[0];
      }
      if (!empty($additional_field_array)) {
        $site_template->register_vars($additional_field_array);
      }
    }
Coding is a everlasting competition between programmers who tries to write larger, better and idiot-safe programs and the universe producing larger and stupider idiots...
...so far the universe won
bump

Offline skink

  • Newbie
  • *
  • Posts: 34
    • View Profile
Hi IcEcReaM,

danke für den Tipp, hat leider nicht funktioniert. In welche Zeile werden die Daten geladen?

Code: [Select]
$sql = "SELECT i.image_id, i.cat_id, i.user_id, i.image_name, i.image_description, i.image_keywords, i.image_date, i.image_active, i.image_media_file, i.image_thumb_file, i.image_download_url, i.image_downloads, i.image_hits".$additional_sql.", c.cat_name".get_user_table_field(", u.", "user_name").get_user_table_field(", u.", "user_email")."

        FROM (".IMAGES_TABLE." i,  ".CATEGORIES_TABLE." c)
        LEFT JOIN ".USERS_TABLE." u ON (".get_user_table_field("u.", "user_id")." = i.user_id)
        WHERE i.image_id = $image_id AND c.cat_id = i.cat_id";

Hier kann ich nicht erkennen, ob die additional user fields geladen werden. Ich bin auch Laie, also auch etwas Blind. ;-)

Offline IcEcReaM

  • Hero Member
  • *****
  • Posts: 714
    • View Profile
    • My little Testboard
die userfelder werden gar nicht in der details geladen,
sondern user abhängig in der sessions.php.

Zeigt der Tag {firstname} gar nichts an?
Natürlich muss dazu das entsprechende Userfeld auch gefüllt sein, damit es angezeigt wird.
Coding is a everlasting competition between programmers who tries to write larger, better and idiot-safe programs and the universe producing larger and stupider idiots...
...so far the universe won
bump

Offline skink

  • Newbie
  • *
  • Posts: 34
    • View Profile
Nur für mein verständnis. Ich dachte in der Session.php werden die Userdaten von mir als angemeldete Personen geladen. Werden also auch die Userdaten von den Besitzer des Images dort auch geladen?

Der Tag {firstname} zeigt überhaupt nichts an, obwohl in der Datenbank alle Felder gefüllt sind. Deswegen bin ich etwas stützig. Soll ich ggf. ein Codeauszug der Veränderungen, die ich bisher gemacht habe, hier im Thread kopieren?

Ich weiss zwar nicht ob es relevant ist, aber ich habe in der details.php komplett alles was mit den Kommentarsystem zu tun hat rausgeschmiessen, da ich dieser Funktion überhaupt nicht nutzen werde.

Offline IcEcReaM

  • Hero Member
  • *****
  • Posts: 714
    • View Profile
    • My little Testboard
achso, ich dachte du wollest die anzeige wie firstname user abhängig vom eingeloggten User machen?

die user bezogenen daten des bildbesitzers werden in der details.php ausgelesen,
allerdings nur die felder username und user email.
keine weiteren.
Coding is a everlasting competition between programmers who tries to write larger, better and idiot-safe programs and the universe producing larger and stupider idiots...
...so far the universe won
bump

Offline skink

  • Newbie
  • *
  • Posts: 34
    • View Profile
hast Du eine Ahnung wie ich andere Userdaten angezeigt bekomme? Sollte ich eine neue SQL abfrage starten (allerdings wusste ich nicht wo ich das platzieren sollet)? Ich wäre für jeder Tipp dankbar.

Gruss
Steve

Offline IcEcReaM

  • Hero Member
  • *****
  • Posts: 714
    • View Profile
    • My little Testboard
du brauchst keine weitere starten,
sondern einfach nur die jetzige erweitern.
Code: [Select]
$sql = "SELECT i.image_id, i.cat_id, i.user_id, i.image_name, i.image_description, i.image_keywords, i.image_date, i.image_active, i.image_media_file, i.image_thumb_file, i.image_download_url, i.image_downloads, i.image_hits".$additional_sql.", c.cat_name".get_user_table_field(", u.", "user_name").get_user_table_field(", u.", "user_email")."
        FROM (".IMAGES_TABLE." i,  ".CATEGORIES_TABLE." c)
        LEFT JOIN ".USERS_TABLE." u ON (".get_user_table_field("u.", "user_id")." = i.user_id)
        WHERE i.image_id = $image_id AND c.cat_id = i.cat_id";


und das was ich oben gepostet hatte,
zu ändern in:
Code: [Select]
    if (!empty($additional_user_fields)) {
      $additional_field_array = array();
      foreach ($additional_user_fields as $key => $val) {
        $additional_field_array[$key] = (!empty($image_row[$key])) ? format_text($image_row[$key], 1) : REPLACE_EMPTY;
        $additional_field_array['lang_'.$key] = $val[0];
      }
      if (!empty($additional_field_array)) {
        $site_template->register_vars($additional_field_array);
      }
    }
Coding is a everlasting competition between programmers who tries to write larger, better and idiot-safe programs and the universe producing larger and stupider idiots...
...so far the universe won
bump

Offline skink

  • Newbie
  • *
  • Posts: 34
    • View Profile
Soweit war ich schon. Auch dieses hat nicht funktioniert, deshalb mein Thread.

Ich hatte folgende Felder am Ende der SQL-Abfrage versucht

- u.user_firstname ohne Erfolg
-.get_user_table_field(", u.", "user_firstnamel"). was aus der sessions.php aufgerufen wird ohne Erfolg

Ich hatte sogar den $additional_sql mit den additional user felder ersetzt, was zur Folge hatte, dass die additional image felder nicht mehr angezeigt worden.

Da sich die neuen Felder in ACP anzeigen und füllen lassen, gehe ich davon aus das meine ersten drei Schritt korrekt sind. Inzwischen habe ich die Schritte sogar mit ein saubere Installation wiederholt. Kein Erfolg.

Vielleicht trfft mir noch der Blitz und ich finde eine Lösung. :-(


Offline IcEcReaM

  • Hero Member
  • *****
  • Posts: 714
    • View Profile
    • My little Testboard
richtig muss es heissen:
u.firstname , da ja dein feldname firstname heisst.

das mit den get_user_table_field ist nur für die 4images kernfelder nötig,
hat was mit kompatibilität zu tun, wenn man keine standardfeldnamen nutzt.

also einfach nur in diesem fall "u." als prefix und dann dein feldname daran.
Coding is a everlasting competition between programmers who tries to write larger, better and idiot-safe programs and the universe producing larger and stupider idiots...
...so far the universe won
bump

Offline skink

  • Newbie
  • *
  • Posts: 34
    • View Profile
In Wirklichkeit ist der Feldname user_firstname. Ich habe es nur der einfachhalber abgekürzt. Ich hab eine Lösung gefunden die funktioniert, da alles andere nicht ging.

Ich weiss zwar nicht warum das andere nicht ging, zumal in den Threads habe ich ähnliche Lösungen gefunden, die Du mir vorgeschlagen hattest. Vielleicht erkennst Du den Fehler.

Quote
$additional_sql = "";
if (!empty($additional_image_fields)) {
  foreach ($additional_image_fields as $key => $val) {
    $additional_sql .= ", i.".$key;
  }
}
if (!empty($additional_user_fields)) {
  foreach ($additional_user_fields as $key => $val) {
    $additional_sql .= ", u.".$key;
  }
}


$sql = "SELECT i.image_id, i.cat_id, i.user_id, i.image_name, i.image_description, i.image_keywords, i.image_date, i.image_active, i.image_media_file, i.image_thumb_file, i.image_download_url, i.image_downloads, i.image_hits".$additional_sql.", c.cat_name".get_user_table_field(", u.", "user_name").get_user_table_field(", u.", "user_email")."

        FROM (".IMAGES_TABLE." i,  ".CATEGORIES_TABLE." c)
        LEFT JOIN ".USERS_TABLE." u ON (".get_user_table_field("u.", "user_id")." = i.user_id)
        WHERE i.image_id = $image_id AND c.cat_id = i.cat_id";

$image_row = $site_db->query_firstrow($sql);
$cat_id = (isset($image_row['cat_id'])) ? $image_row['cat_id'] : 0;
$is_image_owner = ($image_row['user_id'] > USER_AWAITING && $user_info['user_id'] == $image_row['user_id']) ? 1 : 0;

if (!check_permission("auth_viewcat", $cat_id) || !check_permission("auth_viewimage", $cat_id) || !$image_row) {
  redirect($url);
}

$user_firstname = $image_row['user_firstname'];

$site_template->register_vars(array(
  "user_firstname" => $user_firstname
));


Vielen Dank nochmals für deine Mühe.

Offline mstgokcen

  • Newbie
  • *
  • Posts: 44
    • View Profile
In English plz..

Are you able to add some fields like name,lastname,ciyt etc..

I need this too

Offline Art By Vicky

  • Jr. Member
  • **
  • Posts: 59
    • View Profile
    • ABV Arts Enterprises
I need this in English too, as I have the same problem!  Please, SOMEONE provide this information in English!  I have no clue what is being said in the conversation or whether or not it even works.  Or, if you can't provide the info in English, please direct me to a post where it IS written in English because I can't find one after searching for almost an hour.

Thank you in advance.
ABVarts.com
RoundTableWebDesign.com
ArtByVicky.com
League of Animal Artists - AnimalArtists.org

Offline thunderstrike

  • 4images Guru
  • *******
  • Posts: 2.327
    • View Profile
8 steps need when ask question -

- PHP version (ACP - > phpinfo())
- mySQL version (ACP - > phpinfo())
- 4images version
- Post screenshot / URL
- Post code in BB Code (no need full file for code) or post attach file
- It doesn't work. What is say - what is do for no work
- Install MOD ? If so - please say (troubleshooting)
- Read FAQ ? Install Bug fixes ?