public function test_generates_a_text_field_with_errors()
 {
     // Having
     Field::setErrors(['name' => ['This is really wrong']]);
     // Expect
     $this->assertTemplate('fields/text_with_errors', Field::text('name'));
 }
Example #2
0
 /**
  * Set up custom post type for venues
  *
  * @private
  */
 private static function _set_up_venues()
 {
     // Register Venues custom post types
     PostType::make('venue', 'Venues', 'Venue')->set();
     // Define fields for the metabox
     $fields = array(Field::checkbox('active', array('1' => 'Yes')), Field::checkbox('confirmed', array('1' => 'Yes')), Field::text('address', array('title' => 'Address')), Field::text('city', array('title' => 'City')), Field::text('state', array('title' => 'State')), Field::text('postcode', array('title' => 'Postcode')), Field::text('country', array('title' => 'Country')));
     // Add metabox with custom fields
     Metabox::make('Venue details', 'venue')->set($fields);
     // Add venue types custom taxonomy
     Taxonomy::make('venue_type', 'venue', 'Venue Types', 'Venue Type')->set();
 }
Example #3
0
<?php

/*-----------------------------------------------------------------------*/
// Match Custom Post
/*-----------------------------------------------------------------------*/
$match = PostType::make('slhb_match', 'Les matchs', 'match')->set(array('public' => true, 'menu_position' => 20, 'supports' => false, 'rewrite' => false, 'query_var' => false, 'labels' => ['add_new' => 'Ajouter un nouveau match', 'add_item' => 'Ajouter un match', 'all_items' => 'Tous les matchs', 'edit_item' => 'Modifier un match']));
/*-----------------------------------------------------------------------*/
// Match informations
/*-----------------------------------------------------------------------*/
$infos = Metabox::make('Informations du match', $match->get('name'))->set(array(Field::date('match_date', ['title' => 'Date du match']), Field::select('match_team_dom', TeamModel::getTeamsArray()), Field::text('match_team_ext', ['title' => 'Equipe à l\'exterieur']), Field::number('score_dom', ['title' => 'Score de l\'équipe à domicile']), Field::number('score_ext', ['title' => 'Score de l\'équipe extérieur'])));
/*-----------------------------------------------------------------------*/
// Match Defaults Values
/*-----------------------------------------------------------------------*/
function slhb_set_title($post_id, $post, $update)
{
    $dateStr = Meta::get($post_id, 'match_date');
    $title = $dateStr . ' - ' . Meta::get($post_id, 'match_team_dom') . ' - ' . Meta::get($post_id, 'match_team_ext');
    $date = date($dateStr);
    //This temporarily removes filter to prevent infinite loops
    remove_action('save_post_slhb_match', __FUNCTION__);
    wp_update_post(array('ID' => $post_id, 'post_title' => $title, 'match_date' => $date));
    //redo filter
    add_action('save_post_slhb_match', __FUNCTION__, 10, 3);
}
add_action('save_post_slhb_match', 'slhb_set_title', 10, 3);
Example #4
0
<?php

$options = Page::make('options', 'Configuration SLHB')->set(['capability' => 'manage_options', 'icon' => 'dashicons-hammer', 'position' => 50, 'tabs' => true]);
// Partenaires Section
$sections[] = Section::make('section-slhb-options', 'Paramètres généraux');
$options->addSections($sections);
$settings['section-slhb-options'] = [Field::collection('logos', ['title' => 'Logos des partenaires']), Field::text('facebook_url', ['title' => 'Url Facebook']), Field::text('gmap_url', ['title' => 'Url vers la page de contact', 'default' => '/infos-utiles'])];
$options->addSettings($settings);
Example #5
0
<?php

$infosPratiques = get_page_by_path('infos-pratiques');
if (themosis_is_post($infosPratiques->ID)) {
    /*-----------------------------------------------------------------------*/
    // TEAM METABOX
    /*-----------------------------------------------------------------------*/
    Metabox::make('Team', 'page')->set(array(Field::infinite('collaborators', array(Field::text('full-name', array('title' => 'Full name')), Field::text('job'), Field::media('pic')), array('title' => 'Collaborateurs'))));
}
Example #6
0
<?php

