อยากทราบวิธีการแก้ไข้การเรียกใช้งาน image avatar เพื่อแสดงรูปผู้ใช้งาน phpbb

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: อยากทราบวิธีการแก้ไข้การเรียกใช้งาน image avatar เพื่อแสดงรูปผู้ใช้งาน phpbb

Re: อยากทราบวิธีการแก้ไข้การเรียกใช้งาน image avatar เพื่อแสดงรูปผู้ใช้งาน phpbb

โดย thatsawan » 25/05/2019 1:59 pm

ใช้วิธีนี้ก้อได้

โค้ด: เลือกทั้งหมด

 $login_auto_phpbb_avatar = phpbb_get_user_avatar($row_image); 

โค้ด: เลือกทั้งหมด

                    $data[$row_image['user_id']] = str_replace('./../../../../' ,generate_board_url(). '/' , $login_auto_phpbb_avatar);
 

Re: อยากทราบวิธีการแก้ไข้การเรียกใช้งาน image avatar เพื่อแสดงรูปผู้ใช้งาน phpbb

โดย Ittichai_chupol » 21/05/2019 6:41 pm

มันได้ออกมาเป็น โคดแทนครับ
Selection_999(1446).png
Selection_999(1446).png (12.31 KiB) Viewed 1341 times

Re: อยากทราบวิธีการแก้ไข้การเรียกใช้งาน image avatar เพื่อแสดงรูปผู้ใช้งาน phpbb

โดย thatsawan » 21/05/2019 6:30 pm

'เราต่อ url เองได้มัย ลองดูแบบนี้



โค้ด: เลือกทั้งหมด

     while ($row_image = $this->db->sql_fetchrow($result_image)) {
                    $login_auto_phpbb_avatar = phpbb_get_user_avatar($row_image);
                    
                    //echo $login_auto_phpbb_avatar;
                    $data[$row_image['user_id']] =  $row_image['user_avatar'];
                    $user_color[$row_image['user_id']] = $row_image['user_colour'];

                }
                $url_user = generate_board_url();
                
                
                foreach ($user_id as $id) {

                        $image = $url_user . '/' .append_sid("download/file.$this->php_ext", "avatar=" . $data[$id]);

                    $this->template->assign_block_vars('user_all', array(
                        'LINK_USER_NAME' => $url_user . '/' . append_sid("memberlist.$this->php_ext", "mode=viewprofile&u=$id"),
                        'NAME_LIKE' => get_username_string('username', $id, $user_show[$id], $user_color[$id], $user_show[$id]), //get_username_string('colour', $value, $user_show[$value], $this->get_colour($user_show[$value]), $user_show[$value]),
                        'AVATAR_LIKE' => $image, //(empty($data[$value])) ? '<div class="not_avtar"></div>' : $data[$value],
                        'TIME_LIKE' => $this->user->format_date($like_time[$id]),
                    ));
                } 

Re: อยากทราบวิธีการแก้ไข้การเรียกใช้งาน image avatar เพื่อแสดงรูปผู้ใช้งาน phpbb

โดย Ittichai_chupol » 21/05/2019 5:31 pm

ที่ผลองทำได้แบบนี้ครับ
Selection_999(1445).png

โค้ด: เลือกทั้งหมด

<img class="avatar" src="./../../../../download/file.php?avatar=2_1557288536.png" width="580" height="361" alt="User avatar">

โคดที่ใช่ตอนนี้

โค้ด: เลือกทั้งหมด



                $sql_image = 'SELECT user_colour,user_id, user_avatar ,user_avatar_type,user_avatar_width ,user_avatar_height
					FROM ' . USERS_TABLE . '
					WHERE ' . $this->db->sql_in_set('user_id', $user_id);
                $result_image = $this->db->sql_query($sql_image);

            
                while ($row_image = $this->db->sql_fetchrow($result_image)) {
                    $login_auto_phpbb_avatar[$row_image['user_id']]  = get_user_avatar($row_image['user_avatar'], $row_image['user_avatar_type'], 
                                                                                                                                    $row_image['user_avatar_width'], $row_image['user_avatar_height']);

                    $data[$row_image['user_id']] = $login_auto_phpbb_avatar;
                    $user_color[$row_image['user_id']] = $row_image['user_colour'];
                }
                $url_user = generate_board_url();


                foreach ($user_id as $id) {
                    $this->template->assign_block_vars('user_all', array(
                        'AVATAR_LIKE' => $login_auto_phpbb_avatar[$id], 
                   
                    ));
                }



Re: อยากทราบวิธีการแก้ไข้การเรียกใช้งาน image avatar เพื่อแสดงรูปผู้ใช้งาน phpbb

โดย thatsawan » 21/05/2019 5:25 pm

เวลามันส่งไปจะส่งเป็น นะ ได้ Return ออกมาเเบบนี้หรือยัง

โค้ด: เลือกทั้งหมด

<img class="avatar" src="xxxx" alt="ภาพประจำตัวสมาชิก" width="120" height="120"> 

