ฉันมีแบบฟอร์มเซฟแคร็กเกอร์ที่อนุญาตให้ผู้ใช้ป้อนชื่อ เนื้อหาเนื้อหา url_title หากมีการใช้ url_title อยู่แล้ว ตามค่าเริ่มต้น ตัวเลขจะถูกเพิ่มใน url_title จึงไม่ซ้ำกัน แต่แทนที่จะมีพฤติกรรมอัตโนมัติที่เพิ่มตัวเลขลงใน url_title มีวิธีใดที่ฉันสามารถแจ้งให้ผู้ใช้ทราบว่า url_title ที่พิมพ์นั้นถูกใช้ไปแล้ว เพื่อให้ผู้ใช้สามารถป้อนใหม่ได้
Expressionengine แจ้งให้ผู้ใช้ทราบว่ามีการใช้ url_title แล้ว
คำตอบ (1)
หากต้องการตรวจสอบความถูกต้อง {url_title}
ในแบบฟอร์ม SafeCracker ของคุณ ได้ทันทีก่อนที่จะส่ง คุณสามารถเขียนรูทีน Ajax ที่จะตรวจสอบและเปรียบเทียบค่าของ <input />
กับคอลัมน์ url_title
ในตารางฐานข้อมูล exp_channel_titles
เมื่อ SafeCracker ได้รับการพัฒนาโดย Barrett Newton ก็เคยมี เอกสารสำหรับนักพัฒนาสำหรับ Custom Fieldtypes และ Extension Hooks แต่เนื่องจาก EllisLab เข้าครอบครอง SafeCracker ฉันเชื่อว่าสิ่งเหล่านั้นถูกลบออกไปแล้ว
อย่างไรก็ตาม เนื่องจาก SafeCracker จัดการการตรวจสอบความถูกต้องของแบบฟอร์มฝั่งเซิร์ฟเวอร์โดยใช้ คลาสการตรวจสอบความถูกต้องของแบบฟอร์ม CodeIgniter คุณ ควรขยายคลาสการตรวจสอบให้ตรงตามความต้องการของคุณโดยการสร้าง ฟังก์ชันโทรกลับ เพื่อตรวจสอบความถูกต้อง {url_title}
ในการส่งแบบฟอร์ม แทนที่จะอนุญาตให้ ExpressionEngine เพิ่มตัวเลขต่อท้ายข้อมูลฟิลด์โดยไม่ต้องแจ้งให้ทราบ