$page = Page::make('theme-option', 'Option du theme')->set();
$sections = [Section::make('theme-option-general', __('General', THEME_TEXT_DOMAIN)), Section::make('theme-option-info', __("Society Information", THEME_TEXT_DOMAIN)), Section::make('theme-option-social', __("Social Network", THEME_TEXT_DOMAIN)), Section::make('theme-option-custom-code', __('Code', THEME_TEXT_DOMAIN)), Section::make('theme-option-analytic', __('Analytics', THEME_TEXT_DOMAIN)), Section::make('theme-option-image', __('Default Images', THEME_TEXT_DOMAIN))];
$settings = ['theme-option-general' => [Field::text('name', ['title' => __('Name', THEME_TEXT_DOMAIN)]), Field::text('separator', ['title' => __('Title separator', THEME_TEXT_DOMAIN), 'default' => '-']), Field::select('seplocation', [['right' => __("Right", THEME_TEXT_DOMAIN), 'left' => __("Left", THEME_TEXT_DOMAIN)]], ['title' => __("Title separator emplacement", THEME_TEXT_DOMAIN), 'default' => 'right']), Field::checkbox('showAuthor', ['activate' => 'Afficher l\'auteur'])], 'theme-option-custom-code' => [Field::textarea('javascript', ['title' => __('Javascript', THEME_TEXT_DOMAIN)], ['id' => 'javascript-editor', "class" => "hidden"]), Field::textarea('style', ['title' => __('Style', THEME_TEXT_DOMAIN)], ['id' => 'style-editor', "class" => "hidden"])], 'theme-option-info' => [Field::text('name', ['title' => __('Name', THEME_TEXT_DOMAIN)]), Field::textarea('biography', ['title' => __('Biography', THEME_TEXT_DOMAIN)]), Field::text('address', ['title' => __('Address', THEME_TEXT_DOMAIN)]), Field::text('phoneNumberPrimary', ['title' => __('Phone Number', THEME_TEXT_DOMAIN)], ['type' => 'tel']), Field::text('phoneNumberSecondary', ['title' => __('Phone Number', THEME_TEXT_DOMAIN)], ['type' => 'tel']), Field::text('emailPrimary', ['title' => __('Phone Number', THEME_TEXT_DOMAIN)], ['type' => 'email']), Field::text('emailSecondary', ['title' => __('Phone Number', THEME_TEXT_DOMAIN)], ['type' => 'email'])], 'theme-option-analytic' => [], 'theme-option-social' => [Field::text('facebook', ['title' => 'Facebook'], ['type' => 'url']), Field::text('twitter', ['title' => 'Twitter'], ['type' => 'url']), Field::text('google-plus', ['title' => 'Google plus'], ['type' => 'url']), Field::text('linkedin', ['title' => 'linkedIn'], ['type' => 'url']), Field::text('youtube', ['title' => 'YouTube'], ['type' => 'url']), Field::text('vkontakte', ['title' => 'Vkontakte'], ['type' => 'url']), Field::text('instagram', ['title' => 'Instagram'], ['type' => 'url']), Field::text('rss', ['title' => 'Feed'])], 'theme-option-image' => [Field::media('favicon', ['title' => __("Favicon", THEME_TEXT_DOMAIN)]), Field::media('logo', ['title' => __("Logo", THEME_TEXT_DOMAIN)])]];
$validation = ['name' => ['min:3', 'textfield'], 'facebook' => ['url'], 'twitter' => ['url'], 'google-plus' => ['url'], 'linkedin' => ['url'], 'youtube' => ['url'], 'vkontakte' => ['url'], 'Instagram' => ['url'], 'rss' => ['url']];
$page->addSections($sections);
$page->addSettings($settings);
$page->validate($validation);
Example #7
0
<?php

$cat = Taxonomy::make('product-category', 'products', __('Product Categories', THEME_TEXT_DOMAIN), __('Product Category', THEME_TEXT_DOMAIN))->set(['public' => true, 'show_in_nav_menus' => true, 'hierarchical' => true, 'show_tagcloud' => true, 'show_in_quick_edit' => true]);
$tag = Taxonomy::make('product-tag', 'products', __('Product Tags', THEME_TEXT_DOMAIN), __('Product Tag', THEME_TEXT_DOMAIN))->set(['public' => true, 'show_in_nav_menus' => true, 'hierarchical' => true, 'show_tagcloud' => true, 'show_in_quick_edit' => true]);
$products = PostType::make('products', __('Products', THEME_TEXT_DOMAIN), __('Product', THEME_TEXT_DOMAIN))->set(['public' => true, 'labels' => ['add_item' => __('Add', THEME_TEXT_DOMAIN)], 'supports' => array('title', 'excerpt', 'thumbnail', 'revisions'), 'taxonomies' => array('product-category', 'product-tag')]);
$infos = Metabox::make('Informations', $products->getSlug())->set(array(Field::textarea('description'), Field::collection('images', ['type' => 'images']), Field::infinite('info', [Field::text('title'), Field::textarea('value')])));
/*-----------------------------------------------------------------------*/
// Book info validation
/*-----------------------------------------------------------------------*/
$infos->validate(array());
Example #8
0
<?php

/*-----------------------------------------------------------------------*/
// Custom post type - bks-books
/*-----------------------------------------------------------------------*/
$books = PostType::make('bks-books', 'Books', 'Book')->set(array('public' => true, 'rewrite' => array('slug' => 'books'), 'supports' => array('title', 'editor', 'excerpt', 'thumbnail')));
/*-----------------------------------------------------------------------*/
// Book informations
/*-----------------------------------------------------------------------*/
$infos = Metabox::make('Informations', $books->getSlug())->set(array(Field::text('author'), Field::media('promo-image', array('title' => 'Image promotion', 'info' => 'Image used on home page in order to promote the book.')), Field::text('color', array('info' => 'Insert a hexadecimal color value: <b>#cdcdcd</b>'))));
/*-----------------------------------------------------------------------*/
// Book info validation
/*-----------------------------------------------------------------------*/
$infos->validate(array('author' => array('textfield', 'min:5'), 'color' => array('color')));
Example #9
0
<?php

/**
 * application.php - Write your custom code below.
 */
require_once 'custom_post_types.php';
Custom_Post_Types::set_up();
// Define custom user meta data
User::addFields([Field::text('telegram_api_token', ['title' => 'Telegram API token'])]);
Example #10
0
<?php

/*
  Plugin Name: Test Plugin
 */
require_once 'test-project/themosis.php';
add_action('init', function () {
    \Themosis\Facades\Metabox::make('Details', 'post')->set([Field::text('name'), Field::checkbox('channels', ['email', 'mail', 'morse'])]);
});