ถ้าต้องการแก้ไขเงื่อนไขในการสร้างปุ่ม ในโปรแกรมจัดเก็บเอกสาร eDm

คือ เดิมในหน้าแสดงรายการเอกสาร ตรงด้านขวาสุดของตารางจะเป็นปุ่ม ดาวน์โหลด หรือ ปุ่ม ลิ้งค์ และ ปุ่มรายละเอียด ของเอกสาร โดยเงื่อนไขการแสดงปุ่ม ระหว่าง ปุ่มดาวน์โหลด กับ ปุ่มลิ้ง ต้องมีอย่างใดอย่างหนึ่ง จะไม่มีทิ้งสองอย่างไม่ได้ แต่พอดีไปเจอปัญหาที่ว่าบางเอกสารมีข้อความสั้นๆ ไม่จำเป็นต้องมีลิ้งค์ หรือ อะไรต้องดาวน์โหลด สามารถพิมพ์ข้อความลงไปใน Detail ได้เลย ผมก็ได้ตัดเงื่อนไขการตรวจสอบที่ไม่ต้องคีย์ข้อมูลของทั้งไฟล์ดาวน์โหลด และ ลิ้งค์ ออกไปแล้ว โดยไม่ต้องคีย์สองส่วนนี้ก็บันทึกข้อมูลได้ แต่ก็ไปติดเงื่อนไขการแสดงปุ่มที่โปรแกรมต้องโชว์อย่างใดอย่างหนึ่ง ผมเลยขอสอบถามอาจารย์ว่า จะต้องเขียนแก้เงื่อนไขนี้ยังไงครับ โดยถ้าไม่มีข้อมูลของทั้งสองอย่างแล้วไม่ต้องโชว์ ให้เหลือแค่ปุ่มรายละเอียดของเอกสารเท่านั้น ผมก็ได้ลองเขียนแก้โน่นนี่นั่นตามความรู้ที่มีก็ไม่ได้ผล รบกวนอาจารย์ช่วยด้วยนะครับ ไม่รู้ว่าจะเขียนแก้ยังไง ขอบคุณครับ
06 ส.ค. 2564 12 867

สามารถเขียนเงื่อนไขการแสดงผลปุ่มได้ที่นี่ https://github.com/...views/index.php#L182
$btn คือชื่อปุ่ม มาจาก key ของแอเรย์ buttons
$attributes property ของปุ่ม จากตัวอย่างคือการเปลี่ยนปุ่มจาก download เป็น ลิงค์ภายนอก
$item ข้อมูลในแต่ละแถว
คืนค่า $attributes กลับไปสร้างปุ่ม หรือ คืนค่า false ถ้าไม่ต้องการสร้างปุ่ม
#1

ครับ ผมก็ลองแก้ไขจากตรงนี้น่ะครับ แต่ลองเขียนแก้หลายวิธีก็ไม่ได้ผล คือ ถ้าไม่ได้ใส่ข้อมูลทั้ง ดาวน์โหลด และ ลิงค์ภายนอก มันก็ควรเหลือเฉพาะ ปุ่มรายละเอียด แต่ กลับมีปุ่ม ดาวน์โหลด โผล่ขึ้นมาคู่กับรายละเอียด ซึ่งปุ่มดาวน์โหลดที่โผล่ขึ้นมาก็ Click ไม่ไปไหน แต่ ปุ่มรายละเอียดก็ใช้ได้ปกติ ทำมาสองวันยังหาทางไม่ได้ซักที รบกวนอาจารย์แนะนำอีกที ผมอ่านแล้วก็ยังคิดไม่ออกต้องทำแบบไหนให้มันไม่แสดงปุ่มที่ไม่มีข้อมูล ขอบคุณครับ.
#2

ผมไม่ทราบเงื่อนไขทั้งหมด ฟังก์ชั่นนี้ถ้าคืนค่า flase กลับไป หมายถึงปุ่มจะไม่แสดงผล ถ้าคืนค่า $attributes กลับไป มันจะแสดงผลตาม $attributes
แนะนำให้ลอง debug ตัวแปรแต่ละตัวตัวดูว่ามันส่งค่าอะไรมา แล้วเลือกจัดการตามเงื่อนไขที่ต้องการให้ถูก มันจะทำงานได้ตามที่ต้องการเอง
การ debug สำคัญมากในกรณีที่เราไม่มีข้อมูลอะไรเลย เพราะจะทำให้เรารู้ว่า เราได้อะไรมาบ้าง และเมื่อส่งข้อมูลกลับไป เราได้อะไรมา
บนหน้าเว็บ สามารถใช้ dev tools เพื่อดูว่าเราได้ปุ่มอะไรกลับมาได้ด้วย
#3

เงื่อนไขของผมก็ตามลิ้งค์ของอาจารย์เลยครับ ไม่ได้เปลี่ยนแปลงอะไร https://github.com/...views/index.php#L182
พอค่าเป็น fault จริงแล้วควรจะไม่แสดงปุ่มอะไร แต่ก็แสดงปุ่ม ดาวน์โหลด มา ต้องแก้ไขตรงไหนครับ ขอบคุณครับ.
#4

อ้างอิงจาก ความคิดเห็น #4เงื่อนไขของผมก็ตามลิ้งค์ของอาจารย์เลยครับ ไม่ได้เปลี่ยนแปลงอะไร https://github.com/...views/index.php#L182
พอค่าเป็น fault จริงแล้วควรจะไม่แสดงปุ่มอะไร แต่ก็แสดงปุ่ม ดาวน์โหลด มา ต้องแก้ไขตรงไหนครับ ขอบคุณครับ.

