التثبيت مع الملحن:
composer require felipelavinz/queulat:dev-master
سيتم تثبيت الملحن على wp-content/mu-plugins/queulat
إذا كنت بحاجة إلى التثبيت على مجلد مختلف ، فيجب عليك إضافة شيء مثل هذا إلى Composer.json بمشروعك:
{
"extra" : {
"installer-paths" : {
"htdocs/wp-content/mu-plugins/{$name}" : [ " type:wordpress-muplugin " ]
}
}
} حيث htdocs/wp-content/mu-plugins/{$name} هو الطريق إلى دليل mu-plugins الخاص بك. سيتم تثبيت Queulat كجهاز فرعي على المجلد المحدد.
يستخدم Queulat 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 الكلاسيكية.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 and 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 بتحديث البيانات المقدمة كحقول نشر meta ، وتحميل القيم المحفوظة على نموذج مربع التعريف.
لتطهير البيانات ، يمكنك استخدام أي طريقة تفضلها. وظيفة queulat_sanitizer() المشار إليها هي طريقة بسيطة جدًا لتطبيق عمليات الاسترجاعات على قيم المطابقة من إدخال $data . يمكنك استخدام * لمطابقة جميع الخصائص (باستخدام تدوين DOT).
تحقق من القسم الموجود (باستخدام نماذج Queulat) [#باستخدام أشكال Quulat] لمزيد من المعلومات حول حقول النماذج المتاحة أو كيفية إنشاء خاص بك.
@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 و entributes_interface.
يمتد node_interface و entributes_interface. أيضا ، يضيف طريقة get_tag_name .
يمتد element_interface و properties_interface.
يمتد html_element_interface و form_node_interface.
"السمات" هي خصائص خاصة تستخدمها الكائنات التي تنفذ هذه الواجهة. تم تقديمها كسمات HTML key="val"
استخدم Attributes_Trait للمساعدة في تنفيذ هذه الواجهة.
يتم استخدام الكائنات التي تنفذ هذه الواجهة (عناصر أو مكونات) ككائنات نموذج. لديهم "اسم" يستخدم لإرسال البيانات إلى الخادم و "قيمة" و "تسمية".
يساعد Form_Control_Trait في تطبيق "التسمية" و "الاسم" والمستقبين من هذه الواجهة. يجب تحديد "القيمة" getter و setter بواسطة المكون المخصص الخاص بك.
يمتد ArrayAccess ، SeekableItiTerator ، القابل للعد ، قابل للتسلسل.
الأكثر استخدامًا للحصول على مجموعة من الأطفال من الأطفال من العقدة.
تستخدمها عناصر التحكم مثل مربعات الاختيار ، وأجهزة الراديو ، والاختيار ، وكل مكون حيث يتم تقديم المستخدم بعدة بدائل يمكنهم الاختيار من بينها.
استخدم Options_Trait للمساعدة في تنفيذ هذه الواجهة.
يمكن لخصائص العقدة (التي لا يمكن الخلط بينها وبين خصائص الكائن العادية) تخزين البيانات التعسفية ، مثل إعدادات العرض أو بيانات الخطأ أو حالة التحقق من الصحة.
استخدم Properties_Trait للمساعدة في تنفيذ هذه الواجهة.
الواجهة الأساسية لاستخدامها بواسطة طرق عرض النموذج.