Re: อยากทราบวิธีการแก้ไข้การเรียกใช้งาน image avatar เพื่อแสดงรูปผู้ใช้งาน phpbb

โดย Ittichai_chupol » 21/05/2019 5:10 pm

ยังไม่เป็นแบบเดิมครับ มันยังดึง path ผิดอยู่ครับ

Re: อยากทราบวิธีการแก้ไข้การเรียกใช้งาน image avatar เพื่อแสดงรูปผู้ใช้งาน phpbb

โดย thatsawan » 18/05/2019 4:25 pm

$row คือ ข้อมูลที่ได้จาก USERS_TABLE

โค้ด: เลือกทั้งหมด

phpbb_get_user_avatar($row) 

Re: อยากทราบวิธีการแก้ไข้การเรียกใช้งาน image avatar เพื่อแสดงรูปผู้ใช้งาน phpbb

โดย mindphp » 17/05/2019 12:45 pm

path ไฟล์ ที่ระบุไปที่ ไฟล์ file.php ผิด
ระบุ path เข้ามาจาก root folder ว่าเข้ามากี่ชั้น

ถ้าใน phpBB แค่ระบุ path ถูกก็จะได้ ภาพมาใช้งานเลย

ลองดูกระทู้นี้ ทำความเข้าใจเรื่อง
https://www.mindphp.com/forums/viewtopic.php?t=22186

อยากทราบวิธีการแก้ไข้การเรียกใช้งาน image avatar เพื่อแสดงรูปผู้ใช้งาน phpbb

โดย Ittichai_chupol » 17/05/2019 10:12 am

ผมได้สร้าง Extension ที่มีไว้สำหรับกด ถูกใจโพสต์ โดยหากมีโพสต์ไหนได้รับการกดถูกใจ ก็จะมีการแสดงจำนวนการเข้ามากดถูกใจ

และนอกจากนี้ผุ้ใช้งานคนสามารถตรวจสอบได้ว่ามีใครมากดถูกใจโพสต์นั้นบาง ซึ่งเมื่อกดดุก็จะพบว่ามีการแสดงรูปภาพประจำตัวผู้ใช้งานคนนั้น(กรณ๊ที่มีการใช้งาน)

แต่เมื่อผมได้ทดลองทำก็พบว่า ไม่มีการแสดงรูปภาพประจำตัวใช้งานขึ้นมา
Selection_999(1443).png
Selection_999(1443).png (9.1 KiB) Viewed 1388 times

แล้วผมได้ตรวจสอบโดยการ inspect ดูพบว่ามีการเรียกที่อยู่ข้อมูลผิด
Selection_999(1444).png
Selection_999(1444).png (30.26 KiB) Viewed 1388 times

โดยส่วนที่ใช้ในการแสดงรูภาพในโคด คือ AVATAR_LIKE
และนี้คือ code ที่ผมใช้งาน ครับ

โค้ด: เลือกทั้งหมด


                if (strlen($topic) > 1) {
                    $numlike = substr($topic, -1);
                } else {
                    $numlike = $topic;
                }

                $sql = ' SELECT * FROM ' . $this->table_prefix . 'm_like' . $numlike . ' WHERE post_id=' . $post;
                $result = $this->db->sql_query($sql);
                $username = $user_show_all = $like_time = '';

                while ($row = $this->db->sql_fetchrow($result)) {
                    $user_id[] = $row['user_id'];
                    $user_show[$row['user_id']] = $row['username'];
                    $like_time[$row['user_id']] = $row['like_time'];
                }

                $sql_image = 'SELECT user_colour,user_id, user_avatar ,user_avatar_type,user_avatar_width ,user_avatar_height
					FROM ' . USERS_TABLE . '
					WHERE ' . $this->db->sql_in_set('user_id', $user_id);
                $result_image = $this->db->sql_query($sql_image);


                while ($row_image = $this->db->sql_fetchrow($result_image)) {
                    $login_auto_phpbb_avatar = phpbb_get_user_avatar($row_image);
                    
                    //echo $login_auto_phpbb_avatar;
                    $data[$row_image['user_id']] = $login_auto_phpbb_avatar;
                    $user_color[$row_image['user_id']] = $row_image['user_colour'];
                }
                $url_user = generate_board_url();
                
                
                foreach ($user_id as $id) {

            

                    $this->template->assign_block_vars('user_all', array(
                        'LINK_USER_NAME' => $url_user . '/' . append_sid("memberlist.$this->php_ext", "mode=viewprofile&u=$id"),
                        'NAME_LIKE' => get_username_string('username', $id, $user_show[$id], $user_color[$id], $user_show[$id]), //get_username_string('colour', $value, $user_show[$value], $this->get_colour($user_show[$value]), $user_show[$value]),
                        'AVATAR_LIKE' => $data[$id], //(empty($data[$value])) ? '<div class="not_avtar"></div>' : $data[$value],
                        'TIME_LIKE' => $this->user->format_date($like_time[$id]),
                    ));
                }

จึกอยากทราบว่าควรแก้ไข้อย่างไร ครับ

ข้างบน