ทำความเข้าใจฟังก์ชั่นก่อนครับ จากนั้นเขียน if ให้ถูกเงื่อนไข ซี่งผมไม่ทราบตรงนี้
#5

อ้างอิงจาก ความคิดเห็น #1สามารถเขียนเงื่อนไขการแสดงผลปุ่มได้ที่นี่ https://github.com/...views/index.php#L182
$btn คือชื่อปุ่ม มาจาก key ของแอเรย์ buttons
$attributes property ของปุ่ม จากตัวอย่างคือการเปลี่ยนปุ่มจาก download เป็น ลิงค์ภายนอก
$item ข้อมูลในแต่ละแถว
คืนค่า $attributes กลับไปสร้างปุ่ม หรือ คืนค่า false ถ้าไม่ต้องการสร้างปุ่ม


อันนี้พอแก้ปัญหาไปได้แล้วครับ ขอสอบถามเพิ่มเติม จากตัวอย่างอันนี้ เป็นการเปลี่ยนปุ่มจาก download เป็น ลิงค์ภายนอก แต่ถ้าต้องการให้แสดงทั้งสองปุ่มเมื่อมีข้อมูล หรือ ไม่แสดงปุ่มทั้งสองเมื่อไม่มีข้อมูล ต้องเขียนแบบไหน หรือมีตัวอย่างแนะนำไหมครับ ขอบคุณครับ
#6

อ้างอิงจาก ความคิดเห็น #6ถ้าต้องการให้แสดงทั้งสองปุ่มเมื่อมีข้อมูล หรือ ไม่แสดงปุ่มทั้งสองเมื่อไม่มีข้อมูล ต้องเขียนแบบไหน หรือมีตัวอย่างแนะนำไหมครับ

มันก็ดูแปลกๆนะ ความจริง แต่ละเอกสารมันน่าจะทำได้อย่างใดอย่างหนึ่งเท่านั้น
วิธีการสร้างปุ่มก็อยู่ในหน้าที่ดูอยู่นั่นแหละ property buttons คือตัวแปรที่เก็บปุ่มที่ต้องการในแต่ละแถว และ onCreateButton จะถูกเรียกเมื่อต้องการสร้าง button แต่ละตัว
#7

ผมขอแนวทาง หรือ ตัวอย่างการเขียนเงื่อนไข การแสดงหรือไม่แสดงปุ่ม ดาวน์โหลด ในกรณีที่มีข้อมูลก็แสดง ถ้าไม่มีก็ไม่แสดง ได้ไหมครับ ลองเขียนหลายแบบแล้วยังไม่ได้ ขอบคุณครับ.
#8

ตอบไปแล้วนี่
อ้างอิงจาก ความคิดเห็น #1คืนค่า $attributes กลับไปสร้างปุ่ม หรือ คืนค่า false ถ้าไม่ต้องการสร้างปุ่ม
#9

พอเข้าใจการทำงานครับ แต่ไม่รู้ว่าจะเขียนรูปแบบ ไวยากรณ์คำสั่งยังไง ในการกำหนดเงื่อนไข เมื่อมีหรือไม่มีข้อมูลของ ดาวน์โหลด แล้วแสดงหรือไม่แสดงปุ่มดาวน์โหลดน่ะครับ
#10

ปัญหาคือ ผมไม่ทราบเงื่อนไขในการแสดงผลปุ่ม และไม่รู้ว่ามีข้อมูลอะไรบ้าง (ที่ดัดแปลงไว้) ทำให้ไม่สามารถเขียนให้ได้
สิ่งที่พอช่วยได้คือ แนะนำให้ debug ตัวแปรต่างๆออกมาดู แล้วเขียนเงื่อนไขที่ถูกต้อง (if else ธรรมดานี่แหละ)
ถ้าทำความเข้าใจกับการ debug ได้จะช่วยแก้ปัญหาได้เยอะเลยครับ
#11

.../views/index.php ในไฟล์นี้ไม่ได้เปลี่ยนแปลงเลยครับ เงื่อนไขการแสดงปุ่มก็เหมือนเดิมตามนี้
public function onCreateButton($btn, $attributes, $item)
{
if ($btn == 'download') {
if ($item['url'] != '') {
$attributes['href'] = $item['url'];
$attributes['class'] = 'button blue icon-world';
$attributes['text'] = '{LNG_URL}';
$attributes['target'] = '_blank';
}
}
return $attributes;
}
}
อันนี้เป็นเงื่อนไขให้แสดงอย่างใดอย่างหนึ่ง คือ แสดงปุ่ม url เมื่อมีข้อมูล (True) ถ้าไม่มีข้อมูล (Fault) ก็ไปแสดงปุ่ม download ใช่ไหมครับ แต่ถ้า download ไม่มีข้อมูลด้วย ก็ไม่ต้องการให้แสดงเหมือนกัน ลองเขียนหลายรูปแบบแล้วจนปัญญาจริงๆครับ ติดจุดนี้อันเดียวจริงๆ ถ้าอันนี้ทำได้ อีกคำถามหนึ่งเรื่อง ckeditor ที่ผมถามไปช่วงเวลาเดียวกัน ก็จะไม่ต้องทำ ซึ่งอันนั้นผมก็ยังหาวิธีแก้ยังไม่ได้เหมือนกัน รบกวนจริงๆครับ ขอบคุณครับ
#12
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg, png ขนาดไฟล์ไม่เกิน 2M