Discuz Thai

 ลืมรหัสผ่าน
 สมัครสมาชิก

ข้อตกลงการใช้งานกระดานข่าวดิสคัสไทย DiscuzThai Agreement (English Version) ประกาศดิสคัสไทย - ทำเนียบดิสคัสภาษาไทย

Discuz! X3.5 Thai R20231001 Rev.8 (NEW) [วิดีโอช่วยสอน] อัปเกรด Discuz! X3.4 เป็น X3.5 Discord ของ Discuz! Thai Community อย่างเป็นทางการ

Discuz! X3.4 Thai R20220811 (REV.75) สิ้นสุดการสนับสนุน Discuz! X3.4 ภาษาไทยตั้งแต่วันนี้เป็นต้นไป (ขอแนะนำให้อัปเกรดเป็น X3.5 แทน)

ค้นหา
แท็กยอดนิยม: ดิสคัสภาษาไทย Discuz Thai
ดู: 2426|ตอบกลับ: 10

Discuz X3.2 BBCode Youtube โดยใช้ Java รองรับลิงค์หลายรูปแบบ

  [คัดลอกลิงก์]
kkawin โพสต์ 2016-10-15 20:32:54 |โหมดอ่าน
โค้ดนี้ผมเขียนเองไม่ได้คัดลอกมาจากที่ใด หากบังเอิญไปซ้ำกับของผู้ใดก็ขออภัยมา ณ. ที่นี้ด้วย
เหตุผลที่เขียนขึ้นมาเพราะแต่เดิมเคยใช้แบบที่ต้องคร๊อบเอาเฉพาะรหัสวีดิโอมาวางซึ่งรู้สึกไม่สะดวกจึงลองเขียนโค้ดขึ้นมาใหม่
ใช้คำสั่งที่รองรับ Browser หลักๆ ทุกตัวทุกเวอร์ชั่น เช่น IE 6-11, Chorme, Firefox, Opera, Safari
รองรับลิงค์จาก Youtube ในรูปแบบต่างๆ เช่น

  1. https://www.youtube.com/watch?v=XXXXXXXXXXX
  2. https://www.youtube.com/watch?v=XXXXXXXXXXX&feature=share
  3. https://www.youtube.com/watch?feature=share&v=XXXXXXXXXXX
  4. https://www.youtube.com/watch?v=XXXXXXXXXXX&list=PLEgNqLmZpLuI9ajUy3Hg97NrpssG4repu

  5. รูปแบบ BBCode

  6. [youtube]https://www.youtube.com/watch?v=XXXXXXXXXXX[/youtube]
คัดลอกไปที่คลิปบอร์ด

วิธีทำ

หารูป icon สำหรับปุ่ม BBCODE หรือจะโหลดภาพนี้ไปใช้ก็ได้

ตั้งชื่อไฟล์ว่า BB_youtube.png

แล้วอัพโหลดไปวางไว้ที่
../static/image/common/

จากนั้นให้ไปที่ AdminCP -> รูปแบบ -> จัดการเครื่องมือโพสต์ -> โค้ด Discuz!

ทำการเพิ่มแท็กใหม่ให้ชื่อว่า youtube ใส่ชื่อไฟล์ไอคอน BB_youtube.png

คลิกตกลง และเปิดรายละเอียด

แท็ก:
  1. youtube
คัดลอกไปที่คลิปบอร์ด
โค้ด/เนื้อหาที่ต้องการ:
  1. <script type="text/javascript">
  2. var id = '{1}';
  3. var w = 640;
  4. var h = 360;
  5. id = id.substr(id.indexOf("v=") + 2);
  6. var i = id.indexOf("&");
  7. id = (i >= 0 ? id.substr(0, i) : id);
  8. document.write("<iframe width='" + w.toString());
  9. document.write("' height='" + h.toString());
  10. document.write("' src='https://www.youtube.com/embed/" + id);
  11. document.write("' frameborder='0' allowfullscreen></iframe>");
  12. </script>
คัดลอกไปที่คลิปบอร์ด
ตัวอย่าง:
  1. [youtube]https://www.youtube.com/watch?v=XXXXXXXXXXX[/youtube]
คัดลอกไปที่คลิปบอร์ด
รายละเอียด:
  1. วางคลิป Youtube
คัดลอกไปที่คลิปบอร์ด
จำนวนช่องที่ให้ใส่ข้อมูล / โค้ด / ID: = 1

