Installer avec Composer:
composer require felipelavinz/queulat:dev-master
Le compositeur s'installera sur wp-content/mu-plugins/queulat
Si vous devez installer sur un autre dossier, vous devez ajouter quelque chose comme ceci à Composer.json de votre projet:
{
"extra" : {
"installer-paths" : {
"htdocs/wp-content/mu-plugins/{$name}" : [ " type:wordpress-muplugin " ]
}
}
} Lorsque htdocs/wp-content/mu-plugins/{$name} c'est le chemin de votre répertoire Mu-Plugins. La Queulat sera installée en tant que sous-dossier dans le dossier spécifié.
Queulat utilise le composer Autoloader pour chargement paresseux la plupart de son code, vous devez donc vous assurer que l'autoloader est inclus avant d'initialiser Queulat.
De plus, comme les mu-plagins installés sur un sous-dossier ne sont pas automatiquement chargés par WordPress, vous devez manuellement besoin du fichier principal.
Vous pouvez résoudre ce problème avec un seul fichier sur le dossier Mu-Plugins, tels que:
<?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 ' ;Les en-têtes de plugin sont facultatifs, mais recommandés.
Vous pouvez également utiliser quelque chose comme Autoloader de Bedrock, qui chargera toutes les plagins installés sur des sous-repliants (vous pouvez simplement copier ce fichier sur votre dossier Mu-Plugin et il chargera automatiquement la Queulat).
Queulat, il vise à améliorer la façon dont nous créons des choses pour WordPress , donc au lieu de la transformer fondamentalement, il essaie d'utiliser des concepts familiers pour créer des choses mieux structurées, en utilisant des types de publiques personnalisés , des requêtes de poste personnalisées et des objets de post personnalisés .
Vous pouvez les générer à l'aide de son propre générateur de plugin de type post personnalisé , qui est disponible pour les utilisateurs d'administration dans le menu "Outils".
Chaque plugin de type post personnalisé dont il est composé:
Song_Post_Type . Cette classe définit les étiquettes et autres arguments pour enregistrer le type de message sur WordPress. Par défaut, l'activation du plugin ajoutera les permis nécessaires pour les administrateurs et les réécritures de rinçage. Vous pouvez prolonger cette classe si vous avez besoin de définir des crochets personnalisés pour des fonctionnalités supplémentaires pour le type de poste.Song_Post_Query . Vous pouvez utiliser cette classe pour créer de nouvelles requêtes de base de données, en utilisant les paramètres par défaut que vous voudrez peut-être définir pour ce type de contenu, et itérer sur les résultats en utilisant un foreach simple au lieu de la boucle WordPress classique.Song_Post_Object , qui sera renvoyée sur la boucle foreach lors de l'utilisation de la requête personnalisée. De cette façon, vous pouvez ajouter toutes les méthodes personnalisées à cette classe, qui seront disponibles sur la boucle foreach .En utilisant la queulat, vous pouvez faire quelque chose comme:
$ 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
Actuellement, le principal moyen de définir les méta-données sur les objets post-objets qu'il s'agit de méta-box; Extension de la classe Résumé QueulatMetabox incluse.
La classe d'extension doit implémenter les méthodes abstraites: get_fields( ) : array and sanitize_data( array $data ) : array ; par exemple:
<?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 s'occupe de la mise à jour des données soumises sous forme de champs posta et de chargement les valeurs enregistrées sur le formulaire Meta Box.
Pour désinfecter les données, vous pouvez utiliser la méthode que vous préférez. La fonction référencée queulat_sanitizer() C'est un moyen assez simple d'appliquer des rappels aux valeurs correspondantes de l'entrée $data . Vous pouvez utiliser * pour correspondre à toutes les propriétés (en utilisant la notation de points).
Vérifiez la section sur (en utilisant les formulaires Queulat) [# Using-Leconat-formes] pour plus d'informations sur les champs de formulaire disponible ou comment créer le vôtre.
@todo: add general description
@todo: add description for each form field
@todo
@todo
Node_Factory Il s'agit d'une classe d'usine simple capable de créer tout type d'élément de forme.
Il expose une seule méthode make qui peut instancier et configurer un élément. Cette méthode prend deux paramètres:
Par défaut, Queulat est configuré pour gérer les attributs suivants:
Node_Factory comme tableau.Les arguments qui ne sont pas pris en charge par l'élément sont ignorés.
Vous pouvez étendre les arguments pris en charge à l'aide de 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 ; Vous pouvez enregistrer de nouveaux arguments utilisés par le Node_factory à l'aide de la méthode register_argument .
Cette méthode prend un Node_Factory_Argument_Handler , qui doit:
$argument (chaîne) qui est le nom de la clé d'argument que vous gérerez.$method (chaîne) qui est le nom de la méthode qui recevra les paramètres utilisés sur la méthode d'usine.$call_type (String) facultatif qui détermine comment la méthode $ traitera les valeurs de configuration reçues. Le $call_type peut être l'un des:
Node_Factory::CALL_TYPE_VALUE : passez tous les arguments en tant que tableau unique au gestionnaire. Il s'agit du paramètre par défaut. Exemple: $obj->$method( $args );
Node_Factory::CALL_ARRAY : passer les arguments en tant que paramètres individuels au gestionnaire. Exemple: call_user_func_array( [ $obj, $method ], $args );
Node_Factory::CALL_KEY_VALUE : Pour chaque élément de l'argument, passez sa clé et sa valeur sous forme de paramètres au gestionnaire. Exemple:
foreach ( $ args as $ key => $ val ) {
$ obj -> $ method ( $ key , $ val );
} Node_Factory::CALL_TYPE_VALUE_ITEMS : Pour chaque élément de l'argument, utilisez la valeur comme paramètre pour le gestionnaire. Exemple: array_walk( $args, [ $obj, $method ] );
| Interfaces connexes | Traits connexes |
|---|---|
Component_Interface | Node_Trait |
Element_Interface | Childless_Node_Trait |
Les nœuds sont le niveau le plus bas d'objets qui devraient être utilisés avec les formulaires
Utilisez Node_Trait pour implémenter cette interface ou Childless_Node_Trait . En termes généraux, les éléments doivent utiliser le premier et composants le second.
Étend le node_interface et les attributs_interface.
Étend le node_interface et les attributs_interface. Ajoute également la méthode get_tag_name .
Étend l'élément_interface et properties_interface.
Étend html_element_interface et form_node_interface.
Les «attributs» sont des propriétés spéciales utilisées par les objets implémentant cette interface. Ils sont rendus en tant qu'attributs HTML key="val"
Utilisez Attributes_Trait pour implémenter cette interface.
Les objets implémentant cette interface (éléments ou composants) sont utilisés comme objets de formulaire. Ils ont un "nom" qui est utilisé pour envoyer des données au serveur, une "valeur" et une "étiquette".
Le Form_Control_Trait aide à implémenter les getters et les setters "étiquettes" et "noms" à partir de cette interface. Le Getter et Setter "Value" doivent être définis par votre propre composant personnalisé.
Étend ArrayAccess, Seekableiterator, dénombrable, sérialisable.
Le plus souvent utilisé pour obtenir un ensemble d'enfants en forme de tableau d'un nœud.
Utilisé par des contrôles tels que les cases à cocher, les radios, les sélections et chaque composant où l'utilisateur est présenté avec plusieurs alternatives parmi lesquelles ils peuvent choisir.
Utilisez Options_Trait pour aider à implémenter cette interface.
Les propriétés de nœud (à ne pas confondre avec les propriétés régulières des objets) peuvent stocker des données arbitraires, telles que les paramètres de vue, les données d'erreur ou l'état de validation.
Utilisez Properties_Trait pour implémenter cette interface.
Interface de base à utiliser par des vues de formulaire.