public function manage_url() { $url = ""; switch ($this->type) { case "p" : // Post type $pt = MPM_PostType::find_by_name($this->vis("post_types")); if (!$pt) { return ''; } $url = MasterPress::admin_url("post-types", "manage-field-sets", array("parent" => $pt->id) )."&from=edit-field-set"; break; case "t" : // Template $url = MasterPress::admin_url("templates", "manage-field-sets", array("parent" => $this->vis("templates")) )."&from=edit-field-set"; break; case "x" : // taXonomy $tax = MPM_Taxonomy::find_by_name($this->vis("taxonomies")); if (!$tax) { return ''; } $url = MasterPress::admin_url("taxonomies", "manage-field-sets", array("parent" => $tax->id) )."&from=edit-field-set"; break; case "s" : // Shared $url = MasterPress::admin_url("shared-field-sets", "manage" )."&from=edit"; break; case "r" : // Role $url = MasterPress::admin_url("roles", "manage-field-sets", array("parent" => $this->vis("roles")) )."&from=edit-field-set"; break; case "w" : // site-Wide $url = MasterPress::admin_url("site-field-sets", "manage" )."&from=edit"; break; } $url .= "&show=".$this->id; return $url; }
public function submit() { global $wpdb; $action = MasterPress::$action; if ($action == "create" || $action == "edit") { $builtin = $_POST["_builtin"] == "true"; $external = $_POST["_external"] == "true"; if ($builtin) { $tax = MPM_Taxonomy::find_by_name($_POST["name"]); $tax->disabled = isset($_POST["disabled"]); $tax->object_type = $_POST["post_types"]; $tax->visibility = $this->get_visibility_val("sites"); $tax->title_icon = self::handle_icon("title_icon", "title_icon_select"); $tax->columns = $_POST["columns"]; if ($action == "edit") { $tax->update(MasterPress::$id); } } else if ($external) { $tax = MPM_Taxonomy::find_by_name($_POST["name"]); $tax->columns = $_POST["columns"]; $tax->title_icon = self::handle_icon("title_icon", "title_icon_select"); if ($action == "edit") { $tax->update(MasterPress::$id); } } else { $tax = new MPM_Taxonomy(); // consume the post data $tax->name = $_POST["name"]; $tax->plural_name = $_POST["plural_name"]; $tax->object_type = MPC::post_val("post_types"); $tax->disabled = isset($_POST["disabled"]); $tax->labels = $_POST["labels"]; $tax->show_ui = isset($_POST["show_ui"]); $tax->hide_term_ui = isset($_POST["hide_term_ui"]); $tax->show_in_nav_menus = isset($_POST["show_in_nav_menus"]); $tax->show_manage_filter = isset($_POST["show_manage_filter"]); $tax->show_tagcloud = isset($_POST["show_tagcloud"]); $tax->hierarchical = isset($_POST["hierarchical"]); $tax->query_var = $_POST["query_var"]; $tax->title_icon = self::handle_icon("title_icon", "title_icon_select"); $tax->capabilities = $_POST["capabilities"]; $tax->update_count_callback = $_POST["update_count_callback"]; $tax->visibility = $this->get_visibility_val("sites,taxonomies"); $tax->columns = $_POST["columns"]; $rewrite = array( "slug" => $_POST["rewrite"]["slug"], "with_front" => isset($_POST["rewrite"]["with_front"]), "hierarchical" => isset($_POST["rewrite"]["hierarchical"]) ); $tax->rewrite = $rewrite; $tax->_builtin = false; $tax->_external = $external; if ($action == "create") { $tax->insert(); } else if ($action == "edit") { $tax->update(MasterPress::$id); if ($tax->is_valid()) { global $meow_provider; $meow_provider->migrate_taxonomy($tax, $_POST["name_original"]); } } } if ($tax->is_valid()) { MasterPress::flag_for_rewrite(); } return $tax; } else if ($action == "delete") { $tax = MPM_Taxonomy::find_by_id(MasterPress::$id); if ($tax) { $tax->delete( array( "existing_terms" => MPC::post_val("existing_terms"), "existing_terms_reassign_taxonomy" => MPC::post_val("existing_terms_reassign_taxonomy"), "field_sets" => MPC::post_val("field_sets"), "field_data" => MPC::post_val("field_data") ) ); } MasterPress::flag_for_rewrite(); return true; } else if ($action == "create-field-set" || $action == "edit-field-set") { $field_set = new MPM_TaxonomyFieldSet(); // consume the post data $field_set->name = $_POST["name"]; $field_set->singular_name = $_POST["singular_name"]; $field_set->disabled = isset($_POST["disabled"]); $field_set->labels = $_POST["labels"]; $field_set->allow_multiple = isset($_POST["allow_multiple"]); $field_set->visibility = $_POST["visibility"]; $field_set->capabilities = self::handle_capabilities(); $field_set->icon = self::handle_icon("icon", "icon_select"); $field_set->type = "x"; // x = taXonomy $field_set->position = $_POST["position"]; $field_set->expanded = isset($_POST["expanded"]); $field_set->sidebar = isset($_POST["sidebar"]); $field_set->versions = $_POST["versions"]; $field_set->visibility = $this->get_visibility_val("sites,taxonomies"); if (MPC::is_create()) { $field_set->insert(); } else if (MPC::is_edit()) { $field_set->update(MasterPress::$id); } if ($field_set->is_valid()) { if (MPC::is_edit()) { global $meow_provider; $meow_provider->migrate_field_set_meta($field_set, $_POST["name_original"]); } // update other menu positions $op = $_POST["other_position"]; if (isset($op) && is_array($op)) { foreach ($op as $id => $position) { $wpdb->update(MPM::table("field-sets"), array( "position" => $position ), array( "id" => $id ), "%d", "%d" ); } } } return $field_set; } else if ($action == "delete-field-set") { $fg = MPM_TaxonomyFieldSet::find_by_id(MasterPress::$id); if ($fg) { $field_data_action = $_POST["field_data"]; if ($field_data_action == "delete") { $fg->delete_meta(); } } $fg->delete(); return true; } else if ($action == "delete-field") { $f = MPM_Field::find_by_id(MasterPress::$id); if ($f) { $field_data_action = $_POST["field_data"]; if ($field_data_action == "delete") { $f->delete_meta(); } } $f->delete(); return true; } else if ($action == "create-field" || $action == "edit-field") { // FIELD OPERATIONS (NOT FIELD GROUPS!) $field = new MPM_Field(); // consume the post data $field->field_set_id = $_POST["parent"]; $field->name = $_POST["name"]; $field->disabled = isset($_POST["disabled"]); $field->summary_options = $_POST["summary_options"]; $field->required = isset($_POST["required"]); $field->labels = $_POST["labels"]; $field->icon = self::handle_icon("icon", "icon_select"); $field->type = $_POST["type"]; $field->type_options = $_POST["type_options"]; $field->position = $_POST["position"]; $field->visibility = $this->get_visibility_val("sites,taxonomies"); $field->capabilities = self::handle_capabilities(); $fg = MPM_TaxonomyFieldSet::find_by_id($_POST["parent"]); if (MPC::is_create()) { $field->insert(); } else if (MPC::is_edit()) { $field->update(MasterPress::$id); } if ($field->is_valid()) { if (MPC::is_edit()) { global $meow_provider; $meow_provider->migrate_field_meta($field, $_POST["name_original"]); } // update other menu positions $op = $_POST["other_position"]; if (isset($op) && is_array($op)) { foreach ($op as $id => $position) { $wpdb->update(MPM::table("fields"), array( "position" => $position ), array( "id" => $id ), "%d", "%d" ); } } } return $field; } }
public function form($type) { global $wf, $meow_provider; $model = MasterPress::$model; ?> <?php MPV::messages(); ?> <input type="hidden" name="_builtin" value="<?php echo $model->_builtin ? "true" : "false" ?>" /> <input type="hidden" name="_external" value="<?php echo $model->_external ? "true" : "false" ?>" /> <div class="f"> <label for="name" class="icon"><i class="script-php"></i><?php _e("<strong>Singular</strong> Name", MASTERPRESS_DOMAIN)?>:</label> <div class="fw"> <input id="name_original" name="name_original" type="hidden" class="text mono key" maxlength="20" value="<?php echo $model->name ?>" /> <input id="name_last" name="name_last" type="hidden" class="text mono key" maxlength="20" value="<?php echo $model->name ?>" /> <input id="name" name="name" type="text" <?php echo MPV::read_only_attr($model->_builtin || MPC::is_edit()) ?> class="<?php echo MPV::read_only_class($model->_builtin || $model->_external) ?> text mono key" maxlength="20" value="<?php echo $model->name ?>" /><?php if (!$model->_builtin && !$model->_external) { ?><em class="required"><?php _e("(required)", MASTERPRESS_DOMAIN) ?></em><?php } ?> <p> <?php _e("This is a unique identifier for the custom post type in the WordPress and MasterPress APIs. It is not displayed, and by convention it <strong>must</strong> be a singular form, lowercase string with underscores to separate words.", MASTERPRESS_DOMAIN); ?> </p> </div> <p id="name_warning" class="warning"> <i class="error-circle"></i><?php _e("Note: check that you have definitely entered a <strong>singular word</strong> here, as the singular form of <em>Plural Name</em> is currently different to this value.", MASTERPRESS_DOMAIN) ?> </p> </div> <!-- /.f --> <div class="f"> <label for="plural_name" class="icon"><i class="script-php"></i><?php _e("<strong>Plural</strong> Name", MASTERPRESS_DOMAIN)?>:</label> <div class="fw"> <input id="plural_name" name="plural_name" <?php echo MPV::read_only_attr($model->_builtin || MPC::is_edit()) ?> type="text" value="<?php echo $model->plural_name ?>" class="<?php echo MPV::read_only_class($model->_builtin || $model->_external) ?> text mono key" /> <?php if (!$model->_builtin && !$model->_external) { ?><em class="required">(required)</em><?php } ?> <?php if (MPC::is_edit() && !$model->_builtin && !$model->_external) : ?> <button id="plural_name_suggest" type="button" class="button button-small"><?php _e("Suggest", MASTERPRESS_DOMAIN) ?></button> <?php endif; ?> <p> <?php _e("The plural form of <em>Singular Name</em>, following the same naming conventions", MASTERPRESS_DOMAIN); ?> </p> </div> </div> <!-- /.f --> <div class="f clearfix"> <label id="label-menu_icon" for="menu_icon" class="icon"><i class="image-small"></i><?php _e("Icon (16 x 16)", MASTERPRESS_DOMAIN) ?>:</label> <div class="fw"> <div id="icon-file-uploader" class="icon-uploader file-uploader { ids: { drop: 'menu_icon_drop_area' }, input: '#menu_icon', inputName: 'menu_icon_ul', base_url: '<?php echo MASTERPRESS_GLOBAL_CONTENT_URL ?>', params: { dir: 'menu-icons/' }, limit: 1, lang: { buttonChoose: '<?php _e("Choose from Computer…", MASTERPRESS_DOMAIN) ?>', buttonReplace: '<?php _e("Replace file…", MASTERPRESS_DOMAIN) ?>' } }"> <div id="menu_icon_drop_area" class="drop-area"><?php _e("Drop file here to upload", MASTERPRESS_DOMAIN) ?></div> <?php $file_name = $model->menu_icon; $file_class = ""; $clear_class = ""; if ($file_name == "") { $file_name = __("( None )", MASTERPRESS_DOMAIN); $file_class = "name-none"; $clear_class = "hidden"; } ?> <div class="file"> <span class="preview" style="background-image: url('<?php echo MPU::menu_icon_url($model->menu_icon, true, "post_type", true) ?>');"></span><span data-none="<?php echo __("( None )", MASTERPRESS_DOMAIN) ?>" class="name <?php echo $file_class ?>"><?php echo $file_name ?></span> <button type="button" class="<?php echo $clear_class ?> clear ir" title="<?php _e("Clear", MASTERPRESS_DOMAIN) ?>">Clear</button> </div> <input id="menu_icon" name="menu_icon" value="<?php echo $model->menu_icon ?>" type="hidden" /> <div class="uploader-ui"></div> </div> <!-- /.file-uploader --> <?php MPV::icon_select($model->menu_icon, "menu-icon-select", "menu_icon_select", "icon-file-uploader"); ?> </div> </div> <!-- /.f --> <?php if (!$model->_external) : ?> <div class="f"> <label for="disabled" class="icon"><i class="slash"></i><?php _e("Disabled", MASTERPRESS_DOMAIN) ?>?</label> <div class="fw"> <input id="disabled" name="disabled" type="checkbox" value="true" <?php echo WOOF_HTML::checked_attr( $model->disabled ) ?> class="checkbox" /> <p class="checkbox-alt-label { for_el: '#disabled' }"> <?php if ($model->_builtin) : _e("Since this post type is built-in, disabling it may render some WordPress themes unusable.<br />This is only recommended for sites that are highly customised.", MASTERPRESS_DOMAIN); else: _e("disabling a post type will keep its definition in the database but it will not be registered in WordPress, which will often be <strong>preferable to deleting it</strong> entirely.", MASTERPRESS_DOMAIN); endif; ?> </p> </div> </div> <!-- /.f --> <?php endif; ?> <?php if (!$model->_builtin && !$model->_external) : ?> <div class="f"> <label for="description" class="icon"><i class="metabox-text"></i><?php _e("Description", MASTERPRESS_DOMAIN)?>:</label> <div class="fw"> <textarea id="description" name="description" rows="4" cols="100"><?php echo $model->description ?></textarea> </div> </div> <!-- /.f --> <div class="f"> <label for="hierarchical" class="icon"><i class="hierarchy"></i><?php _e("Hierarchical", MASTERPRESS_DOMAIN) ?>?</label> <div class="fw"> <input id="hierarchical" name="hierarchical" type="checkbox" value="true" <?php echo WOOF_HTML::checked_attr( $model->hierarchical ) ?> class="checkbox" /> <p class="checkbox-alt-label { for_el: '#hierarchical' }"> <?php _e("hierarchical post types behave like <strong>pages</strong> in WordPress, where each post can have parent and child posts", MASTERPRESS_DOMAIN); ?> </p> </div> </div> <!-- /.f --> <div class="f"> <label for="show_ui" class="icon"><i class="metabox-menu"></i><?php _e("Show UI", MASTERPRESS_DOMAIN) ?>?</label> <div class="fw"> <input id="show_ui" name="show_ui" type="checkbox" value="true" <?php echo WOOF_HTML::checked_attr( $model->show_ui ) ?> class="checkbox" /> <p class="checkbox-alt-label { for_el: '#show_ui' }"> <?php _e("uncheck this to internalize this post type, which will cause many other features to be unsupported", MASTERPRESS_DOMAIN); ?> </p> </div> </div> <!-- /.f --> <div class="f"> <label for="show_in_nav_menus" class="icon"><i class="menu-gray"></i><?php _e("Show in Nav Menus", MASTERPRESS_DOMAIN) ?>?</label> <div class="fw"> <input id="show_in_nav_menus" name="show_in_nav_menus" type="checkbox" value="true" <?php echo WOOF_HTML::checked_attr( $model->show_in_nav_menus ) ?> class="checkbox" /> <p class="checkbox-alt-label { for_el: '#show_in_nav_menus' }"> <?php _e("allow selection of posts of this type in WordPress custom menus", MASTERPRESS_DOMAIN); ?> </p> </div> </div> <!-- /.f --> <div class="f"> <label for="show_in_menu" class="icon"><i class="menu-icon"></i><?php _e("Show in Admin Menu", MASTERPRESS_DOMAIN) ?>?</label> <div class="fw"> <input id="show_in_menu" name="show_in_menu" type="checkbox" <?php echo WOOF_HTML::checked_attr( $model->show_in_menu ) ?> class="checkbox" /> <p class="checkbox-alt-label { for_el: '#show_in_menu' }"> <?php _e("show this post type in the WordPress admin menu", MASTERPRESS_DOMAIN); ?> </p> </div> <!-- /.fw --> </div> <div class="f"> <label for="manage_sort_order" class="icon"><i class="sort-a-z"></i><?php _e("Default Manage Order", MASTERPRESS_DOMAIN) ?></label> <div class="fw"> <?php $options = array( "post_date|desc" => "Post Date, Descending", "title|asc" => "Title, Ascending", "menu_order|asc" => "Menu Order, Ascending", "post_date|asc" => "Post Date, Ascending", "title|desc" => "Title, Descending", "menu_order|desc" => "Menu Order, Descending" ); ?> <select id="manage_sort_order" name="manage_sort_order"> <?php foreach ($options as $value => $text) : ?> <option <?php echo WOOF_HTML::selected_attr($value == $model->manage_sort_order) ?> value="<?php echo $value ?>"><?php echo $text ?></option> <?php endforeach; ?> </select> <p class="note"> <?php _e("Specify the default sort order in the manage post screen (for when the user hasn't yet clicked on a table header to manually sort). For chronological types (such as blog posts) a descending date order is appropriate, but for other post types a title or menu order (user-defined) sort might be better.", MASTERPRESS_DOMAIN); ?> </p> </div> <!-- /.fw --> </div> <?php endif; ?> <?php if (is_multisite() && MASTERPRESS_MULTISITE_SHARING) { $args["supports"] = array("multisite"); $args["labels"] = array( "title" => __("control the visibility of this Post Type within WordPress", MASTERPRESS_DOMAIN), "title_multisite" => __("specify the sites in the multisite network that this Post Type is available in", MASTERPRESS_DOMAIN), "multisite_all" => __( "All Sites" ) ); MPV::fs_visibility( $model, $args ); } ?> <?php if (!$model->_external) : ?> <div class="fs fs-taxonomies"> <div class="fst"> <div class="fstb"> <h3><i class="tags"></i><strong><?php _e("Taxonomies", MASTERPRESS_DOMAIN) ?></strong> - <?php _e("attach taxonomies to this post type", MASTERPRESS_DOMAIN) ?></h3> <div class="buttons"> <button class="button button-small button-select-all" type="button"><?php _e('Select <strong class="all">All</strong>', MASTERPRESS_DOMAIN) ?></button> <button class="button button-small button-select-none" type="button"><?php _e('Select <strong class="none">None</strong>', MASTERPRESS_DOMAIN) ?></button> </div> </div> </div> <div class="fsc"> <div class="fscb"> <?php $taxonomies = MPM_Taxonomy::find(array("orderby" => "name ASC")); ?> <?php foreach ($taxonomies as $tax) : $disabled = $tax->disabled ? ' disabled' : ''; $disabled_title = $tax->disabled ? __("This taxonomy is disabled", MASTERPRESS_DOMAIN) : ''; $builtin = $tax->_builtin ? ' '.__('(Built-in)', MASTERPRESS_DOMAIN) : ''; ?> <?php if ($tax->still_registered()) : ?> <div class="fw"> <input id="taxonomies_<?php echo $tax->name ?>" data-builtin="<?php echo $tax->_builtin ?>" data-title="<?php echo $tax->display_label() ?>" name="taxonomies[]" value="<?php echo $tax->name ?>" type="checkbox" <?php echo WOOF_HTML::checked_attr( $tax->linked_to_post_type($model) || MPV::in_post_array("taxonomies", $tax->name) ) ?> class="checkbox" /> <label for="taxonomies_<?php echo $tax->name ?>" class="checkbox <?php echo $disabled ?>" title="<?php echo $disabled_title ?>"><?php echo $tax->labels["name"] ?><span><?php echo $builtin ?></span></label> </div> <!-- /.fw --> <?php endif; ?> <?php endforeach; ?> </div> </div> </div> <!-- /.fs --> <div class="fs fs-supports"> <div class="fst"> <div class="fstb"> <h3><i class="gear"></i><strong><?php _e("Supports", MASTERPRESS_DOMAIN) ?></strong> - <?php _e("controls the user interface for creating and editing posts of this type", MASTERPRESS_DOMAIN) ?></h3> <div class="buttons"> <button class="button button-small button-select-all" type="button"><?php _e('Select <strong class="all">All</strong>', MASTERPRESS_DOMAIN) ?></button> <button class="button button-small button-select-none" type="button"><?php _e('Select <strong class="none">None</strong>', MASTERPRESS_DOMAIN) ?></button> </div> </div> </div> <div class="fsc"> <div class="fscb"> <input id="supports_pb" name="supports_pb" type="hidden" value="true" /> <div id="fs-supports-1"> <?php $title_disabled = !($model->_builtin || $model->_external); $title_title = ""; $title_suffix = ""; if ($title_disabled) { $title_title = ' title="'.__("The title feature must be enabled", MASTERPRESS_DOMAIN).'" '; } $dis = WOOF_HTML::disabled_attr($title_disabled); if (!($model->_builtin || $model->_external)) { $checked = WOOF_HTML::checked_attr( true ); } else { $checked = WOOF_HTML::checked_attr( MPV::in_csv("title", $model->supports) ); } ?> <div class="fw"> <input id="supports_title" name="supports[]" value="title" <?php echo $dis ?> <?php echo $title_title ?> <?php echo $checked ?> type="checkbox" class="checkbox { tags: ['title'] }" /> <?php if ($title_disabled) : ?> <input id="supports_title_val" name="supports[]" value="title" type="hidden" /> <?php endif; ?> <label for="supports_title" class="checkbox"><?php _e("Title", MASTERPRESS_DOMAIN); ?><span> - <?php _e("show a text input to edit the post title", MASTERPRESS_DOMAIN) ?></span></label> </div> <!-- /.fw --> <div class="fw"> <input id="supports_editor" name="supports[]" value="editor" <?php echo WOOF_HTML::checked_attr( MPV::in_csv("editor", $model->supports) ) ?> type="checkbox" class="checkbox { tags: ['auto_excerpt'] }" /> <label for="supports_editor" class="checkbox"><?php _e("Editor", MASTERPRESS_DOMAIN); ?><span> - <?php _e("show the main content box", MASTERPRESS_DOMAIN) ?></span></label> </div> <!-- /.fw --> <div class="fw"> <input id="supports_comments" name="supports[]" value="comments" <?php echo WOOF_HTML::checked_attr( MPV::in_csv("comments", $model->supports) ) ?> type="checkbox" class="checkbox { tags: ['comment_count'] }" /> <label for="supports_comments" class="checkbox"><?php _e("Comments", MASTERPRESS_DOMAIN); ?><span> - <?php _e("the <em>ability</em> to allow / disallow comments on posts of this type", MASTERPRESS_DOMAIN) ?></span></label> </div> <!-- /.fw --> <div class="fw"> <input id="supports_trackbacks" name="supports[]" value="trackbacks" <?php echo WOOF_HTML::checked_attr( MPV::in_csv("trackbacks", $model->supports) ) ?> type="checkbox" class="checkbox { tags: ['trackback_count'] }" /> <label for="supports_trackbacks" class="checkbox"><?php _e("Trackbacks", MASTERPRESS_DOMAIN); ?><span> - <?php _e("the <em>ability</em> to allow / disallow trackbacks to posts of this type", MASTERPRESS_DOMAIN) ?></span></label> </div> <!-- /.fw --> <div class="fw"> <input id="supports_post_formats" name="supports[]" value="post-formats" <?php echo WOOF_HTML::checked_attr( MPV::in_csv("post-formats", $model->supports)) ?> type="checkbox" class="checkbox { tags: ['post_format'] }" /> <label for="supports_post_formats" class="checkbox"><?php _e("Post Formats", MASTERPRESS_DOMAIN); ?><span> - <?php _e("used by themes to change the display of posts of this type", MASTERPRESS_DOMAIN); ?></span></label> </div> <!-- /.fw --> <div class="fw"> <input id="supports_front_page" name="supports[]" value="front-page" <?php echo WOOF_HTML::checked_attr( MPV::in_csv("front-page", $model->supports)) ?> type="checkbox" class="checkbox { tags: ['front_page'] }" /> <label for="supports_front_page" class="checkbox"><?php _e("Front Page", MASTERPRESS_DOMAIN); ?><span> - <?php _e("allow posts of this type to be selected as the front page", MASTERPRESS_DOMAIN); ?></span></label> </div> <!-- /.fw --> </div> <!-- /.fs-supports-1 --> <div id="fs-supports-2"> <div class="fw"> <input id="supports_revisions" name="supports[]" value="revisions" <?php echo WOOF_HTML::checked_attr( MPV::in_csv("revisions", $model->supports)) ?> type="checkbox" class="checkbox" /> <label for="supports_revisions" class="checkbox"><?php _e("Revisions", MASTERPRESS_DOMAIN); ?><span> - <?php _e("allow revisions for posts of this type", MASTERPRESS_DOMAIN) ?></span></label> </div> <!-- /.fw --> <div class="fw"> <input id="supports_author" name="supports[]" value="author" type="checkbox" <?php echo WOOF_HTML::checked_attr( MPV::in_csv("author", $model->supports)) ?> class="checkbox" /> <label for="supports_author" class="checkbox"><?php _e("Author", MASTERPRESS_DOMAIN); ?><span> - <?php _e("show a select box for changing the author", MASTERPRESS_DOMAIN) ?></span></label> </div> <!-- /.fw --> <div class="fw"> <input id="supports_excerpt" name="supports[]" value="excerpt" type="checkbox" <?php echo WOOF_HTML::checked_attr( MPV::in_csv("excerpt", $model->supports)) ?> class="checkbox { tags: ['excerpt'] }" /> <label for="supports_excerpt" class="checkbox"><?php _e("Excerpt", MASTERPRESS_DOMAIN); ?><span> - <?php _e("show a text area for writing a custom excerpt", MASTERPRESS_DOMAIN) ?></span></label> </div> <!-- /.fw --> <div class="fw"> <input id="supports_page_attributes" name="supports[]" value="page-attributes" type="checkbox" <?php echo WOOF_HTML::checked_attr( MPV::in_csv("page-attributes", $model->supports) ) ?> class="checkbox" /> <label for="supports_page_attributes" class="checkbox"><?php _e("Type Attributes", MASTERPRESS_DOMAIN); ?><span> - <?php _e("Show the UI for editing Template, Menu Order and Parent", MASTERPRESS_DOMAIN); ?></span></label> </div> <!-- /.fw --> <div class="fw"> <input id="supports_thumbnail" name="supports[]" value="thumbnail" type="checkbox" <?php echo WOOF_HTML::checked_attr( MPV::in_csv("thumbnail", $model->supports) ) ?> class="checkbox { tags: ['thumbnail'] }" /> <label for="supports_thumbnail" class="checkbox"><?php _e("Thumbnail", MASTERPRESS_DOMAIN); ?><span> - <?php _e("show the <em>standard</em> thumbnail upload for posts of this type", MASTERPRESS_DOMAIN) ?></span></label> </div> <!-- /.fw --> </div> <!-- /.fs-supports-2 --> </div> </div> </div> <!-- /.fs --> <?php else : ?> <?php endif; ?> <script id="custom-column-template" type="text/html"> <li class="column clearfix"> <div class="head"> <input name="columns[{{index}}][title]" value="Column" type="text" class="text" /> <input name="columns[{{index}}][disabled]" value="" type="hidden" class="disabled" /> <span class="handle"></span> </div> <div class="body"> <textarea name="columns[{{index}}][content]" class="column-content mono editable"></textarea> </div> <div class="foot"> <div> <button class="text remove"><i></i><?php _e("Remove") ?></button> </div> </div> </li> </script> <script id="tax-add-button-template" type="text/html"> <div class="control taxonomy-control {{taxonomy}}"> <button data-taxonomy="{{taxonomy}}" data-title="{{title}}" type="button" class="text add taxonomy taxonomy-{{taxonomy}}"><?php printf( __('<em class="create">Add</em> <b>%s</b> Column', MASTERPRESS_DOMAIN ), "{{title}}" ) ?></button> </div> </script> <?php if ($model->show_ui) : ?> <div class="fs fs-column-builder clearfix"> <div class="fst"> <div class="fstb"> <h3><i class="grid"></i><strong><?php _e("Columns") ?></strong> - <?php _e("specify the columns shown in the manage listing for posts of this type") ?></h3> </div> </div> <div class="fsc clearfix"> <div class="fscb clearfix"> <div class="columns-clip"> <div class="columns-wrap clearfix"> <ul class="columns clearfix"> <?php $count = 0; $core_enabled = array(); ?> <?php foreach ($model->columns() as $column) : ?> <?php $class = array("column clearfix"); $disabled = ""; $core = ""; $title = isset($column["title"]) ? $column["title"] : ""; $content = ""; if (isset($column["content"])) { $content = stripslashes($column["content"]); } if (isset($column["core"])) { $core = $column["core"]; $content = "{{col.".$core."}}"; } if (isset($column["disabled"])) { $disabled = $column["disabled"]; } if ($core != "") { $class[] = "core"; $class[] = $core; $data_core = ' data-core="'.$core.'" '; } if ($core == "cb") { $class[] = "checkbox nosort"; } if ($disabled == "yes") { $class[] = "disabled"; } else { if ($core != "") { $core_enabled[] = $core; } } ?> <li <?php echo $data_core ?> class="<?php echo implode(" ", $class) ?>"> <div class="head"> <?php if ($core == "cb") : ?> <input type="checkbox" /> <input name="columns[<?php echo $count ?>][core]" value="cb" type="hidden" /> <?php else: ?> <?php if ($core == "comments") : ?> <span class="icon"></span> <input name="columns[<?php echo $count ?>][title]" value="<?php echo $title ?>" type="text" class="text hidden" /> <?php else: ?> <input name="columns[<?php echo $count ?>][title]" value="<?php echo $title ?>" type="text" class="text" /> <?php endif; ?> <?php if ($core != "") : ?> <input name="columns[<?php echo $count ?>][core]" value="<?php echo $core ?>" type="hidden" /> <?php endif; ?> <input name="columns[<?php echo $count ?>][disabled]" value="<?php echo $disabled ?>" type="hidden" class="disabled" /> <span class="handle"></span> <?php endif; ?> </div> <!-- /.head --> <div class="body clearfix"> <?php if ($core == "cb") : ?> <input type="checkbox" /> <?php else: ?> <?php if ($core == "comments") : ?> <span class="icon"></span> <textarea name="columns[<?php echo $count ?>][content]" readonly="true" class="content mono readonly hidden"></textarea> <?php elseif ($core != "") : ?> <textarea name="columns[<?php echo $count ?>][content]" title="<?php _e("Content cannot be changed as this is a built-in column") ?>" readonly="true" class="content mono readonly"><?php echo $content ?></textarea> <?php else : ?> <textarea name="columns[<?php echo $count ?>][content]" class="content mono editable" style="z-index: <?php echo 200 - $count ?>"><?php echo $content ?></textarea> <?php endif; ?> <?php endif; ?> </div> <div class="foot"> <div> <?php if ($core != "cb" && $core != "title") : ?> <button type="button" class="text remove"><i></i><?php _e("Remove") ?></button> <?php endif; ?> </div> </div> </li> <?php $count++; ?> <?php endforeach; ?> </ul> </div> <!-- /.columns-wrap --> <div class="core-columns"> <div class="f"> <p class="label"><i class="wall"></i><?php _e("Built-in columns:", MASTERPRESS_DOMAIN) ?></p> <?php $core_columns = array( "Author" => "author", "Categories" => "categories", "Tags" => "tags", "Comments" => "comments", "Date" => "date" ); ?> <?php foreach ($core_columns as $label => $key) : ?> <?php $checked_attr = WOOF_HTML::checked_attr(in_array($key, $core_enabled)); $style = ""; $supports = explode(",", $model->supports); if ($key == "categories" && !$model->linked_to_taxonomy_name("category")) { $style = 'style="display: none" '; } else if ($key == "tags" && !$model->linked_to_taxonomy_name("post_tag")) { $style = 'style="display: none" '; } else if ($key == "author" && !in_array("author", $supports)) { $style = 'style="display: none" '; } else if ($key == "comments" && !in_array("comments", $supports)) { $style = 'style="display: none" '; } ?> <div <?php echo $style ?> id="fw-core-column-<?php echo $key ?>" class="fw"> <input id="core-column-<?php echo $key ?>" <?php echo $checked_attr ?> value="<?php echo $key ?>" type="checkbox" class="checkbox" /> <label for="core-column-<?php echo $key ?>" class="checkbox"><?php echo $label ?></label> </div> <!-- /.fw --> <?php endforeach; ?> </div> </div> <!-- /.core-columns --> <?php if (MPC::is_edit()) : ?> <style type="text/css"> <?php foreach (MPFT::type_keys() as $key) : ?> .select2-results .field-type-<?php echo $key ?>, .select2-container .field-type-<?php echo $key ?> { background-repeat: no-repeat; background-image: url(<?php echo MPU::type_icon_url($key) ?>); } <?php endforeach; ?> </style> <div id="dialog-fields" data-title="<?php _e("Select a Field to Display in the Column", MASTERPRESS_DOMAIN) ?>"> <?php $fs = $meow_provider->post_type_field_sets($model->name); $field_options = array(); $field_options[""] = ""; $field_options_attr = array(""); foreach ($fs as $set) { $fo = array(); $fo_attr = array(); foreach ($set->fields() as $field) { $fo[$field->display_label()] = $set->name.".".$field->name; $fo_attr[] = $field_options_attr[] = array("data-icon" => "mp-icon field-type-".$field->type); } $field_options[$set->display_label()] = array("options" => $fo, "options_attr" => $fo_attr); } echo WOOF_HTML::select(array("id" => "add-field-column-field-sets", "name" => "add-field-column-field-sets", "class" => "with-icons select2-source", "data-placeholder" => __("-- Select a Field --", MASTERPRESS_DOMAIN)), $field_options, "", $field_options_attr); ?> </div> <!-- /#dialog-fields --> <?php endif; ?> <div class="custom-columns"> <?php if (MPC::is_edit() && count($field_options) > 1) : ?> <div class="control"> <button id="add-field-column" type="button" class="text add field"><i></i><?php _e('<em class="create">Add</em> <b>Field</b> Column', MASTERPRESS_DOMAIN) ?></button> </div> <?php endif; ?> <div class="control"> <button id="add-custom-column" type="button" class="text add"><i></i><?php _e('<em class="create">Add</em> <b>Custom</b> Column', MASTERPRESS_DOMAIN) ?></button> </div> <?php $taxonomies = $model->taxonomies(); ?> <?php foreach ($model->taxonomies() as $tax) : ?> <div class="control taxonomy-control <?php echo $tax->name ?>"> <button data-taxonomy="<?php echo $tax->name ?>" data-title="<?php echo $tax->display_label() ?>" type="button" class="text add taxonomy taxonomy-<?php echo $tax->name ?>"><i></i><?php printf( __('<em class="create">Add</em> <b>%s</b> Column', MASTERPRESS_DOMAIN ), $tax->display_label() ) ?></button> </div> <?php endforeach; ?> </div> <!-- /.custom-columns --> </div> <!-- /.columns-clip --> </div> </div> </div> <!-- /.fs --> <?php endif; ?> <?php if (!$model->_builtin && !$model->_external) : ?> <div class="fs fs-menu-options clearfix"> <div class="fst"> <div class="fstb"> <h3><i class="menu-icon"></i><strong><?php _e("Admin Menu", MASTERPRESS_DOMAIN) ?></strong> - <?php _e("controls where your post type appears in the WordPress administration menu", MASTERPRESS_DOMAIN) ?></h3> </div> </div> <div class="fsc clearfix"> <div class="fscb clearfix"> <div class="f clearfix"> <label for="menu_position" class="label-sortable-list"><?php _e("Position", MASTERPRESS_DOMAIN) ?>:</label> <div class="fw"> <?php // Build a menu, which we'll co-populate with info from the post types and then sort by menu position and sub position $post_post_type = MPM_PostType::find_by_name("post"); $page_post_type = MPM_PostType::find_by_name("page"); $menus = array( array( "label" => __("Posts", MASTERPRESS_DOMAIN), "class" => "icon16 icon-post", "disabled" => ( (bool) $post_post_type->disabled ), "built_in" => true, "position" => 5, "sub_position" => 0 ), array( "label" => __("Media", MASTERPRESS_DOMAIN), "class" => "icon16 icon-media", "built_in" => true, "position" => 10, "sub_position" => 0 ), array( "label" => __("Links", MASTERPRESS_DOMAIN), "class" => "icon16 icon-links", "built_in" => true, "position" => 15, "sub_position" => 0 ), array( "label" => __("Pages", MASTERPRESS_DOMAIN), "class" => "icon16 icon-page", "disabled" => ( (bool) $page_post_type->disabled ), "built_in" => true, "position" => 20, "sub_position" => 0 ), array( "label" => __("Comments", MASTERPRESS_DOMAIN), "class" => "icon16 icon-comments", "built_in" => true, "position" => 25, "sub_position" => 0 ), array( "divider" => true, "position" => 64, "sub_position" => 0 ), array( "label" => __("Plugins", MASTERPRESS_DOMAIN), "class" => "icon16 icon-plugins", "built_in" => true, "position" => 65, "sub_position" => 0 ), array( "label" => __("Users", MASTERPRESS_DOMAIN), "class" => "icon16 icon-users", "built_in" => true, "position" => 70, "sub_position" => 0 ), array( "label" => __("Tools", MASTERPRESS_DOMAIN), "class" => "icon16 icon-tools", "built_in" => true, "position" => 75, "sub_position" => 0 ), array( "label" => __("Settings", MASTERPRESS_DOMAIN), "class" => "icon16 icon-settings", "built_in" => true, "position" => 80, "sub_position" => 0 ), array( "divider" => true, "position" => 100, "sub_position" => 0 ) ); // Splice with post-types data (non built-in) $post_types = MPM_PostType::find( array( "where" => "_builtin = 0 AND name <> '{$model->name}'", "orderby" => "menu_position,menu_sub_position") ); foreach ($post_types as $post_type) { if ($post_type->show_in_menu) { if (!$post_type->_external) { // if post variables are set for these positions, use those instead of the DB values --> $position = $post_type->menu_position; $sub_position = $post_type->menu_sub_position; if (isset($_POST["other_menu_position"]) && isset($_POST["other_menu_position"][$post_type->name])) { $position = $_POST["other_menu_position"][$post_type->name]; } if (isset($_POST["other_menu_sub_position"]) && isset($_POST["other_menu_sub_position"][$post_type->name])) { $sub_position = $_POST["other_menu_sub_position"][$post_type->name]; } $bi = false; $menus[] = array( "name" => $post_type->name, "label" => $post_type->labels["menu_name"], "disabled" => $post_type->disabled, "icon" => MPU::menu_icon_url($post_type->menu_icon, true, "post_type", true), "built_in" => $bi, "position" => (int) $position, "sub_position" => (int) $sub_position ); } } } // Finally, add the post type currently being created / edited $menus[] = array( "disabled" => $model->disabled, "current" => true, "name" => $model->name == "" ? "?" : $model->name, "label" => $model->labels["menu_name"], "icon" => $model->menu_icon == "" ? MPU::img_url("icon-no-icon.png") : MPU::menu_icon_url($model->menu_icon), "built_in" => false, "position" => (int) $model->menu_position, "sub_position" => (int) $model->menu_sub_position ); // MPU::img_url("icon-no-icon.png") function mp_menu_sort($a, $b) { if ($a["position"] == $b["position"]) { if ($a["sub_position"] == $b["sub_position"]) { return 0; } else { return $a["sub_position"] > $b["sub_position"] ? 1 : -1; } } else if ($a["position"] > $b["position"]) { return 1; } else { return -1; } return 0; } usort($menus, "mp_menu_sort"); // MPV::dump($menus); $count = 0; ?> <div class="sortable-list sortable-list-menu"> <span class="arrow"></span> <div class="lists clearfix"> <ul> <?php foreach ($menus as $menu) : $count++; $first = $count == 1 ? "first " : ""; ?> <?php $disabled = ''; $disabled_title = ''; if (isset($menu["disabled"]) && $menu["disabled"]) { $disabled = 'disabled'; $disabled_title = __("This post type is disabled", MASTERPRESS_DOMAIN); } ?> <?php if (isset($menu["divider"])) : ?> <li class="divide nomove"></li> <?php elseif (isset($menu["built_in"]) && $menu["built_in"]) : ?> <li class="<?php echo $first ?> <?php echo $disabled ?> bi nomove { base_pos: <?php echo $menu["position"] ?>}" title="<?php echo $disabled_title ?>"> <span class="icon <?php echo $menu["class"] ?>"></span> <span><?php echo $menu["label"] ?></span> </li> <?php elseif (isset($menu["current"])) : ?> <li class="current <?php echo $disabled ?>" title="<?php echo $disabled_title ?>"> <input id="menu_position" name="menu_position" value="<?php echo $menu["position"] ?>" type="hidden" class="pos" /> <input id="menu_sub_position" name="menu_sub_position" value="<?php echo $menu["sub_position"] ?>" type="hidden" class="sub_pos" /> <span class="icon mp-icon mp-icon-post-type mp-icon-post-type-<?php echo $menu["name"] ?>"></span> <span class="fill { src: '#label_menu_name' }">?</span> </li> <?php else: ?> <li class="<?php echo $disabled ?>" title="<?php echo $disabled_title ?>"> <input id="other_menu_position_<?php echo $menu["name"] ?>" name="other_menu_position[<?php echo $menu["name"] ?>]" value="<?php echo $menu["position"] ?>" type="hidden" class="pos" /> <input id="other_menu_sub_position_<?php echo $menu["name"] ?>" name="other_menu_sub_position[<?php echo $menu["name"] ?>]" value="<?php echo $menu["sub_position"] ?>" type="hidden" class="sub_pos" /> <span class="icon mp-icon mp-icon-post-type mp-icon-post-type-<?php echo $menu["name"] ?>"></span> <span><?php echo $menu["label"] ?></span> </li> <?php endif; ?> <?php endforeach; ?> <li class="nomove holder"></li> </ul> </div> <!-- /.lists --> <div class="help"> <p> <?php _e("Drag post type to the desired position in the admin menu.", MASTERPRESS_DOMAIN) ?> </p> <p> <?php _e("Note: You cannot adjust the positions of the built-in menus, but you can position items before and after them (with the exception that items must be positioned after <em>Posts</em>).", MASTERPRESS_DOMAIN); ?> </p> <p> <em><?php _e("The menu presented here is a representation only, and does not include other menus registered by your theme and other plug-ins.", MASTERPRESS_DOMAIN); ?></em> </p> </div> </div> <!-- /.sortable-list --> </div> </div> <!-- /.f --> </div> </div> </div> <!-- /.fs --> <?php endif; ?> <?php if (!$model->_builtin && !$model->_external) : ?> <div class="fs fs-url-options clearfix"> <div class="fst"> <div class="fstb"> <h3><i class="globe"></i><strong><?php _e("URL Options", MASTERPRESS_DOMAIN) ?></strong> - <?php _e("controls how your post type is accessible via URLs in your site", MASTERPRESS_DOMAIN) ?></h3> </div> </div> <div class="fsc clearfix"> <div class="fscb clearfix"> <div class="f"> <label for="rewrite_slug" class="text"><?php _e("Rewrite Slug", MASTERPRESS_DOMAIN) ?>:</label> <div class="fw"> <input id="rewrite_slug" name="rewrite[slug]" type="text" value="<?php echo $model->rewrite["slug"] ?>" class="text mono" /> <p> <?php _e("The slug your post types will sit underneath in the URL structure.", MASTERPRESS_DOMAIN); ?><br /> <?php _e("The default value follows the popular convention of using the lowercase sanitized version of <em>Plural Name</em>.", MASTERPRESS_DOMAIN); ?> </p> </div> </div> <!-- /.f --> <div class="fw clearfix"> <input id="has_archive" name="has_archive" type="checkbox" value="true" <?php echo WOOF_HTML::checked_attr( $model->has_archive ) ?> class="checkbox" /> <label for="has_archive" class="checkbox"><?php printf( __("Has Archive Page? - <span>allows an archive page for this post type, using the template named %s", MASTERPRESS_DOMAIN ), 'archive-<em class="post-type-name fill { src: \'#name\', format: \'dasherize\' }\">'.$model->name.'</em>.php</span>') ?></label> </div> <div class="fw clearfix"> <input id="rewrite_with_front" name="rewrite[with_front]" type="checkbox" value="true" <?php echo WOOF_HTML::checked_attr( $model->rewrite["with_front"] ) ?> class="checkbox" /> <label for="rewrite_with_front" class="checkbox"><?php _e("With Front? - <span>Append the above slug to the top level URL set in your permalink settings.</span>", MASTERPRESS_DOMAIN); ?></label> </div> <!-- /.fw --> <div class="fw"> <input id="rewrite_feeds" name="rewrite[feeds]" type="checkbox" value="true" <?php echo WOOF_HTML::checked_attr( $model->rewrite["feeds"] ) ?> class="checkbox" /> <label for="rewrite_feeds" class="checkbox"><?php _e("Has Feeds? - <span>Create RSS / ATOM feeds for this post type.</span>", MASTERPRESS_DOMAIN); ?></label> </div> <!-- /.fw --> <div class="f clearfix"> <label for="permalink_epmask" class="text"><?php _e("Permalink End-Point Mask", MASTERPRESS_DOMAIN) ?>:</label> <div class="fw"> <?php //$options = array("EP_PERMALINK", "EP_ATTACHMENT", "EP_DATE", "EP_YEAR", "EP_MONTH", "EP_DAY", "EP_ROOT", "EP_COMMENTS", "EP_SEARCH", "EP_CATEGORIES", "EP_TAGS", "EP_AUTHORS", "EP_PAGES", "EP_ALL"); //echo WOOF_HTML::select( array("multiple" => "multiple", "id" => "permalink_epmask", "name" => "permalink_epmask"), $options, $model->permalink_epmask ); ?> <input id="permalink_epmask" name="permalink_epmask" type="text" value="<?php echo $model->permalink_epmask ?>" class="text mono" /> <p> <?php _e('Separate multiple end-point constants with a pipe. e.g. <span class="tt">EP_PAGES | EP_TAGS</span>', MASTERPRESS_DOMAIN); ?> </p> </div> </div> <!-- /.f --> <div class="fw clearfix"> <input id="supports_top_level_slugs" name="supports[]" value="top-level-slugs" <?php echo WOOF_HTML::checked_attr( MPV::in_csv("top-level-slugs", $model->supports) ) ?> type="checkbox" class="checkbox" /> <label for="supports_top_level_slugs" class="checkbox"><?php _e("Allow Rewrite Slug to be ommitted?", MASTERPRESS_DOMAIN); ?><span> - <?php _e("allows you to also access posts of this type <em>without</em> the rewrite slug in the URL.<br/>Be careful with this setting - it may affect site performance, and pages with the same slug as a post of this type will no longer be accessible.", MASTERPRESS_DOMAIN) ?></span></label> </div> <!-- /.fw --> </div> </div> </div> <!-- /.fs --> <div class="fs fs-query-data-options"> <div class="fst"> <div class="fstb"> <h3><i class="database"></i><strong><?php _e("Query & Data Options", MASTERPRESS_DOMAIN) ?></strong> - <?php _e(" controls the visibility of this post type in database queries and site searches, and exportability", MASTERPRESS_DOMAIN) ?></h3> </div> </div> <div class="fsc"> <div class="fscb"> <div class="fw fw"> <input id="publicly_queryable" name="publicly_queryable" value="true" <?php echo WOOF_HTML::checked_attr( $model->publicly_queryable ) ?> type="checkbox" class="checkbox" /> <label for="publicly_queryable" class="checkbox"><?php _e("Publicly Queryable? - <span>Allow queries on this post type from the front-end WordPress API</span>", MASTERPRESS_DOMAIN); ?></label> </div> <!-- /.fw --> <div class="f"> <label for="query_var" class="text"><?php _e("Query Variable", MASTERPRESS_DOMAIN) ?>:</label> <div class="fw"> <input id="query_var" name="query_var" type="text" value="<?php echo $model->query_var ?>" class="text mono" /> <p> <?php _e('Enter the query variable used to query posts of this type with <span class="tt">query_posts</span> or <span class="tt">WP_Query</span>. Generally this should simply be the default value of the <em>Singular Name</em>, unless you have a good reason to change it.', MASTERPRESS_DOMAIN) ?> </p> </div> </div> <!-- /.f --> <div class="fw"> <input id="exclude_from_search" name="exclude_from_search" value="true" <?php echo WOOF_HTML::checked_attr( $model->exclude_from_search ) ?> type="checkbox" class="checkbox" /> <label for="exclude_from_search" class="checkbox"><?php _e("Exclude from Search? - <span>Hide items of this post type in site search results</span>", MASTERPRESS_DOMAIN); ?></label> </div> <!-- /.fw --> <div class="fw"> <input id="can_export" name="can_export" value="true" <?php echo WOOF_HTML::checked_attr( $model->can_export ) ?> type="checkbox" class="checkbox" /> <label for="can_export" class="checkbox"><?php _e("Exportable? - <span>Allow this post type to be exported via the WordPress Export Tool</span>", MASTERPRESS_DOMAIN); ?></label> </div> <!-- /.fw --> </div> </div> </div> <!-- /.fs --> <?php endif; ?> <?php if (!$model->_external) : ?> <div class="fs fs-labels"> <div class="fst"> <div class="fstb"> <h3><i class="label-string"></i><strong><?php _e("Labels", MASTERPRESS_DOMAIN) ?></strong> - <?php _e("displayed throughout the WordPress administration UI", MASTERPRESS_DOMAIN) ?></h3> <div class="buttons"> <button id="autofill-labels" class="button button-autofill" type="button"><?php _e('<strong>Auto-Fill</strong> Labels', MASTERPRESS_DOMAIN) ?></button> </div> </div> </div> <div class="fsc"> <div class="fscb"> <div class="f"> <label for="label_singular_name"><?php _e("<em>Singular</em> Name:", MASTERPRESS_DOMAIN); ?></label> <div class="fw"> <input id="label_singular_name" name="labels[singular_name]" value="<?php echo $model->labels["singular_name"] ?>" type="text" class="text { tmpl: '{{singular_name}}' }" /> <em class="recommended">(<?php _e("recommended", MASTERPRESS_DOMAIN) ?>)</em> </div> </div> <!-- /.f --> <div class="f"> <label for="label_name"><?php _e("<em>Plural</em> Name:", MASTERPRESS_DOMAIN); ?></label> <div class="fw"> <input id="label_name" name="labels[name]" value="<?php echo $model->labels["name"] ?>" type="text" class="text { tmpl: '{{plural_name}}' }" /> <em class="recommended">(<?php _e("recommended", MASTERPRESS_DOMAIN) ?>)</em> </div> </div> <!-- /.f --> <div class="f"> <label for="label_menu_name"><?php _e("Menu Name:", MASTERPRESS_DOMAIN); ?></label> <div class="fw"> <input id="label_menu_name" name="labels[menu_name]" value="<?php echo $model->labels["menu_name"] ?>" type="text" class="text { tmpl: '<?php _e("{{plural_name}}", MASTERPRESS_DOMAIN) ?>' }" /> <span class="fdesc"><?php _e("The name to give menu items", MASTERPRESS_DOMAIN); ?></span> </div> </div> <!-- /.f --> <div class="f"> <label for="label_add_new"><?php _e("Add New:", MASTERPRESS_DOMAIN); ?></label> <div class="fw"> <input id="label_add_new" name="labels[add_new]" value="<?php echo $model->labels["add_new"] ?>" type="text" class="text { tmpl: '<?php _e("Add New", MASTERPRESS_DOMAIN) ?>' }" /> <span class="fdesc"><?php _e("Menu label for creating a post of this type", MASTERPRESS_DOMAIN); ?></span> </div> </div> <!-- /.f --> <div class="f"> <label for="label_all_items"><?php _e("All Items:", MASTERPRESS_DOMAIN); ?></label> <div class="fw"> <input id="label_all_items" name="labels[all_items]" value="<?php echo $model->label("all_items") ?>" type="text" class="text { tmpl: '<?php _e("All {{plural_name}}", MASTERPRESS_DOMAIN) ?>' }" /> <span class="fdesc"><?php _e("The all items text used in the menu", MASTERPRESS_DOMAIN); ?></span> </div> </div> <!-- /.f --> <div class="f"> <label for="label_add_new_item"><?php _e("Add New Item:", MASTERPRESS_DOMAIN); ?></label> <div class="fw"> <input id="label_add_new_item" name="labels[add_new_item]" value="<?php echo $model->labels["add_new_item"] ?>" type="text" class="text { tmpl: '<?php _e("Add New {{singular_name}}", MASTERPRESS_DOMAIN) ?>' }" /> <span class="fdesc"><?php _e("Header shown when creating a new item of this type", MASTERPRESS_DOMAIN); ?></span> </div> </div> <!-- /.f --> <div class="f"> <label for="label_edit"><?php _e("Edit:", MASTERPRESS_DOMAIN); ?></label> <div class="fw"> <input id="label_edit" name="labels[edit]" value="<?php echo $model->labels["edit"] ?>" type="text" class="text { tmpl: '<?php _e("Edit", MASTERPRESS_DOMAIN) ?>' }" /> <span class="fdesc"><?php _e("Menu label for editing posts of this type", MASTERPRESS_DOMAIN); ?></span> </div> </div> <!-- /.f --> <div class="f"> <label for="label_edit_item"><?php _e("Edit Item:", MASTERPRESS_DOMAIN); ?></label> <div class="fw"> <input id="label_edit_item" name="labels[edit_item]" value="<?php echo $model->labels["edit_item"] ?>" type="text" class="text { tmpl: '<?php _e("Edit {{singular_name}}", MASTERPRESS_DOMAIN) ?>' }" /> <span class="fdesc"><?php _e("Header shown when editing posts of this type", MASTERPRESS_DOMAIN); ?></span> </div> </div> <!-- /.f --> <div class="f"> <label for="label_new_item"><?php _e("New Item Label:", MASTERPRESS_DOMAIN); ?></label> <div class="fw"> <input id="label_new_item" name="labels[new_item]" value="<?php echo $model->labels["new_item"] ?>" type="text" class="text { tmpl: '<?php _e("New {{singular_name}}", MASTERPRESS_DOMAIN) ?>' }" /> <span class="fdesc"><?php _e("Shown in the favorites menu in the admin header", MASTERPRESS_DOMAIN); ?></span> </div> </div> <!-- /.f --> <div class="f"> <label for="label_view"><?php _e("View:", MASTERPRESS_DOMAIN); ?></label> <div class="fw"> <input id="label_view" name="labels[view]" value="<?php echo $model->labels["view"] ?>" type="text" class="text { tmpl: '<?php _e("View {{singular_name}}", MASTERPRESS_DOMAIN) ?>' }" /> <span class="fdesc"><?php _e("Used as text in links to view posts of this type", MASTERPRESS_DOMAIN); ?></span> </div> </div> <!-- /.f --> <div class="f"> <label for="label_view_item"><?php _e("View Item:", MASTERPRESS_DOMAIN); ?></label> <div class="fw"> <input id="label_view_item" name="labels[view_item]" value="<?php echo $model->labels["view_item"] ?>" type="text" class="text { tmpl: '<?php _e("View {{singular_name}}", MASTERPRESS_DOMAIN) ?>' }" /> <span class="fdesc"><?php _e("Text for the button alongside the permalink on the edit post screen", MASTERPRESS_DOMAIN); ?></span> </div> </div> <!-- /.f --> <div class="f"> <label for="label_search_items"><?php _e("Search Items:", MASTERPRESS_DOMAIN); ?></label> <div class="fw"> <input id="label_search_items" name="labels[search_items]" value="<?php echo $model->labels["search_items"] ?>" type="text" class="text { tmpl: '<?php _e("Search {{plural_name}}", MASTERPRESS_DOMAIN) ?>' }" /> <span class="fdesc"><?php _e("Button text for the search box on the edit post screen", MASTERPRESS_DOMAIN); ?></span> </div> </div> <!-- /.f --> <div class="f"> <label for="label_not_found"><?php _e("Not Found:", MASTERPRESS_DOMAIN); ?></label> <div class="fw"> <input id="label_not_found" name="labels[not_found]" value="<?php echo $model->labels["not_found"] ?>" type="text" class="text { lowercase: true, tmpl: '<?php _e("No {{plural_name}} found", MASTERPRESS_DOMAIN) ?>' }" /> <span class="fdesc"><?php _e("Text to display when no posts of this type are found through search in the admin", MASTERPRESS_DOMAIN); ?></span> </div> </div> <!-- /.f --> <div class="f"> <label for="label_not_found_in_trash"><?php _e("Not Found In Trash:", MASTERPRESS_DOMAIN); ?></label> <div class="fw"> <input id="label_not_found_in_trash" name="labels[not_found_in_trash]" value="<?php echo $model->labels["not_found_in_trash"] ?>" type="text" class="text { lowercase: true, tmpl: '<?php _e("No {{plural_name}} found in Trash", MASTERPRESS_DOMAIN) ?>' }" /> <span class="fdesc"><?php _e("Text to display when no posts of this type are in the trash", MASTERPRESS_DOMAIN); ?></span> </div> </div> <!-- /.f --> <div class="f hierarchical-only"> <label for="label_parent_item_colon"><?php _e("Parent Item (Colon):", MASTERPRESS_DOMAIN); ?></label> <div class="fw"> <input id="label_parent_item_colon" name="labels[parent_item_colon]" value="<?php echo $model->labels["parent_item_colon"] ?>" type="text" class="text { tmpl: '<?php _e("Parent {{singular_name}}", MASTERPRESS_DOMAIN) ?>' }" /> <span class="fdesc"><?php _e("The label for the parent selector on the edit posts screen (hierarchical only)", MASTERPRESS_DOMAIN); ?></span> </div> </div> <!-- /.f --> <div class="f"> <label for="label_no_posts"><?php _e("No Posts:", MASTERPRESS_DOMAIN); ?></label> <div class="fw"> <input id="label_no_posts" name="labels[no_posts]" value="<?php echo $model->label("no_posts") ?>" type="text" class="text { tmpl: '<?php _e("No {{plural_name}}", MASTERPRESS_DOMAIN) ?>' }" /> <span class="fdesc"><?php _e("Used when listing posts in a master-detail relationship", MASTERPRESS_DOMAIN); ?></span> </div> </div> <!-- /.f --> <div class="f"> <label for="label_one_post"><?php _e("One Post:", MASTERPRESS_DOMAIN); ?></label> <div class="fw"> <input id="label_one_post" name="labels[one_post]" value="<?php echo $model->label("one_post") ?>" type="text" class="text { tmpl: '<?php _e("1 {{singular_name}}", MASTERPRESS_DOMAIN) ?>' }" /> <span class="fdesc"><?php _e("Used when listing posts in a master-detail relationship", MASTERPRESS_DOMAIN); ?></span> </div> </div> <!-- /.f --> <div class="f"> <label for="label_n_posts"><?php _e("n Posts:", MASTERPRESS_DOMAIN); ?></label> <div class="fw"> <input id="label_n_posts" name="labels[n_posts]" value="<?php echo $model->label("n_posts") ?>" type="text" class="text { tmpl: '<?php _e("%d {{plural_name}}", MASTERPRESS_DOMAIN) ?>' }" /> <span class="fdesc"><?php _e("Used when listing posts in a master-detail relationship", MASTERPRESS_DOMAIN); ?></span> </div> </div> <!-- /.f --> <div class="f"> <label for="label_remove_post"><?php _e("Remove Post:", MASTERPRESS_DOMAIN); ?></label> <div class="fw"> <input id="label_remove_post" name="labels[remove_post]" value="<?php echo $model->label("remove_post") ?>" type="text" class="text { tmpl: '<?php _e("Remove {{singular_name}}", MASTERPRESS_DOMAIN) ?>' }" /> <span class="fdesc"><?php _e("Used when listing posts in a master-detail relationship", MASTERPRESS_DOMAIN); ?></span> </div> </div> <!-- /.f --> </div> </div> </div> <!-- /.fs --> <?php endif; ?> <?php if (!$model->_builtin && !$model->_external) : ?> <div class="fs fs-capability-keys"> <div class="fst"> <div class="fstb"> <h3><i class="key"></i><strong><?php _e("Capabilities", MASTERPRESS_DOMAIN) ?></strong> - <?php _e('the keys used to control access to this post type.', MASTERPRESS_DOMAIN) ?></h3> </div> </div> <div class="fsc"> <div class="fscb"> <div class="fw fwl"> <input id="capability_type_post" name="capability_type" value="post" <?php echo WOOF_HTML::checked_attr( $model->capability_type == "post" ) ?> type="radio" class="radio" /> <label for="capability_type_post" class="radio"><?php _e('<em>Post</em> style, based on the partial key <span class="tt">post</span>', MASTERPRESS_DOMAIN) ?></label> <div class="eg"> <p><strong><?php _e("primitive capabilities", MASTERPRESS_DOMAIN) ?>:</strong> <span class="tt">edit_posts, edit_others_posts, publish_posts, read_private_posts</span></p> <p><strong><?php _e("meta capabilities", MASTERPRESS_DOMAIN) ?>:</strong> <span class="tt">edit_post, read_post, delete_post, read, delete_posts, delete_private_posts, delete_published_posts, delete_others_posts, edit_private_posts, edit_published_posts</span></p> </div> </div> <!-- /.fw --> <div class="fw fwl"> <input id="capability_type_page" name="capability_type" value="page" <?php echo WOOF_HTML::checked_attr( $model->capability_type == "page" ) ?> type="radio" class="radio" /> <label for="capability_type_page" class="radio"><?php _e('<em>Page</em> style, based on the partial key <span class="tt">page</span>', MASTERPRESS_DOMAIN) ?></label> <div class="eg"> <p><strong><?php _e("primitive capabilities", MASTERPRESS_DOMAIN) ?>:</strong> <span class="tt">edit_pages, edit_others_pages, publish_pages, read_private_pages</span></p> <p><strong><?php _e("meta capabilities", MASTERPRESS_DOMAIN) ?>:</strong> <span class="tt">edit_page, read_page, delete_page, read, delete_pages, delete_private_pages, delete_published_pages, delete_others_pages, edit_private_pages, edit_published_pages</span></p> </div> </div> <!-- /.fw --> <div class="fw fwl"> <input id="capability_type_specific" name="capability_type" value="specific" <?php echo WOOF_HTML::checked_attr( $model->capability_type == "specific" || $model->capability_type == $model->name ) ?> type="radio" class="radio" /> <label for="capability_type_specific" class="radio"><?php _e("<em>Specific</em>, based on <em>Singular Name</em>", MASTERPRESS_DOMAIN) ?></label> <div class="eg"> <p><strong><?php _e("primitive capabilities", MASTERPRESS_DOMAIN) ?>:</strong> <span class="tt">edit_<span class="fill { src: '#name' }">?</span>s, edit_others_<span class="fill { src: '#name' }">?</span>s, publish_<span class="fill { src: '#name' }">?</span>s, read_private_<span class="fill { src: '#name' }">?</span>s</span></p> <p><strong><?php _e("meta capabilities", MASTERPRESS_DOMAIN) ?>:</strong> <span class="tt">edit_<span class="fill { src: '#name' }">?</span>, read_<span class="fill { src: '#name' }">?</span>, delete_<span class="fill { src: '#name' }">?</span>, read, delete_<span class="fill { src: '#name' }">?</span>s, delete_private_<span class="fill { src: '#name' }">?</span>s, delete_published_<span class="fill { src: '#name' }">?</span>s, delete_others_<span class="fill { src: '#name' }">?</span>s, edit_private_<span class="fill { src: '#name' }">?</span>s, edit_published_<span class="fill { src: '#name' }">?</span>s</span></p> </div> </div> <!-- /.fw --> <div id="fw_capability_type_custom" class="fw fwl"> <?php $custom_value = ""; $custom_checked = false; if ($model->capability_type != $model->name && $model->capability_type != "post" && $model->capability_type != "page") { $custom_checked = true; $custom_value = $model->capability_type; } ?> <input id="capability_type_custom" name="capability_type" value="custom" <?php echo WOOF_HTML::checked_attr( $custom_checked ) ?> type="radio" class="radio" /> <label id="label-capability_custom_value" for="capability_type_custom" class="radio"><?php _e("<em>Custom</em>, based on the partial key (singular)", MASTERPRESS_DOMAIN) ?>:</label> <input id="capability_type_custom_value" name="capability_type_custom_value" value="<?php echo $custom_value ?>" type="text" class="text mono" /> <div class="eg"> <p><strong><?php _e("primitive capabilities", MASTERPRESS_DOMAIN) ?>:</strong> <span class="tt">edit_<span class="custom-fill { src: '#capability_type_custom_value', format: 'pluralize' }">?</span>, edit_others_<span class="custom-fill { src: '#capability_type_custom_value', format: 'pluralize' }">?</span>, publish_<span class="custom-fill { src: '#capability_type_custom_value', format: 'pluralize' }">?</span>, read_private_<span class="custom-fill { src: '#capability_type_custom_value', format: 'pluralize' }">?</span></span></p> <p><strong><?php _e("meta capabilities", MASTERPRESS_DOMAIN) ?>:</strong> <span class="tt">edit_<span class="custom-fill { src: '#capability_type_custom_value' }">?</span>, read_<span class="custom-fill { src: '#capability_type_custom_value' }">?</span>, delete_<span class="custom-fill { src: '#capability_type_custom_value' }">?</span>, read, delete_<span class="custom-fill { src: '#capability_type_custom_value', format: 'pluralize' }">?</span>, delete_private_<span class="custom-fill { src: '#capability_type_custom_value', format: 'pluralize' }">?</span>, delete_published_<span class="custom-fill { src: '#capability_type_custom_value', format: 'pluralize' }">?</span>, delete_others_<span class="custom-fill { src: '#capability_type_custom_value', format: 'pluralize' }">?</span>, edit_private_<span class="custom-fill { src: '#capability_type_custom_value', format: 'pluralize' }">?</span>, edit_published_<span class="custom-fill { src: '#capability_type_custom_value', format: 'pluralize' }">?</span></span></p> </div> </div> <!-- /.fw --> <div class="fw"> <input id="map_meta_cap" name="map_meta_cap" type="checkbox" value="true" <?php echo WOOF_HTML::checked_attr( $model->map_meta_cap ) ?> class="checkbox" /> <label for="map_meta_cap" class="checkbox"><?php printf( __('Map Meta Capabilities? - <span>whether to use the internal default meta capability handling. See the section on the <span class="tt">capabilities</span> argument %s</span>', MASTERPRESS_DOMAIN ), '<a href="http://codex.wordpress.org/Function_Reference/register_post_type#Arguments" target="_blank">'.__(" here", MASTERPRESS_DOMAIN).'</a>') ?></label> </div> </div> </div> </div> <!-- /.fs --> <?php endif; // !$model->_builtin ?> <?php } // end form
protected function export_rep($export) { global $wf; // create the associative array representation $rep = array( "created" => date("c"), "masterpress_version" => MasterPress::$version, "icons" => array() ); $types = array(); if (isset($export["post_types"])) { $rep["post_types"] = array(); foreach (array_keys($export["post_types"]) as $post_type_name) { $post_type = MPM_PostType::find_by_name($post_type_name); $r = $post_type->rep(); $rep["post_types"][] = $r; self::add_icon($rep["icons"], $r, "menu_icon"); if (isset($r["field_sets"])) { foreach ($r["field_sets"] as $set) { self::add_icon($rep["icons"], $set); foreach ($set["fields"] as $field) { self::add_icon($rep["icons"], $field); $types[$field["type"]] = true; } } } } } if (isset($export["taxonomies"])) { $rep["taxonomies"] = array(); foreach (array_keys($export["taxonomies"]) as $tax_name) { $tax = MPM_Taxonomy::find_by_name($tax_name); $r = $tax->rep(); $rep["taxonomies"][] = $r; self::add_icon($rep["icons"], $r, "title_icon"); if (isset($r["field_sets"])) { foreach ($r["field_sets"] as $set) { self::add_icon($rep["icons"], $set); foreach ($set["fields"] as $field) { self::add_icon($rep["icons"], $field); $types[$field["type"]] = true; } } } } } if (isset($export["shared_field_sets"])) { $rep["shared_field_sets"] = array(); foreach (array_keys($export["shared_field_sets"]) as $id) { $set = MPM_FieldSet::find_by_id($id); $r = $set->rep(); self::add_icon($rep["icons"], $r); $rep["shared_field_sets"][] = $r; if (isset($r["fields"])) { foreach ($r["fields"] as $field) { self::add_icon($rep["icons"], $field); $types[$field["type"]] = true; } } } } if (isset($export["site_field_sets"])) { $rep["site_field_sets"] = array(); foreach (array_keys($export["site_field_sets"]) as $id) { $set = MPM_FieldSet::find_by_id($id); $r = $set->rep(); $rep["site_field_sets"][] = $r; self::add_icon($rep["icons"], $r); if (isset($r["fields"])) { foreach ($r["fields"] as $field) { self::add_icon($rep["icons"], $field); $types[$field["type"]] = true; } } } } if (isset($export["templates"])) { $rep["templates"] = array(); foreach (array_keys($export["templates"]) as $template) { $template = MPM_Template::find_by_id($template); $r = $template->rep(); $rep["templates"][] = $r; if (isset($r["field_sets"])) { foreach ($r["field_sets"] as $set) { self::add_icon($rep["icons"], $set); foreach ($set["fields"] as $field) { self::add_icon($rep["icons"], $field); $types[$field["type"]] = true; } } } } } if (isset($export["roles"])) { $rep["roles"] = array(); foreach (array_keys($export["roles"]) as $role) { $wr = $wf->role($role); $rr = array("id" => $role, "name" => $wr->name, "capabilities" => $wr->capabilities, "field_sets" => array()); foreach (MPM_RoleFieldSet::find_by_role($role, "id ASC") as $set) { $r = $set->rep(); self::add_icon($rep["icons"], $r); if (isset($r["fields"])) { foreach ($r["fields"] as $field) { $types[$field["type"]] = true; self::add_icon($rep["icons"], $field); } } $rr["field_sets"][] = $r; } $rep["roles"][] = $rr; } } $rep["field_types"] = array_keys($types); return $rep; }
public function submit() { global $wpdb; $action = MasterPress::$action; if ($action == "create" || $action == "edit") { $builtin = $_POST["_builtin"] == "true"; $external = $_POST["_external"] == "true"; if ($builtin) { $post_type = MPM_PostType::find_by_name($_POST["name"]); $post_type->supports = implode(",", $_POST["supports"]); $post_type->disabled = isset($_POST["disabled"]); $post_type->visibility = $this->get_visibility_val("sites"); $post_type->columns = $_POST["columns"]; $post_type->labels = $_POST["labels"]; $post_type->menu_icon = self::handle_icon("menu_icon", "menu_icon_select"); if ($_POST["name"] == "page" && $post_type->menu_icon == "") { $post_type->menu_icon = "menu-icon-pages.png"; // restore default icon } if ($_POST["name"] == "post" && $post_type->menu_icon == "") { $post_type->menu_icon = "menu-icon-posts.png"; // restore default icon } if ($action == "edit") { $post_type->update(MasterPress::$id); } } else if ($external) { $post_type = MPM_PostType::find_by_name($_POST["name"]); $post_type->columns = $_POST["columns"]; $post_type->menu_icon = self::handle_icon("menu_icon", "menu_icon_select"); if ($action == "edit") { $post_type->update(MasterPress::$id); } } else { $post_type = new MPM_PostType(true); // consume the post data $post_type->name = $_POST["name"]; $post_type->plural_name = $_POST["plural_name"]; $post_type->disabled = isset($_POST["disabled"]); $post_type->labels = $_POST["labels"]; $post_type->description = $_POST["description"]; $post_type->publicly_queryable = isset($_POST["publicly_queryable"]); $post_type->exclude_from_search = isset($_POST["exclude_from_search"]); $post_type->show_ui = isset($_POST["show_ui"]); $post_type->show_in_menu = isset($_POST["show_in_menu"]); $post_type->hierarchical = isset($_POST["hierarchical"]); $post_type->menu_position = $_POST["menu_position"]; $post_type->menu_sub_position = $_POST["menu_sub_position"]; $post_type->menu_icon = self::handle_icon("menu_icon", "menu_icon_select"); $post_type->manage_sort_order = $_POST["manage_sort_order"]; $cap_type = $_POST["capability_type"]; if ($cap_type == "specific") { $post_type->capability_type = $_POST["name"]; } else if ($cap_type == "custom" && trim($_POST["capability_type_custom_value"]) != "") { $post_type->capability_type = $_POST["capability_type_custom_value"]; } else { $post_type->capability_type = $cap_type; } $post_type->capabilities = MPC::post_val("capabilities"); $post_type->map_meta_cap = isset($_POST["map_meta_cap"]); $post_type->hierarchical = isset($_POST["hierarchical"]); $post_type->supports = MPC::post_implode_val("supports"); $post_type->permalink_epmask = $_POST["permalink_epmask"]; $post_type->has_archive = isset($_POST["has_archive"]); $post_type->visibility = $this->get_visibility_val("sites,post_types"); $post_type->show_in_menu = isset($_POST["show_in_menu"]); $rewrite = array( "slug" => $_POST["rewrite"]["slug"], "with_front" => isset($_POST["rewrite"]["with_front"]), "feeds" => isset($_POST["rewrite"]["feeds"]) ); $post_type->rewrite = $rewrite; $post_type->query_var = $_POST["query_var"]; $post_type->can_export = isset($_POST["can_export"]); $post_type->show_in_nav_menus = isset($_POST["show_in_nav_menus"]); $post_type->_builtin = false; $post_type->_external = $_POST["_external"] == "true"; $post_type->columns = $_POST["columns"]; if ($action == "create") { $post_type->insert(); } else if ($action == "edit") { $post_type->update(MasterPress::$id); if ($post_type->is_valid()) { global $meow_provider; $meow_provider->migrate_post_type($post_type, $_POST["name_original"]); } } } if ($post_type->is_valid() && !$external) { // auto-generate a sprite icon MPU::create_icon_sprite($post_type->menu_icon, "", true); // attach any taxonomies and shared field sets $post_type->unlink_taxonomies(); if (MPC::post_val("taxonomies") != "" && count(MPC::post_val("taxonomies"))) { $post_type->link_taxonomies( MPM_Taxonomy::find_by_name_in( $_POST["taxonomies"] ) ); } // update the menu positions of other post types $omp = MPC::post_val("other_menu_position"); $omsp = MPC::post_val("other_menu_sub_position"); if (isset($omp) && is_array($omp)) { foreach ($omp as $name => $position) { $wpdb->update(MPM::table("post-types"), array( "menu_position" => $position, "menu_sub_position" => $omsp[$name] ), array( "name" => $name ), "%d", "%s" ); } } MasterPress::flag_for_rewrite(); } return $post_type; } else if ($action == "delete") { $pt = MPM_PostType::find_by_id(MasterPress::$id); $pt->delete( array( "posts" => $_POST["posts"], "posts_reassign_type" => $_POST["posts_reassign_type"], "field_sets" => $_POST["field_sets"], "field_data" => $_POST["field_data"] ) ); MasterPress::flag_for_rewrite(); return true; } else if ($action == "create-field-set" || $action == "edit-field-set") { $field_set = new MPM_FieldSet(); // consume the post data $field_set->name = $_POST["name"]; $field_set->singular_name = $_POST["singular_name"]; $field_set->disabled = isset($_POST["disabled"]); $field_set->labels = $_POST["labels"]; $field_set->allow_multiple = isset($_POST["allow_multiple"]); $field_set->visibility = $_POST["visibility"]; $field_set->capabilities = self::handle_capabilities(); $field_set->type = "p"; // p = shared $field_set->position = $_POST["position"]; $field_set->icon = self::handle_icon("icon", "icon_select"); $field_set->expanded = isset($_POST["expanded"]); $field_set->sidebar = isset($_POST["sidebar"]); $field_set->versions = $_POST["versions"]; $field_set->visibility = $this->get_visibility_val("sites,templates,post_types"); $post_type = MPM_PostType::find_by_id(MasterPress::$parent); // inform the validation of the post type $field_set->meta("post_type", $post_type); if (MPC::is_create()) { $field_set->insert(); } else if (MPC::is_edit()) { $field_set->update(MasterPress::$id); } if ($field_set->is_valid()) { if (MPC::is_edit()) { global $meow_provider; $meow_provider->migrate_field_set_meta($field_set, $_POST["name_original"]); } // update other menu positions if (isset($_POST["other_position"])) { $op = $_POST["other_position"]; if (isset($op) && is_array($op)) { foreach ($op as $id => $position) { $wpdb->update(MPM::table("field-sets"), array( "position" => $position ), array( "id" => $id ), "%d", "%d" ); } } } } return $field_set; } else if ($action == "delete-field-set") { $fg = MPM_FieldSet::find_by_id(MasterPress::$id); if ($fg) { $field_data_action = $_POST["field_data"]; if ($field_data_action == "delete") { $fg->delete_meta(); } } $fg->delete(); return true; } else if ($action == "delete-field") { $f = MPM_Field::find_by_id(MasterPress::$id); if ($f) { $field_data_action = $_POST["field_data"]; if ($field_data_action == "delete") { $f->delete_meta(); } } $f->delete(); return true; } else if ($action == "create-field" || $action == "edit-field") { // FIELD OPERATIONS (NOT FIELD GROUPS!) $field = new MPM_Field(); // consume the post data $field->field_set_id = $_POST["parent"]; $field->name = $_POST["name"]; $field->disabled = isset($_POST["disabled"]); $field->summary_options = $_POST["summary_options"]; $field->required = isset($_POST["required"]); $field->labels = $_POST["labels"]; $field->type = $_POST["type"]; $field->icon = self::handle_icon("icon", "icon_select"); if (isset($_POST["type_options"])) { $field->type_options = $_POST["type_options"]; } $field->position = $_POST["position"]; $field->visibility = $this->get_visibility_val("sites,templates,post_types"); $field->capabilities = self::handle_capabilities(); $fg = MPM_FieldSet::find_by_id($_POST["parent"]); if (MPC::is_create()) { $field->insert(); } else if (MPC::is_edit()) { $field->update(MasterPress::$id); } if ($field->is_valid()) { // update other menu positions if (MPC::is_edit()) { global $meow_provider; $meow_provider->migrate_field_meta($field, $_POST["name_original"]); } if (isset($_POST["other_position"])) { $op = $_POST["other_position"]; if (isset($op) && is_array($op)) { foreach ($op as $id => $position) { $wpdb->update(MPM::table("fields"), array( "position" => $position ), array( "id" => $id ), "%d", "%d" ); } } } } return $field; } return false; }
public function form() { $model = MasterPress::$model; $info = MasterPress::$view; $parent = $info->parent; global $wf; $prefix = ""; $default_key = "edit_posts"; $keys = array(); ?> <div class="mpv-field-sets-form"> <?php if (isset(MasterPress::$parent)) : ?> <div class="title-info-panel"> <div class="title-info-panel-lt"> <?php if (get_class($parent) == "MPM_PostType") : ?> <?php $post_type = $parent; $prefix = $post_type->name."_"; $default_key = "edit_".$post_type->capability_type."s"; $keys = array($default_key); ?> <h3 class="post-type"><i class="mp-icon mp-icon-post-type mp-icon-post-type-<?php echo $post_type->name ?>"></i><span class="label"><?php _e("Post Type:", MASTERPRESS_DOMAIN) ?></span><span class="value"> <?php echo $parent->labels["name"] ?></span></h3> <input id="post_type_name" type="hidden" value="<?php echo $parent->name ?>" /> <?php elseif ($model->template) : ?> <?php $file = MasterPress::$parent; $page_templates = array_flip(get_page_templates()); $template_name = $page_templates[$file]; ?> <input id="templates" name="templates" type="hidden" value="<?php echo $file ?>" /> <h3><i class="template"></i><span class="label"><?php _e("Template:", MASTERPRESS_DOMAIN) ?></span><span class="value"> <?php echo $template_name ?></span></h3> <?php elseif ($model->role) : ?> <?php $role_name = MasterPress::$parent; $prefix = $role_name."_"; ?> <input id="roles" name="roles" type="hidden" value="<?php echo $role_name ?>" /> <h3><i class="user-role"></i><span class="label"><?php _e("User Role:", MASTERPRESS_DOMAIN) ?></span><span class="value"> <?php echo $role_name ?></span></h3> <?php elseif ($model->taxonomy) : ?> <?php $taxonomy_id = MasterPress::$parent; $tax = MPM_Taxonomy::find_by_id($taxonomy_id); $prefix = $tax->name."_"; $default_key = $tax->capabilities["edit_terms"]; $keys = array( $tax->capabilities["manage_terms"], $tax->capabilities["edit_terms"], $tax->capabilities["assign_terms"] ); ?> <input id="taxonomies" name="taxonomies" type="hidden" value="<?php echo $tax->name ?>" /> <h3><i class="mp-icon mp-icon-taxonomy mp-icon-taxonomy-<?php echo $tax->name ?>"></i><span class="label"><?php _e("Taxonomy:", MASTERPRESS_DOMAIN) ?></span><span class="value"> <?php echo $tax->display_label() ?></span></h3> <?php endif; ?> </div> </div> <?php endif; ?> <?php MPV::messages(); ?> <div class="mpv-field-sets-form"> <div class="f"> <label for="name" class="icon"><i class="script-php"></i><?php _e("Name", MASTERPRESS_DOMAIN)?>:</label> <div class="fw"> <input id="name_original" name="name_original" type="hidden" class="text mono key" maxlength="20" value="<?php echo $model->name ?>" /> <input id="name_last" name="name_last" type="hidden" class="text mono key" maxlength="20" value="<?php echo $model->name ?>" /> <input id="name" name="name" type="text" class="text mono key" maxlength="255" value="<?php echo $model->name ?>" /><em class="required">(required)</em> <p> <?php _e("This is a unique identifier for the field set used in the MasterPress API. Since it can be used as a PHP variable name, it is restricted to being a lowercase string with words separated by underscores.", MASTERPRESS_DOMAIN); ?> </p> </div> </div> <!-- /.f --> <div id="f-singular_name" class="f"> <label for="singular_name" class="icon" maxlength="255"><i class="script-php"></i><?php _e("<strong>Singular</strong> Name", MASTERPRESS_DOMAIN)?>:</label> <div class="fw"> <input id="singular_name" name="singular_name" type="text" value="<?php echo $model->singular_name ?>" class="text mono key" /><em class="required">(required)</em> <p> <?php _e("The singular form of <em>Name</em>, following the same naming conventions", MASTERPRESS_DOMAIN); ?> </p> </div> </div> <!-- /.f --> <div class="f"> <label for="allow_multiple" class="icon"><i class="add-remove"></i><?php _e("Allow Multiple Items", MASTERPRESS_DOMAIN) ?>?</label> <div class="fw"> <input id="allow_multiple" name="allow_multiple" type="checkbox" value="true" <?php echo WOOF_HTML::checked_attr( $model->allow_multiple ) ?> class="checkbox" /> <p id="name_warning" class="warning"> <i class="error-circle"></i> <?php _e("For multiple-item field sets, <em>Name</em> should be specified in <strong>plural form</strong>. Please verify that this is correct above.", MASTERPRESS_DOMAIN) ?> </p> </div> </div> <!-- /.f --> <div class="f clearfix"> <label id="label-icon" for="icon" class="icon"><i class="image-small"></i><?php _e("Title Icon (16 x 16)", MASTERPRESS_DOMAIN) ?>:</label> <div class="fw"> <div id="icon-file-uploader" class="icon-uploader file-uploader { ids: { drop: 'icon_drop_area' }, input: '#icon', inputName: 'icon_ul', base_url: '<?php echo MASTERPRESS_GLOBAL_CONTENT_URL ?>', params: { dir: 'menu-icons/' }, limit: 1, lang: { buttonChoose: '<?php _e("Choose from Computer…", MASTERPRESS_DOMAIN) ?>', buttonReplace: '<?php _e("Replace file…", MASTERPRESS_DOMAIN) ?>' } }"> <div id="icon_drop_area" class="drop-area"><?php _e("Drop file here to upload", MASTERPRESS_DOMAIN) ?></div> <?php $file_name = $model->icon; $file_class = ""; $clear_class = ""; $preview_class = ""; if ($file_name == "") { $file_name = __("( None )", MASTERPRESS_DOMAIN); $file_class = "name-none"; $preview_class = "preview-none"; $style = ""; $clear_class = "hidden"; } else { $style = ' style="background-image: url('.MPU::field_set_icon_url($model->icon).')" '; } ?> <div class="file"> <span class="preview <?php echo $preview_class ?>" <?php echo $style ?>></span><span data-none="<?php echo __("( None )", MASTERPRESS_DOMAIN) ?>" class="name <?php echo $file_class ?>"><?php echo $file_name ?></span> <button type="button" class="<?php echo $clear_class ?> clear ir" title="<?php _e("Clear", MASTERPRESS_DOMAIN) ?>">Clear</button> </div> <input id="icon" name="icon" value="<?php echo $model->icon ?>" type="hidden" /> <div class="uploader-ui"></div> </div> <!-- /.file-uploader --> <?php MPV::icon_select($model->icon, "menu-icon-select", "icon_select", "icon-file-uploader"); ?> </div> </div> <!-- /.f --> <div class="f"> <label for="expanded" class="icon"><i class="expand"></i><?php _e("Expanded", MASTERPRESS_DOMAIN) ?>?</label> <div class="fw"> <input id="expanded" name="expanded" type="checkbox" value="true" <?php echo WOOF_HTML::checked_attr( $model->expanded ) ?> class="checkbox" /> <p class="checkbox-alt-label { for_el: '#expanded' }"> <?php _e("this field set will be expanded (not summarised) by default in the edit post screen, but can still be collapsed. It is recommended that this is <strong>unchecked if <em>Allow Multiple Items</em> is checked.</strong>", MASTERPRESS_DOMAIN); ?> </p> </div> </div> <!-- /.f --> <?php if (!$model->role) : ?> <div class="f"> <label for="sidebar" class="icon"><i class="sidebar"></i><?php _e("Show in Sidebar", MASTERPRESS_DOMAIN) ?>?</label> <div class="fw"> <input id="sidebar" name="sidebar" type="checkbox" value="true" <?php echo WOOF_HTML::checked_attr( $model->sidebar ) ?> class="checkbox" /> <p class="checkbox-alt-label { for_el: '#sidebar' }"> <?php _e("this field set will be positioned in the sidebar of the edit post screen by default (but may still be dragged across to the main content area by users)", MASTERPRESS_DOMAIN); ?> </p> </div> </div> <!-- /.f --> <?php endif; ?> <div class="f"> <label for="disabled" class="icon"><i class="slash"></i><?php _e("Disabled", MASTERPRESS_DOMAIN) ?>?</label> <div class="fw"> <input id="disabled" name="disabled" type="checkbox" value="true" <?php echo WOOF_HTML::checked_attr( $model->disabled ) ?> class="checkbox" /> <p class="checkbox-alt-label { for_el: '#disabled' }"> <?php _e("disabling a field set will keep its definition in the database but it will not be available in any post editing screens in WordPress, which may be <strong>preferable to deleting it</strong> completely.", MASTERPRESS_DOMAIN); ?> </p> </div> </div> <!-- /.f --> <div class="f"> <label for="versions_store" class="icon"><i class="metabox-versions size-20"></i><?php _e("Version Limit", MASTERPRESS_DOMAIN) ?></label> <div class="fw"> <input id="versions" name="versions" type="text" value="<?php echo $model->versions ?>" class="text" /> <p class="note"> <?php _e("Set a <b>maximum number of versions</b> of content based on this field set to retain.<br />Versions can be used to restore previous revisions of content at a later time.<br />Set this value to 0 if you do not wish to retain previous versions.", MASTERPRESS_DOMAIN); ?> </p> </div> </div> <!-- /.f --> <div class="fs fs-labels"> <div class="fst"> <div class="fstb"> <h3><i class="label-string"></i><strong><?php _e("Labels", MASTERPRESS_DOMAIN) ?></strong> - <?php _e("displayed in the <em>Edit Post</em> and MasterPress admin screens", MASTERPRESS_DOMAIN) ?></h3> <div class="buttons"> <button id="autofill-labels" class="button button-autofill" type="button"><?php _e('<strong>Auto-Fill</strong> Labels', MASTERPRESS_DOMAIN) ?></button> </div> </div> </div> <div class="fsc fscs"> <div class="fscb"> <div class="scroll"> <div class="f"> <label for="label_name"><?php _e("Set Label", MASTERPRESS_DOMAIN) ?>:</label> <div class="fw"> <input id="label_name" name="labels[name]" value="<?php echo $model->labels["name"] ?>" type="text" class="text { tmpl: '{{plural_name}}' }" /> <em class="recommended">(recommended)</em> </div> </div> <!-- /.f --> <div class="f"> <label for="label_description"><?php _e("Description", MASTERPRESS_DOMAIN)?>:</label> <div class="fw"> <textarea id="label_description" name="labels[description]"><?php echo $model->label("description") ?></textarea> <p> <?php _e("Displayed on the Create / Edit Post screen in the info area above the fields in this set.", MASTERPRESS_DOMAIN); ?> </p> </div> </div> <!-- /.f --> <?php if ($model->shared) : ?> <div class="f"> <label for="label_description_user"><?php _e("Description (User)", MASTERPRESS_DOMAIN)?>:</label> <div class="fw"> <textarea id="label_description_user" name="labels[description_user]"><?php echo $model->label("description_user") ?></textarea> <p> <?php _e("Displayed on the Create / Edit User and Profile screen in the info area above the fields in this set.<br />If not specified, the standard <em>Description</em> label will be used (if available)", MASTERPRESS_DOMAIN); ?> </p> </div> </div> <!-- /.f --> <div class="f"> <label for="label_description_term"><?php _e("Description (Term)", MASTERPRESS_DOMAIN)?>:</label> <div class="fw"> <textarea id="label_description_term" name="labels[description_term]"><?php echo $model->label("description_term") ?></textarea> <p> <?php _e("Displayed on the Edit (Taxonomy) Term in the info area above the fields in this set.<br />If not specified, the standard <em>Description</em> label will be used (if available)", MASTERPRESS_DOMAIN); ?> </p> </div> </div> <!-- /.f --> <?php endif; ?> <div class="f f-allow-multiple"> <label for="label_singular_name"><?php _e("<em>Singular</em> Name", MASTERPRESS_DOMAIN) ?>:</label> <div class="fw"> <input id="label_singular_name" name="labels[singular_name]" value="<?php echo $model->label("singular_name") ?>" type="text" class="text { tmpl: '{{singular_name}}' }" /> <em class="recommended">(recommended)</em> </div> </div> <!-- /.f --> <div class="f f-allow-multiple"> <label for="label_add"><?php _e("Add", MASTERPRESS_DOMAIN) ?>:</label> <div class="fw"> <input id="label_add" name="labels[add]" value="<?php echo $model->label("add") ?>" type="text" class="text { tmpl: '<?php _e("Add {{singular_name}}", MASTERPRESS_DOMAIN) ?>' }" /> </div> </div> <!-- /.f --> <div class="f f-allow-multiple"> <label for="label_add_another"><?php _e("Add Another", MASTERPRESS_DOMAIN) ?>:</label> <div class="fw"> <input id="label_add_another" name="labels[add_another]" value="<?php echo $model->label("add_another") ?>" type="text" class="text { tmpl: '<?php _e("Add Another {{singular_name}}", MASTERPRESS_DOMAIN) ?>' }" /> </div> </div> <!-- /.f --> <div class="f f-allow-multiple"> <label for="label_remove"><?php _e("Remove", MASTERPRESS_DOMAIN) ?>:</label> <div class="fw"> <input id="label_remove" name="labels[remove]" value="<?php echo $model->label("remove") ?>" type="text" class="text { tmpl: '<?php _e("Remove {{singular_name}}", MASTERPRESS_DOMAIN) ?>' }" /> </div> </div> <!-- /.f --> <div class="f f-allow-multiple"> <label for="label_click_to_add"><?php _e("Click to Add", MASTERPRESS_DOMAIN) ?>:</label> <div class="fw"> <input id="label_click_to_add" name="labels[click_to_add]" value="<?php echo $model->label("click_to_add") ?>" type="text" class="text { tmpl: '<?php _e("Click to add {{singular_name}}", MASTERPRESS_DOMAIN) ?>' }" /> </div> </div> <!-- /.f --> <div class="f f-allow-multiple"> <label for="label_one_item"><?php _e("1 Item", MASTERPRESS_DOMAIN) ?>:</label> <div class="fw"> <input id="label_one_item" name="labels[one_item]" value="<?php echo $model->label("one_item") ?>" type="text" class="text { tmpl: '<?php _e("1 {{singular_name}}", MASTERPRESS_DOMAIN) ?>' }" /> </div> </div> <!-- /.f --> <div class="f f-allow-multiple"> <label for="label_n_items"><?php _e("n Items", MASTERPRESS_DOMAIN) ?>:</label> <div class="fw"> <input id="label_n_items" name="labels[n_items]" value="<?php echo $model->label("n_items") ?>" type="text" class="text { tmpl: '<?php _e("%d {{plural_name}}", MASTERPRESS_DOMAIN) ?>' }" /> </div> </div> <!-- /.f --> <div class="f f-allow-multiple"> <label for="label_no_items"><?php _e("No Items", MASTERPRESS_DOMAIN) ?>:</label> <div class="fw"> <input id="label_no_items" name="labels[no_items]" value="<?php echo $model->label("no_items") ?>" type="text" class="text { tmpl: '<?php _e("No {{plural_name}}", MASTERPRESS_DOMAIN) ?>' }" /> </div> </div> <!-- /.f --> </div> </div> </div> </div> <!-- /.fs --> <div class="fs fs-capability-keys clearfix"> <div class="fst"> <div class="fstb"> <h3><i class="key"></i><strong><?php _e("Capabilities", MASTERPRESS_DOMAIN) ?></strong> - <?php _e('the keys used to control access to this field set', MASTERPRESS_DOMAIN) ?></h3> </div> </div> <div class="fsc"> <div class="fscb clearfix"> <div class="f f-capabilities f-capabilities-editable clearfix"> <label for="label-capabilities-editable"><?php _e("Editable", MASTERPRESS_DOMAIN) ?>:</label> <div class="fw"> <?php $val = $model->capability("editable", false); $caps = array_unique(array_merge($keys, array("edit_posts", "edit_pages"))); $caps = array( __("-- None (Always Editable) --", MASTERPRESS_DOMAIN) => "" ) + $caps; if (MPC::is_edit()) { $caps[] = "edit_".$prefix.$model->name; } $custom_val = ""; if (!in_array($val, $caps)) { $custom_val = $val; } echo WOOF_HTML::select( array("id" => "capabilities-editable", "name" => "capabilities[editable]", "class" => "capabilities" ), $caps, $val ); ?> <label for="capabilities-editable-custom" class="capabilities-custom"><?php _e("OR custom value") ?></label> <input id="capabilities-editable-custom" name="capabilities_custom[editable]" value="<?php echo $custom_val ?>" type="text" class="text mono capabilities-custom" /> <p class="note"> <?php _e("All fields in this set will be read-only for users without this capability.<br />Individual fields may override this with their own capabilities.", MASTERPRESS_DOMAIN) ?> </p> </div> </div> <!-- /.f --> <div class="f f-capabilities f-capabilities-visible clearfix"> <label for="label-capabilities-visible"><?php _e("Visible", MASTERPRESS_DOMAIN) ?>:</label> <div class="fw"> <?php $val = $model->capability("visible", false); $caps = array_unique(array_merge($keys, array("edit_posts", "edit_pages"))); $caps = array( __("-- None (Always Visible) --", MASTERPRESS_DOMAIN) => "" ) + $caps; if (MPC::is_edit()) { $caps[] = "view_".$prefix.$model->name; } $custom_val = ""; if (!in_array($val, $caps)) { $custom_val = $val; } echo WOOF_HTML::select( array("id" => "capabilities-visible", "name" => "capabilities[visible]", "class" => "capabilities" ), $caps, $val ); ?> <label for="capabilities-visible-custom" class="capabilities-custom"><?php _e("OR custom value") ?></label> <input id="capabilities-visible-custom" name="capabilities_custom[visible]" value="<?php echo $custom_val ?>" type="text" class="text mono capabilities-custom" /> <p class="note"> <?php _e("This field set will be invisible for users without this capability", MASTERPRESS_DOMAIN) ?> </p> </div> </div> <!-- /.f --> </div> </div> </div> <!-- /.fs --> <?php $args = array(); $args["supports"] = array(); if (is_multisite() && MASTERPRESS_MULTISITE_SHARING) { $args["supports"] = array("multisite"); } if ($model->is_shared()) { $args["supports"][] = "post_types"; } if (!isset($info->is_template_set) && $model->is_shared() ) { $args["supports"][] = "templates"; } if (!isset($info->is_role_set) && $model->is_shared() ) { $args["supports"][] = "roles"; } if (!isset($info->is_taxonomy_set) && $model->is_shared() ) { $args["supports"][] = "taxonomies"; } $args["labels"] = array( "title" => __("control the visibility of this field set within WordPress", MASTERPRESS_DOMAIN), "title_multisite" => __("specify the sites in the multisite network that this field set is available in", MASTERPRESS_DOMAIN), "title_post_types" => __("specify the post types that this field set is available in", MASTERPRESS_DOMAIN), "title_templates" => __("specify the templates that this field set is available in", MASTERPRESS_DOMAIN), "title_roles" => __("specify the roles that users must have for this field set to be available in their profile edit screen", MASTERPRESS_DOMAIN), "multisite_all" => __( "All Sites" ), "post_types_all" => __( "All Post Types" ), "templates_all" => __( "All Templates" ) ); $args["defaults"] = array( "post_types" => "all" ); if ($model->type == "p") { $post_type = $parent; $templates = $post_type->templates(); if (count($templates)) { $args["supports"][] = "templates"; $args["templates"] = array(); $all = array_flip(get_page_templates()); foreach ($templates as $t) { $name = $all[$t->id]; $args["templates"][$name] = $t->id; } } } if (isset($parent) && is_multisite()) { $site_options = array(); foreach ($parent->sites() as $site) { $site_options[$site->full_path()] = $site->id(); } $args["sites"] = $site_options; }; MPV::fs_visibility( $model, $args ); ?> <?php if ($info->is_template_set) : ?> <input id="visibility-templates" name="visibility[templates]" type="hidden" value="<?php echo $file ?>" /> <?php endif; ?> <?php if ($info->is_role_set) : ?> <input id="visibility-roles" name="visibility[roles]" type="hidden" value="<?php echo $role_name ?>" /> <?php endif; ?> <?php if ($info->is_taxonomy_set) : ?> <input id="visibility-taxonomies" name="visibility[taxonomies]" type="hidden" value="<?php echo $tax->name ?>" /> <?php endif; ?> <?php if ($model->is_post_type() && isset($parent)) : ?> <input id="visibility-post-types" name="visibility[post_types]" type="hidden" value="<?php echo $parent->name ?>" /> <?php endif; ?> <div id="f-position" class="f clearfix"> <label for="position" class="icon"><i class="sort"></i><?php _e("Set Position", MASTERPRESS_DOMAIN)?>:</label> <div class="fw"> <div class="sortable-list sortable-list-fields"> <span class="arrow"></span> <?php // build a field list $field_sets = array(); if ($model->shared) { $field_sets = MPM_SharedFieldSet::find( array( "orderby" => "position ASC" ) ); } else if ($model->template) { $field_sets = MPM_TemplateFieldSet::find_by_template( MasterPress::$parent ); } else if ($model->role) { $field_sets = MPM_RoleFieldSet::find_by_role( MasterPress::$parent ); } else if ($model->taxonomy) { $field_sets = MPM_TaxonomyFieldSet::find_by_taxonomy( $tax ); } else if ($model->site) { $field_sets = MPM_SiteFieldSet::find( array( "orderby" => "position ASC" ) ); } else { $sql = "SELECT * FROM ".MPU::table("field-sets")." WHERE ( type = 'p' ) AND ".MPM::visibility_rlike("post_types", $parent->name)." ORDER BY position"; $field_sets = MPM::get_models("field-set", $sql); } $sort_field_sets = array(); // now build a representable list of field_sets $icon = $model->shared ? MPU::img_url("icon-shared-field-set.png") : MPU::img_url("icon-field-set-small.png"); $icon_class = $model->shared ? "metabox-share" : "metabox"; foreach ($field_sets as $field_set) { $position = $field_set->position; if (isset($_POST["other_position"]) && $_POST["other_position"][$field_set->id]) { $position = $_POST["other_position"][$field_set->id]; } $sort_field_sets[] = array( "position" => $position, "disabled" => $field_set->disabled, "current" => $field_set->id == $model->id, "label" => $field_set->display_label(), "icon_class" => $icon_class, "icon" => $icon, "id" => $field_set->id ); } if (MPC::is_create()) { $label = $model->display_label(); if (!$label || $label == "") { $label = "?"; } $sort_field_sets[] = array( "position" => $model->position, "disabled" => $model->disabled, "current" => true, "label" => $model->display_label(), "icon" => $icon, "icon_class" => $icon_class ); } $count = 0; ?> <ul> <?php foreach ($sort_field_sets as $f) : $count++; $first = $count == 1 ? "first " : ""; $current = $f["current"] ? 'current ' : ''; ?> <?php $disabled = $f["disabled"] ? 'disabled' : ''; $disabled_title = $f["disabled"] ? __("This field set is disabled", MASTERPRESS_DOMAIN) : ''; ?> <li class="<?php echo $first.$current ?> <?php echo $disabled ?>" title="<?php echo $disabled_title ?>"> <i class="<?php echo $icon_class ?>"></i> <?php if ($f["current"]) : ?> <span class="inline fill { src: '#label_name,#label_singular_name'}"><?php echo $f["label"] ?></span> <input id="position" name="position" value="<?php echo $f["position"] ?>" type="hidden" class="text" /> <?php else: ?> <span class="inline"><?php echo $f["label"] ?></span> <input id="other_position" name="other_position[<?php echo $f["id"] ?>]" value="<?php echo $f["position"] ?>" type="hidden" /> <?php endif; ?> </li> <?php endforeach; ?> </ul> </div> <!-- /.sortable-list --> <p> <?php _e("Drag set to the desired <em>default</em> position in the WordPress <em>Create / Edit Post</em> screen.<br />Note: Field sets are displayed in a standard WordPress UI panel (metabox), which can be dragged around by the user to also influence the order.", MASTERPRESS_DOMAIN) ?> </p> </div> </div> <!-- /.f --> </div> <!-- /.mpv-field-sets-form --> <?php }
public static function install() { global $wpdb; require_once(ABSPATH . '/wp-admin/includes/upgrade.php'); if ( !empty($wpdb->charset) ) $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset"; if ( !empty($wpdb->collate) ) $charset_collate .= " COLLATE $wpdb->collate"; MPU::combine_type_styles(); MPU::combine_type_scripts(); // create database tables $table_name = MPU::table("post_types"); $sql = "CREATE TABLE $table_name ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(100), plural_name varchar(100), disabled tinyint(1), labels text, description text, publicly_queryable tinyint(1), exclude_from_search tinyint(1), show_ui tinyint(1), show_in_menu tinyint(1), menu_position tinyint, menu_sub_position tinyint, menu_icon text, menu_icon_2x text, manage_sort_order varchar(255) DEFAULT 'post_date|desc', capability_type varchar(100), capabilities text, map_meta_cap tinyint(1), hierarchical tinyint(1), supports text, columns text, permalink_epmask varchar(255), has_archive tinyint(1), rewrite text, query_var varchar(100), can_export tinyint(1), show_in_nav_menus tinyint(1), visibility text, _builtin tinyint(1), _external tinyint(1), PRIMARY KEY (name), KEY id (id) ) $charset_collate;"; dbDelta($sql); // create database tables $table_name = MPU::table("templates"); $sql = "CREATE TABLE $table_name ( id varchar(255), supports text, visibility text, PRIMARY KEY (id) ) $charset_collate;"; dbDelta($sql); $table_name = MPU::table("taxonomies"); $sql = "CREATE TABLE $table_name ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(100), plural_name varchar(100), object_type text, labels text, disabled tinyint(1), show_in_nav_menus tinyint(1), show_manage_filter tinyint(1), show_ui tinyint(1), show_tagcloud tinyint(1), hide_term_ui tinyint(1), hierarchical tinyint(1), rewrite text, query_var varchar(100), capabilities text, columns text, update_count_callback varchar(100), visibility text, title_icon text, title_icon_2x text, _builtin tinyint(1), _external tinyint(1), PRIMARY KEY (name), KEY id (id) ) $charset_collate;"; dbDelta($sql); // remove "another_field" if it exists $row = $wpdb->get_row("SHOW COLUMNS FROM `" . $table_name . "` LIKE '_another_field'"); if ($row) { $wpdb->query( "ALTER TABLE $table_name DROP COLUMN `_another_field`" ); } $table_name = MPU::table("fields"); $sql = "CREATE TABLE $table_name ( id int(11) NOT NULL AUTO_INCREMENT, field_set_id int(11) NOT NULL, name varchar(255) NOT NULL, labels text, disabled tinyint(1), summary_options text, required tinyint(1) NOT NULL DEFAULT 0, allow_multiple tinyint(1) NOT NULL DEFAULT 0, visibility text, icon text, type varchar(100) NOT NULL, type_options text, position int(11), capabilities text NULL, PRIMARY KEY (id) ) $charset_collate;"; dbDelta($sql); $table_name = MPU::table("field_sets"); $sql = "CREATE TABLE $table_name ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(255) NOT NULL, singular_name varchar(255) NOT NULL, disabled tinyint(1), position smallint, allow_multiple BOOLEAN NOT NULL DEFAULT 1, visibility text, icon text, labels text, expanded tinyint(1), sidebar tinyint(1), type varchar(20), versions int(11) NOT NULL DEFAULT 10, capabilities text NULL, PRIMARY KEY (id) ) $charset_collate;"; dbDelta($sql); // a site-specific custom table to store metadata for taxonomy terms $table_name = MPU::table("termmeta", "mp_", false); $sql = "CREATE TABLE $table_name ( tmeta_id int(11) NOT NULL AUTO_INCREMENT, term_id bigint(20) NOT NULL, taxonomy varchar(50) DEFAULT NULL, meta_key varchar(255) DEFAULT NULL, meta_value LONGTEXT, PRIMARY KEY (tmeta_id), KEY term_id (term_id), KEY meta_key (meta_key) ) $charset_collate;"; dbDelta($sql); // a site-specific custom table to store metadata for the site $table_name = MPU::table("sitemeta"); $sql = "CREATE TABLE $table_name ( smeta_id int(11) NOT NULL AUTO_INCREMENT, site_id int(11) NOT NULL, meta_key varchar(255) DEFAULT NULL, meta_value LONGTEXT, PRIMARY KEY (smeta_id), KEY meta_key (meta_key) ) $charset_collate;"; dbDelta($sql); $table_name = MPU::table("versions", "mp_", false); $sql = "CREATE TABLE $table_name ( version_id int(11) NOT NULL AUTO_INCREMENT, date DATETIME NOT NULL, user_id int(11) NOT NULL, object_id bigint(20) NOT NULL, object_type varchar(50) NOT NULL, object_type_meta varchar(50) DEFAULT NULL, field_set_name varchar(255) NOT NULL, field_set_count int(11) NOT NULL, value LONGTEXT, PRIMARY KEY (version_id), KEY field_set_name (field_set_name) ) $charset_collate;"; dbDelta($sql); MPM_Taxonomy::insert_builtin(); MPM_PostType::insert_builtin(); }
function manage() { global $wf; ?> <?php MPV::messages() ?> <?php MPV::incl("post-types"); MPV::incl("shared-field-sets"); MPV::incl("templates"); MPV::incl("taxonomies"); MPV::incl("roles"); $disabled = ""; $view = MasterPress::$view; $post_types = MPM_PostType::find("orderby=disabled,name ASC"); $taxonomies = MPM_Taxonomy::find("orderby=disabled,name ASC"); $shared_field_sets = MPM_SharedFieldSet::find("orderby=disabled,name ASC"); $templates = get_page_templates(); $site_field_sets = MPM_SiteFieldSet::find("orderby=disabled,name ASC"); $roles = $wf->roles(); ?> <div class="fs fs-masterplan fs-with-tabs"> <div class="fsc"> <div class="fscb"> <?php $tab = ""; if (isset($_REQUEST["tab"])) { $tab = $_REQUEST["tab"]; } ?> <?php // check for restoreable backups $backups = array(); if (file_exists(MASTERPRESS_CONTENT_MASTERPLANS_DIR)) { $iterator = new DirectoryIterator(MASTERPRESS_CONTENT_MASTERPLANS_DIR); foreach ($iterator as $file) { $file_name = $file->getFileName(); if (substr($file_name, 0, 1) == ".") { continue; } if (preg_match("/\_backup\.(?:(.*)\.)?([0-9]+)\.masterplan\.zip/", $file_name, $matches)) { $tag = $matches[1]; $date = $matches[2]; $fdate = $wf->date_format("[date-time-long]", strtotime($date)); $label = $fdate; if ($tag != "") { $label = $fdate." ( ".$tag." )"; } $backups[] = array("file" => $file_name, "label" => $label); } } } ?> <ul class="fs-tabs"> <li><a href="#masterplan-overview" class="<?php echo $tab != '' ? '' : 'current' ?>"><span><i class="info"></i>Overview</span></a></li> <?php if (MasterPress::current_user_can("export_masterplan")) : ?> <li><a href="#masterplan-export" class="<?php echo $tab == "export" ? 'current' : '' ?>"><span><i class="arrow-curve-right"></i>Export</span></a></li> <?php endif; ?> <?php if (MasterPress::current_user_can("import_masterplan")) : ?> <li><a href="#masterplan-import" class="<?php echo $tab == "import" ? 'current' : '' ?>"><span class="import"><i class="arrow-curve-left"></i>Import</span></a></li> <?php endif; ?> <?php if (MasterPress::current_user_can("backup_masterplan")) : ?> <li><a href="#masterplan-backup" class="<?php echo $tab == "backup" ? 'current' : '' ?>"><span class="backup"><i class="buoy"></i>Backup</span></a></li> <?php endif; ?> <?php if (count($backups)) : ?> <?php if (MasterPress::current_user_can("restore_masterplan")) : ?> <li><a href="#masterplan-restore" class="<?php echo $tab == "restore" ? 'current' : '' ?>"><span class="restore"><i class="clock-history"></i>Restore</span></a></li> <?php endif; ?> <?php endif; ?> </ul> <!-- OVERVIEW --> <div id="masterplan-overview" class="tab-panel <?php echo $tab != '' ? '' : 'current' ?>"> <?php if (isset($_GET["import-complete"])) : ?> <ul class="mp-messages"> <li class="success"><?php _e("Import Complete - your new site Masterplan is shown below.", MASTERPRESS_DOMAIN) ?></li> </ul> <?php endif; ?> <?php if (isset($_GET["restore-complete"])) : ?> <ul class="mp-messages"> <li class="success"><?php _e("Restore Complete - your site Masterplan is shown below.", MASTERPRESS_DOMAIN) ?></li> </ul> <?php endif; ?> <div class="row first-row"> <div class="col post-types"> <?php $count = 0; foreach ($post_types as $post_type) { if ($post_type->still_registered()) { $count++; } } ?> <h4><i class="pin"></i> <?php if (MasterPress::current_user_can("manage_post_types")) : ?> <a href="<?php echo MasterPress::admin_url("post-types", "manage") ?>" title="<?php _e("Manage Post Types", MASTERPRESS_DOMAIN) ?>" class="icon"> <?php else : ?> <span class="icon"> <?php endif; ?> <?php echo WOOF::items_number( $count, __("<em>No</em> Post Types", MASTERPRESS_DOMAIN), __("<b>%d</b> Post Type", MASTERPRESS_DOMAIN), __("<b>%d</b> Post Types", MASTERPRESS_DOMAIN) ) ?> <?php if (MasterPress::current_user_can("manage_post_types")) : ?> </a> <?php else : ?> </span> <?php endif; ?> </h4> <div class="body"> <ul class="count-<?php echo $count ?>"> <?php foreach ($post_types as $post_type) : $default_icon = $post_type->menu_icon_exists() ? "" : "default-icon"; $field_sets = $post_type->post_type_field_sets(); $fsc = count($field_sets); $disabled = $post_type->disabled ? 'disabled ' : ''; $disabled_title = $post_type->disabled ? __('This post type is currently disabled', MASTERPRESS_DOMAIN) : ''; ?> <?php if ($post_type->still_registered()) : ?> <li class="<?php echo $disabled ?>post-type-<?php echo $post_type->name ?> <?php echo $default_icon ?> linkify" data-name="<?php echo $post_type->name ?>" title="<?php echo $disabled_title ?>"> <?php if (MasterPress::current_user_can("manage_post_types+edit_post_types")) : ?> <a href="<?php echo MasterPress::admin_url("post-types", "edit", "id=".$post_type->id) ?>" class="item mp-icon-post-type mp-icon-post-type-<?php echo $post_type->name ?>"> <?php else: ?> <div class="item mp-icon-post-type mp-icon-post-type-<?php echo $post_type->name ?>"> <?php endif; ?> <?php echo WOOF::truncate($post_type->display_label(), "length=15&words=0") ?> <?php if (MasterPress::current_user_can("manage_post_types+edit_post_types")) : ?> </a> <?php else: ?> </div> <?php endif; ?> <?php if (MasterPress::current_user_can("manage_post_types+manage_post_type_field_sets")) : ?> <a href="<?php echo MasterPress::admin_url("post-types", "manage-field-sets", "parent=".$post_type->id) ?>" title="<?php _e("Manage Field Sets", MASTERPRESS_DOMAIN) ?>" class="field-sets count-<?php echo $fsc ?>"><?php echo $fsc ?></a> <?php else : ?> <div title="<?php _e("Field Sets", MASTERPRESS_DOMAIN) ?>" class="field-sets count-<?php echo $fsc ?>"><?php echo $fsc ?></div> <?php endif; ?> <?php foreach ($post_type->taxonomies() as $tax) : ?> <span class="tax-link-<?php echo $tax->name ?> related-link asterisk"></span> <?php endforeach; ?> <?php foreach ($post_type->field_sets() as $fs) : ?> <?php if ($fs->is_shared()) : ?> <span class="shared-field-set-link-<?php echo $fs->name ?> related-link asterisk"></span> <?php endif; ?> <?php endforeach; ?> </li> <?php endif; ?> <?php endforeach; ?> <?php if (MasterPress::current_user_can("create_post_types")) : ?> <li class="divide"><a href="<?php echo MasterPress::admin_url("post-types", "create") ?>" class="create-link"><i></i><?php echo MPV::__create( MPV_PostTypes::__s() ) ?></a></li> <?php endif; ?> </ul> </div> <!-- /.body --> </div> <!-- /.col --> <div class="col taxonomies"> <?php $count = 0; foreach ($taxonomies as $tax) { if ($tax->still_registered()) { $count++; } } ?> <h4><i class="tag"></i> <?php if (MasterPress::current_user_can("manage_taxonomies")) : ?> <a href="<?php echo MasterPress::admin_url("taxonomies", "manage") ?>" title="<?php _e("Manage Taxonomies", MASTERPRESS_DOMAIN) ?>" class="icon"> <?php else : ?> <span class="icon"> <?php endif; ?> <?php echo WOOF::items_number( $count, __("<em>No</em> Taxonomies", MASTERPRESS_DOMAIN), __("<b>%d</b> Taxonomy", MASTERPRESS_DOMAIN), __("<b>%d</b> Taxonomies", MASTERPRESS_DOMAIN) ) ?> <?php if (MasterPress::current_user_can("manage_taxonomies")) : ?> </a> <?php else : ?> </span> <?php endif; ?> </h4> <div class="body"> <ul class="count-<?php $count ?>"> <?php foreach ($taxonomies as $tax) : $field_sets = $tax->taxonomy_field_sets(); $fsc = count($field_sets); $disabled = $tax->disabled ? 'disabled ' : ''; $disabled_title = $tax->disabled ? __('This taxonomy is currently disabled', MASTERPRESS_DOMAIN) : ''; ?> <?php if ($tax->still_registered()) : ?> <li class="<?php echo $disabled ?> linkify" data-name="<?php echo $tax->name ?>" title="<?php echo $disabled_title ?>"> <?php if (MasterPress::current_user_can("manage_taxonomies+edit_taxonomies")) : ?> <a href="<?php echo MasterPress::admin_url("taxonomies", "edit", "id=".$tax->id) ?>" class="item mp-icon-taxonomy mp-icon-taxonomy-<?php echo $tax->name ?>"> <?php else: ?> <div class="item mp-icon-taxonomy mp-icon-taxonomy-<?php echo $tax->name ?>"> <?php endif; ?> <?php echo WOOF::truncate($tax->display_label(), "length=15&words=0") ?> <?php if (MasterPress::current_user_can("manage_taxonomies+edit_taxonomies")) : ?> </a> <?php else: ?> </div> <?php endif; ?> <?php if (MasterPress::current_user_can("manage_taxonomies+manage_taxonomy_field_sets")) : ?> <a href="<?php echo MasterPress::admin_url("taxonomies", "manage-field-sets", "parent=".$tax->id) ?>" title="<?php _e("Manage Field Sets", MASTERPRESS_DOMAIN) ?>" class="field-sets count-<?php echo $fsc ?>"><?php echo $fsc ?></a> <?php else : ?> <div title="<?php _e("Field Sets", MASTERPRESS_DOMAIN) ?>" class="field-sets count-<?php echo $fsc ?>"><?php echo $fsc ?></div> <?php endif; ?> <?php foreach ($tax->post_types() as $pt) : ?> <span class="post-type-link-<?php echo $pt->name ?> related-link asterisk"></span> <?php endforeach; ?> <?php foreach ($tax->field_sets() as $fs) : ?> <?php if ($fs->is_shared()) : ?> <span class="shared-field-set-link-<?php echo $fs->name ?> related-link asterisk"></span> <?php endif; ?> <?php endforeach; ?> </li> <?php endif; ?> <?php endforeach; ?> <?php if (MasterPress::current_user_can("create_taxonomies")) : ?> <li class="divide"><a href="<?php echo MasterPress::admin_url("taxonomies", "create") ?>" class="create-link"><i></i><?php echo MPV::__create( MPV_Taxonomies::__s() ) ?></a></li> <?php endif; ?> </ul> </div> <!-- /.body --> </div> <!-- /.col --> <div class="col field-sets shared-field-sets"> <h4><i class="metabox-share"></i> <?php if (MasterPress::current_user_can("manage_shared_field_sets")) : ?> <a href="<?php echo MasterPress::admin_url("shared-field-sets", "manage") ?>" title="<?php _e("Manage Shared Field Sets", MASTERPRESS_DOMAIN) ?>" class="icon"> <?php else : ?> <span class="icon"> <?php endif; ?> <?php echo WOOF::items_number( count($shared_field_sets), __("<em>No</em> Shared Field Sets", MASTERPRESS_DOMAIN), __("<b>%d</b> Shared Field Set", MASTERPRESS_DOMAIN), __("<b>%d</b> Shared Field Sets", MASTERPRESS_DOMAIN) ) ?> <?php if (MasterPress::current_user_can("manage_shared_field_sets")) : ?> </a> <?php else : ?> </span> <?php endif; ?> </h4> <div class="body"> <ul class="count-<?php echo count($shared_field_sets) ?>"> <?php foreach ($shared_field_sets as $field_set) : $multiple = $field_set->allow_multiple ? "allow-multiple" : ''; $disabled = $field_set->disabled ? 'disabled ' : ''; $disabled_title = $field_set->disabled ? __('This shared field set is currently disabled', MASTERPRESS_DOMAIN) : ''; ?> <li class="<?php echo $disabled ?>shared-field-set-<?php echo $field_set->name ?> linkify" data-name="<?php echo $field_set->name ?>" title="<?php echo $disabled_title ?>"> <?php if (MasterPress::current_user_can("manage_shared_field_sets+edit_shared_field_sets")) : ?> <a href="<?php echo MasterPress::admin_url("shared-field-sets", "edit", "id=".$field_set->id) ?>" title="<?php _e("Edit Shared Field Set", MASTERPRESS_DOMAIN) ?>" class="item <?php echo $multiple ?>"> <?php else: ?> <div class="item <?php echo $multiple ?>"> <?php endif; ?> <?php if ($multiple) : ?> <i class="metabox-add-remove"></i> <?php else : ?> <i class="metabox"></i> <?php endif; ?> <?php echo $field_set->display_label() ?></a> <?php if (MasterPress::current_user_can("manage_shared_field_sets+edit_shared_field_sets")) : ?> </a> <?php else: ?> </div> <?php endif; ?> <?php foreach ($field_set->post_types() as $post_type) : ?> <span class="post-type-link-<?php echo $post_type->name ?> related-link asterisk"></span> <?php endforeach; ?> <?php foreach ($field_set->taxonomies() as $tax) : ?> <span class="tax-link-<?php echo $tax->name ?> related-link asterisk"></span> <?php endforeach; ?> <?php foreach ($field_set->roles() as $role) : ?> <span class="role-link-<?php echo $role->id ?> related-link asterisk"></span> <?php endforeach; ?> </li> <?php endforeach; ?> <?php if (MasterPress::current_user_can("create_shared_field_sets")) : ?> <li class="divide"><a href="<?php echo MasterPress::admin_url("shared-field-sets", "create") ?>" class="create-link"><i></i><?php echo MPV::__create( MPV_SharedFieldSets::__s() ) ?></a></li> <?php endif; ?> </ul> </div> <!-- /.body --> </div> <!-- /.col --> </div> <!-- /.row --> <div class="row"> <div class="col templates"> <h4><i class="template"></i> <?php if (MasterPress::current_user_can("manage_templates")) : ?> <a href="<?php echo MasterPress::admin_url("templates", "manage") ?>" title="<?php _e("Manage Templates", MASTERPRESS_DOMAIN) ?>" class="icon"> <?php else : ?> <span class="icon"> <?php endif; ?> <?php echo WOOF::items_number( count($templates), __("<em>No</em> Templates", MASTERPRESS_DOMAIN), __("<b>%d</b> Template", MASTERPRESS_DOMAIN), __("<b>%d</b> Templates", MASTERPRESS_DOMAIN) ) ?> <?php if (MasterPress::current_user_can("manage_templates")) : ?> </a> <?php else : ?> </span> <?php endif; ?> </h4> <div class="body"> <ul class="count-<?php echo count($templates) ?>"> <?php $count = 0; ?> <?php foreach ($templates as $template => $file) : $count++; $fsc = count(MPM_TemplateFieldSet::find_by_template( $file )); ?> <li class="linkify" data-name="<?php echo $file ?>"> <?php if (MasterPress::current_user_can("manage_templates+edit_templates")) : ?> <a href="<?php echo MasterPress::admin_url("templates", "edit", "id=".$file) ?>" class="item"> <?php else: ?> <div class="item"> <?php endif; ?> <?php echo WOOF::truncate($template, "length=20&words=0") ?> <?php if (MasterPress::current_user_can("manage_templates+edit_templates")) : ?> </a> <?php else: ?> </div> <?php endif; ?> <?php if (MasterPress::current_user_can("manage_templates+manage_template_field_sets")) : ?> <a href="<?php echo MasterPress::admin_url("templates", "manage-field-sets", "parent=".$file) ?>" title="<?php _e("Manage Field Sets", MASTERPRESS_DOMAIN) ?>" class="field-sets count-<?php echo $fsc ?>"><?php echo $fsc ?></a> <?php else : ?> <div title="<?php _e("Field Sets", MASTERPRESS_DOMAIN) ?>" class="field-sets count-<?php echo $fsc ?>"><?php echo $fsc ?></div> <?php endif; ?> </li> <?php endforeach; ?> </ul> </div> <!-- /.body --> </div> <!-- /.col --> <div class="col field-sets site-field-sets"> <h4><i class="sitemap"></i> <?php if (MasterPress::current_user_can("manage_site_field_sets")) : ?> <a href="<?php echo MasterPress::admin_url("site-field-sets", "manage") ?>" title="<?php _e("Manage Site Field Sets", MASTERPRESS_DOMAIN) ?>" class="icon"> <?php else : ?> <span class="icon"> <?php endif; ?> <?php echo WOOF::items_number( count($site_field_sets), __("<em>No</em> Site Field Sets", MASTERPRESS_DOMAIN), __("<b>%d</b> site Field Set", MASTERPRESS_DOMAIN), __("<b>%d</b> site Field Sets", MASTERPRESS_DOMAIN) ) ?> <?php if (MasterPress::current_user_can("manage_site_field_sets")) : ?> </a> <?php else : ?> </span> <?php endif; ?> </h4> <div class="body"> <ul class="count-<?php echo count($site_field_sets) ?>"> <?php foreach ($site_field_sets as $field_set) : $multiple = $field_set->allow_multiple ? "allow-multiple" : ''; $disabled = $field_set->disabled ? 'disabled ' : ''; $disabled_title = $field_set->disabled ? __('This site field set is currently disabled', MASTERPRESS_DOMAIN) : ''; ?> <li class="<?php echo $disabled ?>site-field-set-<?php echo $field_set->name ?> linkify" data-name="<?php echo $field_set->name ?>" title="<?php echo $disabled_title ?>"> <?php if (MasterPress::current_user_can("manage_site_field_sets+edit_site_field_sets")) : ?> <a href="<?php echo MasterPress::admin_url("site-field-sets", "edit", "id=".$field_set->id) ?>" title="<?php _e("Edit Site Field Set", MASTERPRESS_DOMAIN) ?>" class="item <?php echo $multiple ?>"> <?php else: ?> <div class="item <?php echo $multiple ?>"> <?php endif; ?> <?php if ($multiple) : ?> <i class="metabox-add-remove"></i> <?php else : ?> <i class="metabox"></i> <?php endif; ?> <?php echo $field_set->display_label() ?></a> <?php if (MasterPress::current_user_can("manage_site_field_sets+edit_site_field_sets")) : ?> </a> <?php else: ?> </div> <?php endif; ?> </li> <?php endforeach; ?> <?php if (MasterPress::current_user_can("create_site_field_sets")) : ?> <li class="divide"><a href="<?php echo MasterPress::admin_url("site-field-sets", "create") ?>" class="create-link"><i></i><?php echo MPV::__create( __("Site Field Set", MASTERPRESS_DOMAIN) ) ?></a></li> <?php endif; ?> </ul> </div> <!-- /.body --> </div> <!-- /.col --> <div class="col roles"> <h4><i class="user"></i> <?php if (MasterPress::current_user_can("manage_user_roles")) : ?> <a href="<?php echo MasterPress::admin_url("roles", "manage") ?>" title="<?php _e("Manage User Roles", MASTERPRESS_DOMAIN) ?>" class="icon"> <?php else : ?> <span class="icon"> <?php endif; ?> <?php echo WOOF::items_number( count($roles), __("<em>No</em> User Roles", MASTERPRESS_DOMAIN), __("<b>%d</b> User Role", MASTERPRESS_DOMAIN), __("<b>%d</b> User Roles", MASTERPRESS_DOMAIN) ) ?> <?php if (MasterPress::current_user_can("manage_user_roles")) : ?> </a> <?php else : ?> </span> <?php endif; ?> </h4> <div class="body"> <?php // cap checking has side-effects to the roles collection, causing an infinite loop. We need to cache the info here $role_cache = array(); foreach ($roles as $role) { $role_cache[] = array("name" => $role->name(), "id" => $role->id()); } ?> <ul class="count-<?php echo count($roles) ?>"> <?php foreach ($role_cache as $role) : $count++; $fsc = count(MPM_RoleFieldSet::find_by_role( $role["id"] )); ?> <li class="linkify" data-name="<?php echo $role["id"] ?>"> <?php if (MasterPress::current_user_can("manage_user_roles+edit_user_roles")) : ?> <a href="<?php echo MasterPress::admin_url("roles", "edit", "id=".$role["id"]) ?>" class="item"> <?php else: ?> <div class="item"> <?php endif; ?> <i class="user-role"></i> <?php echo WOOF::truncate($role["name"], "length=20&words=0") ?> <?php if (MasterPress::current_user_can("manage_user_roles+edit_user_roles")) : ?> </a> <?php else: ?> </div> <?php endif; ?> <?php if (MasterPress::current_user_can("manage_user_roles+manage_user_role_field_sets")) : ?> <a href="<?php echo MasterPress::admin_url("roles", "manage-field-sets", "parent=".$role["id"]) ?>" title="<?php _e("Manage Field Sets", MASTERPRESS_DOMAIN) ?>" class="field-sets count-<?php echo $fsc ?>"><?php echo $fsc ?></a> <?php else : ?> <div title="<?php _e("Field Sets", MASTERPRESS_DOMAIN) ?>" class="field-sets count-<?php echo $fsc ?>"><?php echo $fsc ?></div> <?php endif; ?> <?php foreach ($shared_field_sets as $fs) : ?> <?php if ($fs->visible_in("roles", $role["id"])) : ?> <span class="shared-field-set-link-<?php echo $fs->name ?> related-link asterisk"></span> <?php endif; ?> <?php endforeach; ?> </li> <?php endforeach; ?> <?php if (MasterPress::current_user_can("create_user_roles")) : ?> <li class="divide"><a href="<?php echo MasterPress::admin_url("roles", "create") ?>" class="create-link"><i></i><?php echo MPV::__create( __("User Role", MASTERPRESS_DOMAIN) ) ?></a></li> <?php endif; ?> </ul> </div> <!-- /.body --> </div> <!-- /.col --> </div> <!-- /.row --> </div> <!-- /#masterplan-overview --> <!-- EXPORT --> <?php if (MasterPress::current_user_can("export_masterplan")) : ?> <div id="masterplan-export" class="masterplan-export tab-panel <?php echo $tab == "export" ? 'current' : '' ?>"> <?php MPV::form_open() ?> <div id="export-progress" class="progress"> <?php _e("Exporting Masterplan. Please wait…", MASTERPRESS_DOMAIN) ?> </div> <!-- /#export-progress --> <div id="export-summary" class="summary"> <div id="export-download"> <p><?php _e("Export completed successfully", MASTERPRESS_DOMAIN) ?></p> <a id="export-file-download" href="#" data-message="<?php _e( "Download %s", MASTERPRESS_DOMAIN) ?>"><?php printf( __( "Download %s", MASTERPRESS_DOMAIN ), "file.zip" ) ?></a> </div> <!-- /#export-download --> <div id="extras-summary" class="extras-summary"> <p> <?php _e("Note: the following dependent files were included in the Masterplan package", MASTERPRESS_DOMAIN) ?> </p> <div id="extras-icons"> <h4><?php _e("Icons", MASTERPRESS_DOMAIN); ?></h4> <ul> </ul> </div> <!-- /#extras-icons --> <div id="extras-types"> <h4><?php _e("Field Types", MASTERPRESS_DOMAIN); ?></h4> <ul> </ul> </div> <!-- /#extras-field-types --> </div> </div> <!-- /#export-summary --> <div id="export-ui"> <div id="export-package"> <div class="title"> <h4 class="package-file"><i class="zip"></i><?php _e("Package File", MASTERPRESS_DOMAIN) ?></h4> <button id="button-export" type="submit" class="button-export simple-primary">Export</button> </div> <!-- /.title --> <div id="f-export-filename" class="f"> <label for="export_filename"><?php _e("Name:", MASTERPRESS_DOMAIN) ?></label> <div class="fw"> <input id="export_filename" spellcheck="false" name="export_filename" type="text" value="<?php echo $wf->sanitize( $wf->site_name() ) ?>" class="text" /> <span id="export_filename_extension" class="note"><?php echo ".".$wf->format_date("[date-time-sortable]") ?>.masterplan.zip</span> </div> <!-- /.fw --> </div> <!-- /.f --> </div> <!-- /#export-package --> <div id="export-readme"> <h4 class="readme"><i class="document-text"></i><?php _e('Read Me<span> - this Markdown-formatted text will be stored in <span class="tt">README.markdown</span> inside the Masterplan package</span>', MASTERPRESS_DOMAIN); ?></h4> <div id="f-export_readme"> <textarea id="export_readme" name="export_readme"> # Masterplan for <?php echo $wf->sites()->first()->name ?> # + By: <?php echo $wf->the_user()->fullname() ?> + Created: <?php echo $wf->format_date("[date-time-long]") ?> ------------------------------------------------- </textarea> </div> </div> <!-- /#export-readme --> <div id="export-items"> <div class="title-buttons"> <h4 class="export-items"><i class="hand-point"></i><?php _e("Export Items<span> - check the items you wish to include in the Masterplan package</span>", MASTERPRESS_DOMAIN); ?></h4> <div class="buttons"> <button id="export-select-all" type="button" class="button">Select <span class="all">All</span></button> <button id="export-select-none" type="button" class="button">Select <span class="none">None</span></button> </div> </div> <!-- /.title-buttons --> <div class="fsi"> <div class="fsibv"> <div class="fsit"> <h4 class="post-types"><i class="pin"></i><?php _e("Post Types", MASTERPRESS_DOMAIN) ?></h4> <input id="post-types-check" name="post-types-all" type="checkbox" class="checkbox" checked="checked" /> </div> <div class="fsic"> <ul class="object-tree post-types"> <?php foreach ($post_types as $post_type) : ?> <?php if ($post_type->still_registered()) : ?> <li class="post-type-<?php echo $post_type->name ?>"> <input id="ref-post-type-<?php echo $post_type->name ?>" name="ref[post_types][<?php echo $post_type->name ?>][selected]" checked="checked" value="true" type="hidden" /> <input id="export-post-type-<?php echo $post_type->name ?>" name="export[post_types][<?php echo $post_type->name ?>][selected]" checked="checked" value="true" type="checkbox" class="checkbox" /> <label for="export-post-type-<?php echo $post_type->name ?>" class="mp-icon-post-type mp-icon-post-type-<?php echo $post_type->name ?>"><?php echo $post_type->display_label() ?></label> <?php $field_sets = $post_type->post_type_field_sets() ?> <?php if (count($field_sets)) : ?> <ul class="field-sets"> <?php foreach ($field_sets as $field_set) : $class = $field_set->allow_multiple ? 'metabox-add-remove-large' : 'metabox-large'; ?> <li class="field-set<?php echo $class ?>"> <input id="export-post-type-<?php echo $post_type->name ?>-field-set-<?php echo $field_set->id ?>" checked="checked" name="export[post_types][<?php echo $post_type->name ?>][field_sets][<?php echo $field_set->id ?>][selected]" value="true" type="checkbox" class="checkbox" /> <input id="ref-post-type-<?php echo $post_type->name ?>-field-set-<?php echo $field_set->id ?>" name="ref[post_types][<?php echo $post_type->name ?>][field_sets][<?php echo $field_set->id ?>][selected]" value="true" type="hidden" /> <label for="export-post-type-<?php echo $post_type->name ?>-field-set-<?php echo $field_set->id ?>" class="field-set"><i class="<?php echo $class ?>"></i><?php echo $field_set->display_label() ?></label> <?php $fields = $field_set->fields() ?> <?php if (count($fields)) : ?> <ul class="fields"> <?php foreach ($fields as $field) : ?> <?php if ($type_class = MPFT::type_class($field->type)) : ?> <li class="field"> <input id="export-post-type-<?php echo $post_type->name ?>-field-set-<?php echo $field_set->id ?>-field-<?php echo $field->id ?>" checked="checked" name="export[post_types][<?php echo $post_type->name ?>][field_sets][<?php echo $field_set->id ?>][fields][<?php echo $field->id ?>]" value="true" type="checkbox" class="checkbox" /> <input id="ref-post-type-<?php echo $post_type->name ?>-field-set-<?php echo $field_set->id ?>-field-<?php echo $field->id ?>" checked="checked" name="ref[post_types][<?php echo $post_type->name ?>][field_sets][<?php echo $field_set->id ?>][fields][<?php echo $field->id ?>]" value="true" type="hidden" /> <label for="export-post-type-<?php echo $post_type->name ?>-field-set-<?php echo $field_set->id ?>-field-<?php echo $field->id ?>" class="mp-icon-field-type-<?php echo $field->type ?>"><?php echo $field->display_label() ?></label> </li> <?php endif; ?> <?php endforeach; ?> </ul> <?php endif; ?> </li> <?php endforeach; ?> </ul> <?php endif; ?> </li> <?php endif; ?> <?php endforeach; ?> </ul> </div> <!-- /.fsic --> </div> </div> <!-- /.fsi --> <div class="fsi"> <div class="fsibv"> <div class="fsit"> <h4 class="taxonomies"><i class="tag"></i><?php _e("Taxonomies", MASTERPRESS_DOMAIN) ?></h4> <input id="taxonomies-check" name="taxonomies-all" type="checkbox" class="checkbox" checked="checked" /> </div> <div class="fsic"> <ul class="object-tree taxonomies"> <?php foreach ($taxonomies as $tax) : ?> <?php if ($tax->still_registered()) : ?> <li> <input id="ref-taxonomy-<?php echo $tax->name ?>" name="ref[taxonomies][<?php echo $tax->name ?>][selected]" value="true" type="hidden" /> <input id="export-taxonomy-<?php echo $tax->name ?>" name="export[taxonomies][<?php echo $tax->name ?>][selected]" checked="checked" value="true" type="checkbox" class="checkbox" /> <label for="export-taxonomy-<?php echo $tax->name ?>" class="mp-icon-taxonomy mp-icon-taxonomy-<?php echo $tax->name ?>"><?php echo $tax->display_label() ?></label> <?php $field_sets = $tax->taxonomy_field_sets() ?> <?php if (count($field_sets)) : ?> <ul class="field-sets"> <?php foreach ($field_sets as $field_set) : $class = $field_set->allow_multiple ? 'metabox-add-remove-large' : 'metabox-large'; ?> <li class="field-set<?php echo $class ?>"> <input id="ref-taxonomy-<?php echo $tax->name ?>-field-set-<?php echo $field_set->id ?>" name="ref[taxonomies][<?php echo $tax->name ?>][field_sets][<?php echo $field_set->id ?>][selected]" value="true" type="hidden" /> <input id="export-taxonomy-<?php echo $tax->name ?>-field-set-<?php echo $field_set->id ?>" name="export[taxonomies][<?php echo $tax->name ?>][field_sets][<?php echo $field_set->id ?>][selected]" value="true" checked="checked" type="checkbox" class="checkbox" /> <label for="export-taxonomy-<?php echo $tax->name ?>-field-set-<?php echo $field_set->id ?>" class="field-set"><i class="<?php echo $class ?>"></i><?php echo $field_set->display_label() ?></label> <?php $fields = $field_set->fields() ?> <?php if (count($fields)) : ?> <ul class="fields"> <?php foreach ($fields as $field) : ?> <?php if ($type_class = MPFT::type_class($field->type)) : ?> <li class="field"> <input id="ref-taxonomy-<?php echo $tax->name ?>-field-set-<?php echo $field_set->id ?>-field-<?php echo $field->id ?>" name="ref[taxonomies][<?php echo $tax->name ?>][field_sets][<?php echo $field_set->id ?>][fields][<?php echo $field->id ?>]" value="true" type="hidden" /> <input id="export-taxonomy-<?php echo $tax->name ?>-field-set-<?php echo $field_set->id ?>-field-<?php echo $field->id ?>" checked="checked" name="export[taxonomies][<?php echo $tax->name ?>][field_sets][<?php echo $field_set->id ?>][fields][<?php echo $field->id ?>]" value="true" type="checkbox" class="checkbox" /> <label for="export-taxonomy-<?php echo $tax->name ?>-field-set-<?php echo $field_set->id ?>-field-<?php echo $field->id ?>" class="mp-icon-field-type-<?php echo $field->type ?>"><?php echo $field->display_label() ?></label> </li> <?php endif; ?> <?php endforeach; ?> </ul> <?php endif; ?> </li> <?php endforeach; ?> </ul> <?php endif; ?> </li> <?php endif; ?> <?php endforeach; ?> </ul> </div> <!-- /.fsic --> </div> </div> <!-- /.fsi --> <?php if (count($shared_field_sets)) : ?> <div class="fsi"> <div class="fsibv"> <div class="fsit"> <h4 class="shared-field-sets"><i class="metabox-share"></i><?php _e("Shared Field Sets", MASTERPRESS_DOMAIN) ?></h4> <input id="shared-field-sets-check" name="shared-field-sets-all" type="checkbox" class="checkbox" checked="checked" /> </div> <div class="fsic"> <ul class="object-tree shared-field-sets field-sets"> <?php foreach ($shared_field_sets as $field_set) : $class = $field_set->allow_multiple ? 'metabox-add-remove-large' : 'metabox-large'; ?> <li class="field-set<?php echo $class ?>"> <input id="ref-shared-field-set-<?php echo $field_set->id ?>" name="ref[shared_field_sets][<?php echo $field_set->id ?>][selected]" value="true" type="hidden" /> <input id="export-shared-field-set-<?php echo $field_set->id ?>" name="export[shared_field_sets][<?php echo $field_set->id ?>][selected]" value="true" checked="checked" type="checkbox" class="checkbox" /> <label for="export-shared-field-set-<?php echo $field_set->id ?>" class="field-set"><i class="<?php echo $class ?>"></i><?php echo $field_set->display_label() ?></label> <?php $fields = $field_set->fields() ?> <?php if (count($fields)) : ?> <ul class="fields"> <?php foreach ($fields as $field) : ?> <?php if ($type_class = MPFT::type_class($field->type)) : ?> <li class="field"> <input id="ref-shared-field-set-<?php echo $field_set->id ?>-field-<?php echo $field->id ?>" checked="checked" name="ref[shared_field_sets][<?php echo $field_set->id ?>][fields][<?php echo $field->id ?>]" value="true" type="hidden" /> <input id="export-shared-field-set-<?php echo $field_set->id ?>-field-<?php echo $field->id ?>" checked="checked" name="export[shared_field_sets][<?php echo $field_set->id ?>][fields][<?php echo $field->id ?>]" value="true" type="checkbox" class="checkbox" /> <label for="export-shared-field-set-<?php echo $field_set->id ?>-field-<?php echo $field->id ?>" class="mp-icon-field-type-<?php echo $field->type ?>"><?php echo $field->display_label() ?></label> </li> <?php endif; ?> <?php endforeach; ?> </ul> <?php endif; ?> </li> <?php endforeach; ?> </ul> </div> <!-- /.fsic --> </div> </div> <!-- /.fsi --> <?php endif; ?> <?php if (count($site_field_sets)) : ?> <div class="fsi"> <div class="fsibv"> <div class="fsit"> <h4 class="site-field-sets"><i class="sitemap"></i><?php _e("Site Field Sets", MASTERPRESS_DOMAIN) ?></h4> <input id="site-field-sets-check" name="site-field-sets-all" type="checkbox" class="checkbox" checked="checked" /> </div> <div class="fsic"> <ul class="object-tree site-field-sets field-sets"> <?php foreach ($site_field_sets as $field_set) : $class = $field_set->allow_multiple ? 'metabox-add-remove-large' : 'metabox-large'; ?> <li class="field-set<?php echo $class ?>"> <input id="ref-site-field-set-<?php echo $field_set->id ?>" name="ref[site_field_sets][<?php echo $field_set->id ?>][selected]" value="true" type="hidden" /> <input id="export-site-field-set-<?php echo $field_set->id ?>" name="export[site_field_sets][<?php echo $field_set->id ?>][selected]" value="true" checked="checked" type="checkbox" class="checkbox" /> <label for="export-site-field-set-<?php echo $field_set->id ?>" class="field-set"><i class="<?php echo $class ?>"></i><?php echo $field_set->display_label() ?></label> <?php $fields = $field_set->fields() ?> <?php if (count($fields)) : ?> <ul class="fields"> <?php foreach ($fields as $field) : ?> <?php if ($type_class = MPFT::type_class($field->type)) : ?> <li class="field"> <input id="ref-site-field-set-<?php echo $field_set->id ?>-field-<?php echo $field->id ?>" checked="checked" name="ref[site_field_sets][<?php echo $field_set->id ?>][fields][<?php echo $field->id ?>]" value="true" type="hidden" /> <input id="export-site-field-set-<?php echo $field_set->id ?>-field-<?php echo $field->id ?>" checked="checked" name="export[site_field_sets][<?php echo $field_set->id ?>][fields][<?php echo $field->id ?>]" value="true" type="checkbox" class="checkbox" /> <label for="export-site-field-set-<?php echo $field_set->id ?>-field-<?php echo $field->id ?>" class="mp-icon-field-type-<?php echo $field->type ?>"><?php echo $field->display_label() ?></label> </li> <?php endif; ?> <?php endforeach; ?> </ul> <?php endif; ?> </li> <?php endforeach; ?> </ul> </div> <!-- /.fsic --> </div> </div> <!-- /.fsi --> <?php endif; ?> <div class="fsi"> <div class="fsibv"> <div class="fsit"> <h4 class="templates"><i class="template"></i><?php _e("Templates", MASTERPRESS_DOMAIN) ?></h4> <input id="templates-check" name="templates-all" type="checkbox" class="checkbox" checked="checked" /> </div> <div class="fsic"> <ul class="object-tree"> <?php foreach ($templates as $template => $file) : $id = $wf->sanitize($file); ?> <li class="template-<?php echo $id ?>"> <input id="ref-template-<?php echo $wf->sanitize($file) ?>" name="ref[templates][<?php echo $file ?>][selected]" checked="checked" value="true" type="hidden" /> <input id="export-template-<?php echo $wf->sanitize($file) ?>" name="export[templates][<?php echo $file ?>][selected]" checked="checked" value="true" type="checkbox" class="checkbox" /> <label for="export-template-<?php echo $wf->sanitize($file) ?>" class="template"><i class="template"></i><?php echo $template ?></label> <?php $field_sets = MPM_TemplateFieldSet::find_by_template( $file ); ?> <?php if (count($field_sets)) : ?> <ul class="field-sets"> <?php foreach ($field_sets as $field_set) : $class = $field_set->allow_multiple ? 'metabox-add-remove-large' : 'metabox-large'; ?> <li class="field-set<?php echo $class ?>"> <input id="ref-template-<?php echo $id ?>-field-set-<?php echo $field_set->id ?>" name="ref[templates][<?php echo $file ?>][field_sets][<?php echo $field_set->id ?>][selected]" value="true" type="hidden" /> <input id="export-template-<?php echo $id ?>-field-set-<?php echo $field_set->id ?>" checked="checked" name="export[templates][<?php echo $file ?>][field_sets][<?php echo $field_set->id ?>][selected]" value="true" type="checkbox" class="checkbox" /> <label for="export-template-<?php echo $id ?>-field-set-<?php echo $field_set->id ?>" class="field-set"><i class="<?php echo $class ?>"></i><?php echo $field_set->display_label() ?></label> <?php $fields = $field_set->fields(); ?> <?php if (count($fields)) : ?> <ul class="fields"> <?php foreach ($fields as $field) : ?> <?php if ($type_class = MPFT::type_class($field->type)) : ?> <li class="field"> <input id="ref-template-<?php echo $id ?>-field-set-<?php echo $field_set->id ?>-field-<?php echo $field->id ?>" name="ref[templates][<?php echo $file ?>][field_sets][<?php echo $field_set->id ?>][fields][<?php echo $field->id ?>]" value="true" type="hidden" /> <input id="export-template-<?php echo $id ?>-field-set-<?php echo $field_set->id ?>-field-<?php echo $field->id ?>" checked="checked" name="export[templates][<?php echo $file ?>][field_sets][<?php echo $field_set->id ?>][fields][<?php echo $field->id ?>]" value="true" type="checkbox" class="checkbox" /> <label for="export-template-<?php echo $id ?>-field-set-<?php echo $field_set->id ?>-field-<?php echo $field->id ?>" class="mp-icon-field-type-<?php echo $field->type ?>"><?php echo $field->display_label() ?></label> </li> <?php endif; ?> <?php endforeach; ?> </ul> <?php endif; ?> </li> <?php endforeach; ?> </ul> <?php endif; ?> </li> <?php endforeach; ?> </ul> </div> <!-- /.fsic --> </div> </div> <!-- /.fsi --> <div class="fsi"> <div class="fsibv"> <div class="fsit"> <h4 class="roles"><i class="user-role"></i><?php _e("User Roles", MASTERPRESS_DOMAIN) ?></h4> <input id="roles-check" name="roles-all" type="checkbox" class="checkbox" checked="checked" /> </div> <div class="fsic"> <ul class="object-tree"> <?php foreach ($roles as $role) : $id = $role->id() ?> <li> <input id="ref-role-<?php echo $id ?>" name="ref[roles][<?php echo $id ?>][selected]" checked="checked" value="true" type="hidden" /> <input id="export-role-<?php echo $id ?>" name="export[roles][<?php echo $id ?>][selected]" checked="checked" value="true" type="checkbox" class="checkbox" /> <label for="export-role-<?php echo $id ?>" class="role"><i class="user-role"></i><?php echo $role->name ?></label> <?php $field_sets = MPM_RoleFieldSet::find_by_role( $id ) ?> <?php if (count($field_sets)) : ?> <ul class="field-sets"> <?php foreach ($field_sets as $field_set) : $class = $field_set->allow_multiple ? 'metabox-add-remove-large' : 'metabox-large'; ?> <li class="field-set<?php echo $class ?>"> <input id="ref-role-<?php echo $id ?>-field-set-<?php echo $field_set->id ?>" checked="checked" name="ref[roles][<?php echo $id ?>][field_sets][<?php echo $field_set->id ?>][selected]" value="true" type="hidden" /> <input id="export-role-<?php echo $id ?>-field-set-<?php echo $field_set->id ?>" checked="checked" name="export[roles][<?php echo $id ?>][field_sets][<?php echo $field_set->id ?>][selected]" value="true" type="checkbox" class="checkbox" /> <label for="export-role-<?php echo $id ?>-field-set-<?php echo $field_set->id ?>" class="field-set"><i class="<?php echo $class ?>"></i><?php echo $field_set->display_label() ?></label> <?php $fields = $field_set->fields(); ?> <?php if (count($fields)) : ?> <ul class="fields"> <?php foreach ($fields as $field) : ?> <?php if ($type_class = MPFT::type_class($field->type)) : ?> <li class="field"> <input id="ref-role-<?php echo $id ?>-field-set-<?php echo $field_set->id ?>-field-<?php echo $field->id ?>" name="ref[roles][<?php echo $id ?>][field_sets][<?php echo $field_set->id ?>][fields][<?php echo $field->id ?>]" value="true" type="hidden" /> <input id="export-role-<?php echo $id ?>-field-set-<?php echo $field_set->id ?>-field-<?php echo $field->id ?>" checked="checked" name="export[roles][<?php echo $id ?>][field_sets][<?php echo $field_set->id ?>][fields][<?php echo $field->id ?>]" value="true" type="checkbox" class="checkbox" /> <label for="export-role-<?php echo $id ?>-field-set-<?php echo $field_set->id ?>-field-<?php echo $field->id ?>" class="mp-icon-field-type-<?php echo $field->type ?>"><?php echo $field->display_label() ?></label> </li> <?php endif; ?> <?php endforeach; ?> </ul> <?php endif; ?> </li> <?php endforeach; ?> </ul> <?php endif; ?> </li> <?php endforeach; ?> </ul> </div> <!-- /.fsic --> </div> </div> <!-- /.fsi --> </div> <!-- /#export-items --> </div> <!-- /#export-ui --> <?php MPV::form_close() ?> </div> <!-- /#masterplan-export --> <?php endif; ?> <?php if (MasterPress::current_user_can("import_masterplan")) : ?> <div id="masterplan-import" class="tab-panel <?php echo $tab == "import" ? 'current' : '' ?>"> <?php if (!MPV::is_postback()) : ?> <?php MPV::form_open() ?> <div id="import-file-wrap"> <div class="title"> <h4 class="upload"><i class="upload"></i><?php _e("Package Upload", MASTERPRESS_DOMAIN) ?></h4> </div> <!-- /.title --> <label id="label-import_file" for="import_file"><?php _e("Upload a Masterplan zip package to begin.<br /><b>Note:</b> you will be able to review the contents of the package before going ahead with the import.") ?></label> <div id="import-file-uploader" class="file-uploader { allowedExtensions: ['zip'], ids: { drop: 'import_file_drop_area' }, input: '#import_file', inputName: 'import_file_ul', base_url: '<?php echo MASTERPRESS_GLOBAL_CONTENT_URL ?>', params: { dir: 'tmp/' }, limit: 1, lang: { buttonReplace: '<?php _e("Select a Different File…") ?>', buttonChoose: '<?php _e("Choose from Computer…", MASTERPRESS_DOMAIN) ?>'} }"> <div id="import_file_drop_area" class="drop-area"><?php _e("Drop file here to upload", MASTERPRESS_DOMAIN) ?></div> <?php $file_name = __("( None )", MASTERPRESS_DOMAIN); $file_class = "name-none"; ?> <div class="file"> <span class="preview"></span><span data-none="<?php echo __("( None )", MASTERPRESS_DOMAIN) ?>" class="name <?php echo $file_class ?>"><?php echo $file_name ?></span> </div> <input id="import_file" name="import_file" value="" type="hidden" /> <div class="uploader-ui"></div> </div> <!-- /.file-uploader --> </div> <!-- /#import-file-wrap --> <p id="import-fetching-summary"><?php _e("Fetching Masterplan info - Please wait…", MASTERPRESS_DOMAIN); ?></p> <div id="import-confirmation"> <div class="title"> <h4 class="upload"><i class="tick-circle"></i><?php _e("Confirmation", MASTERPRESS_DOMAIN) ?> - <span><?php _e("select import options and review the uploaded package", MASTERPRESS_DOMAIN) ?></span></h4> <button id="button-import" type="submit" class="button-import simple-primary">Import</button> </div> <!-- /.title --> <div class="content"> <div class="f"> <div class="fw"> <input id="import-backup" name="import_backup" value="yes" checked="checked" type="checkbox" class="checkbox" /> <label for="import-backup" class="checkbox"><?php _e("<strong>Backup the existing setup</strong> before importing ( highly recommended )", MASTERPRESS_DOMAIN); ?></label> </div> </div> <!-- /.f --> <div id="f-types-overwrite" class="f"> <div class="fw"> <input id="import-types-overwrite" name="import_types_overwrite" value="yes" checked="checked" type="checkbox" class="checkbox" /> <label for="import-types-overwrite" class="checkbox"><?php _e("<strong>Overwrite</strong> existing field type extensions with those included in the imported package", MASTERPRESS_DOMAIN); ?></label> </div> </div> <!-- /.f --> <div class="f f-mode"> <p> <?php _e("When items are present in the existing setup, but not in the imported Masterplan:", MASTERPRESS_DOMAIN) ?> </p> <div class="fw"> <input id="import-mode-replace" name="import_mode" value="replace" checked="checked" type="radio" class="radio" /> <label for="import-mode-replace" class="radio"><?php _e('Remove the items from the existing setup ( <strong class="replace">completely replace</strong> the existing setup )', MASTERPRESS_DOMAIN); ?></label> </div> <div class="fw"> <input id="import-mode-append" name="import_mode" value="append" type="radio" class="radio" /> <label for="import-mode-append" class="radio"><?php _e('Keep the items in the existing setup ( <strong class="append">append to</strong> the existing setup )', MASTERPRESS_DOMAIN); ?></label> </div> </div> <!-- /.f --> </div> <!-- /.content --> </div> <div id="import-preview" class="import-preview"> <input type="hidden" name="tab" value="import" /> <input id="import-masterplan" type="hidden" name="import_masterplan" value="" /> <?php // build a template list for the importer, since get_page_templates() is not available early in execution foreach (get_page_templates() as $template => $file) : ?> <input name="templates[<?php echo $file ?>]" type="hidden" value="<?php echo $template ?>" /> <?php endforeach; ?> <div id="import-rep"> <div class="fsi post-types"> <div class="fsibv"> <div class="fsit"> <h4 class="post-types"><i class="pin"></i><?php _e("Post Types", MASTERPRESS_DOMAIN) ?></h4> </div> <div class="fsic"> <ul class="object-tree post-types"> </ul> </div> <!-- /.fsic --> </div> </div> <!-- /.fsi --> <div class="fsi taxonomies"> <div class="fsibv"> <div class="fsit"> <h4 class="taxonomies"><i class="tag"></i><?php _e("Taxonomies", MASTERPRESS_DOMAIN) ?></h4> </div> <div class="fsic"> <ul class="object-tree taxonomies"> </ul> </div> <!-- /.fsic --> </div> </div> <!-- /.fsi --> <div class="fsi shared-field-sets"> <div class="fsibv"> <div class="fsit"> <h4 class="shared-field-sets"><i class="metabox-share"></i><?php _e("Shared Field Sets", MASTERPRESS_DOMAIN) ?></h4> </div> <div class="fsic"> <ul class="object-tree shared-field-sets field-sets"> </ul> </div> <!-- /.fsic --> </div> </div> <!-- /.fsi --> <div class="fsi site-field-sets"> <div class="fsibv"> <div class="fsit"> <h4 class="site-field-sets"><i class="sitemap"></i><?php _e("Site Field Sets", MASTERPRESS_DOMAIN) ?></h4> </div> <div class="fsic"> <ul class="object-tree site-field-sets field-sets"> </ul> </div> <!-- /.fsic --> </div> </div> <!-- /.fsi --> <div class="fsi templates"> <div class="fsibv"> <div class="fsit"> <h4 class="templates"><i class="template"></i><?php _e("Templates", MASTERPRESS_DOMAIN) ?></h4> </div> <div class="fsic"> <ul class="object-tree"> </ul> </div> <!-- /.fsic --> </div> </div> <!-- /.fsi --> <div class="fsi roles"> <div class="fsibv"> <div class="fsit"> <h4 class="roles"><i class="user-role"></i><?php _e("User Roles", MASTERPRESS_DOMAIN) ?></h4> </div> <div class="fsic"> <ul class="object-tree"> </ul> </div> <!-- /.fsic --> </div> </div> <!-- /.fsi --> </div> <!-- /#import-rep --> </div> <!-- /#import-summary --> <?php MPV::form_close() ?> <?php else: ?> <?php endif; ?> </div> <!-- /#masterplan-import --> <?php endif; ?> <?php if (MasterPress::current_user_can("backup_masterplan")) : ?> <div id="masterplan-backup" class="masterplan-export tab-panel" style="display: none;"> <ul class="mp-messages"> <li class="notification"><?php _e("Note - this utility does <b>not</b> backup your WordPress content.", MASTERPRESS_DOMAIN) ?></li> </ul> <?php MPV::form_open() ?> <div id="backup-progress" class="progress"> <?php _e("Backing up Masterplan. Please wait…", MASTERPRESS_DOMAIN) ?> </div> <!-- /#backup-progress --> <div id="backup-summary" class="summary"> <div id="backup-message"> <p><?php _e("Backup created successfully", MASTERPRESS_DOMAIN) ?></p> </div> <!-- /#backup-message --> <div id="backup-extras-summary" class="extras-summary"> <p> <?php _e("Note: the following dependent files were included in the Masterplan package", MASTERPRESS_DOMAIN) ?> </p> <div id="backup-extras-icons"> <h4><?php _e("Icons", MASTERPRESS_DOMAIN); ?></h4> <ul> </ul> </div> <!-- /#backup-extras-icons --> <div id="backup-extras-types"> <h4><?php _e("Field Types", MASTERPRESS_DOMAIN); ?></h4> <ul> </ul> </div> <!-- /#backup-extras-field-types --> </div> <!-- /#backup-extras-summary --> </div> <div id="backup-ui"> <div class="title"> <h4 class="package-file"><i class="zip"></i><?php _e("Package File", MASTERPRESS_DOMAIN) ?></h4> <button id="button-backup" type="submit" class="button-export simple-primary">Backup</button> </div> <!-- /.title --> <div id="f-backup-filename" class="f"> <label for="backup_filename"><?php _e("Name:", MASTERPRESS_DOMAIN) ?></label> <div class="fw"> <span id="backup_filename_prefix" class="note">_backup.</span> <input id="backup_filename" spellcheck="false" name="backup_filename" type="text" value="" class="text" /> <input id="backup_filename_suffix" spellcheck="false" name="backup_filename_suffix" type="hidden" value="<?php echo ".".$wf->format_date("[date-time-sortable]") ?>.masterplan.zip" class="text" /> <span id="backup_filename_extension" class="note"><?php echo ".".$wf->format_date("[date-time-sortable]") ?>.masterplan.zip</span> </div> <!-- /.fw --> <p id="backup_note"><?php _e("Use the editable field as a way to tag the backup for reference later ( optional )") ?></p> </div> <!-- /.f --> <div id="backup-readme"> <h4 class="readme"><i class="document-text"></i><?php _e('Read Me<span> - this Markdown-formatted text will be stored in <span class="tt">README.markdown</span> inside the Masterplan backup</span>', MASTERPRESS_DOMAIN); ?></h4> <div id="f-backup_readme"> <textarea id="backup_readme" name="backup_readme"> # Masterplan Backup for <?php echo $wf->sites()->first()->name ?> # + By: <?php echo $wf->the_user()->fullname() ?> + Created: <?php echo $wf->format_date("[date-time-long]") ?> ------------------------------------------------- </textarea> </div> </div> <!-- /#backup-readme --> </div> <?php MPV::form_close() ?> </div> <!-- /#masterplan-backup --> <?php endif; ?> <?php if (MasterPress::current_user_can("restore_masterplan")) : ?> <?php if (count($backups)) : ?> <div id="masterplan-restore" class="tab-panel <?php echo $tab == "restore" ? 'current' : '' ?>"> <?php MPV::form_open() ?> <div class="title"> <h4 class="package-file"><i class="zip"></i><?php _e("Package Selection", MASTERPRESS_DOMAIN) ?> - <span><?php _e("select a backup package to restore from", MASTERPRESS_DOMAIN) ?></span></h4> <button id="button-restore" type="submit" class="button-restore simple-primary">Restore</button> </div> <!-- /.title --> <div id="f-restore-file" class="f"> <label for="restore-masterplan" class="select"><?php _e("File:", MASTERPRESS_DOMAIN) ?></label> <div class="fw"> <select id="restore-masterplan" data-empty="<?php _e("Please Select a Masterplan to restore", MASTERPRESS_DOMAIN) ?>" name="restore_masterplan"> <option value=""><?php _e("Select a backup package") ?></option> <?php foreach ( $backups as $backup ) : ?> <option value="<?php echo $backup["file"] ?>"><?php echo $backup["label"] ?></option> <?php endforeach; ?> </select> </div> <?php MPV::form_close() ?> </div> <!-- /#masterplan-restore --> <?php endif; ?> <?php endif; ?> </div> </div> </div> <!-- /.fs .fs-masterplan --> <?php }
public function grid($id = null) { // include controllers to obtain correct URLs for actions MPV::incl("field-sets"); MPV::incl("taxonomy-field-sets"); MPV::incl("post-types"); MPC::incl("post-types"); $taxonomies = MPM_Taxonomy::find("orderby=disabled,name ASC"); $has_actions = MasterPress::current_user_can("edit_taxonomies,delete_taxonomies,manage_taxonomy_field_sets"); $can_edit = MasterPress::current_user_can("edit_taxonomies"); $can_delete = MasterPress::current_user_can("delete_taxonomies"); $can_create = MasterPress::current_user_can("create_taxonomies"); $can_manage_field_sets = MasterPress::current_user_can("manage_taxonomy_field_sets"); $less = ($can_create) ? 1 : 0; $colspan = ( $has_actions ? 8 : 7 ) - $less; foreach ($taxonomies as $tax) { if (MPC::is_deleting($tax->id)) { self::confirm_delete($tax); } } ?> <?php MPV::messages(); ?> <table cellspacing="0" class="grid grid-taxonomies"> <thead> <tr> <th class="first title-icon"><i class="image-small"></i><span class="ac" title="<?php _e("Title Icon", MASTERPRESS_DOMAIN) ?>"><?php _e("Title Icon", MASTERPRESS_DOMAIN) ?></span></th> <th class="menu-label"><i class="label-string"></i><span><?php _e("Menu Label", MASTERPRESS_DOMAIN) ?></span></th> <th class="taxonomy-name"><i class="tag"></i><span><?php _e("Name", MASTERPRESS_DOMAIN) ?></span></th> <th class="hierarchical"><i class="hierarchy"></i><span class="ac" title="<?php _e("Hierarchical?", MASTERPRESS_DOMAIN) ?>"><?php _e("Hierarchical?", MASTERPRESS_DOMAIN) ?></span></th> <th class="field-sets"><i class="metaboxes"></i><span><?php _e("Field Sets", MASTERPRESS_DOMAIN) ?></span></th> <th class="shared-field-sets"><i class="share-metaboxes"></i><span><?php _e("Shared Field Sets", MASTERPRESS_DOMAIN) ?></span></th> <th class="post-types <?php echo $has_actions ? "" : "last" ?>"><i class="pins"></i><span><?php _e("Post Types", MASTERPRESS_DOMAIN) ?></span></th> <?php if ($has_actions) : ?> <th class="actions last"><i class="buttons"></i><span><?php _e("Actions", MASTERPRESS_DOMAIN) ?></span></th> <?php endif; ?> </tr> </thead> <tbody> <?php $count = 0; ?> <?php foreach ($taxonomies as $tax) : $disabled = $tax->disabled ? "disabled" : ""; $title = $tax->disabled ? ' title="'.__("this taxonomy is disabled", MASTERPRESS_DOMAIN).'" ' : ""; ?> <?php if (!$tax->in_current_site()) { $disabled = "disabled"; $title = ' title="'.__("this taxonomy is not currently available in this site (multi-site setting)", MASTERPRESS_DOMAIN).'" '; } ?> <?php $deleting_class = MPC::is_deleting($tax->id, "delete") ? 'deleting' : ''; $editable_class = $can_edit ? " editable " : ""; $meta = $can_edit ? "{ href: '".MasterPress::admin_url("taxonomies", "edit", "id=".$tax->id)."' }" : ""; ?> <?php if ($tax->still_registered()) : $count++; $first = $count == 1 ? 'first' : ''; ?> <tr <?php echo $title ?> class="<?php echo $first ?> <?php echo $editable_class.$deleting_class ?> <?php echo $disabled ?> <?php echo MPV::updated_class("edit,create", $tax->id) ?> <?php echo $count % 2 == 0 ? "even" : "" ?> sub <?php echo $meta ?>"> <td class="first menu-icon icon"><span class="mp-icon-taxonomy mp-icon-taxonomy-<?php echo $tax->name ?>"></span></td> <td class="menu-label"><strong><?php echo $tax->labels["menu_name"] ?></strong></td> <td class="taxonomy-name"><span class="tt"><?php echo $tax->name ?></span></td> <td class="hierarchical"><?php echo $tax->hierarchical ? '<i class="tick-small"></i><span class="ac">yes</span>' : '<span class="note">–</span>' ?></td> <?php $field_sets = $tax->field_sets(); ?> <?php if ($tax->show_ui) : ?> <td class="field-sets <?php echo $can_manage_field_sets ? "manage { href: '".MasterPress::admin_url( "taxonomies", "manage-field-sets", "parent=".$tax->id)."' }" : "" ?>"> <?php if ($can_manage_field_sets) : ?> <a href="<?php echo MasterPress::admin_url( "taxonomies", "manage-field-sets", "parent=".$tax->id)?>" title="<?php echo strip_tags(self::__manage( MPV_TaxonomyFieldSets::__p() )) ?>"> <i class="go"></i> <?php endif; ?> <?php $field_set_display = MPV::note_none(); if (count($field_sets)) { $field_set_links = array(); foreach ($field_sets as $field_set) { if (!$field_set->is_shared()) { $field_set_links[] = $field_set->display_label(); } } if (count($field_set_links)) { $field_set_display = implode($field_set_links, ", "); } } echo $field_set_display; ?> <?php if ($can_manage_field_sets) : ?> </a> <?php endif; ?> </td> <?php else: ?> <td class="field-sets"> <span title="<?php _e("This taxonomy does not support field sets as the 'show ui' parameter is off", MASTERPRESS_DOMAIN); ?>"><i class="na"></i><?php _e("N/A", MASTERPRESS_DOMAIN); ?></span> </td> <?php endif; ?> <?php if ($tax->show_ui) : ?> <td class="shared-field-sets"> <?php $field_set_display = MPV::note_none(); if (count($field_sets)) { $field_set_links = array(); foreach ($field_sets as $field_set) { if ($field_set->is_shared()) { $field_set_links[] = $field_set->display_label(); } } if (count($field_set_links)) { $field_set_display = implode($field_set_links, ", "); } } echo $field_set_display; ?> </td> <?php else: ?> <td class="shared-field-sets"> <span title="<?php _e("This taxonomy does not support shared field sets as the 'show ui' parameter is off", MASTERPRESS_DOMAIN); ?>"><i class="na"></i><?php _e("N/A", MASTERPRESS_DOMAIN); ?></span> </td> <?php endif; ?> <td class="post-types <?php echo $has_actions ? "" : "last" ?>"> <?php $post_types = $tax->post_types(); $post_type_display = MPV::note_none(); if (count($post_types)) { $post_type_links = array(); foreach ($post_types as $post_type) { $post_type_links[] = $post_type->labels["name"]; } $post_type_display = implode($post_type_links, ", "); } echo $post_type_display; ?> </td> <?php $field_sets = $tax->field_sets(); ?> <?php if ($has_actions) : ?> <td class="actions last"> <div> <?php if (MPC::is_deleting($tax->id)) : ?> <span class="confirm-action"> </span> <?php else: ?> <?php if ($can_manage_field_sets) : ?> <?php if ($tax->show_ui) : ?> <?php echo MPV::action_button("taxonomies", "manage-field-sets", self::__manage( MPV_FieldSets::__p_short() ), "parent=".$tax->id, array("class" => "button button-manage")); ?> <?php else: ?> <?php echo MPV::action_button("taxonomies", "manage-field-sets", self::__manage( MPV_FieldSets::__p_short() ), "parent=".$tax->id, array("title" => "This taxonomy does not support field sets as the 'show ui' parameter is off", "disabled" => "disabled", "class" => "button button-manage")); ?> <?php endif; ?> <?php endif; ?> <?php if ($can_edit) : ?> <?php echo MPV::action_button("taxonomies", "edit", self::__edit( "" ), "id=".$tax->id, array( "class" => "button primary button-edit" )); ?> <?php endif; ?> <?php if ($can_delete) : ?> <?php if ($tax->_builtin) : ?> <span class="note" title="<?php _e("This taxonomy cannot be deleted as it is built-in to WordPress", MASTERPRESS_DOMAIN) ?>"><?php _e("( Built-in )", MASTERPRESS_DOMAIN) ?></span> <?php elseif ($tax->_external) : ?> <span class="note" title="<?php _e("This taxonomy cannot be deleted as it was not created by MasterPress", MASTERPRESS_DOMAIN) ?>"><?php _e("( External )", MASTERPRESS_DOMAIN) ?></span> <?php else : ?> <?php echo MPV::action_button("taxonomies", "delete", self::__delete( "" ), "id=".$tax->id, array( "class" => "button button-delete" )); ?> <?php endif; ?> <?php endif; ?> <?php endif; ?> </div> </td> <?php endif; // has_actions ?> </tr> <?php endif; ?> <?php endforeach; ?> <tr class="summary <?php echo $can_create ? "editable" : "" ?>"> <td colspan="<?php echo $colspan ?>" class="first <?php echo $can_create ? "" : "last" ?>"><?php _e( MPU::__items( $count, __("%d Taxonomies", MASTERPRESS_DOMAIN), __("%d Taxonomies", MASTERPRESS_DOMAIN) ) ) ?></td> <?php if ($can_create) : ?> <td class="last actions"> <?php echo MPV::action_button("taxonomies", "create", self::__create(MPV_Taxonomies::__s()), "", array( "class" => "button button-create" )); ?> </td> <?php endif; ?> </tr> </tbody> </table> <?php } // end grid()
public function grid() { MPC::incl("post-types"); MPV::incl("fields"); MPV::incl("post-types"); $info = MasterPress::$view; $taxonomy_id = MasterPress::$parent; $tax = MPM_Taxonomy::find_by_id($taxonomy_id); ?> <div class="title-info-panel"> <div class="title-info-panel-lt"> <h3><i class="mp-icon mp-icon-taxonomy mp-icon-taxonomy-<?php echo $tax->name ?>"></i><span class="label"><?php _e("Taxonomy:", MASTERPRESS_DOMAIN) ?></span><span class="value"> <?php echo $tax->display_label() ?></span></h3> </div> </div> <?php MPV::messages(); ?> <div class="grid-set"> <?php $field_sets = MPM_TaxonomyFieldSet::find_by_taxonomy( $tax, "name" ); ?> <?php MPV::field_set_icon_styles($field_sets); ?> <?php $has_actions = MasterPress::current_user_can("edit_taxonomy_field_sets,delete_taxonomy_field_sets,edit_taxonomy_fields,delete_taxonomy_fields"); $can_edit = MasterPress::current_user_can("edit_taxonomy_field_sets"); $can_delete = MasterPress::current_user_can("delete_taxonomy_field_sets"); $can_create = MasterPress::current_user_can("create_taxonomy_field_sets"); $can_edit_fields = MasterPress::current_user_can("edit_taxonomy_fields"); $can_delete_fields = MasterPress::current_user_can("delete_taxonomy_fields"); $can_create_fields = MasterPress::current_user_can("create_taxonomy_fields"); $less = ($can_create_fields) ? 1 : 0; $colspan = ( $has_actions ? 4 : 3 ) - $less; foreach ($field_sets as $field_set) { if (MPC::is_deleting($field_set->id, "delete-field-set")) { $this->confirm_delete($field_set); } else { foreach ($field_set->fields() as $field) { if (MPC::is_deleting($field->id, "delete-field")) { $this->confirm_delete_field($field); } } } } ?> <?php $fg_count = 0; ?> <?php if (count($field_sets)) : ?> <table cellspacing="0" class="grid grid-field-sets"> <thead> <tr> <th class="first type"><i class="types"></i><span><?php _e("Type", MASTERPRESS_DOMAIN) ?></span></th> <th class="label"><i class="label-string"></i><span><?php _e("Label", MASTERPRESS_DOMAIN) ?></span></th> <th class="front-end-name <?php echo $has_actions ? "" : "last" ?>"><i class="script-php"></i><span><?php _e("Front End Name", MASTERPRESS_DOMAIN) ?></span></th> <?php if ($has_actions) : ?> <th class="actions last"><i class="buttons"></i><span><?php _e("Actions", MASTERPRESS_DOMAIN) ?></span></th> <?php endif; ?> </tr> </thead> <tbody> <?php foreach ($field_sets as $field_set) : $fg_count++; ?> <?php $display = $field_set->display_label(); ?> <?php $display_td = $display; if ($field_set->icon != "") { $display_td = WOOF_HTML::tag("span", array("class" => "with-icon field-set-".$field_set->id), $display); } ?> <?php $deleting_class = MPC::is_deleting($field_set->id, "delete-field-set") ? 'deleting' : ''; $editable_class = $can_edit ? " editable " : ""; $meta = $can_edit ? "{ href: '".MasterPress::admin_url("taxonomies", "edit-field-set", array("id" => $field_set->id, "parent" => $taxonomy_id) )."' }" : ""; ?> <?php $disabled = $field_set->disabled ? "disabled" : ""; $title = $field_set->disabled ? ' title="'.__("this field set is disabled", MASTERPRESS_DOMAIN).'" ' : ""; ?> <?php if (!$field_set->in_current_site()) { $disabled = "disabled"; $title = ' title="'.__("this field set is not currently available in this site (multi-site setting)", MASTERPRESS_DOMAIN).'" '; } ?> <tr <?php echo $title ?> class="<?php echo $disabled ?> <?php echo $editable_class.$deleting_class ?> <?php echo MPV::updated_class("edit-field-set,create-field-set", $field_set->id) ?> <?php echo $meta ?>"> <?php if ($field_set->allow_multiple) : ?> <th class="first type icon"><i class="metabox-add-remove-large" title="<?php _e("Field Set (Multiple Items)", MASTERPRESS_DOMAIN) ?>"></i></th> <?php else : ?> <th class="first type icon"><i class="metabox-large" title="<?php _e("Field Set", MASTERPRESS_DOMAIN) ?>"></i></th> <?php endif; ?> <th class="label"><strong><?php echo $display_td ?></strong></th> <th class="front-end-name <?php echo $has_actions ? "" : "last" ?>"><span class="tt"><?php echo $field_set->display_name() ?></span></th> <?php if ($has_actions) : ?> <th class="actions last"> <div> <?php if (MPC::is_deleting($field_set->id, "delete-field-set")) : ?> <span class="confirm-action"> </span> <?php else: ?> <?php if ($can_edit) : ?> <?php echo MPV::action_button("taxonomies", "edit-field-set", self::__edit(), array("id" => $field_set->id, "parent" => $taxonomy_id), array("class" => "button button-edit") ); ?> <?php endif; ?> <?php if ($can_delete) : ?> <?php echo MPV::action_button("taxonomies", "delete-field-set", self::__delete(), array("id" => $field_set->id, "parent" => $taxonomy_id), array("class" => "button button-delete") ); ?> <?php endif; ?> <?php endif; ?> </div> </th> <?php endif; // has_actions ?> </tr> <?php $count = 0; $fields = $field_set->fields(); ?> <?php foreach ($fields as $field) : $count++; $first = $count == 1 ? 'first' : ''; $disabled = $field_set->disabled || $field->disabled ? "disabled" : ""; $title = $field_set->disabled ? ' title="'.__("this field is disabled", MASTERPRESS_DOMAIN).'" ' : ""; ?> <?php if (!$field_set->in_current_site() || !$field->in_current_site()) { $disabled = "disabled"; $title = ' title="'.__("this field is not currenty available in this site (multi-site setting)", MASTERPRESS_DOMAIN).'" '; } ?> <?php $deleting_class = MPC::is_deleting($field_set->id, "delete-field-set") || MPC::is_deleting($field->id, "delete-field") ? 'deleting' : ''; $editable_class = $can_edit_fields ? " editable " : ""; $meta = $can_edit ? "{ href: '".MasterPress::admin_url("taxonomies", "edit-field", array("id" => $field->id, "gparent" => $_GET["parent"], "parent" => $field_set->id) )."' }" : ""; ?> <?php if ($type_class = MPFT::type_class($field->type)) : ?> <tr <?php echo $title ?> class="sub <?php echo $editable_class.$deleting_class ?> <?php echo $disabled ?> <?php echo $first ?> <?php echo $count % 2 == 0 ? "even" : "" ?> <?php echo MPV::updated_class("edit-field,create-field", $field->id) ?> <?php echo $meta ?>"> <td class="type icon first" title="<?php echo call_user_func( array($type_class, "__s") ) ?>"><span class="mp-icon mp-icon-field-type-<?php echo $field->type ?>"></span></td> <td class="label"><?php echo $field->display_label() ?></td> <td class="front-end-name <?php echo $has_actions ? "" : "last" ?>"><span class="tt"><span class="arrow">-> </span><?php echo $field->display_name() ?></span></td> <?php if ($has_actions) : ?> <td class="actions last"> <?php if (MPC::is_deleting($field->id, "delete-field")) : ?> <span class="confirm-action"> </span> <?php else: ?> <div> <?php if ($can_edit_fields) : ?> <?php echo MPV::action_button("taxonomies", "edit-field", self::__edit(), array("id" => $field->id, "gparent" => $_GET["parent"], "parent" => $field_set->id), array("class" => "button button-edit") ); ?> <?php endif; ?> <?php if ($can_delete_fields) : ?> <?php echo MPV::action_button("taxonomies", "delete-field", self::__delete(), array("id" => $field->id, "gparent" => $_GET["parent"], "parent" => $taxonomy_id), array("class" => "button button-delete") ); ?> <?php endif; ?> </div> <?php endif; ?> </td> <?php endif; // has_actions ?> </tr> <?php endif; ?> <?php endforeach; ?> <tr class="summary <?php echo $can_create_fields ? "editable" : "" ?>"> <?php if (count($fields)) : ?> <td colspan="<?php echo $colspan ?>" class="first <?php echo $can_create_fields ? "" : "last" ?>"><?php printf( __( "%s contains %s", MASTERPRESS_DOMAIN ), $display, MPU::__items( $field_set->field_count(), __("%d custom field", MASTERPRESS_DOMAIN), __("%d custom fields", MASTERPRESS_DOMAIN) ) ) ?></td> <?php else: ?> <td colspan="<?php echo $colspan ?>" class="hl first last"><span><?php printf( __( "<strong>%s</strong> is not yet active as it contains contains <em>no custom fields</em>. Click here to create one", MASTERPRESS_DOMAIN ), $display ); ?></span></td> <?php endif; ?> <?php if ($can_create_fields) : ?> <td class="last actions <?php echo count($fields) ? "" : "hl" ?>"> <?php echo MPV::action_button("taxonomies", "create-field", self::__create(MPV_Fields::__s()), array("gparent" => $_GET["parent"], "parent" => $field_set->id), array("class" => "button create-field") ); ?> </td> <?php endif; // can_create_fields ?> </tr> <tr class="gap <?php if ($fg_count == count($field_sets)) { echo "gap-last"; } ?>"> <td colspan="4"> </td> </tr> <?php endforeach; ?> </tbody> </table> <?php if ($can_create) : ?> <div class="grid-foot-controls"> <?php echo MPV::action_button("taxonomies", "create-field-set", MPV::__create( MPV_TaxonomyFieldSets::__s() ), array( "parent" => $taxonomy_id ) ); ?> </div> <?php endif; ?> <?php else: ?> <?php if ($can_create) : ?> <a href="<?php echo MasterPress::admin_url("taxonomies", "create-field-set", array("parent" => MasterPress::$parent ) ) ?>" class="no-items-create"> <i class="plus-circle"></i> <span><?php printf( __( "The '<em>%s</em>' taxonomy currently has <em>no field sets</em>. Click here to create one.", MASTERPRESS_DOMAIN ), $tax->display_label() ) ?></span> </a> <?php endif; ?> <?php endif; ?> </div> <?php } // end grid()
public function form() { global $wf; $model = MasterPress::$model; $info = MasterPress::$view; $parent = $info->parent; $post_type = null; $post_type = $info->post_type; $prefix = ""; $default_key = ""; $keys = array(); ?> <?php if (is_object($parent)) : ?> <div class="title-info-panel"> <div class="title-info-panel-lt"> <?php if ($parent->type == 's') : ?> <h3><i class="metabox-share"></i><span class="label"><?php _e("Shared Field Set", MASTERPRESS_DOMAIN) ?>:</span><span class="value"> <?php echo $parent->display_label() ?></span></h3> <?php elseif ($parent->type == 'w') : ?> <h3><i class="metabox-sitemap-large"></i><span class="label"><?php _e("Site Field Set", MASTERPRESS_DOMAIN) ?>:</span><span class="value"> <?php echo $parent->display_label() ?></span></h3> <?php elseif ($parent->type == "p") : ?> <?php $prefix = $post_type->name."_"; $keys = array("edit_".$post_type->capability_type."s"); ?> <h3><i class="mp-icon mp-icon-post-type mp-icon-post-type-<?php echo $post_type->name ?>"></i><span class="label"><?php _e("Post Type", MASTERPRESS_DOMAIN) ?>:</span><span class="value"> <?php echo $post_type->display_label() ?></span></h3> <h3><i class="divide"></i><i class="metabox"></i><span class="label"><?php _e("Field Set", MASTERPRESS_DOMAIN) ?>:</span><span class="value"> <?php echo $parent->display_label() ?></span></h3> <?php elseif ($parent->type == 't') : ?> <?php $file = $parent->visibility["templates"]; $page_templates = array_flip(get_page_templates()); $template_name = $page_templates[$file]; ?> <input id="templates" name="templates" type="hidden" value="<?php echo $file ?>" /> <h3><i class="template"></i><span class="label"><?php _e("Template:", MASTERPRESS_DOMAIN) ?></span><span class="value"> <?php echo $template_name ?></span></h3> <h3><i class="divide"></i><i class="metabox"></i><span class="label"><?php _e("Field Set", MASTERPRESS_DOMAIN) ?>:</span><span class="value"> <?php echo $parent->display_label() ?></span></h3> <?php elseif ($parent->type == 'r') : ?> <?php $role_name = $parent->visibility["roles"]; $prefix = $role_name."_"; ?> <input id="templates" name="templates" type="hidden" value="<?php echo $role_name ?>" /> <h3><i class="user-role"></i><span class="label"><?php _e("User Role:", MASTERPRESS_DOMAIN) ?></span><span class="value"> <?php echo $role_name ?></span></h3> <h3><i class="divide"></i><i class="metabox"></i><span class="label"><?php _e("Field Set", MASTERPRESS_DOMAIN) ?>:</span><span class="value"> <?php echo $parent->display_label() ?></span></h3> <?php elseif ($parent->type == 'x') : ?> <?php $taxonomy_name = $parent->visibility["taxonomies"]; $prefix = $taxonomy_name."_"; $tax = MPM_Taxonomy::find_by_name($taxonomy_name); $keys = array( $tax->capabilities["manage_terms"], $tax->capabilities["edit_terms"], $tax->capabilities["assign_terms"] ); ?> <input id="taxonomies" name="taxonomies" type="hidden" value="<?php echo $taxonomy_name ?>" /> <h3><i class="mp-icon mp-icon-taxonomy-<?php echo $taxonomy_name ?>"></i><span class="label"><?php _e("Taxonomy:", MASTERPRESS_DOMAIN) ?></span><span class="value"> <?php echo $tax->display_label() ?></span></h3> <h3><i class="divide"></i><i class="metabox"></i><span class="label"><?php _e("Field Set", MASTERPRESS_DOMAIN) ?>:</span><span class="value"> <?php echo $parent->display_label() ?></span></h3> <?php endif; ?> </div> </div> <?php endif; ?> <?php MPV::messages(); ?> <div class="mpv-fields-form"> <div class="f"> <label for="name" class="icon"><i class="script-php"></i><?php _e("Name", MASTERPRESS_DOMAIN)?>:</label> <div class="fw"> <input id="name_original" name="name_original" type="hidden" class="text mono key" maxlength="20" value="<?php echo $model->name ?>" /> <input id="name_last" name="name_last" type="hidden" class="text mono key" maxlength="20" value="<?php echo $model->name ?>" /> <input id="name" name="name" type="text" class="text mono key" maxlength="255" value="<?php echo $model->name ?>" /><em class="required">(required)</em> <p> <?php _e("This is a unique identifier for the field in the MasterPress API. Since it can be used as a PHP variable name, it is restricted to being a lowercase string with words separated by underscores.", MASTERPRESS_DOMAIN); ?> </p> </div> </div> <!-- /.f --> <div id="f-type" class="f clearfix"> <label for="type" class="icon"><i class="types"></i><?php _e("Field Type", MASTERPRESS_DOMAIN)?>:</label> <div class="fw"> <select id="type" name="type" class="with-icons select2-source" data-icon="mp-icon mp-icon-field-type-<?php echo $model->type ?>"> <?php foreach (MPFT::types_by_category() as $category => $types) : ?> <?php if (count($types)) : ?> <optgroup label="<?php echo $category ?>"> <?php foreach ($types as $type) : ?> <?php $type_class = MPFT::type_class($type); ?> <option data-icon="mp-icon mp-icon-field-type-<?php echo $type ?>" <?php echo WOOF_HTML::selected_attr($type == $model->type) ?> data-description="<?php echo addslashes(call_user_func( array($type_class, "__description") ) ) ?>" value="<?php echo $type ?>"><?php echo call_user_func( array($type_class, "__s") ) ?></option> <?php endforeach; ?> </optgroup> <?php endif; ?> <?php endforeach; ?> </select> <p id="field-type-description"></p> </div> </div> <!-- /.f --> <div class="f"> <label for="required" class="icon"><i class="warning-octagon"></i><?php _e("Required", MASTERPRESS_DOMAIN) ?>?</label> <div class="fw"> <input id="required" name="required" type="checkbox" value="true" <?php echo WOOF_HTML::checked_attr( $model->required ) ?> class="checkbox" /> <p class="checkbox-alt-label { for_el: '#required' }"> <?php _e("A field value must be specified by the user, or the content editing form will not submit.", MASTERPRESS_DOMAIN); ?> </p> </div> </div> <!-- /.f --> <div id="f-disabled" class="f"> <label for="disabled" class="icon"><i class="slash"></i><?php _e("Disabled", MASTERPRESS_DOMAIN) ?>?</label> <div class="fw"> <input id="disabled" name="disabled" type="checkbox" value="true" <?php echo WOOF_HTML::checked_attr( $model->disabled ) ?> class="checkbox" /> <p class="checkbox-alt-label { for_el: '#disabled' }"> <?php _e("disabling a field will hide it from all content editing screens in WordPress, which may be <strong>preferable to deleting it</strong> completely.", MASTERPRESS_DOMAIN); ?> </p> </div> </div> <!-- /.f --> <?php $options_form = ""; $type_options = $model->type_options; if (isset($_POST["type_options"])) { $type_options = $_POST["type_options"]; } if ($type_class = MPFT::type_class($model->type)) { $options_form = call_user_func_array( array($type_class, "options_form"), array(MPM::array_stripslashes($type_options)) ); } ?> <div class="fs fs-field-type-options" <?php echo $options_form == "" ? ' style="display:none;"' : '' ?>> <div class="fst"> <div class="fstb"> <h3><i class="switch"></i><strong><?php _e("Field Type Options", MASTERPRESS_DOMAIN) ?></strong> - <?php _e("defines the user-interface for this field", MASTERPRESS_DOMAIN) ?></h3> </div> </div> <div class="fsc"> <div class="fscb"> <div id="field-type-loading" class="fs-loading">Please wait…</div> <div id="field-type-options-content"> <?php if ($type_class = MPFT::type_class($model->type)): ?> <div id="mpft-<?php echo $model->type ?>-options" class="mpft-options"> <?php echo $options_form ?> </div> <?php endif; ?> </div> <!-- /#field-type-options-content --> </div> </div> </div> <!-- /.fs --> <div class="fs fs-labels"> <div class="fst"> <div class="fstb"> <h3><i class="label-string"></i><strong><?php _e("Labels", MASTERPRESS_DOMAIN) ?></strong> - <?php _e("displayed throughout the WordPress administration UI", MASTERPRESS_DOMAIN) ?></h3> </div> </div> <div class="fsc"> <div class="fscb"> <div class="f"> <label for="label_name"><?php _e("Field Label", MASTERPRESS_DOMAIN) ?>:</label> <div class="fw"> <input id="label_name" name="labels[name]" value="<?php echo stripslashes($model->labels["name"]) ?>" type="text" class="text { tmpl: '{{name}}' }" /> <em class="recommended">(recommended)</em> </div> </div> <!-- /.f --> <div class="f"> <label for="label_description"><?php _e("Description", MASTERPRESS_DOMAIN)?>:</label> <div class="fw"> <input id="label_description" name="labels[description]" type="text" maxlength="50" value="<?php echo stripslashes($model->label("description")) ?>" class="text" /> <p> <?php _e("Appears adjacent to the label in brackets to provide a little extra information about the field.<br />For more extensive information, use <em>Tooltip Help</em>.", MASTERPRESS_DOMAIN); ?> </p> </div> </div> <!-- /.f --> <div class="f"> <label for="label_tooltip_help"><?php _e("Tooltip Help", MASTERPRESS_DOMAIN)?>:</label> <div class="fw"> <textarea id="label_tooltip_help" name="labels[tooltip_help]"><?php echo stripslashes($model->label("tooltip_help")) ?></textarea> <p> <?php _e("Provides more extensive help for this field through a tooltip, revealed by mousing over a question-mark badge adjacent to the field label", MASTERPRESS_DOMAIN); ?> </p> </div> </div> <!-- /.f --> </div> </div> </div> <!-- /.fs .fs-labels --> <?php $args = array(); $args["supports"] = array(); // $args["supports"][] = "fields"; COMING SOON $fields = $parent->fields(); $fields_to_use = array(); foreach ($fields as $field) { if ($field->id != $model->id) { $fields_to_use[] = $field; } } $args["fields"] = $fields_to_use; if (is_multisite()) { $args["supports"][] = "multisite"; } if ($parent->is_shared()) { $args["supports"][] = "post_types"; $args["supports"][] = "roles"; $args["supports"][] = "taxonomies"; $args["supports"][] = "templates"; } $args["labels"] = array( "title" => __("control the visibility of this field within WordPress", MASTERPRESS_DOMAIN), "title_multisite" => __("specify the sites in the multisite network that this field is available in", MASTERPRESS_DOMAIN), "title_post_types" => __("specify the post types that this field is available in", MASTERPRESS_DOMAIN), "templates_all" => sprintf( __( "All Templates <span>( that the <em>%s</em> field set is available in )</span>" ), $parent->display_label() ), "multisite_all" => sprintf( __( "All Sites <span>( that the <em>%s</em> field set is available in )</span>" ), $parent->display_label() ), "post_types_all" => sprintf( __( "All Post Types <span>( that the <em>%s</em> field set is available in )</span>" ), $parent->display_label() ), "roles_all" => sprintf( __( "All User Roles <span>( that the <em>%s</em> field set is available in )</span>" ), $parent->display_label() ), "taxonomies_all" => sprintf( __( "All Taxonomies <span>( that the <em>%s</em> field set is available in )</span>" ), $parent->display_label() ) ); $args["defaults"] = array( "taxonomies" => "all", "roles" => "all", "post_types" => "all", "multisite" => "all" ); $args["post_types"] = $parent->post_types(); if (isset($parent) && is_multisite()) { $site_options = array(); foreach ($parent->sites() as $site) { $site_options[$site->full_path()] = $site->id(); } $args["sites"] = $site_options; }; // filter the available roles $roles = $parent->vis("roles"); if ($roles != "" && $roles != "*") { $role_names = explode(",", $roles); $rc = array(); foreach ($role_names as $role_name) { $rc[] = $wf->role($role_name); } $args["roles"] = new WOOF_Collection($rc); } MPV::fs_visibility( $model, $args ); ?> <div class="fs fs-capability-keys clearfix"> <div class="fst"> <div class="fstb"> <h3><i class="key"></i><strong><?php _e("Capabilities", MASTERPRESS_DOMAIN) ?></strong> - <?php _e('the keys used to control access to this field', MASTERPRESS_DOMAIN) ?></h3> </div> </div> <div class="fsc"> <div class="fscb clearfix"> <div class="f f-capabilities f-capabilities-editable clearfix"> <label for="label-capabilities-editable"><?php _e("Editable", MASTERPRESS_DOMAIN) ?>:</label> <div class="fw"> <?php $val = $model->capability("editable", false); $custom_val = ""; $caps = array_unique(array_merge($keys, array("edit_posts", "edit_pages", "edit_".$prefix.$parent->name))); $caps = array( __("-- None (Same as Field Set) --", MASTERPRESS_DOMAIN) => "" ) + $caps; if (MPC::is_edit()) { $caps[] = "edit_".$prefix.$parent->name."_".$model->name; } if (!in_array($val, $caps)) { $custom_val = $val; } echo WOOF_HTML::select( array("id" => "capabilities-editable", "name" => "capabilities[editable]", "class" => "capabilities" ), $caps, $val ); ?> <label for="capabilities-editable-custom" class="capabilities-custom"><?php _e("OR custom value") ?></label> <input id="capabilities-editable-custom" name="capabilities_custom[editable]" value="<?php echo $custom_val ?>" type="text" class="text mono capabilities-custom" /> <p class="note"> <?php _e("This field will be read-only for users without this capability", MASTERPRESS_DOMAIN) ?> </p> </div> </div> <!-- /.f --> <div class="f f-capabilities f-capabilities-visible clearfix"> <label for="label-capabilities-visible"><?php _e("Visible", MASTERPRESS_DOMAIN) ?>:</label> <div class="fw"> <?php $val = $model->capability("visible", false); $caps = array_unique(array_merge($keys, array("edit_posts", "edit_pages", "view_".$prefix.$parent->name))); $caps = array( __("-- None (Same as Field Set) --", MASTERPRESS_DOMAIN) => "" ) + $caps; if (MPC::is_edit()) { $caps[] = "view_".$prefix.$parent->name."_".$model->name; } $custom_val = ""; if (!in_array($val, $caps)) { $custom_val = $val; } echo WOOF_HTML::select( array("id" => "capabilities-visible", "name" => "capabilities[visible]", "class" => "capabilities" ), $caps, $val ); ?> <label for="capabilities-visible-custom" class="capabilities-custom"><?php _e("OR custom value") ?></label> <input id="capabilities-visible-custom" name="capabilities_custom[visible]" value="<?php echo $custom_val ?>" type="text" class="text mono capabilities-custom" /> <p class="note"> <?php _e("This field will be invisible for users without this capability", MASTERPRESS_DOMAIN) ?> </p> </div> </div> <!-- /.f --> </div> </div> </div> <!-- /.fs --> <div class="fs fs-summary-options clearfix"> <div class="fst"> <div class="fstb"> <h3><i class="set-summary"></i><strong><?php _e("Summary Options", MASTERPRESS_DOMAIN) ?></strong> - <?php _e('settings for the collapsed summary display', MASTERPRESS_DOMAIN) ?></h3> </div> </div> <div class="fsc"> <div class="fscb clearfix"> <div class="f"> <label for="summary_options_emphasise"><?php _e("Emphasise", MASTERPRESS_DOMAIN) ?>?</label> <div class="fw"> <input id="summary_options_emphasise" name="summary_options[emphasise]" type="checkbox" value="true" <?php echo WOOF_HTML::checked_attr( isset($model->summary_options["emphasise"]) && $model->summary_options["emphasise"] ) ?> class="checkbox" /> <p class="checkbox-alt-label { for_el: '#summary_options_emphasise' }"> <?php _e("Show the summary for this field in <strong>bold text</strong>, which may often be appropriate for the first field in a set, or for other important fields in your content.", MASTERPRESS_DOMAIN); ?> </p> </div> </div> <!-- /.f --> <div class="f f-summary_width"> <label for="summary_options_width"><?php _e("Block Width", MASTERPRESS_DOMAIN) ?>?</label> <div class="fw"> <input id="summary_options_width" name="summary_options[width]" type="text" maxlength="1" value="<?php echo isset($model->summary_options["width"]) ? $model->summary_options["width"] : "" ?>" class="text" /> <p class="note"> <?php _e("Override block width of the summary, when the field's set is collapsed (min value 1, max value 5)<br />Leave this value empty to use the block width recommended by the field type<br />The pixel width of the summary will be the value here x 150.", MASTERPRESS_DOMAIN); ?> </p> </div> </div> <!-- /.f --> <div class="f clearfix"> <label id="label-icon" for="icon"><?php _e("Icon (16 x 16)", MASTERPRESS_DOMAIN) ?>:</label> <div class="fw"> <div id="icon-file-uploader" class="icon-uploader file-uploader { ids: { drop: 'icon_drop_area' }, input: '#icon', inputName: 'icon_ul', base_url: '<?php echo MASTERPRESS_GLOBAL_CONTENT_URL ?>', params: { dir: 'menu-icons/' }, limit: 1, lang: { buttonChoose: '<?php _e("Choose from Computer…", MASTERPRESS_DOMAIN) ?>', buttonReplace: '<?php _e("Replace file…", MASTERPRESS_DOMAIN) ?>' } }"> <div id="icon_drop_area" class="drop-area"><?php _e("Drop file here to upload", MASTERPRESS_DOMAIN) ?></div> <?php $file_name = $model->icon; $file_class = ""; $preview_class = ""; $clear_class = ""; if ($file_name == "") { $file_name = __("( None )", MASTERPRESS_DOMAIN); $file_class = "name-none"; $preview_class = "preview-none"; $clear_class = "hidden"; $style = ""; } else { $style = ' style="background-image: url('.MPU::field_set_icon_url($model->icon).')" '; } ?> <div class="file"> <span class="preview <?php echo $preview_class ?>" <?php echo $style ?>></span><span data-none="<?php echo __("( None )", MASTERPRESS_DOMAIN) ?>" class="name <?php echo $file_class ?>"><?php echo $file_name ?></span> <button type="button" class="<?php echo $clear_class ?> clear ir" title="<?php _e("Clear", MASTERPRESS_DOMAIN) ?>">Clear</button> </div> <input id="icon" name="icon" value="<?php echo $model->icon ?>" type="hidden" /> <div class="uploader-ui"></div> </div> <!-- /.file-uploader --> <?php MPV::icon_select($model->icon, "menu-icon-select", "icon_select", "icon-file-uploader"); ?> </div> </div> <!-- /.f --> </div> </div> </div> <!-- /.fs --> <?php // build a field list $fields = $parent->fields(); ?> <?php if ( ( MPC::is_edit() && count($fields) > 1) || (MPC::is_create() && count($fields) > 0) ) : ?> <div id="f-position" class="f clearfix"> <p class="label label-icon icon position"><?php _e("Position in set", MASTERPRESS_DOMAIN)?>:</p> <div class="fw"> <div class="sortable-list sortable-list-fields"> <span class="arrow"></span> <?php // build a field list $sort_fields = array(); // now build a representable list of fields foreach ($fields as $field) { $position = $field->position; if (isset($_POST["other_position"]) && isset($_POST["other_position"][$field->id])) { $position = $_POST["other_position"][$field->id]; } if ($ftc = MPFT::type_class($field->type)) { $sort_fields[] = array( "position" => $position, "disabled" => (bool) $field->disabled, "current" => $field->id == $model->id, "label" => $field->display_label(), "type" => $field->type, "id" => $field->id ); } } if (MPC::is_create()) { $label = $model->display_label(); if (!$label || $label == "") { $label = "?"; } $sort_fields[] = array( "position" => $model->position, "disabled" => (bool) $field->disabled, "current" => true, "label" => $model->display_label(), "type" => $model->type ); } $count = 0; ?> <ul> <?php foreach ($sort_fields as $f) : $count++; $first = $count == 1 ? "first " : ""; $current = $f["current"] ? 'current ' : ''; ?> <?php $disabled = $f["disabled"] ? 'disabled' : ''; $disabled_title = $f["disabled"] ? __("This field is disabled", MASTERPRESS_DOMAIN) : ''; ?> <li class="<?php echo $first.$current ?> <?php echo $disabled ?>" title="<?php echo $disabled_title ?>"> <span class="icon mp-icon mp-icon-field-type-<?php echo $f["type"] ?>"></span> <?php if ($f["current"]) : ?> <span class="fill { src: '#label_name'}"><?php echo $f["label"] ?></span> <input id="position" name="position" value="<?php echo $f["position"] ?>" type="hidden" /> <?php else: ?> <span><?php echo $f["label"] ?></span> <input id="other_position_<?php echo $f["id"] ?>" name="other_position[<?php echo $f["id"] ?>]" value="<?php echo $f["position"] ?>" type="hidden" /> <?php endif; ?> </li> <?php endforeach; ?> </ul> </div> <!-- /.sortable-list --> <p> <?php printf(__("Drag field to the desired position in the %s set.<br />Note: changes to the positions of other fields will also be saved.", MASTERPRESS_DOMAIN), '<em>'.$parent->display_label().'</em>') ?> </p> </div> </div> <!-- /.f --> <?php else: ?> <input id="position" name="position" value="1" type="hidden" /> <?php endif; ?> </div> <!-- /.mpv-fields-form --> <?php } // end form()
public static function fs_visibility($model, $args = array()) { global $wf; $first = true; $r = array( "sites" => null, "templates" => null, "post_types" => null, "taxonomies" => null, "fields" => null, "roles" => null ); $r["labels"] = wp_parse_args( $args["labels"], array( "title" => __("control the visibility of this object in your site", MASTERPRESS_DOMAIN), "title_multisite" => __("specify the network sites that this object is available in", MASTERPRESS_DOMAIN), "title_post_types" => __("specify the post types that this object is available in", MASTERPRESS_DOMAIN), "title_templates" => __("specify the templates that this object is available in", MASTERPRESS_DOMAIN), "title_roles" => __("specify the user roles that this object is available in", MASTERPRESS_DOMAIN), "title_taxonomies" => __("specify the taxonomies that this object is available in", MASTERPRESS_DOMAIN), "title_fields" => __("control display of this field based on the value of another field in the set", MASTERPRESS_DOMAIN), "radio_multisite" => __("Make avalable in:", MASTERPRESS_DOMAIN), "multisite_all" => __('<em class="all">All</em> sites in the network', MASTERPRESS_DOMAIN), "multisite_allow" => __( '<em class="allow">Include</em> only in specific Sites'), "multisite_deny" => __( '<em class="deny">Exclude</em> from specific Sites'), "multisite_allow_note" => "", "multisite_deny_note" => "", "post_types_all" => __('<em class="all">All</em> Post Types', MASTERPRESS_DOMAIN), "post_types_none" => __('<em class="none">No</em> Post Types', MASTERPRESS_DOMAIN), "post_types_allow" => __('<em class="allow">Include</em> only in specific Post Types', MASTERPRESS_DOMAIN), "post_types_deny" => __('<em class="deny">Exclude</em> from specific Post Types', MASTERPRESS_DOMAIN), "templates_all" => __('<em class="all">All</em> Templates', MASTERPRESS_DOMAIN), "templates_allow" => __('<em class="allow">Include</em> only in specific Templates', MASTERPRESS_DOMAIN), "templates_deny" => __('<em class="deny">Exclude</em> from specific Templates', MASTERPRESS_DOMAIN), "roles_all" => __('<em class="all">All</em> User Roles', MASTERPRESS_DOMAIN), "roles_none" => __('<em class="none">No</em> User Roles', MASTERPRESS_DOMAIN), "roles_allow" => __('<em class="allow">Include</em> only in specific Roles', MASTERPRESS_DOMAIN), "roles_deny" => __('<em class="deny">Exclude</em> from specific Roles', MASTERPRESS_DOMAIN), "taxonomies_all" => __('<em class="all">All</em> Taxonomies', MASTERPRESS_DOMAIN), "taxonomies_none" => __('<em class="none">No</em> Taxonomies', MASTERPRESS_DOMAIN), "taxonomies_allow" => __('<em class="allow">Include</em> only in specific Taxonomies', MASTERPRESS_DOMAIN), "taxonomies_deny" => __('<em class="deny">Exclude</em> from specific Taxonomies', MASTERPRESS_DOMAIN), "fields_all" => __('No conditions', MASTERPRESS_DOMAIN), "fields_allow" => __('When another field <em class="allow">has a specific value</em>', MASTERPRESS_DOMAIN), "fields_deny" => __('When another field <em class="deny">does not have a specific value</em>', MASTERPRESS_DOMAIN) ) ); $r["supports"] = wp_parse_args($args["supports"], array()); $r["defaults"] = wp_parse_args( $args["defaults"], array( "multisite" => "all", "post_types" => "none", "templates" => "all", "roles" => "none", "taxonomies" => "none", "fields" => "all" ) ); if (isset($args["sites"])) { $r["sites"] = $args["sites"]; } if (isset($args["templates"])) { $r["templates"] = $args["templates"]; } if (isset($args["post_types"])) { $r["post_types"] = $args["post_types"]; } if (isset($args["taxonomies"])) { $r["taxonomies"] = $args["taxonomies"]; } if (isset($args["roles"])) { $r["roles"] = $args["roles"]; } if (isset($args["fields"])) { $r["fields"] = $args["fields"]; } if (is_array($r["sites"])) { $r["sites"] = implode(",", $r["sites"]); } if (is_array($r["templates"])) { //$r["templates"] = implode(",", $r["templates"]); } $supports = $r["supports"]; $labels = $r["labels"]; if ($r["supports"] && count($r["supports"])) : ?> <div class="fs fs-visibility clearfix"> <div class="fst"> <div class="fstb"> <h3><i class="light-globe"></i><strong><?php _e("Availability", MASTERPRESS_DOMAIN) ?></strong> - <?php echo $labels["title"] ?></h3> </div> </div> <div class="fsc"> <div class="fscb clearfix"> <?php if (in_array("fields", $supports)) : ?> <?php $mode = self::visibility_mode($model->visibility, "fields", $r["defaults"]["fields"]); ?> <?php $fo = array(""); $fo_attr = array(array()); foreach ($r["fields"] as $field) { if ($type_class = MPFT::type_class($field->type)) { $fo[$field->display_label()] = $field->name; $fo_attr[] = array("class" => "mp-icon field-type-".$field->type); } } $fields_select = WOOF_HTML::select(array("style" => "max-width: 280px", "id" => "visibility-fields", "name" => "visibility_fields", "class" => "with-icons select2-source", "data-placeholder" => __("-- Select a Field --", MASTERPRESS_DOMAIN)), $fo, "", $fo_attr); ?> <div class="fsg fsg-fields <?php echo $first ? "" : "divider" ?>"> <h4><i class="question-octagon"></i><?php _e("Conditional Display", MASTERPRESS_DOMAIN) ?><span> - <?php echo $labels["title_fields"] ?></span></h4> <div class="f clearfix"> <div class="fsg-radios"> <div class="fw fwl fw-all"> <input id="visibility-type-fields-all" name="visibility_type[fields]" type="radio" value="all" <?php echo WOOF_HTML::checked_attr( $mode == "all" ) ?> class="radio" /> <label for="visibility-type-fields-all" class="radio"><?php echo $labels["fields_all"] ?></label> </div> <!-- /.fw --> <div class="fw fwl fw-none"> <input id="visibility-type-fields-allow" name="visibility_type[fields]" type="radio" value="none" <?php echo WOOF_HTML::checked_attr( $mode == "allow" ) ?> class="radio" /> <label for="visibility-type-fields-allow" class="radio"><?php echo $labels["fields_allow"] ?></label> </div> <!-- /.fw --> <div class="fw fwl fw-none"> <input id="visibility-type-fields-deny" name="visibility_type[fields]" type="radio" value="none" <?php echo WOOF_HTML::checked_attr( $mode == "deny" ) ?> class="radio" /> <label for="visibility-type-fields-deny" class="radio"><?php echo $labels["fields_deny"] ?></label> </div> <!-- /.fw --> </div> <!-- /.fsg-radios --> <div id="visibility-fields-options"> <div id="fw-field" class="fw"> <label for="visibility-fields" class="select2"><?php _e("Field:", MASTERPRESS_DOMAIN) ?></label> <?php echo $fields_select ?> </div> <div id="fw-value" class="fw"> <label for="visibility-fields-value"><?php _e("Value:", MASTERPRESS_DOMAIN) ?></label> <textarea name="visibility_fields_value" class="mono"></textarea> </div> </div> </div> <!-- /.f --> </div> <!-- /.fsg --> <?php $first = false; ?> <?php endif; ?> <?php if (in_array("post_types", $supports)) : ?> <?php if (is_null($r["post_types"])) { $available_post_types = MPM_PostType::find(array("orderby" => "name ASC")); } else { $available_post_types = $r["post_types"]; } $mode = self::visibility_mode($model->visibility, "post_types", $r["defaults"]["post_types"]); ?> <div class="fsg fsg-post-types <?php echo $first ? "" : "divider" ?>"> <h4><i class="pins"></i><?php _e("Post Types", MASTERPRESS_DOMAIN) ?><span> - <?php echo $labels["title_post_types"] ?></span></h4> <div class="f clearfix"> <div class="fsg-radios"> <div class="fw fwl fw-all"> <input id="visibility-type-post-types-all" name="visibility_type[post_types]" type="radio" value="all" <?php echo WOOF_HTML::checked_attr( $mode == "all" ) ?> class="radio" /> <label for="visibility-type-post-types-all" class="radio"><?php echo $labels["post_types_all"] ?></label> </div> <!-- /.fw --> <div class="fw fwl fw-none"> <input id="visibility-type-post-types-none" name="visibility_type[post_types]" type="radio" value="none" <?php echo WOOF_HTML::checked_attr( $mode == "none" ) ?> class="radio" /> <label for="visibility-type-post-types-none" class="radio"><?php echo $labels["post_types_none"] ?></label> </div> <!-- /.fw --> <?php if (count($available_post_types)) : ?> <div class="fw fwl"> <input id="visibility-type-post-types-allow" name="visibility_type[post_types]" type="radio" value="allow" <?php echo WOOF_HTML::checked_attr( $mode == "allow" ) ?> class="radio" /> <label for="visibility-type-post-types-allow" class="radio"><?php echo $labels["post_types_allow"] ?></label> </div> <!-- /.fw --> <div class="fw fwl"> <input id="visibility-type-post-types-deny" name="visibility_type[post_types]" type="radio" value="deny" <?php echo WOOF_HTML::checked_attr( $mode == "deny" ) ?> class="radio" /> <label for="visibility-type-post-types-deny" class="radio"><?php echo $labels["post_types_deny"] ?></label> </div> <!-- /.fw --> </div> <!-- /.fsg-radios --> <div id="visibility-post-types-list" class="list checkbox-list"> <div class="items"> <?php foreach ($available_post_types as $post_type) : $disabled = $post_type->disabled ? ' disabled' : ''; $disabled_title = $post_type->disabled ? __("This post type is disabled", MASTERPRESS_DOMAIN) : ''; $builtin = $post_type->_builtin ? ' '.__('(Built-in)', MASTERPRESS_DOMAIN) : ''; ?> <?php $linked_to_post_type = false; // todo, update this code to use visibility if (MPC::is_edit()) { $linked_to_post_type = $model->linked_to_post_type($post_type); } $checked = $linked_to_post_type; if ($mode == "deny") { $checked = !$checked; } ?> <?php if ($post_type->still_registered()) : ?> <div class="fw"> <input id="visibility-post-types-<?php echo $post_type->name ?>" name="visibility_post_types[]" value="<?php echo $post_type->name ?>" type="checkbox" <?php echo WOOF_HTML::checked_attr( $checked || MPV::in_post_array("post_types", $post_type->name) ) ?> class="checkbox" /> <label for="visibility-post-types-<?php echo $post_type->name ?>" class="checkbox <?php echo $disabled ?>" title="<?php echo $disabled_title ?>"><?php echo $post_type->labels["name"] ?><span><?php echo $builtin ?></span></label> </div> <!-- /.fw --> <?php endif; ?> <?php endforeach; ?> </div> <!-- /.items --> <div class="controls"> <button type="button" class="button list-select-all"><?php _e("Select All", MASTERPRESS_DOMAIN) ?></button> <button type="button" class="button list-select-none"><?php _e("Select None", MASTERPRESS_DOMAIN) ?></button> </div> <!-- /.controls --> </div> <!-- /#visibility-post-types --> <?php endif; ?> </div> <!-- /.f --> </div> <!-- /#fsg-post-types --> <?php $first = false; ?> <?php endif; // supports post_types ?> <?php if (in_array("templates", $supports)) : ?> <?php if (is_null($r["templates"])) { $available_templates = array_merge( array("Page" => "page.php"), get_page_templates() ); } else { $available_templates = $r["templates"]; } $mode = self::visibility_mode($model->visibility, "templates", $r["defaults"]["templates"]); ?> <div class="fsg fsg-templates <?php echo $first ? "" : "divider" ?>"> <h4><i class="template"></i><?php _e("Templates", MASTERPRESS_DOMAIN) ?><span> - <?php echo $labels["title_templates"] ?></span></h4> <div class="f clearfix"> <div class="fsg-radios"> <div class="fw fwl fw-all"> <input id="visibility-type-templates-all" name="visibility_type[templates]" type="radio" value="all" <?php echo WOOF_HTML::checked_attr( $mode == "all" ) ?> class="radio" /> <label for="visibility-type-templates-all" class="radio"><?php echo $labels["templates_all"] ?></label> </div> <!-- /.fw --> <div class="fw fwl"> <input id="visibility-type-templates-allow" name="visibility_type[templates]" type="radio" value="allow" <?php echo WOOF_HTML::checked_attr( $mode == "allow" ) ?> class="radio" /> <label for="visibility-type-templates-allow" class="radio"><?php echo $labels["templates_allow"] ?></label> </div> <!-- /.fw --> <div class="fw fwl"> <input id="visibility-type-templates-deny" name="visibility_type[templates]" type="radio" value="deny" <?php echo WOOF_HTML::checked_attr( $mode == "deny" ) ?> class="radio" /> <label for="visibility-type-templates-deny" class="radio"><?php echo $labels["templates_deny"] ?></label> </div> <!-- /.fw --> </div> <!-- /.fsg-radios --> <div id="visibility-templates-list" class="list checkbox-list"> <?php if (count($available_templates)) : ?> <div class="items"> <?php $templates = $model->vis("templates"); $not_templates = $model->vis("not_templates"); ?> <?php foreach ($available_templates as $name => $file) : ?> <?php if ($mode == "deny") { $checked = MPV::in_csv($file, $not_templates); } else { $checked = MPV::in_csv($file, $templates); } ?> <div class="fw"> <input id="templates_<?php echo WOOF_Inflector::underscore($file) ?>" name="visibility_templates[]" value="<?php echo $file ?>" type="checkbox" <?php echo WOOF_HTML::checked_attr( $checked ) ?> class="checkbox" /> <label for="templates_<?php echo WOOF_Inflector::underscore($file) ?>" class="checkbox"><span class="tt"><?php echo $file ?></span></label> </div> <?php endforeach; ?> </div> <!-- /.items --> <div class="controls"> <button type="button" class="button list-select-all"><?php _e("Select All", MASTERPRESS_DOMAIN) ?></button> <button type="button" class="button list-select-none"><?php _e("Select None", MASTERPRESS_DOMAIN) ?></button> </div> <!-- /.controls --> <?php else: ?> <span class="soft-warning"><i class="warning-triangle"></i><?php sprintf( __("The Field Set <em>%s</em> is not yet associated with <em>any</em> field types, so this option is not yet available", MASTERPRESS_DOMAIN), $parent->display_label() ); ?></span> <?php endif; ?> </div> <!-- /#visibility-templates --> </div> <!-- /.f --> </div> <!-- /#fsg-templates --> <?php $first = false; ?> <?php endif; // supports templates ?> <?php if (in_array("taxonomies", $supports)) : ?> <?php if (is_null($r["taxonomies"])) { $available_taxonomies = MPM_Taxonomy::find(); } else { $available_taxonomies = $r["taxonomies"]; } $mode = self::visibility_mode($model->visibility, "taxonomies", $r["defaults"]["taxonomies"]); ?> <div class="fsg fsg-taxonomies <?php echo $first ? "" : "divider" ?>"> <h4><i class="tags"></i><?php _e("Taxonomies", MASTERPRESS_DOMAIN) ?><span> - <?php echo $labels["title_taxonomies"] ?></span></h4> <div class="f clearfix"> <div class="fsg-radios"> <div class="fw fwl fw-all"> <input id="visibility-type-taxonomies-all" name="visibility_type[taxonomies]" type="radio" value="all" <?php echo WOOF_HTML::checked_attr( $mode == "all" ) ?> class="radio" /> <label for="visibility-type-taxonomies-all" class="radio"><?php echo $labels["taxonomies_all"] ?></label> </div> <!-- /.fw --> <div class="fw fwl fw-all"> <input id="visibility-type-taxonomies-none" name="visibility_type[taxonomies]" type="radio" value="none" <?php echo WOOF_HTML::checked_attr( $mode == "none" ) ?> class="radio" /> <label for="visibility-type-taxonomies-none" class="radio"><?php echo $labels["taxonomies_none"] ?></label> </div> <!-- /.fw --> <div class="fw fwl"> <input id="visibility-type-taxonomies-allow" name="visibility_type[taxonomies]" type="radio" value="allow" <?php echo WOOF_HTML::checked_attr( $mode == "allow" ) ?> class="radio" /> <label for="visibility-type-taxonomies-allow" class="radio"><?php echo $labels["taxonomies_allow"] ?></label> </div> <!-- /.fw --> <div class="fw fwl"> <input id="visibility-type-taxonomies-deny" name="visibility_type[taxonomies]" type="radio" value="deny" <?php echo WOOF_HTML::checked_attr( $mode == "deny" ) ?> class="radio" /> <label for="visibility-type-taxonomies-deny" class="radio"><?php echo $labels["taxonomies_deny"] ?></label> </div> <!-- /.fw --> </div> <!-- /.fsg-radios --> <div id="visibility-taxonomies-list" class="list checkbox-list"> <?php if (count($available_taxonomies)) : ?> <?php $taxonomies = $model->vis("taxonomies"); $not_taxonomies = $model->vis("not_taxonomies"); ?> <div class="items"> <?php foreach ($available_taxonomies as $tax) : ?> <?php $tax_name = $tax->name; if ($mode == "deny") { $checked = MPV::in_csv($tax_name, $not_taxonomies); } else { $checked = MPV::in_csv($tax_name, $taxonomies); } ?> <?php if ($tax->still_registered()) : ?> <div class="fw"> <input id="taxonomies_<?php echo WOOF_Inflector::underscore($tax_name) ?>" name="visibility_taxonomies[]" value="<?php echo $tax_name ?>" type="checkbox" <?php echo WOOF_HTML::checked_attr( $checked ) ?> class="checkbox" /> <label for="taxonomies_<?php echo WOOF_Inflector::underscore($tax_name) ?>" class="checkbox"><span class="tt"><?php echo $tax->display_label() ?></span></label> </div> <?php endif; ?> <?php endforeach; ?> </div> <!-- /.items --> <div class="controls"> <button type="button" class="button list-select-all"><?php _e("Select All", MASTERPRESS_DOMAIN) ?></button> <button type="button" class="button list-select-none"><?php _e("Select None", MASTERPRESS_DOMAIN) ?></button> </div> <!-- /.controls --> <?php endif; ?> </div> <!-- /#visibility-taxonomies --> </div> <!-- /.f --> </div> <!-- /#fsg-taxonomies --> <?php $first = false; ?> <?php endif; // supports taxonomies ?> <?php if (in_array("roles", $supports)) : ?> <?php if (is_null($r["roles"])) { $available_roles = $wf->roles(); } else { $available_roles = $r["roles"]; } $mode = self::visibility_mode($model->visibility, "roles", $r["defaults"]["roles"]); ?> <div class="fsg fsg-roles <?php echo $first ? "" : "divider" ?>"> <h4><i class="user-role"></i><?php _e("User Profiles", MASTERPRESS_DOMAIN) ?><span> - <?php echo $labels["title_roles"] ?></span></h4> <div class="f clearfix"> <div class="fsg-radios"> <div class="fw fwl fw-all"> <input id="visibility-type-roles-all" name="visibility_type[roles]" type="radio" value="all" <?php echo WOOF_HTML::checked_attr( $mode == "all" ) ?> class="radio" /> <label for="visibility-type-roles-all" class="radio"><?php echo $labels["roles_all"] ?></label> </div> <!-- /.fw --> <div class="fw fwl fw-none"> <input id="visibility-type-roles-none" name="visibility_type[roles]" type="radio" value="none" <?php echo WOOF_HTML::checked_attr( $mode == "none" ) ?> class="radio" /> <label for="visibility-type-roles-none" class="radio"><?php echo $labels["roles_none"] ?></label> </div> <!-- /.fw --> <div class="fw fwl"> <input id="visibility-type-roles-allow" name="visibility_type[roles]" type="radio" value="allow" <?php echo WOOF_HTML::checked_attr( $mode == "allow" ) ?> class="radio" /> <label for="visibility-type-roles-allow" class="radio"><?php echo $labels["roles_allow"] ?></label> </div> <!-- /.fw --> <div class="fw fwl"> <input id="visibility-type-roles-deny" name="visibility_type[roles]" type="radio" value="deny" <?php echo WOOF_HTML::checked_attr( $mode == "deny" ) ?> class="radio" /> <label for="visibility-type-roles-deny" class="radio"><?php echo $labels["roles_deny"] ?></label> </div> <!-- /.fw --> </div> <!-- /.fsg-radios --> <div id="visibility-roles-list" class="list checkbox-list"> <div class="items"> <?php if (count($available_roles)) : ?> <?php $roles = $model->vis("roles"); $not_roles = $model->vis("not_roles"); ?> <?php foreach ($available_roles as $role) : ?> <?php $role_name = $role->id(); if ($mode == "deny") { $checked = MPV::in_csv($role_name, $not_roles); } else { $checked = MPV::in_csv($role_name, $roles); } ?> <div class="fw"> <input id="roles_<?php echo WOOF_Inflector::underscore($role_name) ?>" name="visibility_roles[]" value="<?php echo $role_name ?>" type="checkbox" <?php echo WOOF_HTML::checked_attr( $checked ) ?> class="checkbox" /> <label for="roles_<?php echo WOOF_Inflector::underscore($role_name) ?>" class="checkbox"><span class="tt"><?php echo $role_name ?></span></label> </div> <?php endforeach; ?> </div> <!-- /.items --> <div class="controls"> <button type="button" class="button list-select-all"><?php _e("Select All", MASTERPRESS_DOMAIN) ?></button> <button type="button" class="button list-select-none"><?php _e("Select None", MASTERPRESS_DOMAIN) ?></button> </div> <!-- /.controls --> <?php endif; ?> </div> <!-- /#visibility-roles --> </div> <!-- /.f --> </div> <!-- /#fsg-roles --> <?php $first = false; ?> <?php endif; // supports roles ?> <?php if (in_array("multisite", $supports) && is_multisite() && MASTERPRESS_MULTISITE_SHARING ) : ?> <?php $sites = $model->vis("sites"); ?> <?php $not_sites = $model->vis("not_sites"); ?> <?php $mode = self::visibility_mode($model->visibility, "sites", $r["defaults"]["multisite"]); global $blog_id; $sites_args = array("public_only" => false); if (!is_null($r["sites"])) { $sites_args["include_id"] = $r["sites"]; } $sites_options = array(); $sites_options_attr = array(); $the_site = $wf->site(); // build the sites options foreach ($wf->sites( $sites_args ) as $site) { $attr = array(); if ($site->id() == $the_site->id()) { $attr["class"] = "hl"; $attr["title"] = __("This is the current site", MASTERPRESS_DOMAIN); } $sites_options_attr[] = $attr; $sites_options[$site->full_path()] = $site->id(); } ?> <div class="fsg fsg-multisite <?php echo $first ? "" : "divider" ?>"> <h4><i class="globe"></i><?php _e("Multi-site", MASTERPRESS_DOMAIN) ?><span> - <?php echo $labels["title_multisite"] ?></span></h4> <div class="f clearfix"> <div class="fsg-radios"> <div class="fw fw-all"> <input id="visibility-type-sites-all" name="visibility_type[sites]" type="radio" value="all" <?php echo WOOF_HTML::checked_attr( $mode == "all" ) ?> class="radio" /> <label for="visibility-type-sites-all" class="radio"><?php echo $labels["multisite_all"] ?></label> </div> <div class="fw"> <input id="visibility-type-sites-allow" name="visibility_type[sites]" type="radio" value="allow" <?php echo WOOF_HTML::checked_attr( $mode == "allow" ) ?> class="radio" /> <label for="visibility-type-sites-allow" class="radio"><?php echo $labels["multisite_allow"] ?></label> </div> <div class="fw"> <input id="visibility-type-sites-deny" name="visibility_type[sites]" type="radio" value="deny" <?php echo WOOF_HTML::checked_attr( $mode == "deny" ) ?> class="radio" /> <label for="visibility-type-sites-deny" class="radio"><?php echo $labels["multisite_deny"] ?></label> </div> </div> <!-- /.fsg-radios --> <div id="visibility-sites-list" class="sites-list"> <?php if ($mode == "allow") { $selected_sites = explode(",", $sites); } else if ($mode == "deny") { $selected_sites = explode(",", $not_sites); } else { $selected_site_objects = $wf->sites(array("public_only" => false)); $selected_sites = $selected_site_objects->extract("id"); } echo WOOF_HTML::select( array("multiple" => "multiple", "id" => "visibility-sites", "name" => "visibility_sites[]"), $sites_options, $selected_sites, $sites_options_attr ); ?> <?php if ($labels["multisite_allow_note"] != "") : ?> <p class="note"><?php echo $labels["multisite_allow_note"] ?></p> <?php endif; ?> </div> <!-- /#visibility-sites-list --> </div> <!-- /.f --> </div> <!-- /#fsg-multisite --> <?php $first = false; ?> <?php endif; // supports multisite ?> </div> </div> </div> <!-- /.fs --> <?php endif; // count support }
public static function options_form( $options ) { global $wf; $p = self::type_prefix(__CLASS__); $defaults = array(); if (MPC::is_create()) { $defaults = array("maxwidth" => 580, "height" => 300, "control_style" => "drop_down_list"); } $options = wp_parse_args( $options, $defaults ); if (MPC::is_create()) { $options["post_types"] = array(); } // setup variables to insert into the heredoc string // (this is required where we cannot call functions within heredoc strings) $taxonomies_label = __("Available Taxonomies:", MASTERPRESS_DOMAIN); $taxonomies_note = __("Select the taxonomies available for selection in the field control", MASTERPRESS_DOMAIN); $taxonomies_items = array(); MPM::incl("taxonomy"); $taxonomies = MPM_Taxonomy::find("orderby=disabled,name ASC"); $ts = array(); foreach ($taxonomies as $taxonomy) { if (MPC::is_create()) { $options["taxonomies"][] = $taxonomy->name; } if (!$taxonomy->disabled && $taxonomy->show_ui && $taxonomy->still_registered()) { $taxonomies_items[$taxonomy->display_label()] = $taxonomy->name; $ts[] = $taxonomy->name; } } if (!MPC::is_create()) { $ts = self::option_value($options, "taxonomies"); } $id = $p."taxonomies-"; $taxonomies_checkboxes = ""; foreach ($taxonomies as $taxonomy) { if (!$taxonomy->disabled && $taxonomy->show_ui && $taxonomy->still_registered()) { $value = $taxonomy->name; $label = $taxonomy->display_label(); $id_suffix = WOOF::sanitize($value); $attr = array( "id" => $id."_".$id_suffix, "class" => "checkbox", "type" => "checkbox", "name" => "type_options[taxonomies][]", "value" => $value ); if (in_array($value, $ts)) { $attr["checked"] = "checked"; } $taxonomies_checkboxes .= WOOF_HTML::open("div", "class=fwi"); $taxonomies_checkboxes .= WOOF_HTML::tag("input", $attr ); $taxonomies_checkboxes .= WOOF_HTML::tag("label", array( "for" => $id."_".$id_suffix, "class" => "checkbox mp-icon-taxonomy-".$value ), $label ); $taxonomies_checkboxes .= WOOF_HTML::close("div"); } } $basic = MPFT::options_select_basic( $p, $options ); $multi_layout = MPFT::options_select_multi_layout( $p, $options ); $control_style = MPFT::options_select_control_style( $p, $options ); $maxwidth = MPFT::options_maxwidth( $p, $options ); $height = MPFT::options_height( $p, $options ); $placeholder = MPFT::options_placeholder($p, $options); $control_selections_label = __("Selection Display - <span>settings for the display of the selected taxonomies</span>", MASTERPRESS_DOMAIN); $html = <<<HTML {$control_style} <div class="f f-taxonomies"> <p class="label">{$taxonomies_label}</p> <div class="fw"> <div id="{$p}taxonomies-wrap"> {$taxonomies_checkboxes} </div> <div id="{$p}taxonomies-controls" class="controls"> <button type="button" class="button button-small select-all">Select All</button> <button type="button" class="button button-small select-none">Select None</button> </div> <!-- /.controls --> <p class="note">{$taxonomies_note}</p> </div> </div> <!-- /.f --> {$basic} {$placeholder} {$maxwidth} <div id="{$p}control-selections-wrap" class="divider"> <h4><i class="buttons"></i>{$control_selections_label}</h4> {$multi_layout} </div> HTML; return $html; }
public static function insert_builtin() { // add the appropriate built-in post types (page and post) if required // we'll ignore menu item, attachment, and revision since there's no MasterPress tweaks applicable to those $post_type_post = MPM_PostType::find_by_name("post"); if (!$post_type_post) { $post_type_post = new MPM_PostType(); $post_type_post->set( array( "name" => "post", "plural_name" => "posts", "disabled" => false, "labels" => array( "name" => __("Posts", MASTERPRESS_DOMAIN), "singular_name" => __("Post", MASTERPRESS_DOMAIN), "add_new" => __("Add New", MASTERPRESS_DOMAIN), "add_new_item" => __("Add New Post", MASTERPRESS_DOMAIN), "edit" => __("Edit Post", MASTERPRESS_DOMAIN), "edit_item" => __("Edit Post", MASTERPRESS_DOMAIN), "new_item" => __("New Post", MASTERPRESS_DOMAIN), "view" => __("View Post", MASTERPRESS_DOMAIN), "view_item" => __("View Post", MASTERPRESS_DOMAIN), "search_items" => __("Search Posts", MASTERPRESS_DOMAIN), "not_found" => __("No posts found.", MASTERPRESS_DOMAIN), "not_found_in_trash" => __("No posts found in Trash.", MASTERPRESS_DOMAIN), "parent_item_colon" => "", "menu_name" => __("Posts", MASTERPRESS_DOMAIN) ), "description" => "", "publicly_queryable" => true, "exclude_from_search" => false, "show_ui" => true, "show_in_menu" => true, "menu_position" => 5, "menu_sub_position" => 0, "menu_icon" => "menu-icon-posts.png", "manage_sort_order" => "post_date|desc", "capability_type" => "post", "capabilities" => array(), "map_meta_cap" => true, "hierarchical" => false, "supports" => "title,editor,author,thumbnail,excerpt,trackbacks,custom-fields,comments,revisions,page-attributes,post-formats", "permalink_epmask" => "EP_PERMALINK", "has_archive" => true, "rewrite" => array( "slug" => "", "with_front" => true, "feeds" => true, "pages" => false ), "query_var" => "post", "can_export" => true, "show_in_nav_menus" => true, "_builtin" => true, "_external" => false ) ); $post_type_post->insert(); } $tax_post_tag = MPM_Taxonomy::find_by_name("post_tag"); $tax_category = MPM_Taxonomy::find_by_name("category"); if ( !$post_type_post->linked_to_taxonomy( $tax_post_tag ) ) { $post_type_post->link_taxonomy( $tax_post_tag ); } if ( !$post_type_post->linked_to_taxonomy( $tax_category ) ) { $post_type_post->link_taxonomy( $tax_category ); } $post_type_page = MPM_PostType::find_by_name("page"); if (!$post_type_page) { $post_type_page = new MPM_PostType(); $post_type_page->set( array( "name" => "page", "plural_name" => "pages", "disabled" => false, "labels" => array( "name" => __("Pages", MASTERPRESS_DOMAIN), "singular_name" => __("Page", MASTERPRESS_DOMAIN), "add_new" => __("Add New", MASTERPRESS_DOMAIN), "add_new_item" => __("Add New Page", MASTERPRESS_DOMAIN), "edit" => __("Edit Page", MASTERPRESS_DOMAIN), "edit_item" => __("Edit Page", MASTERPRESS_DOMAIN), "new_item" => __("New Page", MASTERPRESS_DOMAIN), "view" => __("View Page", MASTERPRESS_DOMAIN), "view_item" => __("View Page", MASTERPRESS_DOMAIN), "search_items" => __("Search Pages", MASTERPRESS_DOMAIN), "not_found" => __("No pages found.", MASTERPRESS_DOMAIN), "not_found_in_trash" => __("No pages found in Trash.", MASTERPRESS_DOMAIN), "parent_item_colon" => __("Parent Page", MASTERPRESS_DOMAIN), "menu_name" => __("Pages", MASTERPRESS_DOMAIN) ), "description" => "", "publicly_queryable" => true, "exclude_from_search" => false, "show_ui" => true, "show_in_menu" => true, "menu_position" => 20, "menu_sub_position" => 0, "menu_icon" => "menu-icon-pages.png", "manage_sort_order" => "menu_order|asc", "capability_type" => "page", "capabilities" => array(), "map_meta_cap" => true, "hierarchical" => true, "supports" => "title,editor,author,thumbnail,excerpt,trackbacks,custom-fields,comments,revisions,page-attributes,post-formats", "permalink_epmask" => "1", "has_archive" => true, "rewrite" => array( "slug" => "", "with_front" => false, "feeds" => false, "pages" => true ), "query_var" => "page", "can_export" => true, "show_in_nav_menus" => true, "_builtin" => true, "_external" => false ) ); $post_type_page->insert(); } $post_type_attachment = MPM_PostType::find_by_name("attachment"); if (!$post_type_attachment) { $post_type_attachment = new MPM_PostType(); $post_type_attachment->set( array( "name" => "attachment", "plural_name" => "attachments", "disabled" => false, "labels" => array( "name" => __("Media", MASTERPRESS_DOMAIN), "singular_name" => __("Media", MASTERPRESS_DOMAIN), "add_new" => __("Add New", MASTERPRESS_DOMAIN), "add_new_item" => __("Add New Post", MASTERPRESS_DOMAIN), "edit" => __("Edit Media", MASTERPRESS_DOMAIN), "edit_item" => __("Edit Media", MASTERPRESS_DOMAIN), "new_item" => __("New Post", MASTERPRESS_DOMAIN), "view" => __("View Media", MASTERPRESS_DOMAIN), "view_item" => __("View Media", MASTERPRESS_DOMAIN), "search_items" => __("Search Media", MASTERPRESS_DOMAIN), "not_found" => __("No media found.", MASTERPRESS_DOMAIN), "not_found_in_trash" => __("No media found in Trash.", MASTERPRESS_DOMAIN), "parent_item_colon" => __("Parent Post", MASTERPRESS_DOMAIN), "menu_name" => __("Media", MASTERPRESS_DOMAIN) ), "description" => "", "publicly_queryable" => true, "exclude_from_search" => false, "show_ui" => true, "show_in_menu" => true, "menu_position" => 20, "menu_sub_position" => 0, "menu_icon" => "menu-icon-media.png", "manage_sort_order" => "menu_order|asc", "capability_type" => "post", "capabilities" => array(), "map_meta_cap" => true, "hierarchical" => true, "supports" => "title,editor,author,thumbnail,excerpt,trackbacks,custom-fields,comments,revisions,page-attributes,post-formats", "permalink_epmask" => "1", "has_archive" => true, "rewrite" => array( "slug" => "", "with_front" => false, "feeds" => false, "pages" => true ), "query_var" => "page", "can_export" => true, "show_in_nav_menus" => true, "_builtin" => true, "_external" => false ) ); $post_type_attachment->insert(); } }
public static function insert_builtin() { /* here, we ignore any built-in taxonomies that have no UI, as these are not taxonomies that should be attached to custom post types */ global $wpdb; if (!self::find_by_name("category")) { $tax_category = new MPM_Taxonomy(); $tax_category->set( array( "name" => "category", "plural_name" => "categories", "labels" => array( "name" => 'Categories', "singular_name" => 'Category', "search_items" => 'Search Categories', "popular_items" => '', "all_items" => 'All Categories', "parent_item" => 'Parent Category', "parent_item_colon" => 'Parent Category:', "edit_item" => 'Edit Category', "update_item" => 'Update Category', "add_new_item" => 'Add New Category', "new_item_name" => 'New Category Name', "separate_items_with_commas" => '', "add_or_remove_items" => '', "choose_from_most_used" => '', "menu_name" => 'Categories' ), "disabled" => false, "show_in_nav_menus" => true, "show_ui" => true, "show_tagcloud" => true, "object_type" => array("post", "page"), "hierarchical" => true, "rewrite" => array( "slug" => "category", "with_front" => true, "hierarchical" => true ), "update_count_callback" => '_update_post_term_count', "query_var" => 'category_name', "capabilities" => array( "manage_terms" => 'manage_categories', "edit_terms" => 'manage_categories', "delete_terms" => 'manage_categories', "assign_terms" => 'edit_posts' ), "title_icon" => "", "_builtin" => true, "_external" => false )); $tax_category->insert(); } if (!self::find_by_name("post_tag")) { $tax_tag = new MPM_Taxonomy(); $tax_tag->set( array( "name" => "post_tag", "plural_name" => "post_tags", "labels" => array( "name" => 'Post Tags', "singular_name" => 'Post Tag', "search_items" => 'Search Tags', "popular_items" => 'Popular Tags', "all_items" => 'All Tags', "parent_item" => '', "parent_item_colon" => '', "edit_item" => 'Edit Tag', "update_item" => 'Update Tag', "add_new_item" => 'Add New Tag', "new_item_name" => 'New Tag', "separate_items_with_commas" => 'Separate tags with commas', "add_or_remove_items" => 'Add or remove tags', "choose_from_most_used" => 'Choose from the most used tags', "menu_name" => 'Tags' ), "disabled" => false, "show_in_nav_menus" => true, "show_ui" => true, "show_tagcloud" => true, "object_type" => array("post", "page"), "hierarchical" => false, "rewrite" => array( "slug" => "tag", "with_front" => true, "hierarchical" => false ), "update_count_callback" => '_update_post_term_count', "query_var" => 'tag', "capabilities" => array( "manage_terms" => 'manage_categories', "edit_terms" => 'manage_categories', "delete_terms" => 'manage_categories', "assign_terms" => 'edit_posts' ), "visibility" => array(), "title_icon" => "", "_builtin" => true, "_external" => false )); $tax_tag->insert(); } }
public function grid() { MPC::incl("post-types"); MPV::incl("fields"); MPV::incl("post-types"); $info = MasterPress::$view; ?> <?php MPV::messages(); ?> <div class="grid-set"> <?php $field_sets = MPM_SharedFieldSet::find( array("orderby" => "name ASC" ) ); ?> <?php MPV::field_set_icon_styles($field_sets); ?> <?php $has_actions = MasterPress::current_user_can("edit_shared_field_sets,delete_shared_field_sets,edit_shared_fields,delete_shared_fields"); $can_edit = MasterPress::current_user_can("edit_shared_field_sets"); $can_delete = MasterPress::current_user_can("delete_shared_field_sets"); $can_create = MasterPress::current_user_can("create_shared_field_sets"); $can_edit_fields = MasterPress::current_user_can("edit_shared_fields"); $can_delete_fields = MasterPress::current_user_can("delete_shared_fields"); $can_create_fields = MasterPress::current_user_can("create_shared_fields"); $less = ($can_create_fields) ? 1 : 0; $colspan = ( $has_actions ? 7 : 6 ) - $less; foreach ($field_sets as $field_set) { if (MPC::is_deleting($field_set->id, "delete")) { $this->confirm_delete($field_set); } else { foreach ($field_set->fields() as $field) { if (MPC::is_deleting($field->id, "delete-field")) { $this->confirm_delete_field($field); } } } } ?> <?php if (count($field_sets)) : ?> <table cellspacing="0" class="grid grid-field-sets grid-shared-field-sets"> <thead> <tr> <th class="first type"><i class="types"></i><span><?php _e("Type", MASTERPRESS_DOMAIN) ?></span></th> <th class="label"><i class="label-string"></i><span><?php _e("Label", MASTERPRESS_DOMAIN) ?></span></th> <th class="front-end-name"><i class="script-php"></i><span><?php _e("Front End Name", MASTERPRESS_DOMAIN) ?></span></th> <th class="post-types"><i class="pins"></i><span><?php _e("Post Types", MASTERPRESS_DOMAIN) ?></span></th> <th class="taxonomies"><i class="tags"></i><span><?php _e("Taxonomies", MASTERPRESS_DOMAIN) ?></span></th> <th class="roles <?php echo $has_actions ? "" : "last" ?>"><i class="user-role"></i><span><?php _e("User Roles", MASTERPRESS_DOMAIN) ?></span></th> <?php if ($has_actions) : ?> <th class="actions last"><i class="buttons"></i><span><?php _e("Actions", MASTERPRESS_DOMAIN) ?></span></th> <?php endif; ?> </tr> </thead> <tbody> <?php $fg_count = 0; ?> <?php foreach ($field_sets as $field_set) : $fg_count++; ?> <?php $display = $field_set->display_label(); ?> <?php $display_td = $display; if ($field_set->icon != "") { $display_td = WOOF_HTML::tag("span", array("class" => "with-icon field-set-".$field_set->id), $display); } ?> <?php $deleting_class = MPC::is_deleting($field_set->id, "delete") ? 'deleting' : ''; $editable_class = $can_edit ? " editable " : ""; $meta = $can_edit ? "{ href: '".MasterPress::admin_url("shared-field-sets", "edit", array("id" => $field_set->id) )."' }" : ""; ?> <?php $disabled = $field_set->disabled ? "disabled" : ""; $title = $field_set->disabled ? ' title="'.__("this field set is disabled", MASTERPRESS_DOMAIN).'" ' : ""; ?> <?php if (!$field_set->in_current_site()) { $disabled = "disabled"; $title = ' title="'.__("field set is not currently available in this site (multi-site setting)", MASTERPRESS_DOMAIN).'" '; } ?> <tr id="field_set_<?php echo $field_set->name ?>" <?php echo $title ?> class="<?php echo $disabled ?> <?php echo $editable_class ?> <?php echo $deleting_class ?> <?php echo MPV::updated_class("edit,create", $field_set->id) ?> <?php echo $meta ?>"> <?php if ($field_set->allow_multiple) : ?> <th class="first type icon"><i class="metabox-add-remove-large" title="<?php _e("Field Set (Multiple Items)", MASTERPRESS_DOMAIN) ?>"></i></th> <?php else : ?> <th class="first type icon"><i class="metabox-large" title="<?php _e("Field Set", MASTERPRESS_DOMAIN) ?>"></i></th> <?php endif; ?> <th class="label"><strong><?php echo $display_td ?></strong></th> <th class="front-end-name"><span class="tt"><?php echo $field_set->display_name() ?></span></th> <th class="post-types"> <?php $post_types = $field_set->post_types(); $vis = $field_set->visibility; $vis_post_types = ""; if (isset($vis["post_types"])) { $vis_post_types = $vis["post_types"]; } if ($vis_post_types == "*") { $post_type_display = __("( All )", MASTERPRESS_DOMAIN); } else { $post_type_display = __("( None )", MASTERPRESS_DOMAIN); if (count($post_types)) { $post_type_links = array(); foreach ($post_types as $post_type) { $post_type_links[] = $post_type->labels["name"]; } $post_type_display = implode($post_type_links, ", "); } } echo $post_type_display; ?> </th> <th class="taxonomies"> <?php $vis = $field_set->visibility; $vis_tax = ""; if (isset($vis["taxonomies"])) { $vis_tax = $vis["taxonomies"]; } if ($vis_tax == "*") { $taxonomy_display = __("( All )", MASTERPRESS_DOMAIN); } else { $taxonomy_display = __("( None )", MASTERPRESS_DOMAIN); if ($vis_tax != "") { $tax_models = MPM_Taxonomy::find_by_name_in(explode(",", $vis_tax)); $td = array(); foreach ($tax_models as $tax) { $td[] = $tax->display_label(); } $taxonomy_display = implode(", ", $td); } } echo $taxonomy_display; ?> </th> <th class="roles <?php echo $has_actions ? "" : "last" ?>"> <?php $vis = $field_set->visibility; $vis_roles = ""; if (isset($vis["roles"])) { $vis_roles = $vis["roles"]; } if ($vis_roles == "*") { $role_display = __("( All )", MASTERPRESS_DOMAIN); } else { if (is_null($vis_roles) || $vis_roles == "") { $role_display = __("( None )", MASTERPRESS_DOMAIN); } else { $role_display = implode(", ", explode(",", $vis_roles)); } } echo $role_display; ?> </th> <?php if ($has_actions) : ?> <th class="actions last"> <?php if (MPC::is_deleting($field_set->id, "delete")) : ?> <span class="confirm-action"> </span> <?php else: ?> <div> <?php if ($can_edit) : ?> <?php echo MPV::action_button("shared-field-sets", "edit", self::__edit(), array("id" => $field_set->id), array("class" => "button button-edit") ); ?> <?php endif; ?> <?php if ($can_delete) : ?> <?php echo MPV::action_button("shared-field-sets", "delete", self::__delete(), array("id" => $field_set->id), array("class" => "button button-delete") ); ?> <?php endif; ?> </div> <?php endif; ?> </th> <?php endif; // has_actions ?> </tr> <?php $count = 0; $fields = $field_set->fields(); ?> <?php foreach ($fields as $field) : $count++; $first = $count == 1 ? 'first' : ''; $disabled = $field_set->disabled || $field->disabled ? "disabled" : ""; $title = $field_set->disabled || $field->disabled ? ' title="'.__("this field is disabled", MASTERPRESS_DOMAIN).'" ' : ""; ?> <?php if (!$field_set->in_current_site() || !$field->in_current_site()) { $disabled = "disabled"; $title = ' title="'.__("field is not currently available in this site (multi-site setting)", MASTERPRESS_DOMAIN).'" '; } ?> <?php $deleting_class = MPC::is_deleting($field_set->id, "delete") || MPC::is_deleting($field->id, "delete-field") ? 'deleting' : ''; $editable_class = $can_edit_fields ? " editable " : ""; $meta = $can_edit ? "{ href: '".MasterPress::admin_url("shared-field-sets", "edit-field", array("id" => $field->id, "parent" => $field_set->id) )."' }" : ""; ?> <?php if ($type_class = MPFT::type_class($field->type)) : ?> <tr <?php echo $title ?> class="sub <?php echo $editable_class.$deleting_class ?> <?php echo $first ?> <?php echo $disabled ?> <?php echo $count % 2 == 0 ? "even" : "" ?> <?php echo MPV::updated_class("edit-field,create-field", $field->id) ?> <?php echo $meta ?>"> <td class="type icon first" title="<?php echo call_user_func( array($type_class, "__s") ) ?>"><span class="mp-icon mp-icon-field-type-<?php echo $field->type ?>"></span></td> <td class="label"><strong><?php echo $field->display_label() ?></strong></td> <td class="front-end-name"><span class="tt"><span class="arrow">-> </span><?php echo $field->display_name() ?></span></td> <td class="post-types"> <?php $vis = $field->visibility; $vis_post_types = ""; if (isset($vis["post_types"])) { $vis_post_types = $vis["post_types"]; } if ($vis_post_types == "*") { $post_type_display = '<span class="inherit">( '.__("same as set", MASTERPRESS_DOMAIN).' )</span>'; } else { $post_types = $field->post_types(); $post_type_display = MPV::note_none(); if (count($post_types)) { $post_type_links = array(); foreach ($post_types as $post_type) { $post_type_links[] = $post_type->labels["name"]; } $post_type_display = implode($post_type_links, ", "); } } echo $post_type_display; ?> </td> <td class="taxonomies"> <?php $vis = $field->visibility; $vis_tax = ""; if (isset($vis["taxonomies"])) { $vis_tax = $vis["taxonomies"]; } if ($vis_tax == "*") { $tax_display = '<span class="inherit">( '.__("same as set", MASTERPRESS_DOMAIN).' )</span>'; } else { $tax_display = MPV::note_none(); if ($vis_tax != "") { $tax_models = MPM_Taxonomy::find_by_name_in(explode(",", $vis_taxonomies)); $td = array(); foreach ($tax_models as $tax) { $td[] = $tax->display_label(); } $tax_display = implode(", ", $td); } } echo $tax_display; ?> </td> <td class="roles <?php echo $has_actions ? "" : "last" ?>"> <?php $vis = $field->visibility; $vis_roles = ""; if (isset($vis["roles"])) { $vis_roles = $vis["roles"]; } if ($vis_roles == "*") { $role_display = '<span class="inherit">( '.__("same as set", MASTERPRESS_DOMAIN).' )</span>'; } else { $role_display = MPV::note_none(); if ($vis_roles != "") { $role_display = implode(", ", explode(",", $vis_roles)); } } echo $role_display; ?> </td> <?php if ($has_actions) : ?> <td class="actions last"> <?php if (MPC::is_deleting($field->id, "delete-field")) : ?> <span class="confirm-action"> </span> <?php else: ?> <div> <?php if ($can_edit_fields) : ?> <?php echo MPV::action_button("shared-field-sets", "edit-field", self::__edit(), array("id" => $field->id, "parent" => $field_set->id), array("class" => "button button-edit") ); ?> <?php endif; ?> <?php if ($can_delete_fields) : ?> <?php echo MPV::action_button("shared-field-sets", "delete-field", self::__delete(), array("id" => $field->id, "parent" => $field_set->id), array("class" => "button button-delete") ); ?> <?php endif; ?> </div> <?php endif; ?> </td> <?php endif; // has_actions ?> </tr> <?php endif; ?> <?php endforeach; ?> <tr class="summary <?php echo $can_create_fields ? "editable" : "" ?>"> <?php if (count($fields)) : ?> <td colspan="<?php echo $colspan ?>" class="first <?php echo $can_create_fields ? "" : "last" ?>"><?php printf( __( "%s contains %s", MASTERPRESS_DOMAIN ), $display, MPU::__items( $field_set->field_count(), __("%d custom field", MASTERPRESS_DOMAIN), __("%d custom fields", MASTERPRESS_DOMAIN) ) ) ?></td> <?php else: ?> <?php if ($can_create_fields) : ?> <td colspan="<?php echo $colspan ?>" class="hl first last"><span><?php printf( __( "<strong>%s</strong> is not yet active as it contains <em>no custom fields</em>. Click here to create one", MASTERPRESS_DOMAIN ), $display ); ?></span></td> <?php endif; ?> <?php endif; ?> <?php if ($can_create_fields) : ?> <td class="last actions <?php echo count($fields) ? "" : "hl" ?>"> <?php echo MPV::action_button("shared-field-sets", "create-field", self::__create(MPV_Fields::__s()), array("parent" => $field_set->id), array("class" => "button create-field") ); ?> </td> <?php endif; ?> </tr> <tr class="gap <?php if ($fg_count == count($field_sets)) { echo "gap-last"; } ?>"> <td colspan="7"> </td> </tr> <?php endforeach; ?> </tbody> </table> <?php if ($can_create) : ?> <div class="grid-foot-controls"> <?php echo MPV::action_button("shared-field-sets", "create", MPV::__create( MPV_SharedFieldSets::__s() ), array() ); ?> </div> <?php endif; ?> <?php else: ?> <?php if ($can_create) : ?> <a href="<?php echo MasterPress::admin_url("shared-field-sets", "create") ?>" class="no-items-create"> <i class="plus-circle"></i> <span><?php _e( "There are currently no Shared Field Sets. Click here to create one." ) ?></span> </a> <?php endif; ?> <?php endif; ?> </div> <?php } // end grid()
public static function options_form( $options ) { global $meow_provider; global $wf; $p = self::type_prefix(__CLASS__); $defaults = array(); if (MPC::is_create()) { $defaults = array("maxwidth" => 580, "height" => 300, "control_style" => "drop_down_list"); } $options = wp_parse_args( $options, $defaults ); if (MPC::is_create()) { $options["post_types"] = array(); } // setup variables to insert into the heredoc string // (this is required where we cannot call functions within heredoc strings) $taxonomies_label = __("Available Taxonomies:", MASTERPRESS_DOMAIN); $taxonomies_note = __("Select the taxonomies of terms available for selection in the field control", MASTERPRESS_DOMAIN); $taxonomies_items = array(); MPM::incl("taxonomy"); $taxonomies = MPM_Taxonomy::find("orderby=disabled,name ASC"); $taxonomies_selected = array(); foreach ($taxonomies as $taxonomy) { if (!$taxonomy->disabled && $taxonomy->show_ui && $taxonomy->still_registered()) { $taxonomies_selected[] = $taxonomy->name; $taxonomies_items[$taxonomy->display_label()] = $taxonomy->name; } } if (!MPC::is_create()) { $taxonomies_selected = self::option_value($options, "taxonomies"); } if (!is_array($taxonomies_selected)) { $taxonomies_selected = explode(",", $taxonomies_selected); } $id = $p."taxonomies-"; $taxonomies_checkboxes = ""; foreach ($taxonomies as $taxonomy) { if (!$taxonomy->disabled && $taxonomy->show_ui && $taxonomy->still_registered()) { $value = $taxonomy->name; $label = $taxonomy->display_label(); $id_suffix = WOOF::sanitize($value); $attr = array( "id" => $id."_".$id_suffix, "class" => "checkbox", "type" => "checkbox", "name" => "type_options[taxonomies][]", "value" => $value ); if (in_array($value, $taxonomies_selected)) { $attr["checked"] = "checked"; } $taxonomies_checkboxes .= WOOF_HTML::open("div", "class=fwi"); $taxonomies_checkboxes .= WOOF_HTML::tag("input", $attr ); $taxonomies_checkboxes .= WOOF_HTML::tag("label", array( "for" => $id."_".$id_suffix, "class" => "checkbox mp-icon-taxonomy mp-icon-taxonomy-".$value ), $label ); $taxonomies_checkboxes .= WOOF_HTML::close("div"); } } $ex_label = __("Description", MASTERPRESS_DOMAIN); $title_label = __("Name", MASTERPRESS_DOMAIN); $results_row_style = MPFT::options_select_results_row_style( $p, $options, array("excerpt" => $ex_label, "title" => $title_label ) ); $placeholder = MPFT::options_placeholder($p, $options); $basic = MPFT::options_select_basic( $p, $options ); $multi_layout = MPFT::options_select_multi_layout( $p, $options ); $control_style = MPFT::options_select_control_style( $p, $options ); $maxwidth = MPFT::options_maxwidth( $p, $options ); $height = MPFT::options_height( $p, $options ); $grouping = MPFT::options_select_grouping( $p, $options, __("Taxonomy", MASTERPRESS_DOMAIN) ); $results_input_length = MPFT::options_input_text( $p, $options, "results_input_length", __("Minimum Input Length", MASTERPRESS_DOMAIN), __("Enter the number of characters required before any results are displayed.<br />This is useful for large numbers of posts, where performance may become poor.", MASTERPRESS_DOMAIN)); $data_source_label = __("Data Source - <span>specify the terms available for selection</span>", MASTERPRESS_DOMAIN); $control_options_label = __("Control Options", MASTERPRESS_DOMAIN); $control_results_label = __("Results Display - <span>settings for the display of the available terms</span>", MASTERPRESS_DOMAIN); $control_selections_label = __("Selection Display - <span>settings for the display of the selected terms</span>", MASTERPRESS_DOMAIN); // build a taxonomies grid $results_row_item_prop_label = __("Row Item Properties:", MASTERPRESS_DOMAIN); $results_row_item_prop_note = __("Defines the term properties used to derive the info shown in result rows.<br /><b>Note: </b>Descriptions and images will be truncated / resized automatically.", MASTERPRESS_DOMAIN); $row_style = self::option_value($options, "row_style", "icon_title"); $grid = WOOF_HTML::open("table", "class=grid mini not-selectable grid-row-item-prop&cellspacing=0"); $grid .= WOOF_HTML::open("thead"); $grid .= WOOF_HTML::tag("th", "class=icon taxonomy", WOOF_HTML::tag("i", "class=tags", "") . WOOF_HTML::tag("span", null, __("Taxonomy", MASTERPRESS_DOMAIN))); $grid .= WOOF_HTML::tag("th", "class=icon title", WOOF_HTML::tag("i", "class=title-bar", "") . WOOF_HTML::tag("span", null, $title_label)); $grid .= WOOF_HTML::tag("th", "class=".(($row_style == "icon_title" || $row_style == "image_title") ? "disabled " : "")."icon excerpt", WOOF_HTML::tag("i", "class=content-bar", "") . WOOF_HTML::tag("span", null, $ex_label)); $grid .= WOOF_HTML::tag("th", "class=".(($row_style == "icon_title" || $row_style == "icon_title_excerpt") ? "disabled " : "")."icon image", WOOF_HTML::tag("i", "class=image", "") . WOOF_HTML::tag("span", null, __("Image", MASTERPRESS_DOMAIN))); $grid .= WOOF_HTML::close("thead"); $grid .= WOOF_HTML::open("tbody"); $count = 1; foreach ($taxonomies as $taxonomy) { if (!$taxonomy->disabled && $taxonomy->show_ui) { $classes = array("taxonomy-".$taxonomy->name); if ($count == 1) { $classes[] = "first"; } $attr = array("class" => implode(" ", $classes)); if (!in_array($taxonomy->name, $taxonomies_selected)) { $attr["style"] = "display: none;"; } $grid .= WOOF_HTML::open("tr", $attr); $count++; $span = WOOF_HTML::tag("span", array("class" => "mp-icon-taxonomy mp-icon-taxonomy-".$taxonomy->name ), $taxonomy->display_label()); $grid .= WOOF_HTML::tag("td", "class=first taxonomy", $span); $grid .= WOOF_HTML::open("td", "class=title"); $default = "name"; $value = isset($options["result_row_prop"][$taxonomy->name]["title"]) ? $options["result_row_prop"][$taxonomy->name]["title"] : $default; if ($value == "") { $value = $default; } $input_attr = array( "type" => "text", "name" => "type_options[result_row_prop][".$taxonomy->name."][title]", "class" => "text", "value" => $value ); $grid .= WOOF_HTML::open("div"); $grid .= WOOF_HTML::tag("input", $input_attr); $grid .= WOOF_HTML::tag( "button", array( "type" => "button", "class" => "ir", "data-dialog" => "dialog-taxonomy-".$taxonomy->name, "data-filter" => "text", "title" => __("Select Field", MASTERPRESS_DOMAIN) ), "select" ); $grid .= WOOF_HTML::close("div"); $grid .= WOOF_HTML::close("td"); $grid .= WOOF_HTML::open("td", "class=excerpt".(($row_style == "icon_title" || $row_style == "image_title") ? " disabled" : "")); $default = "description"; $value = isset($options["result_row_prop"][$taxonomy->name]["excerpt"]) ? $options["result_row_prop"][$taxonomy->name]["excerpt"] : $default; if ($value == "") { $value = $default; } $input_attr = array( "type" => "text", "name" => "type_options[result_row_prop][".$taxonomy->name."][excerpt]", "class" => "text", "value" => $value ); $grid .= WOOF_HTML::open("div"); $grid .= WOOF_HTML::tag("input", $input_attr); $grid .= WOOF_HTML::tag( "button", array( "type" => "button", "class" => "ir", "data-dialog" => "dialog-taxonomy-".$taxonomy->name, "data-filter" => "text", "title" => __("Select Field", MASTERPRESS_DOMAIN) ), "select" ); $grid .= WOOF_HTML::close("div"); $grid .= WOOF_HTML::close("td"); $grid .= WOOF_HTML::open("td", "class=image".(($row_style == "icon_title" || $row_style == "icon_title_excerpt") ? " disabled" : "")); $default = ""; $value = isset($options["result_row_prop"][$taxonomy->name]["image"]) ? $options["result_row_prop"][$taxonomy->name]["image"] : $default; if ($value == "") { $value = $default; } $input_attr = array( "type" => "text", "name" => "type_options[result_row_prop][".$taxonomy->name."][image]", "class" => "text", "value" => $value ); $grid .= WOOF_HTML::open("div"); $grid .= WOOF_HTML::tag("input", $input_attr); $grid .= WOOF_HTML::tag( "button", array( "type" => "button", "class" => "ir", "data-dialog" => "dialog-taxonomy-".$taxonomy->name, "data-filter" => "image", "title" => __("Select Field", MASTERPRESS_DOMAIN) ), "select" ); $grid .= WOOF_HTML::close("div"); $grid .= WOOF_HTML::close("td"); $grid .= WOOF_HTML::close("tr"); } } $grid .= WOOF_HTML::close("tbody"); $grid .= WOOF_HTML::close("table"); // build dialogs for selecting row properties in the grid $dialogs = ""; foreach ($taxonomies as $taxonomy) { if (!$taxonomy->disabled && $taxonomy->show_ui) { $dialogs .= WOOF_HTML::open( "div", array( "class" => "dialog dialog-fields", "id" => "dialog-taxonomy-".$taxonomy->name, "data-title" => __("Select a Field", MASTERPRESS_DOMAIN) ) ); $fs = $meow_provider->taxonomy_field_sets($taxonomy->name); $field_options = array(); $field_options[""] = ""; $field_options_attr = array(""); $field_options[__("( Built-in Fields )", MASTERPRESS_DOMAIN)] = array( "options" => array( __("Name", MASTERPRESS_DOMAIN) => "name", __("Description", MASTERPRESS_DOMAIN) => "description" ), "options_attr" => array( array("data-icon" => "mp-icon mp-icon-field-type-text-box", "class" => "text"), array("data-icon" => "mp-icon mp-icon-field-type-text-box-multiline", "class" => "text") ) ); foreach ($fs as $set) { $fo = array(); $fo_attr = array(); foreach ($set->fields() as $field) { if ($type_class = MPFT::type_class($field->type)) { $image = call_user_func( array($type_class, "supports_image") ) ? " image" : ""; $text = call_user_func( array($type_class, "supports_text") ) ? " text" : ""; $fo[$field->display_label()] = $set->name.".".$field->name; $fo_attr[] = $field_options_attr[] = array("class" => $image.$text, "data-icon" => "mp-icon mp-icon-field-type-".$field->type); } $field_options[$set->display_label()] = array("options" => $fo, "options_attr" => $fo_attr); } } $dialogs .= WOOF_HTML::select(array("name" => "add-field-column-field-sets", "class" => "with-icons select2-source", "data-placeholder" => __("-- Select a Field --", MASTERPRESS_DOMAIN)), $field_options, "", $field_options_attr); $dialogs .= WOOF_HTML::close("div"); } } $html = <<<HTML {$dialogs} {$control_style} <div class="f f-taxonomies"> <p class="label">{$taxonomies_label}</p> <div class="fw"> <div id="{$p}taxonomies-wrap"> {$taxonomies_checkboxes} </div> <div id="{$p}taxonomies-controls" class="controls"> <button type="button" class="button button-small select-all">Select All</button> <button type="button" class="button button-small select-none">Select None</button> </div> <!-- /.controls --> <p class="note">{$taxonomies_note}</p> </div> </div> <!-- /.f --> {$placeholder} {$basic} {$maxwidth} <div class="divider"> <h4><i class="menu-gray"></i>{$control_results_label}</h4> {$grouping} {$results_input_length} {$results_row_style} <div id="{$p}results-row-item-prop-f" class="results-row-item-prop-f f"> <p class="label">{$results_row_item_prop_label}</p> <div class="fw"> {$grid} <p class="note">{$results_row_item_prop_note}</p> </div> </div> <!-- /.f --> </div> <div id="{$p}control-selections-wrap" class="divider"> <h4><i class="buttons"></i>{$control_selections_label}</h4> {$multi_layout} </div> HTML; return $html; }
public static function manage_taxonomy() { $taxonomy = "post_tag"; if (!isset(self::$manage_taxonomy)) { if (isset($_GET["taxonomy"])) { $taxonomy = $_GET["taxonomy"]; } self::$manage_taxonomy = MPM_Taxonomy::find_by_name($taxonomy); } return self::$manage_taxonomy; }