กำหนดสิทธิ์ตามต้องการ แล้วคลิกปุ่ม ตกลง เป็นอันเสร็จ

ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง

คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? สมัครสมาชิก

x

คะแนน

จำนวนผู้เข้าร่วม 4จิตพิศัย +5 Money +2 Gold +2 ย่อ เหตุผล
Toma_Kung + 1 ถูกใจ
bunnachart.w + 1 ถูกใจ
jaideejung007 + 2 + 2 + 2 ถูกใจ
pphum + 1 ซึ้ง

ดูบันทึกคะแนน

Attachments โพสต์ 2016-10-16 11:51:50
ขอบคุณครับ
pphum โพสต์ 2016-10-17 06:53:09
สุดยอดเลยครับ มีของ line และอื่นๆอีกไหมครับ
jaideejung007 โพสต์ 2016-10-17 17:43:41
เหมือนพินทิปเลย ไม่ต้องเอาไอดีมาวาง แค่วางลิงก์ ก็โพสต์ได้เลย เยี่ยมๆ

แปลงเป็น PHP ด้วยก็ดีนะครับ ตัวกรองโค้ด

ขอบคุณมากจ้า
 เจ้าของ| kkawin โพสต์ 2016-10-18 06:48:12
PHP ต้องสร้างไฟล์แยก แต่ผมลองแล้วจะมีปัญหากับการสั่งลิงค์ที่มีเครื่อง '&' ID วีดีโอจะไม่ถูกส่งไปกับลิงค์

เช่นลิงค์
  1. https://www.youtube.com/watch?feature=share&v=XXXXXXXXXXX
คัดลอกไปที่คลิปบอร์ด


ก็จะไปแค่
https://www.youtube.com/watch?feature=share


ไม่รู้ว่าจะต้องแก้ยังไงถึงจะไปได้หมด


===============

ส่วนวีดีโอจากที่อื่น ถ้าใช้ Java ก็ใช้โค้ดรูปแบบเดิมครับแก้ไขจุดทีใช้หาตำแหน่ง ID
  1. id = id.substr(id.indexOf("v=") + 2);
  2. var i = id.indexOf("&");
คัดลอกไปที่คลิปบอร์ด


กับ HTML ใน document.write ให้เป็นรูปแบบโค้ดฝังคลิปจากเว็บนั้นๆ ครับ
kingkitb โพสต์ 2016-10-19 12:39:10
แก้ไขครั้งสุดท้ายโดย kingkitb เมื่อ 2016-10-19 12:46
jaideejung007 ตอบกลับเมื่อ 2016-10-17 17:43
เหมือนพินทิปเลย ไม่ต้องเอาไอดีมาวาง แค่วางลิงก์ ก็โ ...

/source/function/function_discuzcode.php

  1. preg_match("/^(?:http(?:s)?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu‌​\.be\/|youtube\.com\‌​/(?:(?:watch)?\?(?:.‌​*&)?v(?:i)?=|(?:embe‌​d|v|vi|user)\/))([^\‌​?#&"'>]+)/", $url, $matches);
คัดลอกไปที่คลิปบอร์ด

ใช้ $matches[1]
ต้องแก้ตั้งแต่ elseif(strpos($lowerurl, 'www.youtube.com/watch?') !== FALSE) {
ให้เป็น youtube.com กับ youtu.be (เพิ่มมาอีก 1)

คะแนน

จำนวนผู้เข้าร่วม 1จิตพิศัย +6 Money +6 Gold +6 ย่อ เหตุผล
jaideejung007 + 6 + 6 + 6 ถูกใจ

ดูบันทึกคะแนน

viwatchai โพสต์ 2016-12-23 14:39:03
ขอบคุณครับ
clubasian โพสต์ 2016-12-30 16:02:54
ขอบคุณมากครับ เยี่ยมจริง ๆ ครับท่าน
Toma_Kung โพสต์ 2017-1-8 10:24:51
ขอบคุณมากๆครับ
ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | สมัครสมาชิก

รายละเอียดเครดิต

รายชื่อผู้กระทำผิด|Archiver|ดิสคัส ไทย Follow us: Become a fan on facebook. Follow us on Twitter.

GMT+7, 2024-4-26 06:21

Powered by Discuz! X3.4, Rev.66

Copyright © 2001-2021 Tencent Cloud. Licensed

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้