/** * Output options page */ function cms_tpv_options() { ?> <div class="wrap"> <?php cms_tpv_show_annoying_box(); ?> <?php screen_icon(); ?> <h2><?php echo CMS_TPV_NAME; ?> <?php _e("settings", 'cms-tree-page-view'); ?> </h2> <form method="post" action="options.php" class="cmtpv_options_form"> <?php wp_nonce_field('update-options'); ?> <h3><?php _e("Select where to show a tree for pages and custom post types", 'cms-tree-page-view'); ?> </h3> <table class="form-table"> <tbody> <?php $options = cms_tpv_get_options(); $post_types = get_post_types(array("show_ui" => TRUE), "objects"); $arr_page_options = array(); foreach ($post_types as $one_post_type) { if (cms_tpv_post_type_is_ignored($one_post_type->name)) { continue; } $name = $one_post_type->name; if ($name === "post") { // no support for pages. you could show them.. but since we can't reorder them there is not idea to show them.. or..? // 14 jul 2011: ok, let's enable it for posts too. some people says it useful // http://wordpress.org/support/topic/this-plugin-should-work-also-on-posts // continue; } else { if ($name === "attachment") { // No support for media/attachment continue; } } $arr_page_options[] = "post-type-dashboard-{$name}"; $arr_page_options[] = "post-type-menu-{$name}"; $arr_page_options[] = "post-type-postsoverview-{$name}"; echo "<tr>"; echo "<th scope='row'>"; echo "<p>" . $one_post_type->label . "</p>"; echo "</th>"; echo "<td>"; echo "<p>"; $checked = in_array($name, $options["dashboard"]) ? " checked='checked' " : ""; echo "<input {$checked} type='checkbox' name='post-type-dashboard[]' value='{$name}' id='post-type-dashboard-{$name}' /> <label for='post-type-dashboard-{$name}'>" . __("On dashboard", 'cms-tree-page-view') . "</label>"; echo "<br />"; $checked = in_array($name, $options["menu"]) ? " checked='checked' " : ""; echo "<input {$checked} type='checkbox' name='post-type-menu[]' value='{$name}' id='post-type-menu-{$name}' /> <label for='post-type-menu-{$name}'>" . __("In menu", 'cms-tree-page-view') . "</label>"; echo "<br />"; $checked = in_array($name, $options["postsoverview"]) ? " checked='checked' " : ""; echo "<input {$checked} type='checkbox' name='post-type-postsoverview[]' value='{$name}' id='post-type-postsoverview-{$name}' /> <label for='post-type-postsoverview-{$name}'>" . __("On post overview screen", 'cms-tree-page-view') . "</label>"; echo "</p>"; echo "</td>"; echo "</tr>"; } ?> </tbody> </table> <input type="hidden" name="action" value="update" /> <input type="hidden" name="cms_tpv_action" value="save_settings" /> <?php // TODO: why is the line below needed? gives deprecated errors ?> <input type="hidden" name="page_options" value="<?php echo join($arr_page_options, ","); ?> " /> <p class="submit"> <input type="submit" class="button-primary" value="<?php _e('Save Changes', 'cms-tree-page-view'); ?> " /> </p> </form> </div> <?php }
/** * Output options page */ function cms_tpv_options() { /* // Just som testing stuff $args = array( "numberposts" => "-1", "orderby" => "menu_order", "order" => "ASC", "caller_get_posts" => 1, // get sticky posts in natural order (or so I understand it anyway) "post_status" => "publish", // "any" seems to get all but auto-drafts "post_type" => "page" ); $posts = get_pages($args); // works // $posts = get_posts($args); // does not work var_dump($posts); echo "num of posts: " . sizeof($posts); foreach ($posts as $one_post) { #bonny_d($one_post); echo "<br><br>title: " . esc_html($one_post->post_title); echo "<br>status: " . $one_post->post_status; echo "<br>type: " . $one_post->post_type; } // */ ?> <div class="wrap"> <h2><?php echo CMS_TPV_NAME; ?> <?php _e("settings", 'cms-tree-page-view'); ?> </h2> <form method="post" action="options.php"> <?php wp_nonce_field('update-options'); ?> <h3><?php _e("Select where to show a tree for pages and custom post types", 'cms-tree-page-view'); ?> </h3> <?php $options = cms_tpv_get_options(); $post_types = get_post_types(array(), "objects"); $arr_page_options = array(); foreach ($post_types as $one_post_type) { $name = $one_post_type->name; if ($name == "post") { // no support for pages. you could show them.. but since we can't reorder them there is not idea to show them.. or..? // 14 jul 2011: ok, let's enable it for posts too. some people says it useful // http://wordpress.org/support/topic/this-plugin-should-work-also-on-posts // continue; } if ($one_post_type->show_ui) { $arr_page_options[] = "post-type-dashboard-{$name}"; $arr_page_options[] = "post-type-menu-{$name}"; echo "<p>"; echo "<strong>" . $one_post_type->label . "</strong>"; $checked = in_array($name, $options["dashboard"]) ? " checked='checked' " : ""; echo "<br />"; echo "<input {$checked} type='checkbox' name='post-type-dashboard[]' value='{$name}' id='post-type-dashboard-{$name}' /> <label for='post-type-dashboard-{$name}'>" . __("On dashboard", 'cms-tree-page-view') . "</label>"; $checked = in_array($name, $options["menu"]) ? " checked='checked' " : ""; echo "<br />"; echo "<input {$checked} type='checkbox' name='post-type-menu[]' value='{$name}' id='post-type-menu-{$name}' /> <label for='post-type-menu-{$name}'>" . __("In menu", 'cms-tree-page-view') . "</label>"; echo "</p>"; } } ?> <input type="hidden" name="action" value="update" /> <input type="hidden" name="cms_tpv_action" value="save_settings" /> <input type="hidden" name="page_options" value="<?php echo join($arr_page_options, ","); ?> " /> <p class="submit"> <input type="submit" class="button-primary" value="<?php _e('Save Changes', 'cms-tree-page-view'); ?> " /> </p> </form> </div> <?php }