experimenting with automatic docs

This commit is contained in:
Leo Germani 2018-04-01 23:08:46 -03:00
parent a8dbb0a8da
commit b32ca03556
9 changed files with 615 additions and 8 deletions

View File

@ -0,0 +1,11 @@
# Collections
## Collection Repository
<!-- BEGIN DOC-COMMENT H3 src/classes/repositories/class-tainacan-collections.php -->
<!-- END DOC-COMMENT -->
## Collection Entity
<!-- BEGIN DOC-COMMENT H3 src/classes/entities/class-tainacan-collection.php -->
<!-- END DOC-COMMENT -->

View File

@ -0,0 +1,523 @@
# Fields
## Field Repository
<!-- BEGIN DOC-COMMENT H3 src/classes/repositories/class-tainacan-fields.php -->
### `class Fields extends Repository`
Class Fields
### `protected function __construct()`
Register specific hooks for field repository
### `public function get_cpt_labels()`
Get the labels for the custom post type of this repository
**Returns:** `array` — Labels in the format expected by register_post_type()
### `public function get_default_metadata_attribute()`
constant used in default field in attribute collection_id
**Returns:** `string` — the value of constant
### `public function register_field_type( $class_name )`
register field types class on array of types
**Parameters:**
* `string` — $class_name — | object The class name or the instance
### `public function unregister_field_type( $class_name )`
register field types class on array of types
**Parameters:**
* `string` — $class_name — | object The class name or the instance
### `public function fetch( $args, $output = null )`
fetch field based on ID or WP_Query args
field are stored as posts. Check WP_Query docs to learn all args accepted in the $args parameter (@see https://developer.wordpress.org/reference/classes/wp_query/) You can also use a mapped property, such as name and description, as an argument and it will be mapped to the appropriate WP_Query argument
**Parameters:**
* `$args` — array — WP_Query args || int $args the field id
* `$output` — string — The desired output format (@see \Tainacan\Repositories\Repository::fetch_output() for possible values)
**Returns:** `Entities\Field|\WP_Query|Array` — an instance of wp query OR array of entities;
### `public function fetch_by_collection(Entities\Collection $collection, $args = [], $output = null)`
fetch field by collection, searches all field available
**Parameters:**
* `$collection` — Entities\Collection
* `$args` — array — WP_Query args plus disabled_fields
* `$output` — string — The desired output format (@see \Tainacan\Repositories\Repository::fetch_output() for possible values)
**Returns:** `array` — Entities\Field
### `public function order_result( $result, Entities\Collection $collection, $include_disabled = false )`
Ordinate the result from fetch response if $collection has an ordination, fields not ordinated appear on the end of the list
**Parameters:**
* `Response` — $result — from method fetch
* `$collection` — Entities\Collection
* `$include_disabled` — bool — Wether to include disabled fields in the results or not
**Returns:** `array` — or WP_Query ordinate
### `public function insert($field)`
{@inheritDoc}
**Parameters:**
* `$field` — \Tainacan\Entities\Field
**Returns:** \Tainacan\Entities\Field
### `public function update($object, $new_values = null)`
**Returns:** mixed|string|Entities\Entity
### `public function fetch_field_types( $output = 'CLASS')`
fetch all registered field type classes
Possible outputs are: CLASS (default) - returns the Class name of of field types registered NAME - return an Array of the names of field types registered
**Parameters:**
* `string` — $output — CLASS | NAME
**Returns:** `array` — of Entities\Field_Types\Field_Type classes path name
### `public function register_core_fields( Entities\Collection $collection )`
**Parameters:**
* `$collection` — Entities\Collection
**Returns:** bool
### `public function disable_delete_core_fields( $before, $post )`
block user from remove core fields
**Parameters:**
* `wordpress` — $before — pass a null value
* `the` — $post — post which is moving to trash
**Returns:** null/bool
### `public function force_delete_core_fields( $before, $post, $force_delete )`
block user from remove core fields ( if use wp_delete_post)
**Parameters:**
* `wordpress` — $before — pass a null value
* `the` — $post — post which is deleting
* `a` — $force_delete — boolean that force the deleting
**Returns:** `null` — /bool
### `public function get_core_fields( Entities\Collection $collection )`
returns all core items from a specific collection
**Parameters:**
* `$collection` — Entities\Collection
**Returns:** Array|\WP_Query
### `public function insert_array_field( $data )`
create a field entity and insert by an associative array ( attribute => value )
**Parameters:**
* `$data` — Array — the array of attributes to insert a field
**Returns:** `int` — the field id inserted
### `public function fetch_all_field_values($collection_id, $field_id)`
Fetch all values of a field from a collection in all it collection items
**Returns:** array|null|object
### `private function pre_update_category_field($field)`
Stores the value of the taxonomy_id option to use on update_category_field method.
### `private function update_category_field($field)`
Triggers hooks when saving a Category Field, indicating wich taxonomy was added or removed from a collection.
This is used by Taxonomies repository to update the collections_ids property of the taxonomy as a field type category is inserted or removed
**Parameters:**
* `$field` — [type] — [description]
**Returns:** `[type]` — [description]
<!-- END DOC-COMMENT -->
## Field Entity
<!-- BEGIN DOC-COMMENT H3 src/classes/entities/class-tainacan-field.php -->
### `class Field extends Entity`
Represents the Entity Field
### `protected $repository = 'Fields'`
{@inheritDoc}
### `function get_name()`
Return the field name
**Returns:** string
### `function get_slug()`
Get field slug
**Returns:** string
### `function get_order()`
Return the field order type
**Returns:** string
### `function get_parent()`
Return the parent ID
**Returns:** string
### `function get_description()`
Return the field description
**Returns:** string
### `function get_required()`
Return if is a required field
**Returns:** boolean
### `function get_multiple()`
Return if is a multiple field
**Returns:** boolean
### `function get_cardinality()`
Return the cardinality
**Returns:** string
### `function get_collection_key()`
Return if field is key
**Returns:** boolean
### `function get_mask()`
Return the mask
**Returns:** string
### `function get_privacy()`
Return the privacy type
**Returns:** string
### `function get_default_value()`
Return the field default value
**Returns:** `string` — || integer
### `function get_field_type_object()`
Return the an object child of \Tainacan\Field_Types\Field_Type with options
**Returns:** `\Tainacan\Field_Types\Field_Type` — The field type class with filled options
### `function get_field_type()`
Return the class name for the field type
**Returns:** `string` — The
### `function get_field_type_options()`
Return the actual options for the current field type
**Returns:** `array` — Configurations for the field type object
### `function set_name($value)`
Set the field name
**Parameters:**
* `$value` — [string]
**Returns:** void
### `function get_accept_suggestion()`
Return true if this field allow community suggestions, false otherwise
**Returns:** bool
### `function set_slug($value)`
Set the field slug
If you dont set the field slug, it will be set automatically based on the name and following WordPress default behavior of creating slugs for posts.
If you set the slug for an existing one, WordPress will append a number at the end of in order to make it unique (e.g slug-1, slug-2)
**Parameters:**
* `$value` — [string]
**Returns:** void
### `function set_order($value)`
Set manually the order of the field
**Parameters:**
* `$value` — [string]
**Returns:** void
### `function set_parent($value)`
Set the field parent ID
**Parameters:**
* `$value` — [integer] — The ID from parent
**Returns:** void
### `function set_description($value)`
Set field description
**Parameters:**
* `$value` — [string] — The text description
**Returns:** void
### `function set_required( $value )`
Allow the field be required
**Parameters:**
* `$value` — [boolean]
**Returns:** void
### `function set_multiple( $value )`
Allow multiple fields
**Parameters:**
* `$value` — [boolean]
**Returns:** void
### `function set_cardinality( $value )`
The number of possible fields
**Parameters:**
* `$value` — [string]
**Returns:** void
### `function set_collection_key( $value )`
Define if the value is key on the collection
**Parameters:**
* `$value` — [string]
**Returns:** void
### `function set_mask( $value )`
Set mask for the field
**Parameters:**
* `$value` — [string]
**Returns:** void
### `function set_privacy( $value )`
Set privacy
**Parameters:**
* `$value` — [string]
**Returns:** void
### `function set_default_value( $value )`
Set default value
**Parameters:**
* `||` — [string — integer] $value
**Returns:** void
### `public function set_field_type( $value )`
set the field type class name
**Parameters:**
* `|` — string — \Tainacan\Field_Types\Field_Type $value The name of the class or the instance
### `function set_accept_suggestion( $value )`
Set if this field allow community suggestions
**Parameters:**
* `$value` — bool
### `function set_field_type_options( $value )`
Set Field type options
**Parameters:**
* `||` — [string — integer] $value
**Returns:** void
### `public function get_enabled_for_collection()`
Transient property used to store the status of the field for a particular collection
Used by the API to tell front end when a field is disabled
### `function is_multiple()`
Return true if is multiple, else return false
**Returns:** boolean
### `function is_collection_key()`
Return true if is collection key, else return false
**Returns:** boolean
### `function is_required()`
Return true if is required, else return false
**Returns:** boolean
### `public function validate()`
{@inheritdoc }
Also validates the field, calling the validate_options callback of the Field Type
**Returns:** `bool` — valid or not
<!-- END DOC-COMMENT -->

View File

@ -0,0 +1,11 @@
# Filters
## Filter Repository
<!-- BEGIN DOC-COMMENT H3 src/classes/repositories/class-tainacan-filters.php -->
<!-- END DOC-COMMENT -->
## Filter Entity
<!-- BEGIN DOC-COMMENT H3 src/classes/entities/class-tainacan-filter.php -->
<!-- END DOC-COMMENT -->

View File

@ -0,0 +1,11 @@
# Item Metadata
## Item Metadata Repository
<!-- BEGIN DOC-COMMENT H3 src/classes/repositories/class-tainacan-item-metadata.php -->
<!-- END DOC-COMMENT -->
## Item Metadata Entity
<!-- BEGIN DOC-COMMENT H3 src/classes/entities/class-tainacan-item-metadata-entity.php -->
<!-- END DOC-COMMENT -->

View File

@ -0,0 +1,11 @@
# Items
## Items Repository
<!-- BEGIN DOC-COMMENT H3 src/classes/repositories/class-tainacan-items.php -->
<!-- END DOC-COMMENT -->
## Item Entity
<!-- BEGIN DOC-COMMENT H3 src/classes/entities/class-tainacan-item.php -->
<!-- END DOC-COMMENT -->

View File

@ -0,0 +1,11 @@
# Logs
## Logs Repository
<!-- BEGIN DOC-COMMENT H3 src/classes/repositories/class-tainacan-logs.php -->
<!-- END DOC-COMMENT -->
## Log Entity
<!-- BEGIN DOC-COMMENT H3 src/classes/entities/class-tainacan-log.php -->
<!-- END DOC-COMMENT -->

View File

@ -0,0 +1,11 @@
# Taxonomies
## Taxonomies Repository
<!-- BEGIN DOC-COMMENT H3 src/classes/repositories/class-tainacan-taxonomies.php -->
<!-- END DOC-COMMENT -->
## Taxonomy Entity
<!-- BEGIN DOC-COMMENT H3 src/classes/entities/class-tainacan-taxonomy.php -->
<!-- END DOC-COMMENT -->

View File

@ -0,0 +1,11 @@
# Terms
## Terms Repository
<!-- BEGIN DOC-COMMENT H3 src/classes/repositories/class-tainacan-terms.php -->
<!-- END DOC-COMMENT -->
## Term Entity
<!-- BEGIN DOC-COMMENT H3 src/classes/entities/class-tainacan-term.php -->
<!-- END DOC-COMMENT -->

View File

@ -6,14 +6,14 @@ Its important that you first get familiar with the [key concepts](key-concepts.m
This page gives an overview of the API. Detailed documentation and reference on each entity can be found below:
* Collections Reference
* Items Reference
* Item Metadata Reference
* Fields Reference
* Filters Reference
* Taxonomies Reference
* Terms Reference
* Logs Reference
* [Collections Reference](class-reference-collections.md)
* [Items Reference](class-reference-items.md)
* [Item Metadata Reference](class-reference-item-metadata.md)
* [Fields Reference](class-reference-fields.md)
* [Filters Reference](class-reference-filters.md)
* [Taxonomies Reference](class-reference-taxonomies.md)
* [Terms Reference](class-reference-terms.md)
* [Logs Reference](class-reference-logs.md)
## Overview
@ -132,3 +132,10 @@ By default, it is a `WP_Query` object, which you can use to build your loop just
But it also can be an array of Taincan Entities objects. This is very useful when you want to manipulate them.
## Inserting
### More about validating
## Checking for permissions