Menü

  Login

  Shoutbox

  Forum » Fragen zu Ilch » Andere Dinge » Avatar Kommentare Usergallery


Avatar Kommentare Usergallery
corian
Grünschnabel

User Pic

Posts: 21
# 10.05.2013 - 12:38:08
    zitieren



Hallo Mairu,
ich versuche jetzt schon seit Tagen die Avatar Ausgabe bei den Kommentaren der Usergallery hinzubekommen. Irgendwie will das aber nicht Funktionieren und ich habe keine Ahnung warum. Eigentlich sollte das ja nicht so schwer sein...

Hier mal der Ausschnitt

 Php von Datei auschnitt
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
  <?php
if ($menu->get(3) == 'show' && is_numeric($menu->get(4)) ) {
    
$picid escape($menu->get(4), 'integer');
        
// klicks zaehlen
    
db_query("UPDATE prefix_usergallery SET klicks = klicks + 1 WHERE id = " $picid);

    
$q db_query("SELECT `klicks`,`love`,`a`.`tags`,`a`.`name`, `a`.`besch`, `a`.`endung`, `a`.`id` AS `id`, `a`.`uid` AS `uid`, `b`.`name` AS `uname`
                   FROM `prefix_usergallery` AS `a`
                   LEFT JOIN `prefix_user` `b` ON `a`.`uid` = `b`.`id`
                   WHERE `a`.`id` = "
.$picid);
                   
    if ( 
db_num_rows($q) > ) {
      
$r db_fetch_assoc($q);
      

      

       if (
$r['uid'] == $menu->get(2)) {       
       
          
#comment eintragen
          
$insertmsg '';
          if ((
loggedin() or isset($_POST['name'])) and  !empty($_POST['text']) and $antispam chk_antispam('usergallery')) {
             if (
loggedin()) {
                
$name $_SESSION['authname'];
             } else {
                
$name escape($_POST['name'],'string');
                if (
db_count_query('SELECT COUNT(*) FROM `prefix_user` WHERE `name` = "'.$name.'"')) {
                  
$insertmsg .= 'Der Name ist bereits für einen registrierten User vergeben';
                }
             }
             if (empty(
$insertmsg)) {
               
$text escape($_POST['text'],'string');
               
db_query("INSERT INTO `prefix_koms` (`name`,`text`,`uid`,`cat`) VALUES ('".$name."','".$text."',".$r['id'].",'USERGIMG')");
               if (
$r['uid'] != $_SESSION['authid'] && true) {
                  
$host '[url]http://' $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'].'?user-usergallery-'.$r['uid'].'-show-'.$r['id'].'[/url]';
                  
$text "Hallo %s!\n\n %s hat einen Kommentar zu einem Bild ( %s ) geschrieben.\nUm direkt zu dem Foto zu kommen, nutze einfach den unten stehenden Link:\n%s\n\n Viel Spaß!";
                  
$ttext sprintf($text,$r['uname'],$_SESSION['authname'],$r['besch'],$host);
                  
sendpm (1$r['uid'], 'Neue Kommentare zu Deinen Bildern',$ttext, -1);
               }
             }

          } elseif (isset(
$_POST['subugalkom']) and !$antispam) {
            
$insertmsg .= 'Falscher Antispam oder du bist nicht eingeloggt';
          }
    
          
          
          
#comment loeschen
          
if (isset($_GET['delete']) && ( is_siteadmin() or $r['uid'] == $_SESSION['authid'] ) ) {
            
db_query("DELETE FROM `prefix_koms` WHERE `id` = ".escape($_GET['delete'], 'integer'));
          }

          
#comment zeigen
          
if (!empty($insertmsg)) {
            
$insertmsg '<span style="color:red;">'.$insertmsg.'</span><br />';
          }
          
        
          
          
          
$pAr = array();
          
$picQ db_query("SELECT `id` FROM `prefix_usergallery` WHERE `uid` = ".$r['uid']." ORDER BY `id` DESC");
          while (
$picr db_fetch_assoc($picQ)) {
              
$pAr[] = $picr['id'];
          }
          
         



        
          
$picArKey array_search($r['id'], $pAr);
          
$prevPicId = ($picArKey 0) ? $pAr[$picArKey 1] : false;
          
$nextPicId = ($picArKey < (count($pAr) - 1)) ? $pAr[$picArKey 1] : false;
          
$prevLink = !is_bool($prevPicId) ? '<a href="index.php?user-usergallery-'.$r['uid'].'-show-'.$prevPicId.'">&laquo; Vorheriges</a>' '';
          
$nextLink = !is_bool($nextPicId) ? '<a href="index.php?user-usergallery-'.$r['uid'].'-show-'.$nextPicId.'">N&auml;chstes &raquo;</a>' '';
          
          
$ordner db_result(db_query("SELECT name FROM prefix_user WHERE id = ".$uid),0,0);
          
$kommentare db_result(db_query("SELECT COUNT(*) FROM prefix_koms WHERE  uid = " $r['id'] . " AND cat = 'USERGIMG'"));
          
$beschreibungentext db_result(db_query("SELECT besch FROM prefix_usergallery WHERE id = ".$picid),0,0);
          
$beschreibungen '<span>'.autolink($beschreibungentext,array("target"=>"_blank")).'</span>';
          
                  
            
            

          
$path 'include/images/usergallery/'.$ordner.'/';
          
$exNorm = ( file_exists($path.'img_norm_'.$r['id'].'.'.$r['endung']) ? true false );
          
$ar = array (    
                 
'NID' => $nid,
                 
'klicks' => $r['klicks'],
                 
'kommentare' => $kommentare,
                 
'love'      => $r['love'],
                 
'besch'      => $beschreibungen,
                 
'tags'      => $r['tags'],
                 
'endung'     => $r['endung'],
                 
'img'        => ( $exNorm 'img_norm_'.$r['id'].'.'.$r['endung'] : 'img_'.$r['id'].'.'.$r['endung']),
                 
'style'      => ( $exNorm '' ' style="width:'. ($allgAr['gallery_normal_width']-64) .'px;"'),
                 
'id'         => $r['id'],
                 
'userid'     => $r['uid'],
                 
'uname'      => $_SESSION['authname'],
                 
'antispam'   => get_antispam('usergallery'0),
                 
'text'       => ( isset($_POST['text']) && !$antispam escape($_POST['text'],'string') : '' ),
                 
'insertmsg'  => $insertmsg,
                 
'nextpic'    => $nextLink,
                 
'prevpic'    => $prevLink
                 
                 
                
           
);
           
          
$tpl->set_ar_out($ar,5);


          
          
            
              
            
          
          
$class 'Cnorm';
          
          
$erg db_query("SELECT a.id, a.name, a.text 
                           FROM `prefix_koms` AS `a`
                           
                           WHERE `uid` = "
.$r['id']." AND `cat` = 'USERGIMG' ORDER BY a.id DESC");
                           
                           
           
          while (
$row db_fetch_assoc($erg)) {
            
            
$class = ($class == 'Cmite' 'Cnorm' 'Cmite');
            
$row['class'] = $class;
            
$row['text'] = bbcode ($row['text']);
            if (
is_siteadmin() OR $r['uid'] == $_SESSION['authid']) {
               
$row['text'] .= '<a href="index.php?user-usergallery-'.$r['uid'].'-show-'.$r['id'].'&amp;delete='.$row['id'].'"><img src="include/images/icons/del.gif" border="0" title="l&ouml;schen" alt="l&ouml;schen" /></a>';
            }
           
            
$tpl->set_ar_out($row,6);
        
            }
        
            
          
$tpl->out(7);

       } else {
          echo 
'Es ist ein Fehler aufgetreten.';
       }
    } else {
      echo 
'Es ist ein Fehler aufgetreten.';
    }
?>


Gedacht hatte ich mir das ich es hier einbau.

 Php
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
  <?php
         $class 
'Cnorm';
          
          
$erg db_query("SELECT a.id, a.name, a.text 
                           FROM `prefix_koms` AS `a`
                           
                           WHERE `uid` = "
.$r['id']." AND `cat` = 'USERGIMG' ORDER BY a.id DESC");
                           
                           
           
          while (
$row db_fetch_assoc($erg)) {
            
            
$class = ($class == 'Cmite' 'Cnorm' 'Cmite');
            
$row['class'] = $class;
            
$row['text'] = bbcode ($row['text']);
            if (
is_siteadmin() OR $r['uid'] == $_SESSION['authid']) {
               
$row['text'] .= '<a href="index.php?user-usergallery-'.$r['uid'].'-show-'.$r['id'].'&amp;delete='.$row['id'].'"><img src="include/images/icons/del.gif" border="0" title="l&ouml;schen" alt="l&ouml;schen" /></a>';
            }
           
            
$tpl->set_ar_out($row,6);
        
            }
?>


Aber egal was ich versuche, ich bekomme es nicht hin.

Vielleicht hast du ja einen Denkanstoß für mich oder ich liege völlig falsch??

Mfg corian

„Dumme Fragen gibt es nicht, dumm ist nur, wer nicht fragt.“
Mairu
Administrator

User Pic

Posts: 1908
# 11.05.2013 - 09:49:45
    zitieren



Ja, richtig genau dort muss es hin.
Das Problem bei Kommentaren und Avataren ist, das die Benutzerid des Kommentarschreibers nicht gespeichert wird und man somit nur über den Namen den User "suchen" kann.

Das mach man dann am besten über ein SQL JOIN

 Code
1:
2:
3:
4:
5:
 $erg = db_query("SELECT a.id, a.name, a.text, u.avatar, u.gender
                           FROM `prefix_koms` AS a
                           LEFT JOIN `prefix_user` u ON a.name = u.name
                           
                           WHERE a.`uid` = ".$r['id']." AND a.`cat` = 'USERGIMG' ORDER BY a.id DESC");


Dann hast du, wie auch im Forum, den Pfad zur Avatardatei und das Geschlecht, und kannst dann je nach Verfügbarkeit ein Avatar anzeigen. Einfach mal in die show_posts.php schauen.
corian
Grünschnabel

User Pic

Posts: 21
# 11.05.2013 - 10:17:59
    zitieren



Guten Morgen,
ja danke hat super geklappt. Ich Dachte mir schon das es mit JOIN geht aber irgendwie hapert es da bei mir noch, manchmal raff ich es einfach nicht wie ich die Abfrage machen soll.
Auslachen

Mfg corian

„Dumme Fragen gibt es nicht, dumm ist nur, wer nicht fragt.“