ติดตั้งด้วยนักแต่งเพลง:
composer require felipelavinz/queulat:dev-master
นักแต่งเพลงจะติดตั้งบน wp-content/mu-plugins/queulat
หากคุณต้องการติดตั้งในโฟลเดอร์อื่นคุณควรเพิ่มสิ่งนี้ให้กับนักแต่งเพลงของโครงการ Json:
{
"extra" : {
"installer-paths" : {
"htdocs/wp-content/mu-plugins/{$name}" : [ " type:wordpress-muplugin " ]
}
}
} โดยที่ htdocs/wp-content/mu-plugins/{$name} มันเป็นเส้นทางไปยังไดเรกทอรี mu-plugins ของคุณ Queulat จะถูกติดตั้งเป็นโฟลเดอร์ย่อยในโฟลเดอร์ที่ระบุ
Queulat ใช้ AutoLoader นักแต่งเพลงเพื่อโหลดโค้ดส่วนใหญ่ขี้เกียจดังนั้นคุณต้องตรวจสอบให้แน่ใจว่ามีการรวม AutoLoader ก่อนที่จะเริ่มต้น queulat
นอกจากนี้เนื่องจาก MU-plugins ที่ติดตั้งบนโฟลเดอร์ย่อยจะไม่ถูกโหลดโดย WordPress โดยอัตโนมัติคุณต้องต้องใช้ไฟล์หลักด้วยตนเอง
คุณสามารถแก้ปัญหานี้ได้ด้วยไฟล์เดียวในโฟลเดอร์ Mu-Plugins เช่น:
<?php
/**
* Plugin Name: Queulat Loader
* Description: Load Queulat mu-plugin
*/
// Load Composer autoloader (ABSPATH it's the path to wp-load.php).
require_once ABSPATH . ' /../vendor/autoload.php ' ;
// Load Queulat main file.
require_once __DIR__ . ' /queulat/queulat.php ' ;ส่วนหัวปลั๊กอินเป็นทางเลือก แต่แนะนำ
คุณสามารถใช้ AutoLoader ของ Bedrock ซึ่งจะโหลด MU-Plugins ทั้งหมดที่ติดตั้งบนโฟลเดอร์ย่อย (คุณสามารถคัดลอกไฟล์นั้นในโฟลเดอร์ MU-Plugin ของคุณและจะโหลด queulat โดยอัตโนมัติ)
Queulat มีวัตถุประสงค์เพื่อ ปรับปรุงวิธีที่เราสร้างสิ่งต่าง ๆ สำหรับ WordPress ดังนั้นแทนที่จะเปลี่ยนมันโดยพื้นฐานมันพยายามที่จะใช้แนวคิดที่คุ้นเคยเพื่อสร้างสิ่งที่มีโครงสร้างที่ดีขึ้นสำหรับมันโดยใช้ ประเภทโพสต์ที่กำหนดเอง ข้อความค้นหาที่กำหนดเอง และ วัตถุโพสต์ที่กำหนดเอง
คุณสามารถสร้างสิ่งเหล่านี้โดยใช้ เครื่องกำเนิดปลั๊กอินประเภทโพสต์แบบกำหนด เองซึ่งมีให้สำหรับผู้ใช้งานผู้ดูแลระบบในเมนู "เครื่องมือ"
ปลั๊กอินประเภทโพสต์ที่กำหนดเองแต่ละรายการประกอบด้วย:
Song_Post_Type คลาสนี้กำหนดป้ายกำกับและอาร์กิวเมนต์อื่น ๆ สำหรับการลงทะเบียนประเภทโพสต์บน WordPress โดยค่าเริ่มต้นการเปิดใช้งานปลั๊กอินจะเพิ่มใบอนุญาตที่จำเป็นสำหรับผู้ดูแลระบบและล้างการเขียนใหม่ คุณสามารถขยายคลาสนี้หากคุณต้องการกำหนดตะขอที่กำหนดเองสำหรับฟังก์ชันพิเศษสำหรับประเภทโพสต์Song_Post_Query คุณสามารถใช้คลาสนี้เพื่อสร้างแบบสอบถามฐานข้อมูลใหม่โดยใช้พารามิเตอร์เริ่มต้นใด ๆ ที่คุณอาจต้องการกำหนดเนื้อหาประเภทนี้และทำซ้ำผลลัพธ์โดยใช้ foreach แบบง่ายแทน WordPress Loop คลาสสิกSong_Post_Object ซึ่งจะถูกส่งกลับบนห่วง foreach เมื่อใช้แบบสอบถามที่กำหนดเอง ด้วยวิธีนี้คุณสามารถเพิ่มวิธีการที่กำหนดเองใด ๆ ในคลาสนี้ซึ่งจะมีอยู่ในห่วง foreachการใช้ Queulat คุณสามารถทำอะไรได้บ้าง:
$ tracklist = new Song_Post_Query ( array (
' tax_query ' => array (
array (
' taxonomy ' => ' albums ' ,
' term ' => ' dark-side-of-the-moon ' ,
' field ' => ' slug '
)
)
) );
foreach ( $ tracklist as $ track ) {
echo $ track -> title ();
echo $ track -> duration ();
echo $ track -> lyrics ();
} @todo
@todo
@todo
ปัจจุบันวิธีหลักในการกำหนดข้อมูลเมตาบนวัตถุโพสต์มันกำลังสร้างกล่องเมตา ขยายคลาสบทคัดย่อ QueulatMetabox
คลาสที่ขยาย ต้อง ใช้วิธีการนามธรรม: get_fields( ) : array และ sanitize_data( array $data ) : array ; ตัวอย่างเช่น:
<?php
use Queulat Metabox ;
use Queulat Forms Node_Factory ;
use Queulat Forms Element Input_Text ;
class Track_Meta_Box extends Metabox {
/**
* Must return the list of form fields to be included on this meta box
*
* @return QueulatFormsNode_Interface[] Array of form fields.
**/
public function get_fields () : array {
return array (
Node_Factory:: make (
Input_Text::class,
array (
' name ' => ' length ' ,
' label ' => ' Track length ' ,
' attributes.class ' => ' regular-text ' ,
' properties.description ' => _x ( ' Track duration, such as: 01:23:45 (1 hour, 23 minutes, 45 seconds) ' , ' length field description ' , ' track_cpt ' ),
)
),
Node_Factory:: class (
Input_Checkbox::class,
array (
' name ' => ' colour ' ,
' label ' => ' Colour ' ,
' options ' => array (
' red ' => ' Red ' ,
' green ' => ' Green ' ,
' blue ' => ' Blue ' ,
' any ' => ' Any colour '
)
)
)
);
}
/**
* Sanitize data from the metabox form.
*
* @param array $data Form data from the meta box (not the full $_POST).
* @return array Sanitized data.
**/
public function sanitize_data ( array $ data ) : array {
return queulat_sanitizer ( $ data , array (
' length ' => array ( ' sanitize_text ' ),
' colour.* ' => array ( ' sanitize_key ' )
) );
}
}Queulat ดูแลการอัปเดตข้อมูลที่ส่งเป็นฟิลด์โพสต์เมตาและโหลดค่าที่บันทึกไว้ในแบบฟอร์มกล่องเมตา
สำหรับข้อมูลการฆ่าเชื้อคุณสามารถใช้วิธีที่คุณต้องการ ฟังก์ชั่น queulat_sanitizer() อ้างอิงเป็นวิธีที่ค่อนข้างง่ายในการใช้การเรียกกลับกับค่าการจับคู่จากการป้อน $data คุณสามารถใช้ * เพื่อให้ตรงกับคุณสมบัติทั้งหมด (โดยใช้สัญลักษณ์จุด)
ตรวจสอบส่วนบน (โดยใช้แบบฟอร์ม queulat) [#using-queulat-forms] สำหรับข้อมูลเพิ่มเติมเกี่ยวกับฟิลด์ฟอร์มที่มีอยู่หรือวิธีการสร้างของคุณเอง
@todo: add general description
@todo: add description for each form field
@todo
@todo
Node_Factory เป็นคลาสโรงงานง่าย ๆ ที่สามารถสร้างองค์ประกอบรูปแบบใด ๆ
มันเปิดเผยวิธี make เดี่ยวที่สามารถสร้างอินสแตนซ์และกำหนดค่าองค์ประกอบ วิธีนี้ใช้สองพารามิเตอร์:
โดยค่าเริ่มต้น queulat ได้รับการกำหนดค่าให้จัดการแอตทริบิวต์ต่อไปนี้:
Node_Factory เป็นอาร์เรย์อาร์กิวเมนต์ที่ไม่ได้รับการสนับสนุนโดยองค์ประกอบจะถูกข้าม
คุณสามารถขยายอาร์กิวเมนต์ที่รองรับโดยใช้ Node_Factory::register_argument()
<?php
use Queulat Forms Element Div ;
use Queulat Forms Node_Factory ;
use Queulat Forms Element Button ;
$ submit = Node_Factory:: make (
Div::class, array (
' attributes ' => array (
' class ' => ' col-md-4 col-md-offset-8 ' ,
' id ' => ' form-buttons '
),
' text_content ' => ' * required field ' ,
' children ' => array (
Node_Factory:: make (
Button::class,
' attributes ' => array (
' class ' => ' btn-lg ' ,
' type ' => ' submit '
),
' text_content ' => ' Submit '
)
)
);
);
echo $ submit ; คุณสามารถลงทะเบียนอาร์กิวเมนต์ใหม่ที่ใช้โดย node_factory โดยใช้วิธี register_argument
วิธีนี้ใช้เวลา Node_Factory_Argument_Handler ซึ่งต้องการ:
$argument (สตริง) ซึ่งเป็นชื่อของคีย์อาร์กิวเมนต์ที่คุณจะจัดการ$method (สตริง) ซึ่งเป็นชื่อของวิธีการที่จะได้รับพารามิเตอร์ที่ใช้ในวิธีการโรงงาน$call_type (สตริง) ซึ่งเป็นตัวเลือกวิธีการที่ $ วิธีจะปฏิบัติต่อค่าการกำหนดค่าที่ได้รับ $call_type สามารถเป็นหนึ่งใน:
Node_Factory::CALL_TYPE_VALUE : ส่งอาร์กิวเมนต์ทั้งหมดเป็นอาร์เรย์เดียวไปยังตัวจัดการ นี่คือการตั้งค่าเริ่มต้น ตัวอย่าง: $obj->$method( $args );
Node_Factory::CALL_ARRAY : ผ่านอาร์กิวเมนต์เป็นพารามิเตอร์แต่ละตัวไปยังตัวจัดการ ตัวอย่าง: call_user_func_array( [ $obj, $method ], $args );
Node_Factory::CALL_KEY_VALUE : สำหรับแต่ละรายการในอาร์กิวเมนต์ให้ส่งรหัสและค่าเป็นพารามิเตอร์ไปยังตัวจัดการ ตัวอย่าง:
foreach ( $ args as $ key => $ val ) {
$ obj -> $ method ( $ key , $ val );
} Node_Factory::CALL_TYPE_VALUE_ITEMS : สำหรับแต่ละรายการในอาร์กิวเมนต์ให้ใช้ค่าเป็นพารามิเตอร์สำหรับตัวจัดการ ตัวอย่าง: array_walk( $args, [ $obj, $method ] );
| อินเทอร์เฟซที่เกี่ยวข้อง | ลักษณะที่เกี่ยวข้อง |
|---|---|
Component_Interface | Node_Trait |
Element_Interface | Childless_Node_Trait |
โหนดเป็นวัตถุระดับต่ำสุดที่ควรใช้กับแบบฟอร์ม
ใช้ Node_Trait เพื่อช่วยใช้อินเทอร์เฟซนี้หรือ Childless_Node_Trait ในแง่ทั่วไปองค์ประกอบควรใช้อดีตและส่วนประกอบหลัง
ขยาย node_interface และ attributes_interface
ขยาย node_interface และ attributes_interface นอกจากนี้เพิ่มวิธี get_tag_name
ขยาย element_interface และ properties_interface
ขยาย html_element_interface และ form_node_interface
"แอตทริบิวต์" เป็นคุณสมบัติพิเศษที่ใช้โดยวัตถุที่ใช้อินเทอร์เฟซนี้ พวกเขาแสดงเป็นแอตทริบิวต์ HTML key="val"
ใช้ Attributes_Trait เพื่อช่วยใช้อินเทอร์เฟซนี้
วัตถุที่ใช้อินเทอร์เฟซนี้ (องค์ประกอบหรือส่วนประกอบ) ถูกใช้เป็นวัตถุแบบฟอร์ม พวกเขามี "ชื่อ" ซึ่งใช้ในการส่งข้อมูลไปยังเซิร์ฟเวอร์ "ค่า" และ "ฉลาก"
Form_Control_Trait ช่วยในการใช้ "ฉลาก" และ "ชื่อ" และตัวตั้งค่าจากอินเทอร์เฟซนี้ "ค่า" และค่า "ควรกำหนดโดยองค์ประกอบที่คุณกำหนดเองของคุณเอง
ขยาย ArrayAccess, SeekableIterator, Countable, Serializable
ส่วนใหญ่ใช้เพื่อให้ได้ชุดเด็กที่มีลักษณะคล้ายอาร์เรย์จากโหนด
ใช้โดยการควบคุมเช่นช่องทำเครื่องหมาย, วิทยุ, เลือกและทุกองค์ประกอบที่ผู้ใช้นำเสนอด้วยทางเลือกหลายทางที่พวกเขาสามารถเลือกได้
ใช้ Options_Trait เพื่อช่วยใช้อินเทอร์เฟซนี้
คุณสมบัติของโหนด (เพื่อไม่ให้สับสนกับคุณสมบัติของวัตถุปกติ) สามารถจัดเก็บข้อมูลโดยพลการเช่นการตั้งค่ามุมมองข้อมูลข้อผิดพลาดหรือสถานะการตรวจสอบความถูกต้อง
ใช้ Properties_Trait เพื่อช่วยใช้อินเทอร์เฟซนี้
อินเทอร์เฟซพื้นฐานที่จะใช้โดยมุมมองแบบฟอร์ม