Starting the dev admin interface
This commit is contained in:
parent
20b56854a3
commit
9a8f36fda6
|
@ -9,7 +9,7 @@ use \Respect\Validation\Validator as v;
|
|||
use Tainacan\Entities\Collection;
|
||||
|
||||
class Collections extends Repository {
|
||||
protected $entities_type = '\Tainacan\Entities\Collection';
|
||||
public $entities_type = '\Tainacan\Entities\Collection';
|
||||
public function get_map() {
|
||||
return apply_filters('tainacan-get-map', [
|
||||
'id' => [
|
||||
|
|
|
@ -7,7 +7,7 @@ defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
|
|||
|
||||
use \Respect\Validation\Validator as v;
|
||||
class Filters extends Repository {
|
||||
protected $entities_type = '\Tainacan\Entities\Filter';
|
||||
public $entities_type = '\Tainacan\Entities\Filter';
|
||||
|
||||
public function get_map() {
|
||||
return apply_filters('tainacan-get-map', [
|
||||
|
|
|
@ -6,7 +6,7 @@ use Tainacan\Entities;
|
|||
defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
|
||||
|
||||
class Item_Metadata extends Repository {
|
||||
protected $entities_type = '\Tainacan\Entities\Item_Metadata_Entity';
|
||||
public $entities_type = '\Tainacan\Entities\Item_Metadata_Entity';
|
||||
public function insert($item_metadata) {
|
||||
|
||||
$unique = ! $item_metadata->is_multiple();
|
||||
|
|
|
@ -7,7 +7,7 @@ use \Respect\Validation\Validator as v;
|
|||
defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
|
||||
|
||||
class Items extends Repository {
|
||||
protected $entities_type = '\Tainacan\Entities\Item';
|
||||
public $entities_type = '\Tainacan\Entities\Item';
|
||||
public function get_map() {
|
||||
return apply_filters('tainacan-get-map', [
|
||||
'id' => [
|
||||
|
|
|
@ -11,7 +11,7 @@ defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
|
|||
*
|
||||
*/
|
||||
class Logs extends Repository {
|
||||
protected $entities_type = '\Tainacan\Entities\Log';
|
||||
public $entities_type = '\Tainacan\Entities\Log';
|
||||
|
||||
public function __construct() {
|
||||
parent::__construct();
|
||||
|
|
|
@ -10,7 +10,7 @@ use \Respect\Validation\Validator as v;
|
|||
* Class Metadatas
|
||||
*/
|
||||
class Metadatas extends Repository {
|
||||
protected $entities_type = '\Tainacan\Entities\Metadata';
|
||||
public $entities_type = '\Tainacan\Entities\Metadata';
|
||||
protected $default_metadata = 'default';
|
||||
|
||||
public function get_map() {
|
||||
|
|
|
@ -9,7 +9,7 @@ use \Respect\Validation\Validator as v;
|
|||
defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
|
||||
|
||||
abstract class Repository {
|
||||
protected $entities_type = '\Tainacan\Entities\Entity';
|
||||
public $entities_type = '\Tainacan\Entities\Entity';
|
||||
|
||||
/**
|
||||
* Register hooks
|
||||
|
|
|
@ -11,7 +11,7 @@ use \Respect\Validation\Validator as v;
|
|||
* Class Tainacan_Taxonomies
|
||||
*/
|
||||
class Taxonomies extends Repository {
|
||||
protected $entities_type = '\Tainacan\Entities\Taxonomy';
|
||||
public $entities_type = '\Tainacan\Entities\Taxonomy';
|
||||
|
||||
public function get_map() {
|
||||
return apply_filters('tainacan-get-map', [
|
||||
|
|
|
@ -11,7 +11,8 @@ use \Respect\Validation\Validator as v;
|
|||
*/
|
||||
class Terms extends Repository {
|
||||
|
||||
protected $entities_type = '\Tainacan\Entities\Term';
|
||||
public $entities_type = '\Tainacan\Entities\Term';
|
||||
|
||||
public function get_map() {
|
||||
return apply_filters('tainacan-get-map', [
|
||||
'term_id' => [
|
||||
|
|
|
@ -0,0 +1,118 @@
|
|||
<?php
|
||||
|
||||
namespace Tainacan\DevInterface;
|
||||
|
||||
class DevInterface {
|
||||
|
||||
|
||||
public function __construct() {
|
||||
|
||||
add_action('add_meta_boxes', array(&$this, 'register_metaboxes'));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Run through all post types attributes and add metaboxes for them.
|
||||
*
|
||||
* Also run through all collections metadata and add metaboxes for its items post type
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function register_metaboxes() {
|
||||
|
||||
global $Tainacan_Collections, $Tainacan_Filters, $Tainacan_Logs, $Tainacan_Metadatas, $Tainacan_Taxonomies;
|
||||
|
||||
$repositories = [$Tainacan_Collections, $Tainacan_Filters, $Tainacan_Logs, $Tainacan_Metadatas, $Tainacan_Taxonomies];
|
||||
|
||||
foreach ($repositories as $repo) {
|
||||
|
||||
// get repository post type
|
||||
$cpt = $repo->entities_type::get_post_type();
|
||||
|
||||
$slug = str_replace('Tainacan\Repositories\\', '', get_class($repo));
|
||||
|
||||
add_meta_box(
|
||||
$slug . '_properties',
|
||||
__('Properties', 'tainacan'),
|
||||
array(&$this, 'properties_metabox_' . $slug),
|
||||
$cpt,
|
||||
'normal'
|
||||
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function properties_metabox_Collections() {
|
||||
global $Tainacan_Collections;
|
||||
$this->properties_metabox($Tainacan_Collections);
|
||||
}
|
||||
function properties_metabox_Filters() {
|
||||
global $Tainacan_Filters;
|
||||
$this->properties_metabox($Tainacan_Filters);
|
||||
}
|
||||
function properties_metabox_Logs() {
|
||||
global $Tainacan_Logs;
|
||||
$this->properties_metabox($Tainacan_Logs);
|
||||
}
|
||||
function properties_metabox_Metadatas() {
|
||||
global $Tainacan_Metadatas;
|
||||
$this->properties_metabox($Tainacan_Metadatas);
|
||||
}
|
||||
function properties_metabox_Taxonomies() {
|
||||
global $Tainacan_Taxonomies;
|
||||
$this->properties_metabox($Tainacan_Taxonomies);
|
||||
}
|
||||
|
||||
function properties_metabox($repo) {
|
||||
global $pagenow, $typenow, $post;
|
||||
|
||||
$map = $repo->get_map();
|
||||
|
||||
$entity = new $repo->entities_type($post);
|
||||
|
||||
?>
|
||||
<div id="postcustomstuff">
|
||||
<table>
|
||||
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="left"><?php _e('Property', 'tainacan'); ?></th>
|
||||
<th><?php _e('Value', 'tainacan'); ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
<?php foreach ($map as $prop => $mapped): ?>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<label><?php echo $mapped['title']; ?></label><br/>
|
||||
<small><?php echo $mapped['description']; ?></small>
|
||||
</td>
|
||||
<td>
|
||||
<textarea name="<?php echo $prop; ?>"><?php echo htmlspecialchars($entity->get_mapped_property($prop)); ?></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<?php endforeach; ?>
|
||||
|
||||
</tbody>
|
||||
|
||||
</table>
|
||||
</div>
|
||||
<?php
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
?>
|
|
@ -16,6 +16,9 @@ const CLASSES_DIR = __DIR__ . '/classes/';
|
|||
require_once(CLASSES_DIR . 'tainacan-creator.php');
|
||||
require_once(API_DIR . 'tainacan-rest-creator.php');
|
||||
|
||||
require_once('dev-interface/class-tainacan-dev-interface.php');
|
||||
$Tainacan_Dev_interface = new \Tainacan\DevInterface\DevInterface();
|
||||
|
||||
function tnc_enable_dev_wp_interface() {
|
||||
return defined('TNC_ENABLE_DEV_WP_INTERFACE') && true === TNC_ENABLE_DEV_WP_INTERFACE ? true : false;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue