โดย Ittichai_chupol » 17/05/2019 10:12 am
ผมได้สร้าง Extension ที่มีไว้สำหรับกด ถูกใจโพสต์ โดยหากมีโพสต์ไหนได้รับการกดถูกใจ ก็จะมีการแสดงจำนวนการเข้ามากดถูกใจ
และนอกจากนี้ผุ้ใช้งานคนสามารถตรวจสอบได้ว่ามีใครมากดถูกใจโพสต์นั้นบาง ซึ่งเมื่อกดดุก็จะพบว่ามีการแสดงรูปภาพประจำตัวผู้ใช้งานคนนั้น(กรณ๊ที่มีการใช้งาน)
แต่เมื่อผมได้ทดลองทำก็พบว่า ไม่มีการแสดงรูปภาพประจำตัวใช้งานขึ้นมา
- Selection_999(1443).png (9.1 KiB) Viewed 1388 times
แล้วผมได้ตรวจสอบโดยการ inspect ดูพบว่ามีการเรียกที่อยู่ข้อมูลผิด
- 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]),
));
}
จึกอยากทราบว่าควรแก้ไข้อย่างไร ครับ
ผมได้สร้าง Extension ที่มีไว้สำหรับกด ถูกใจโพสต์ โดยหากมีโพสต์ไหนได้รับการกดถูกใจ ก็จะมีการแสดงจำนวนการเข้ามากดถูกใจ
และนอกจากนี้ผุ้ใช้งานคนสามารถตรวจสอบได้ว่ามีใครมากดถูกใจโพสต์นั้นบาง ซึ่งเมื่อกดดุก็จะพบว่ามีการแสดงรูปภาพประจำตัวผู้ใช้งานคนนั้น(กรณ๊ที่มีการใช้งาน)
แต่เมื่อผมได้ทดลองทำก็พบว่า ไม่มีการแสดงรูปภาพประจำตัวใช้งานขึ้นมา
[attachment=1]Selection_999(1443).png[/attachment]
แล้วผมได้ตรวจสอบโดยการ inspect ดูพบว่ามีการเรียกที่อยู่ข้อมูลผิด
[attachment=0]Selection_999(1444).png[/attachment]
โดยส่วนที่ใช้ในการแสดงรูภาพในโคด คือ [i][b]AVATAR_LIKE[/b][/i]
และนี้คือ code ที่ผมใช้งาน ครับ
[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]),
));
}
[/code]
จึกอยากทราบว่าควรแก้ไข้อย่างไร ครับ