Пример #1
0
  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;
  }
Пример #2
0
  public static function manage_post_type() {
    
    $post_type = "post";

    if (!isset(self::$manage_post_type)) {
      if (isset($_GET["post_type"])) {
        $post_type = $_GET["post_type"];
      }

      self::$manage_post_type = MPM_PostType::find_by_name($post_type);
    }
    
    return self::$manage_post_type;
    
  }
Пример #3
0
  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&hellip;", MASTERPRESS_DOMAIN) ?>', buttonReplace: '<?php _e("Replace file&hellip;", 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 ? '&nbsp;'.__('(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 &amp; 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
Пример #4
0
  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;
    
  }
Пример #5
0
  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;
  }
Пример #6
0
  public static function restrict_manage_posts() {

    // sets up filter dropdowns on manage post listings linked to custom taxonomies
    
    global $typenow, $wf;
    
    MPM::incl("taxonomy");
    MPM::incl("post-type");
    
    if ($post_type = MPM_PostType::find_by_name($typenow) ) {
    
      foreach ($post_type->taxonomies() as $taxonomy) {
    
        if ($taxonomy->show_manage_filter) {
      
          // get the taxonomy API object

          $tax_slug = $taxonomy->name;
          
          if (apply_filters("manage_posts_show_taxonomy_filter", array("post_type" => $typenow, "taxonomy" => $tax_slug)) !== FALSE) { 
            
            $tax = $wf->taxonomy($tax_slug);
      
            if ($tax) {
        
              $terms = $tax->top_level_terms();
            
              if ($terms->count()) {
                // output html for taxonomy dropdown filter
                echo '<select name="'.$tax_slug.'" id="'.$tax_slug.'" class="postform custom-taxonomy-filter { taxonomy: \''.esc_attr($taxonomy->labels["singular_name"]).'\' }">';
                echo '<option value="">'.sprintf( __( " All %s&nbsp;&nbsp;" ), $tax->labels->name).'</option>';
              
                $current_term = "";
              
                if (isset($_GET[$tax_slug])) {
                  $current_term = $_GET[$tax_slug];
                }
              
                self::restrict_manage_posts_select_options( $current_term, $terms );
            
                echo '</select>';
              }
        
            }
          
          }
          
        }
      }
    
    }
    
  }
Пример #7
0
  public static function request($vars) {

    global $typenow;

    
    if (!isset($vars["orderby"]) && isset($typenow)) {
    
      // there is currently no sort order applied
      $post_type = MPM_PostType::find_by_name($typenow);

      if ($post_type) {

        if (!$post_type->_external) {
          list($sort_field, $sort_order) = explode("|", $post_type->manage_sort_order);
          $vars["orderby"] = $sort_field;
          $vars["order"] = $sort_order;
        }
    
      }
    
    }

    return $vars;
  }
Пример #8
0
  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();

    }

	
  }