<?php
/**
- * Plugin Name: Blog Posts
+ * Plugin Name: Panel Posts
* Plugin URI:
* Description: Gaslight Media Catalog Plugin
* Version: 0.0.1
* License: GPLv2
**/
-define( 'GLM_BLOG_POST_TYPE', 'glm-blog' );
-define( 'GLM_BLOG_SINGLE', 'Blog' );
-define( 'GLM_BLOG_PLURAL', 'Blog Posts' );
-define( 'GLM_BLOG_CATEGORY_NAME', 'blog_category' );
-define( 'GLM_BLOG_CATEGORY_SLUG', 'blog-posts-category' );
-define( 'GLM_BLOG_CATEGORY_SINGLE', 'Blog Type' );
-define( 'GLM_BLOG_CATEGORY_PLURAL', 'Blog Types' );
+define( 'GLM_PANEL_POST_TYPE', 'glm-panel' );
+define( 'GLM_PANEL_SINGLE', 'Panel' );
+define( 'GLM_PANEL_PLURAL', 'Panel Posts' );
+define( 'GLM_PANEL_CATEGORY_NAME', 'panel_category' );
+define( 'GLM_PANEL_CATEGORY_SLUG', 'panel-posts-category' );
+define( 'GLM_PANEL_CATEGORY_SINGLE', 'Panel Type' );
+define( 'GLM_PANEL_CATEGORY_PLURAL', 'Panel Types' );
// Register Custom Post Type.
/**
- * Blog Posts_custom_post_type
+ * Panel Posts_custom_post_type
*
* Setup of the Wordpress Custom Post Type
*
* @access public
* @return void
*/
-function blogs_custom_post_type() {
+function panels_custom_post_type() {
$labels = array(
- 'name' => _x( GLM_BLOG_PLURAL, 'Post Type General Name' ),
- 'singular_name' => _x( GLM_BLOG_SINGLE, 'Post Type Singular Name' ),
- 'menu_name' => __( GLM_BLOG_PLURAL ),
- 'name_admin_bar' => __( GLM_BLOG_PLURAL ),
- 'archives' => __( GLM_BLOG_SINGLE . ' Archives' ),
- 'parent_item_colon' => __( 'Parent Blog Post:' ),
- 'all_items' => __( 'All Blog Posts' ),
- 'add_new_item' => __( 'Add New Blog Post' ),
+ 'name' => _x( GLM_PANEL_PLURAL, 'Post Type General Name' ),
+ 'singular_name' => _x( GLM_PANEL_SINGLE, 'Post Type Singular Name' ),
+ 'menu_name' => __( GLM_PANEL_PLURAL ),
+ 'name_admin_bar' => __( GLM_PANEL_PLURAL ),
+ 'archives' => __( GLM_PANEL_SINGLE . ' Archives' ),
+ 'parent_item_colon' => __( 'Parent Panel Post:' ),
+ 'all_items' => __( 'All Panel Posts' ),
+ 'add_new_item' => __( 'Add New Panel Post' ),
'add_new' => __( 'Add New' ),
- 'new_item' => __( 'New Blog Post' ),
+ 'new_item' => __( 'New Panel Post' ),
'edit_item' => __( 'Edit Room' ),
'update_item' => __( 'Update Room' ),
- 'view_item' => __( 'View Blog Post' ),
- 'search_items' => __( 'Search Blog Posts' ),
+ 'view_item' => __( 'View Panel Post' ),
+ 'search_items' => __( 'Search Panel Posts' ),
'not_found' => __( 'Not found' ),
'not_found_in_trash' => __( 'Not found in Trash' ),
'featured_image' => __( 'Featured Image' ),
'use_featured_image' => __( 'Use as featured image' ),
'insert_into_item' => __( 'Insert into item' ),
'uploaded_to_this_item' => __( 'Uploaded to this item' ),
- 'items_list' => __( 'Blog Posts list' ),
- 'items_list_navigation' => __( 'Blog Posts list navigation' ),
+ 'items_list' => __( 'Panel Posts list' ),
+ 'items_list_navigation' => __( 'Panel Posts list navigation' ),
'filter_items_list' => __( 'Filter items list' ),
);
$rewrite = array(
- 'slug' => GLM_BLOG_POST_TYPE,
+ 'slug' => GLM_PANEL_POST_TYPE,
'with_front' => false,
'pages' => false,
'feeds' => false,
);
$args = array(
- 'label' => __( GLM_BLOG_SINGLE ),
- 'description' => __( 'Custom ' . GLM_BLOG_PLURAL ),
+ 'label' => __( GLM_PANEL_SINGLE ),
+ 'description' => __( 'Custom ' . GLM_PANEL_PLURAL ),
'labels' => $labels,
'supports' => array( 'title', 'thumbnail', 'revisions', 'editor', 'author'),
'hierarchical' => true,
'publicly_queryable' => true,
'rewrite' => $rewrite,
'capability_type' => 'page',
- 'register_meta_box_cb' => 'blogs_add_metaboxes',
+ 'register_meta_box_cb' => 'panels_add_metaboxes',
);
- register_post_type( GLM_BLOG_POST_TYPE, $args );
- register_taxonomy_for_object_type( GLM_BLOG_CATEGORY_NAME, GLM_BLOG_POST_TYPE );
+ register_post_type( GLM_PANEL_POST_TYPE, $args );
+ register_taxonomy_for_object_type( GLM_PANEL_CATEGORY_NAME, GLM_PANEL_POST_TYPE );
}
/**
- * Blog Posts_add_metaboxes
+ * Panel Posts_add_metaboxes
*
* Add the meta fields
*
* @access public
* @return void
*/
-function blogs_add_metaboxes() {
- add_meta_box( 'blogs_water', 'Water', 'blogs_water', GLM_BLOG_POST_TYPE, 'side', 'low' );
- add_meta_box( 'blogs_sewer', 'Sewer', 'blogs_sewer', GLM_BLOG_POST_TYPE, 'side', 'low' );
- add_meta_box( 'blogs_power', 'Power', 'blogs_power', GLM_BLOG_POST_TYPE, 'side', 'low' );
- add_meta_box( 'blogs_loop', 'Loop', 'blogs_loop', GLM_BLOG_POST_TYPE, 'side', 'low' );
-// add_meta_box( 'blogs_tents', 'Tents', 'blogs_tents', GLM_BLOG_POST_TYPE, 'side', 'low' );
+function panels_add_metaboxes() {
+ add_meta_box( 'panels_water', 'Water', 'panels_water', GLM_PANEL_POST_TYPE, 'side', 'low' );
+ add_meta_box( 'panels_sewer', 'Sewer', 'panels_sewer', GLM_PANEL_POST_TYPE, 'side', 'low' );
+ add_meta_box( 'panels_power', 'Power', 'panels_power', GLM_PANEL_POST_TYPE, 'side', 'low' );
+ add_meta_box( 'panels_loop', 'Loop', 'panels_loop', GLM_PANEL_POST_TYPE, 'side', 'low' );
+// add_meta_box( 'panels_tents', 'Tents', 'panels_tents', GLM_PANEL_POST_TYPE, 'side', 'low' );
}
/**
- * Blog Posts_water
+ * Panel Posts_water
*
* Add field for the water availability
*
* @access public
* @return void
*/
-function blogs_water() {
+function panels_water() {
global $post;
$checked = '';
// Get the features for the post.
- $water = get_post_meta( $post->ID, 'blogs_water', true );
+ $water = get_post_meta( $post->ID, 'panels_water', true );
// Output field.
if ( 'yes' === $water ) {
$checked = 'checked="checked"';
}
?>
-<input type="checkbox" name="blogs_water" value="yes" <?php echo $checked; ?> />
+<input type="checkbox" name="panels_water" value="yes" <?php echo $checked; ?> />
<?php
}
/**
- * Blog Posts_tents
+ * Panel Posts_tents
*
* Add field for the water availability
*
* @access public
* @return void
*/
-//function blogs_tents() {
+//function panels_tents() {
// global $post;
//
// // Get the features for the post.
-// $tents = get_post_meta( $post->ID, 'blogs_tents', true );
+// $tents = get_post_meta( $post->ID, 'panels_tents', true );
//
// // Output field.
// if ( 'yes' === $tents ) {
//
//}
/**
- * Blog Posts_loop
+ * Panel Posts_loop
*
* Add field for the loop
*
* @access public
* @return void
*/
-function blogs_loop() {
+function panels_loop() {
global $post;
$value = '';
// Noncename needed to verify where the data originated.
- $nonce = wp_create_nonce( 'blogsmeta-meta-noncename' );
- echo '<input type="hidden" name="blogsmeta-meta-noncename" id="blogsmeta-meta-noncename-loop" value="' . $nonce . '" />';
+ $nonce = wp_create_nonce( 'panelsmeta-meta-noncename' );
+ echo '<input type="hidden" name="panelsmeta-meta-noncename" id="panelsmeta-meta-noncename-loop" value="' . $nonce . '" />';
// Get the features for the post.
- $loop = get_post_meta( $post->ID, 'blogs_loop', true );
+ $loop = get_post_meta( $post->ID, 'panels_loop', true );
// Output field.
if ( !empty( $loop ) ) {
$value = "value=".'"'.$loop .'"';
}
?>
- <input type="text" name="blogs_loop" <?php echo $value; ?> />
+ <input type="text" name="panels_loop" <?php echo $value; ?> />
<?php
}
/**
- * Blog Posts_sewer
+ * Panel Posts_sewer
*
* Adds the field for sewer availibility
*
* @access public
* @return void
*/
-function blogs_sewer() {
+function panels_sewer() {
global $post;
$checked = '';
// Noncename needed to verify where the data originated.
- $nonce = wp_create_nonce( 'blogsmeta-meta-noncename' );
- echo '<input type="hidden" name="blogsmeta-meta-noncename" id="blogsmeta-meta-noncename-sewer" value="' . $nonce . '" />';
+ $nonce = wp_create_nonce( 'panelsmeta-meta-noncename' );
+ echo '<input type="hidden" name="panelsmeta-meta-noncename" id="panelsmeta-meta-noncename-sewer" value="' . $nonce . '" />';
// Get the features for the post.
- $sewer = get_post_meta( $post->ID, 'blogs_sewer', true );
+ $sewer = get_post_meta( $post->ID, 'panels_sewer', true );
// Output field.
if ( "yes" === $sewer ) {
}
?>
- <input type="checkbox" name="blogs_sewer" value="yes" <?php echo $checked; ?> />
+ <input type="checkbox" name="panels_sewer" value="yes" <?php echo $checked; ?> />
<?php
}
/**
- * Blog Posts_campers
+ * Panel Posts_campers
*
* Adds the field for camper types
*
* @access public
* @return void
*/
-function blogs_campers() {
+function panels_campers() {
global $post;
// Get the features for the post.
- $campers = get_post_meta( $post->ID, 'blogs_campers', true );
+ $campers = get_post_meta( $post->ID, 'panels_campers', true );
// Output field.
if ( !empty( $campers ) ) {
$value = "value=".'"'.$campers .'"';
}
?>
- <input type="text" name="blogs_campers" <?php echo $value; ?> />
+ <input type="text" name="panels_campers" <?php echo $value; ?> />
<?php
}
/**
- * Blog Posts_power
+ * Panel Posts_power
*
* Adds the field for power availability
* @access public
* @return void
*/
-function blogs_power() {
+function panels_power() {
global $post;
$value = '';
// Noncename needed to verify where the data originated.
- $nonce = wp_create_nonce( 'blogsmeta-meta-noncename' );
- echo '<input type="hidden" name="blogsmeta-meta-noncename" id="blogsmeta-meta-noncename-power" value="' . $nonce . '" />';
+ $nonce = wp_create_nonce( 'panelsmeta-meta-noncename' );
+ echo '<input type="hidden" name="panelsmeta-meta-noncename" id="panelsmeta-meta-noncename-power" value="' . $nonce . '" />';
// Get the features for the post.
- $power = get_post_meta( $post->ID, 'blogs_power', true );
+ $power = get_post_meta( $post->ID, 'panels_power', true );
// Output field.
if ( !empty( $power ) ) {
$value = "value=".'"'.$power .'"';
}
?>
- <input type="text" name="blogs_power" <?php echo $value; ?> />
+ <input type="text" name="panels_power" <?php echo $value; ?> />
<?php
}
/**
- * Blog Posts_save_meta
+ * Panel Posts_save_meta
*
* Saves the meta fields for the product
*
* @access public
* @return void
*/
-function blogs_save_meta() {
+function panels_save_meta() {
global $post;
- if ( ! wp_verify_nonce( $_POST['blogsmeta-meta-noncename'], 'blogsmeta-meta-noncename' ) ) {
+ if ( ! wp_verify_nonce( $_POST['panelsmeta-meta-noncename'], 'panelsmeta-meta-noncename' ) ) {
return $post->ID;
}
if ( ! current_user_can( 'edit_post', $post->ID ) ) {
return $post->ID;
}
- $water = (isset($_POST['blogs_water']) ? filter_var( $_POST['blogs_water'] ) : '' );
- $sewer = (isset($_POST['blogs_sewer']) ? filter_var( $_POST['blogs_sewer'] ) : '' );
- $power = (isset($_POST['blogs_power']) ? filter_var( $_POST['blogs_power'] ) : '' );
- $loop = (isset($_POST['blogs_loop']) ? filter_var( $_POST['blogs_loop'] ) : '' );
-// $tents = filter_var( $_POST['blogs_tents'] );
- update_post_meta( $post->ID, 'blogs_water', $water );
- update_post_meta( $post->ID, 'blogs_sewer', $sewer );
- update_post_meta( $post->ID, 'blogs_power', $power );
- update_post_meta( $post->ID, 'blogs_loop', $loop );
-// update_post_meta( $post->ID, 'blogs_tents', $tents );
+ $water = (isset($_POST['panels_water']) ? filter_var( $_POST['panels_water'] ) : '' );
+ $sewer = (isset($_POST['panels_sewer']) ? filter_var( $_POST['panels_sewer'] ) : '' );
+ $power = (isset($_POST['panels_power']) ? filter_var( $_POST['panels_power'] ) : '' );
+ $loop = (isset($_POST['panels_loop']) ? filter_var( $_POST['panels_loop'] ) : '' );
+// $tents = filter_var( $_POST['panels_tents'] );
+ update_post_meta( $post->ID, 'panels_water', $water );
+ update_post_meta( $post->ID, 'panels_sewer', $sewer );
+ update_post_meta( $post->ID, 'panels_power', $power );
+ update_post_meta( $post->ID, 'panels_loop', $loop );
+// update_post_meta( $post->ID, 'panels_tents', $tents );
}
/**
- * blogs_taxonomies
+ * panels_taxonomies
*
* Setup of the Taxonomies for the post type
*
* @access public
* @return void
*/
-function blogs_taxonomies() {
+function panels_taxonomies() {
// Experiences
$labels = array(
- 'name' => _x( GLM_BLOG_CATEGORY_NAME, 'taxonomy general name' ),
- 'singular_name' => _x( GLM_BLOG_CATEGORY_NAME, 'taxonomy singular name' ),
- 'search_items' => __( 'Search ' . GLM_BLOG_CATEGORY_PLURAL ),
- 'all_items' => __( 'All ' . GLM_BLOG_CATEGORY_PLURAL ),
- 'parent_item' => __( 'Parent ' . GLM_BLOG_CATEGORY_SINGLE ),
- 'parent_item_colon' => __( 'Parent ' . GLM_BLOG_CATEGORY_SINGLE ),
- 'edit_item' => __( 'Edit ' . GLM_BLOG_CATEGORY_SINGLE ),
- 'update_item' => __( 'Update ' . GLM_BLOG_CATEGORY_SINGLE ),
- 'add_new_item' => __( 'Add New ' . GLM_BLOG_CATEGORY_SINGLE ),
- 'new_item_name' => __( 'New ' . GLM_BLOG_CATEGORY_SINGLE . ' Name' ),
- 'menu_name' => __( 'Site ' . GLM_BLOG_CATEGORY_SINGLE ),
+ 'name' => _x( GLM_PANEL_CATEGORY_NAME, 'taxonomy general name' ),
+ 'singular_name' => _x( GLM_PANEL_CATEGORY_NAME, 'taxonomy singular name' ),
+ 'search_items' => __( 'Search ' . GLM_PANEL_CATEGORY_PLURAL ),
+ 'all_items' => __( 'All ' . GLM_PANEL_CATEGORY_PLURAL ),
+ 'parent_item' => __( 'Parent ' . GLM_PANEL_CATEGORY_SINGLE ),
+ 'parent_item_colon' => __( 'Parent ' . GLM_PANEL_CATEGORY_SINGLE ),
+ 'edit_item' => __( 'Edit ' . GLM_PANEL_CATEGORY_SINGLE ),
+ 'update_item' => __( 'Update ' . GLM_PANEL_CATEGORY_SINGLE ),
+ 'add_new_item' => __( 'Add New ' . GLM_PANEL_CATEGORY_SINGLE ),
+ 'new_item_name' => __( 'New ' . GLM_PANEL_CATEGORY_SINGLE . ' Name' ),
+ 'menu_name' => __( 'Site ' . GLM_PANEL_CATEGORY_SINGLE ),
);
$capabilities = array(
);
$args = array(
- 'label' => __( GLM_BLOG_CATEGORY_PLURAL ),
- 'rewrite' => array( 'slug' => GLM_BLOG_CATEGORY_SLUG ),
+ 'label' => __( GLM_PANEL_CATEGORY_PLURAL ),
+ 'rewrite' => array( 'slug' => GLM_PANEL_CATEGORY_SLUG ),
'capabilities' => $capabilities,
'public ' => true,
'show_in_quick_edit' => true,
);
register_taxonomy(
- GLM_BLOG_CATEGORY_NAME,
- GLM_BLOG_POST_TYPE,
+ GLM_PANEL_CATEGORY_NAME,
+ GLM_PANEL_POST_TYPE,
$args
);
}
/**
- * blogs_taxonomy_filter_restrict_manage_posts
+ * panels_taxonomy_filter_restrict_manage_posts
*
* This will setup the Filter for the Custom taxonomies.
*
* @access public
* @return void
*/
-function blogs_taxonomy_filter_restrict_manage_posts() {
+function panels_taxonomy_filter_restrict_manage_posts() {
global $typenow;
$post_types = get_post_types( array( '_builtin' => false ) );
'show_option_all' => __( 'Show All ' . $tax_obj->label ),
'taxonomy' => $tax_slug,
'name' => $tax_obj->name,
- 'orderby' => 'name',
+ 'orderby' => 'menu_order',
'selected' => ( isset( $_GET[$tax_slug] ) ),
'hierarchical' => $tax_obj->hierarchical,
'show_count' => false,
}
}
-add_action( 'restrict_manage_posts', 'blogs_taxonomy_filter_restrict_manage_posts' );
+add_action( 'restrict_manage_posts', 'panels_taxonomy_filter_restrict_manage_posts' );
/**
- * Blog Posts_taxonomy_filter_post_type_request
+ * Panel Posts_taxonomy_filter_post_type_request
*
* Filter the post request for the Taxonomy Filter
*
* @access public
* @return void
*/
-function blogs_taxonomy_filter_post_type_request( $query ) {
+function panels_taxonomy_filter_post_type_request( $query ) {
global $pagenow, $typenow;
if ( 'edit.php' === $pagenow ) {
}
}
}
-add_filter( 'parse_query', 'blogs_taxonomy_filter_post_type_request' );
-add_action( 'init', 'blogs_custom_post_type' );
-add_action( 'init', 'blogs_taxonomies' );
-add_action( 'save_post', 'blogs_save_meta' );
+add_filter( 'parse_query', 'panels_taxonomy_filter_post_type_request' );
+add_action( 'init', 'panels_custom_post_type' );
+add_action( 'init', 'panels_taxonomies' );
+add_action( 'save_post', 'panels_save_meta' );
/**
- * Blog Posts_set_admin_columns
+ * Panel Posts_set_admin_columns
*
* Setup of the list columns
*
* @access public
* @return void
*/
-function blogs_set_admin_columns() {
- add_filter( 'manage_edit-blogs_columns', 'blogs_admin_edit_columns' );
- add_action( 'manage_blogs_posts_custom_column', 'blogs_admin_custom_columns' );
+function panels_set_admin_columns() {
+ add_filter( 'manage_edit-panels_columns', 'panels_admin_edit_columns' );
+ add_action( 'manage_panels_posts_custom_column', 'panels_admin_custom_columns' );
}
-add_action( 'admin_init', 'blogs_set_admin_columns' );
+add_action( 'admin_init', 'panels_set_admin_columns' );
/**
- * Blog Posts_admin_edit_columns
+ * Panel Posts_admin_edit_columns
*
* Setup of the edit columns. This will create the headers for each column.
*
* @access public
* @return void
*/
-function blogs_admin_edit_columns( $columns ) {
+function panels_admin_edit_columns( $columns ) {
$columns = array(
'cb' => '<input type="checkbox">',
- 'title' => GLM_BLOG_SINGLE . ' Title',
- 'blogs_col_cat' => GLM_BLOG_CATEGORY_SINGLE,
+ 'title' => GLM_PANEL_SINGLE . ' Title',
+ 'panels_col_cat' => GLM_PANEL_CATEGORY_SINGLE,
);
return $columns;
}
/**
- * Blog Posts_admin_custom_columns
+ * Panel Posts_admin_custom_columns
*
* This will generate the column data for eaoch record.
*
* @access public
* @return void
*/
-function blogs_admin_custom_columns( $column ) {
+function panels_admin_custom_columns( $column ) {
global $post;
switch ( $column ) {
- case 'blogs_col_cat':
- $product_cats = get_the_terms( $post->ID, 'blogs_category' );
+ case 'panels_col_cat':
+ $product_cats = get_the_terms( $post->ID, 'panels_category' );
$product_cats_html = array();
if ( $product_cats ) {
foreach ( $product_cats as $product_cat ) {
_e( 'None', 'themeforce' );
}
break;
- case 'blogs_col_tag':
- $product_tags = get_the_terms( $post->ID, 'blogs_tag' );
+ case 'panels_col_tag':
+ $product_tags = get_the_terms( $post->ID, 'panels_tag' );
$product_tags_html = array();
if ( $product_tags ) {
foreach ( $product_tags as $product_tag ) {
}
/**
- * Blog Posts_shortcode
+ * Panel Posts_shortcode
*
* Add shortcode function. This will call the correct function based on the
* front end search.
* @access public
* @return void
*/
-function blogs_shortcode( $atts ) {
+function panels_shortcode( $atts ) {
extract( shortcode_atts( array( 'limit' => '10' ), $atts ) );
ob_start();
if ( isset( $atts['cat']) ) {
- if ( $prod_experience = get_term_by( 'slug', $atts['cat'], GLM_BLOG_CATEGORY_NAME ) ) {
- if ( !isset($_REQUEST[ GLM_BLOG_CATEGORY_NAME ] )) {
- $_REQUEST[ GLM_BLOG_CATEGORY_NAME ] = $prod_experience->term_id;
+ if ( $prod_experience = get_term_by( 'slug', $atts['cat'], GLM_PANEL_CATEGORY_NAME ) ) {
+ if ( !isset($_REQUEST[ GLM_PANEL_CATEGORY_NAME ] )) {
+ $_REQUEST[ GLM_PANEL_CATEGORY_NAME ] = $prod_experience->term_id;
}
$cat_id = $prod_experience->term_id;
}
}
- $term = get_term_by( "id", $_REQUEST[ GLM_BLOG_CATEGORY_NAME ],"blogs_category" );
+ $term = get_term_by( "id", $_REQUEST[ GLM_PANEL_CATEGORY_NAME ],"panels_category" );
$name = $term->name;
if ( !$name ) {
$name = "ALL PRODUCTS";
global $wp;
echo '<form id="catSubmit" action=""><div class="row catSearch"><div id="viewBtns" class="12-small medium-3 columns"> <button id="grid" type="button">Grid</button> <button id="list"type=" button">list</button>
<span id="productSearch"><a href="' . get_permalink( 510 ) . '"> Search Products </a></span></div><div id="catDropdown" class="small-12 medium-4 columns">';
- echo blogs_get_terms_dropdown( $cat_id );
+ echo panels_get_terms_dropdown( $cat_id );
echo '</div><div id="searchContainer" class="small-12 medium-3 columns"></form> <form class="searchform" role="search" method="post" action="">
<input id="filter" class="search-input" placeholder="SEARCH ' . strtoupper( $name ) . '" value="" autocomplete="off" name="tsearch" type="text">
<input id="input" class="search-button" name="searchButton" value="Search" type="submit">
</form></div></div>';
if ( $product_id = filter_var( $_REQUEST['product'], FILTER_VALIDATE_INT ) ) {
- blogs_show_product( $product_id );
+ panels_show_product( $product_id );
} else if ( $cat_id = filter_var( $_REQUEST['category'], FILTER_VALIDATE_INT ) ) {
- blogs_list_categories( $cat_id );
+ panels_list_categories( $cat_id );
} else if ( !$catid_id && !$product_id ) {
$text_query = filter_var( $_REQUEST['tsearch'], FILTER_SANITIZE_STRING );
} else {
setcookie("search", "null",time()+2, "/" );
}
- blogs_list_products( $text_query );
- blogs_list_categories();
+ panels_list_products( $text_query );
+ panels_list_categories();
}
$output = ob_get_contents();
}
/**
- * Blog Posts_get_terms_dropdown
+ * Panel Posts_get_terms_dropdown
*
* Generate the taxonomy drop down select
*
* @access public
* @return void
*/
-function blogs_get_terms_dropdown( $cat_id ) {
+function panels_get_terms_dropdown( $cat_id ) {
- $taxonomy_name = GLM_BLOG_CATEGORY_NAME;
+ $taxonomy_name = GLM_PANEL_CATEGORY_NAME;
if ( $cat_id ) {
- $main = get_term( $cat_id, GLM_BLOG_CATEGORY_NAME );
+ $main = get_term( $cat_id, GLM_PANEL_CATEGORY_NAME );
$cats_child = get_term_children( $cat_id, $taxonomy_name );
- $output ="<select id='categoryDropdown' name=\"" . GLM_BLOG_CATEGORY_NAME . "\"><option value=\"\"> Select " . $main->name . " Sub-category" . "</option>";
+ $output ="<select id='categoryDropdown' name=\"" . GLM_PANEL_CATEGORY_NAME . "\"><option value=\"\"> Select " . $main->name . " Sub-category" . "</option>";
foreach ( $cats_child as $cat ) {
$output .= '<option value="' . $cat . '"';
- if ( $_REQUEST[ GLM_BLOG_CATEGORY_NAME ] == $cat ) {
+ if ( $_REQUEST[ GLM_PANEL_CATEGORY_NAME ] == $cat ) {
$output .= ' selected';
}
- $cat_name = get_term( $cat, GLM_BLOG_CATEGORY_NAME );
+ $cat_name = get_term( $cat, GLM_PANEL_CATEGORY_NAME );
$output .= '>' . "   " . $cat_name->name. '</option>';
}
$output .="</select>";
$parent_terms = get_terms( $taxonomy_name, array('parent' => 0, 'orderby' => 'name', 'hide_empty' => false ));
$terms = get_terms( $taxonomy_name, array('orderby' => 'name', 'hide_empty' => false ));
- $output ="<select id='categoryDropdown' name=\"" . GLM_BLOG_CATEGORY_NAME . "\"><option value=\"\">Select " . GLM_BLOG_CATEGORY_SINGLE . "</option>";
+ $output ="<select id='categoryDropdown' name=\"" . GLM_PANEL_CATEGORY_NAME . "\"><option value=\"\">Select " . GLM_PANEL_CATEGORY_SINGLE . "</option>";
// Get parent categories.
foreach ( $parent_terms as $parent ) {
// Get children of each category.
$child_terms = get_terms( $taxonomy_name, array('parent'=> $parent->term_id, 'child_of' => $parent->term_id, 'orderby' => 'name', 'hide_empty' => false));
$output .= '<option value="' . $parent->term_id . '"';
- if ( $_REQUEST[ GLM_BLOG_CATEGORY_NAME ] === $parent->term_id ) {
+ if ( $_REQUEST[ GLM_PANEL_CATEGORY_NAME ] === $parent->term_id ) {
$output .= ' selected';
}
$output .= '>' . $parent->name . '</option>';
foreach ($child_terms as $child ) {
$grandchildren = get_terms( $taxonomy_name, array('parent'=> $child->term_id, 'child_of' => $child->term_id, 'orderby' => 'name', 'hide_empty' => false ));
$output .= '<option value="' . $child->term_id . '"';
- if ( $_REQUEST[ GLM_BLOG_CATEGORY_NAME ] === $child->term_id ) {
+ if ( $_REQUEST[ GLM_PANEL_CATEGORY_NAME ] === $child->term_id ) {
$output .= ' selected';
}
$output .= '>' . "   " . $child->name . '</option>';
foreach ( $grandchildren as $grand_child) {
$great_grandchildren = get_terms( $taxonomy_name, array( 'parent'=> $grand_child->term_id, 'child_of' => $grand_child->term_id, 'orderby' => 'name', 'hide_empty' => false ));
$output .= '<option value="' . $grand_child->term_id . '"';
- if ( $_REQUEST[ GLM_BLOG_CATEGORY_NAME ] === $grand_child->term_id ) {
+ if ( $_REQUEST[ GLM_PANEL_CATEGORY_NAME ] === $grand_child->term_id ) {
$output .= ' selected';
}
$output .= '>' . "      " . $grand_child->name . '</option>';
foreach ( $great_grandchildren as $great_grandchild ) {
$output .= '<option value="' . $great_grandchild->term_id . '"';
- if ( $_REQUEST[ GLM_BLOG_CATEGORY_NAME ] === $great_grandchild->term_id ) {
+ if ( $_REQUEST[ GLM_PANEL_CATEGORY_NAME ] === $great_grandchild->term_id ) {
$output .= ' selected';
}
$output .= '>' . "            " . $great_grandchild->name . '</option>';
/**
- * Blog Posts_list_products
+ * Panel Posts_list_products
*
* Create a list of products.
*
* @access public
* @return void
*/
-function blogs_list_products( $text_query ) {
+function panels_list_products( $text_query ) {
global $wpdb, $wp;
- $cat = get_term( $cat_id, GLM_BLOG_CATEGORY_NAME );
+ $cat = get_term( $cat_id, GLM_PANEL_CATEGORY_NAME );
$args = array(
'posts_per_page' => -1,
- 'post_type' => GLM_BLOG_POST_TYPE,
+ 'post_type' => GLM_PANEL_POST_TYPE,
's' => $text_query,
);
- $blogs_category = ( isset( $_REQUEST[ GLM_BLOG_CATEGORY_NAME ] ) )
- ? filter_var( $_REQUEST[ GLM_BLOG_CATEGORY_NAME ] )
+ $panels_category = ( isset( $_REQUEST[ GLM_PANEL_CATEGORY_NAME ] ) )
+ ? filter_var( $_REQUEST[ GLM_PANEL_CATEGORY_NAME ] )
: false;
- if ( $blogs_category ) {
+ if ( $panels_category ) {
$args['tax_query'] = array(
'relation' => 'AND',
);
$args['tax_query'][] = array(
- 'taxonomy' => GLM_BLOG_CATEGORY_NAME,
+ 'taxonomy' => GLM_PANEL_CATEGORY_NAME,
'field' => 'id',
- 'terms' => $blogs_category,
+ 'terms' => $panels_category,
);
}
$iterator = 1;
foreach ( $products as $product ) {
- $product_terms = wp_get_post_terms( $product->ID, GLM_BLOG_CATEGORY_NAME, 'name' );
+ $product_terms = wp_get_post_terms( $product->ID, GLM_PANEL_CATEGORY_NAME, 'name' );
$p_term = $product_terms[0];
$product->term = $p_term->name;
$product->end = false;
if ( $iterator == $total_products ) {
$product->end = true;
}
- $cat->href = "?blogs_category=";
+ $cat->href = "?panels_category=";
$product->href = $current_url
. ( ( strpos( $current_url, '?' ) ) ? '&' : '?' )
. "product=" . $product->ID;
return;
}
/**
- * blogs_list_categories
+ * panels_list_categories
*
* Create a list of categories.
*
* @access public
* @return void
*/
-function blogs_list_categories( $cat_id = null ) {
+function panels_list_categories( $cat_id = null ) {
global $wpdb, $wp;
- $taxonomy = GLM_BLOG_CATEGORY_NAME;
+ $taxonomy = GLM_PANEL_CATEGORY_NAME;
$args = array(
'hide_empty' => false,
'pad_counts' => true
}
$term->href .= //$current_url
// ( ( strpos( $current_url, '?' ) ) ? '&' : '?' ).
- "?blogs_category=" . $term->term_id;
+ "?panels_category=" . $term->term_id;
++$iterator;
}
}
/**
- * Blog Posts_show_product
+ * Panel Posts_show_product
*
* Create a product detail page.
*
* @access public
* @return void
*/
-function blogs_show_product( $prod_id ) {
+function panels_show_product( $prod_id ) {
global $wpdb, $wp;
$product = get_post( $prod_id );
include 'views/product_detail.php';
return;
}
/**
- * Blog Posts_show_category
+ * Panel Posts_show_category
*
* Create a product detail page.
*
* @access public
* @return void
*/
-function blogs_show_category( $cat_id ) {
+function panels_show_category( $cat_id ) {
global $wpdb, $wp;
$term = get_terms(
- GLM_BLOG_CATEGORY_NAME,
+ GLM_PANEL_CATEGORY_NAME,
array(
'child_of' => $cat_id,
'hide_empty' => true,
include 'views/category_detail.php';
return;
}
-add_shortcode( 'blogs', 'blogs_shortcode' );
+add_shortcode( 'panels', 'panels_shortcode' );
--- /dev/null
+<?php
+/**
+ * Plugin Name: Parallax Posts Parallax Posts
+ * Plugin URI:
+ * Description: Gaslight Media Catalog Plugin
+ * Version: 0.0.1
+ * Author: Steve Sutton <steve@gaslightmedia.com>
+ * Author URI:
+ * License: GPLv2
+ **/
+
+define( 'GLM_PARALLAX_POST_POST_TYPE', 'glm-parallax' );
+define( 'GLM_PARALLAX_POST_SINGLE', 'Parallax Post' );
+define( 'GLM_PARALLAX_POST_PLURAL', 'Parallax Posts' );
+define( 'GLM_PARALLAX_POST_CATEGORY_NAME', 'parallax_posts_category' );
+define( 'GLM_PARALLAX_POST_CATEGORY_SLUG', 'parallax_posts-category' );
+define( 'GLM_PARALLAX_POST_CATEGORY_SINGLE', 'Type' );
+define( 'GLM_PARALLAX_POST_CATEGORY_PLURAL', 'Parallax Post Types' );
+
+// Register Custom Post Type.
+/**
+ * Parallax Posts_custom_post_type
+ *
+ * Setup of the Wordpress Custom Post Type
+ *
+ * @access public
+ * @return void
+ */
+function parallax_posts_custom_post_type() {
+
+ $labels = array(
+ 'name' => _x( GLM_PARALLAX_POST_PLURAL, 'Post Type General Name' ),
+ 'singular_name' => _x( GLM_PARALLAX_POST_SINGLE, 'Post Type Singular Name' ),
+ 'menu_name' => __( GLM_PARALLAX_POST_PLURAL ),
+ 'name_admin_bar' => __( GLM_PARALLAX_POST_PLURAL ),
+ 'archives' => __( GLM_PARALLAX_POST_SINGLE . ' Archives' ),
+ 'parent_item_colon' => __( 'Parent Parallax Post:' ),
+ 'all_items' => __( 'All Parallax Posts' ),
+ 'add_new_item' => __( 'Add New Parallax Post' ),
+ 'add_new' => __( 'Add New Parallax Post' ),
+ 'new_item' => __( 'New Parallax Post' ),
+ 'edit_item' => __( 'Edit Parallax Post' ),
+ 'update_item' => __( 'Update Parallax Post' ),
+ 'view_item' => __( 'View Parallax Post' ),
+ 'search_items' => __( 'Search Parallax Post' ),
+ 'not_found' => __( 'Not found' ),
+ 'not_found_in_trash' => __( 'Not found in Trash' ),
+ 'featured_image' => __( 'Featured Image' ),
+ 'set_featured_image' => __( 'Set featured image' ),
+ 'remove_featured_image' => __( 'Remove featured image' ),
+ 'use_featured_image' => __( 'Use as featured image' ),
+ 'insert_into_item' => __( 'Insert into item' ),
+ 'uploaded_to_this_item' => __( 'Uploaded to this item' ),
+ 'items_list' => __( 'Parallax Posts list' ),
+ 'items_list_navigation' => __( 'Parallax Posts list navigation' ),
+ 'filter_items_list' => __( 'Filter items list' ),
+ );
+
+ $rewrite = array(
+ 'slug' => GLM_PARALLAX_POST_POST_TYPE ,
+ 'with_front' => false,
+ 'pages' => false,
+ 'feeds' => false,
+ );
+
+ $args = array(
+ 'label' => __( GLM_PARALLAX_POST_SINGLE ),
+ 'description' => __( 'Custom ' . GLM_PARALLAX_POST_PLURAL ),
+ 'labels' => $labels,
+ 'supports' => array( 'title', 'thumbnail', 'revisions', 'editor', 'author','page-attributes'),
+ 'hierarchical' => true,
+ 'public' => true,
+ 'show_ui' => true,
+ 'show_in_menu' => true,
+ 'menu_position' => 5,
+ 'menu_icon' => 'dashicons-images-alt',
+ 'show_in_admin_bar' => true,
+ 'show_in_nav_menus' => true,
+ 'can_export' => true,
+ 'has_archive' => true,
+ 'exclude_from_search' => false,
+ 'publicly_queryable' => true,
+ 'rewrite' => $rewrite,
+ 'capability_type' => 'page',
+ 'register_meta_box_cb' => 'parallax_posts_add_metaboxes',
+ );
+
+ register_post_type( GLM_PARALLAX_POST_POST_TYPE , $args );
+ register_taxonomy_for_object_type( GLM_PARALLAX_POST_CATEGORY_NAME, GLM_PARALLAX_POST_POST_TYPE );
+}
+
+/**
+ * Parallax Posts_add_metaboxes
+ *
+ * Add the meta fields
+ *
+ * @access public
+ * @return void
+ */
+function parallax_posts_add_metaboxes() {
+ add_meta_box( 'parallax_posts_water', 'Water', 'parallax_posts_water', GLM_PARALLAX_POST_POST_TYPE , 'side', 'low' );
+ add_meta_box( 'parallax_posts_sewer', 'Sewer', 'parallax_posts_sewer', GLM_PARALLAX_POST_POST_TYPE , 'side', 'low' );
+ add_meta_box( 'parallax_posts_power', 'Power', 'parallax_posts_power', GLM_PARALLAX_POST_POST_TYPE , 'side', 'low' );
+ add_meta_box( 'parallax_posts_loop', 'Loop', 'parallax_posts_loop', GLM_PARALLAX_POST_POST_TYPE , 'side', 'low' );
+// add_meta_box( 'parallax_posts_tents', 'Tents', 'parallax_posts_tents', GLM_PARALLAX_POST_POST_TYPE , 'side', 'low' );
+}
+
+/**
+ * Parallax Posts_water
+ *
+ * Add field for the water availability
+ *
+ * @access public
+ * @return void
+ */
+function parallax_posts_water() {
+ global $post;
+ $checked = '';
+ // Get the features for the post.
+ $water = get_post_meta( $post->ID, 'parallax_posts_water', true );
+
+ // Output field.
+ if ( 'yes' === $water ) {
+ $checked = 'checked="checked"';
+ }
+ ?>
+<input type="checkbox" name="parallax_posts_water" value="yes" <?php echo $checked; ?> />
+ <?php
+
+}
+/**
+ * Parallax Posts_tents
+ *
+ * Add field for the water availability
+ *
+ * @access public
+ * @return void
+ */
+//function parallax_posts_tents() {
+// global $post;
+//
+// // Get the features for the post.
+// $tents = get_post_meta( $post->ID, 'parallax_posts_tents', true );
+//
+// // Output field.
+// if ( 'yes' === $tents ) {
+// $checked = 'checked="checked"';
+// }
+//
+
+
+//
+//}
+/**
+ * Parallax Posts_loop
+ *
+ * Add field for the loop
+ *
+ * @access public
+ * @return void
+ */
+function parallax_posts_loop() {
+ global $post;
+ $value = '';
+ // Noncename needed to verify where the data originated.
+ $nonce = wp_create_nonce( 'parallax_postsmeta-meta-noncename' );
+ echo '<input type="hidden" name="parallax_postsmeta-meta-noncename" id="parallax_postsmeta-meta-noncename-loop" value="' . $nonce . '" />';
+
+ // Get the features for the post.
+ $loop = get_post_meta( $post->ID, 'parallax_posts_loop', true );
+ // Output field.
+ if ( !empty( $loop ) ) {
+ $value = "value=".'"'.$loop .'"';
+ }
+
+ ?>
+ <input type="text" name="parallax_posts_loop" <?php echo $value; ?> />
+ <?php
+
+}
+
+/**
+ * Parallax Posts_sewer
+ *
+ * Adds the field for sewer availibility
+ *
+ * @access public
+ * @return void
+ */
+function parallax_posts_sewer() {
+ global $post;
+ $checked = '';
+ // Noncename needed to verify where the data originated.
+ $nonce = wp_create_nonce( 'parallax_postsmeta-meta-noncename' );
+ echo '<input type="hidden" name="parallax_postsmeta-meta-noncename" id="parallax_postsmeta-meta-noncename-sewer" value="' . $nonce . '" />';
+ // Get the features for the post.
+ $sewer = get_post_meta( $post->ID, 'parallax_posts_sewer', true );
+
+ // Output field.
+ if ( "yes" === $sewer ) {
+ $checked = 'checked="checked"';
+ }
+
+ ?>
+ <input type="checkbox" name="parallax_posts_sewer" value="yes" <?php echo $checked; ?> />
+ <?php
+
+}
+/**
+ * Parallax Posts_campers
+ *
+ * Adds the field for camper types
+ *
+ * @access public
+ * @return void
+ */
+function parallax_posts_campers() {
+ global $post;
+
+ // Get the features for the post.
+ $campers = get_post_meta( $post->ID, 'parallax_posts_campers', true );
+
+ // Output field.
+ if ( !empty( $campers ) ) {
+ $value = "value=".'"'.$campers .'"';
+ }
+ ?>
+ <input type="text" name="parallax_posts_campers" <?php echo $value; ?> />
+ <?php
+}
+/**
+ * Parallax Posts_power
+ *
+ * Adds the field for power availability
+ * @access public
+ * @return void
+ */
+function parallax_posts_power() {
+ global $post;
+ $value = '';
+ // Noncename needed to verify where the data originated.
+ $nonce = wp_create_nonce( 'parallax_postsmeta-meta-noncename' );
+ echo '<input type="hidden" name="parallax_postsmeta-meta-noncename" id="parallax_postsmeta-meta-noncename-power" value="' . $nonce . '" />';
+
+ // Get the features for the post.
+ $power = get_post_meta( $post->ID, 'parallax_posts_power', true );
+ // Output field.
+ if ( !empty( $power ) ) {
+ $value = "value=".'"'.$power .'"';
+ }
+
+ ?>
+ <input type="text" name="parallax_posts_power" <?php echo $value; ?> />
+ <?php
+}
+
+/**
+ * Parallax Posts_save_meta
+ *
+ * Saves the meta fields for the product
+ *
+ * @access public
+ * @return void
+ */
+function parallax_posts_save_meta() {
+ global $post;
+ if ( ! wp_verify_nonce( $_POST['parallax_postsmeta-meta-noncename'], 'parallax_postsmeta-meta-noncename' ) ) {
+ return $post->ID;
+ }
+ if ( ! current_user_can( 'edit_post', $post->ID ) ) {
+ return $post->ID;
+ }
+ $water = (isset($_POST['parallax_posts_water']) ? filter_var( $_POST['parallax_posts_water'] ) : '' );
+ $sewer = (isset($_POST['parallax_posts_sewer']) ? filter_var( $_POST['parallax_posts_sewer'] ) : '' );
+ $power = (isset($_POST['parallax_posts_power']) ? filter_var( $_POST['parallax_posts_power'] ) : '' );
+ $loop = (isset($_POST['parallax_posts_loop']) ? filter_var( $_POST['parallax_posts_loop'] ) : '' );
+// $tents = filter_var( $_POST['parallax_posts_tents'] );
+ update_post_meta( $post->ID, 'parallax_posts_water', $water );
+ update_post_meta( $post->ID, 'parallax_posts_sewer', $sewer );
+ update_post_meta( $post->ID, 'parallax_posts_power', $power );
+ update_post_meta( $post->ID, 'parallax_posts_loop', $loop );
+// update_post_meta( $post->ID, 'parallax_posts_tents', $tents );
+}
+/**
+ * parallax_posts_taxonomies
+ *
+ * Setup of the Taxonomies for the post type
+ *
+ * @access public
+ * @return void
+ */
+function parallax_posts_taxonomies() {
+
+ // Experiences
+ $labels = array(
+ 'name' => _x( GLM_PARALLAX_POST_CATEGORY_NAME, 'taxonomy general name' ),
+ 'singular_name' => _x( GLM_PARALLAX_POST_CATEGORY_NAME, 'taxonomy singular name' ),
+ 'search_items' => __( 'Search ' . GLM_PARALLAX_POST_CATEGORY_PLURAL ),
+ 'all_items' => __( 'All ' . GLM_PARALLAX_POST_CATEGORY_PLURAL ),
+ 'parent_item' => __( 'Parent ' . GLM_PARALLAX_POST_CATEGORY_SINGLE ),
+ 'parent_item_colon' => __( 'Parent ' . GLM_PARALLAX_POST_CATEGORY_SINGLE ),
+ 'edit_item' => __( 'Edit ' . GLM_PARALLAX_POST_CATEGORY_SINGLE ),
+ 'update_item' => __( 'Update ' . GLM_PARALLAX_POST_CATEGORY_SINGLE ),
+ 'add_new_item' => __( 'Add New ' . GLM_PARALLAX_POST_CATEGORY_SINGLE ),
+ 'new_item_name' => __( 'New ' . GLM_PARALLAX_POST_CATEGORY_SINGLE . ' Name' ),
+ 'menu_name' => __( 'Site ' . GLM_PARALLAX_POST_CATEGORY_SINGLE ),
+ );
+
+ $capabilities = array(
+ 'manage_terms' => 'manage_categories',
+ 'edit_terms' => 'manage_categories',
+ 'delete_terms' => 'manage_categories',
+ 'assign_terms' => 'edit_posts',
+ );
+
+ $args = array(
+ 'label' => __( GLM_PARALLAX_POST_CATEGORY_PLURAL ),
+ 'rewrite' => array( 'slug' => GLM_PARALLAX_POST_CATEGORY_SLUG ),
+ 'capabilities' => $capabilities,
+ 'public ' => true,
+ 'show_in_quick_edit' => true,
+ 'show_in_admin_column' => true,
+ 'hierarchical' => true
+ );
+
+ register_taxonomy(
+ GLM_PARALLAX_POST_CATEGORY_NAME,
+ GLM_PARALLAX_POST_POST_TYPE ,
+ $args
+ );
+}
+
+/**
+ * parallax_posts_taxonomy_filter_restrict_manage_posts
+ *
+ * This will setup the Filter for the Custom taxonomies.
+ *
+ * @access public
+ * @return void
+ */
+function parallax_posts_taxonomy_filter_restrict_manage_posts() {
+ global $typenow;
+
+ $post_types = get_post_types( array( '_builtin' => false ) );
+
+ if ( in_array( $typenow, $post_types ) ) {
+ $filters = get_object_taxonomies( $typenow );
+
+ foreach ( $filters as $tax_slug ) {
+ $tax_obj = get_taxonomy( $tax_slug );
+ wp_dropdown_categories( array(
+ 'show_option_all' => __( 'Show All ' . $tax_obj->label ),
+ 'taxonomy' => $tax_slug,
+ 'name' => $tax_obj->name,
+ 'orderby' => 'menu_order',
+ 'selected' => ( isset( $_GET[$tax_slug] ) ),
+ 'hierarchical' => $tax_obj->hierarchical,
+ 'show_count' => false,
+ 'hide_empty' => true,
+ ) );
+ }
+ }
+}
+
+add_action( 'restrict_manage_posts', 'parallax_posts_taxonomy_filter_restrict_manage_posts' );
+
+/**
+ * Parallax Posts_taxonomy_filter_post_type_request
+ *
+ * Filter the post request for the Taxonomy Filter
+ *
+ * @param mixed $query
+ * @access public
+ * @return void
+ */
+function parallax_posts_taxonomy_filter_post_type_request( $query ) {
+ global $pagenow, $typenow;
+
+ if ( 'edit.php' === $pagenow ) {
+ $filters = get_object_taxonomies( $typenow );
+ foreach ( $filters as $tax_slug ) {
+ $var = &$query->query_vars[ $tax_slug ];
+
+ if ( isset( $var ) ) {
+ $term = get_term_by( 'id', $var, $tax_slug );
+
+ $var = $term->slug;
+ }
+ }
+ }
+}
+add_filter( 'parse_query', 'parallax_posts_taxonomy_filter_post_type_request' );
+add_action( 'init', 'parallax_posts_custom_post_type' );
+add_action( 'init', 'parallax_posts_taxonomies' );
+add_action( 'save_post', 'parallax_posts_save_meta' );
+
+/**
+ * Parallax Posts_set_admin_columns
+ *
+ * Setup of the list columns
+ *
+ * @access public
+ * @return void
+ */
+function parallax_posts_set_admin_columns() {
+ add_filter( 'manage_edit-parallax_posts_columns', 'parallax_posts_admin_edit_columns' );
+ add_action( 'manage_parallax_posts_posts_custom_column', 'parallax_posts_admin_custom_columns' );
+}
+
+add_action( 'admin_init', 'parallax_posts_set_admin_columns' );
+
+/**
+ * Parallax Posts_admin_edit_columns
+ *
+ * Setup of the edit columns. This will create the headers for each column.
+ *
+ * @param mixed $columns
+ * @access public
+ * @return void
+ */
+function parallax_posts_admin_edit_columns( $columns ) {
+ $columns = array(
+ 'cb' => '<input type="checkbox">',
+ 'title' => GLM_PARALLAX_POST_SINGLE . ' Title',
+ 'parallax_posts_col_cat' => GLM_PARALLAX_POST_CATEGORY_SINGLE,
+ );
+ return $columns;
+}
+
+/**
+ * Parallax Posts_admin_custom_columns
+ *
+ * This will generate the column data for eaoch record.
+ *
+ * @param mixed $column
+ * @access public
+ * @return void
+ */
+function parallax_posts_admin_custom_columns( $column ) {
+ global $post;
+
+ switch ( $column ) {
+ case 'parallax_posts_col_cat':
+ $product_cats = get_the_terms( $post->ID, 'parallax_posts_category' );
+ $product_cats_html = array();
+ if ( $product_cats ) {
+ foreach ( $product_cats as $product_cat ) {
+ array_push( $product_cats_html, $product_cat->name );
+ }
+ echo implode( $product_cats_html, ', ' );
+ } else {
+ _e( 'None', 'themeforce' );
+ }
+ break;
+ case 'parallax_posts_col_tag':
+ $product_tags = get_the_terms( $post->ID, 'parallax_posts_tag' );
+ $product_tags_html = array();
+ if ( $product_tags ) {
+ foreach ( $product_tags as $product_tag ) {
+ array_push( $product_tags_html, $product_tag->name );
+ }
+ echo implode( $product_tags_html, ', ' );
+ } else {
+ _e( 'None', 'themeforce' );
+ }
+ break;
+ }
+}
+
+/**
+ * Parallax Posts_shortcode
+ *
+ * Add shortcode function. This will call the correct function based on the
+ * front end search.
+ *
+ * @param mixed $atts
+ * @access public
+ * @return void
+ */
+function parallax_posts_shortcode( $atts ) {
+ extract( shortcode_atts( array( 'limit' => '10' ), $atts ) );
+ ob_start();
+
+ if ( isset( $atts['cat']) ) {
+ if ( $prod_experience = get_term_by( 'slug', $atts['cat'], GLM_PARALLAX_POST_CATEGORY_NAME ) ) {
+ if ( !isset($_REQUEST[ GLM_PARALLAX_POST_CATEGORY_NAME ] )) {
+ $_REQUEST[ GLM_PARALLAX_POST_CATEGORY_NAME ] = $prod_experience->term_id;
+ }
+ $cat_id = $prod_experience->term_id;
+ }
+ }
+ $term = get_term_by( "id", $_REQUEST[ GLM_PARALLAX_POST_CATEGORY_NAME ],"parallax_posts_category" );
+ $name = $term->name;
+ if ( !$name ) {
+ $name = "ALL PRODUCTS";
+ }
+ global $wp;
+ echo '<form id="catSubmit" action=""><div class="row catSearch"><div id="viewBtns" class="12-small medium-3 columns"> <button id="grid" type="button">Grid</button> <button id="list"type=" button">list</button>
+ <span id="productSearch"><a href="' . get_permalink( 510 ) . '"> Search Products </a></span></div><div id="catDropdown" class="small-12 medium-4 columns">';
+ echo parallax_posts_get_terms_dropdown( $cat_id );
+ echo '</div><div id="searchContainer" class="small-12 medium-3 columns"></form> <form class="searchform" role="search" method="post" action="">
+ <input id="filter" class="search-input" placeholder="SEARCH ' . strtoupper( $name ) . '" value="" autocomplete="off" name="tsearch" type="text">
+ <input id="input" class="search-button" name="searchButton" value="Search" type="submit">
+
+ <a id="magnifying-glass" class="show-for-large-up" href="#">
+ </a>
+ </form></div></div>';
+
+ if ( $product_id = filter_var( $_REQUEST['product'], FILTER_VALIDATE_INT ) ) {
+ parallax_posts_show_product( $product_id );
+ } else if ( $cat_id = filter_var( $_REQUEST['category'], FILTER_VALIDATE_INT ) ) {
+ parallax_posts_list_categories( $cat_id );
+ } else if ( !$catid_id && !$product_id ) {
+
+ $text_query = filter_var( $_REQUEST['tsearch'], FILTER_SANITIZE_STRING );
+
+ if (isset( $_REQUEST[ 'tsearch' ] ) ) {
+ setcookie("search", "true",time()+2, "/" );
+ } else {
+ setcookie("search", "null",time()+2, "/" );
+ }
+ parallax_posts_list_products( $text_query );
+ parallax_posts_list_categories();
+ }
+
+ $output = ob_get_contents();
+ ob_end_clean();
+ return $output;
+}
+
+/**
+ * Parallax Posts_get_terms_dropdown
+ *
+ * Generate the taxonomy drop down select
+ *
+ * @access public
+ * @return void
+ */
+function parallax_posts_get_terms_dropdown( $cat_id ) {
+
+ $taxonomy_name = GLM_PARALLAX_POST_CATEGORY_NAME;
+ if ( $cat_id ) {
+ $main = get_term( $cat_id, GLM_PARALLAX_POST_CATEGORY_NAME );
+ $cats_child = get_term_children( $cat_id, $taxonomy_name );
+ $output ="<select id='categoryDropdown' name=\"" . GLM_PARALLAX_POST_CATEGORY_NAME . "\"><option value=\"\"> Select " . $main->name . " Sub-category" . "</option>";
+ foreach ( $cats_child as $cat ) {
+ $output .= '<option value="' . $cat . '"';
+ if ( $_REQUEST[ GLM_PARALLAX_POST_CATEGORY_NAME ] == $cat ) {
+ $output .= ' selected';
+ }
+ $cat_name = get_term( $cat, GLM_PARALLAX_POST_CATEGORY_NAME );
+ $output .= '>' . "   " . $cat_name->name. '</option>';
+ }
+ $output .="</select>";
+ } else {
+
+ $parent_terms = get_terms( $taxonomy_name, array('parent' => 0, 'orderby' => 'name', 'hide_empty' => false ));
+ $terms = get_terms( $taxonomy_name, array('orderby' => 'name', 'hide_empty' => false ));
+
+ $output ="<select id='categoryDropdown' name=\"" . GLM_PARALLAX_POST_CATEGORY_NAME . "\"><option value=\"\">Select " . GLM_PARALLAX_POST_CATEGORY_SINGLE . "</option>";
+ // Get parent categories.
+ foreach ( $parent_terms as $parent ) {
+ // Get children of each category.
+ $child_terms = get_terms( $taxonomy_name, array('parent'=> $parent->term_id, 'child_of' => $parent->term_id, 'orderby' => 'name', 'hide_empty' => false));
+ $output .= '<option value="' . $parent->term_id . '"';
+ if ( $_REQUEST[ GLM_PARALLAX_POST_CATEGORY_NAME ] === $parent->term_id ) {
+ $output .= ' selected';
+ }
+ $output .= '>' . $parent->name . '</option>';
+ foreach ($child_terms as $child ) {
+ $grandchildren = get_terms( $taxonomy_name, array('parent'=> $child->term_id, 'child_of' => $child->term_id, 'orderby' => 'name', 'hide_empty' => false ));
+ $output .= '<option value="' . $child->term_id . '"';
+ if ( $_REQUEST[ GLM_PARALLAX_POST_CATEGORY_NAME ] === $child->term_id ) {
+ $output .= ' selected';
+ }
+ $output .= '>' . "   " . $child->name . '</option>';
+ foreach ( $grandchildren as $grand_child) {
+ $great_grandchildren = get_terms( $taxonomy_name, array( 'parent'=> $grand_child->term_id, 'child_of' => $grand_child->term_id, 'orderby' => 'name', 'hide_empty' => false ));
+ $output .= '<option value="' . $grand_child->term_id . '"';
+ if ( $_REQUEST[ GLM_PARALLAX_POST_CATEGORY_NAME ] === $grand_child->term_id ) {
+ $output .= ' selected';
+ }
+ $output .= '>' . "      " . $grand_child->name . '</option>';
+ foreach ( $great_grandchildren as $great_grandchild ) {
+ $output .= '<option value="' . $great_grandchild->term_id . '"';
+ if ( $_REQUEST[ GLM_PARALLAX_POST_CATEGORY_NAME ] === $great_grandchild->term_id ) {
+ $output .= ' selected';
+ }
+ $output .= '>' . "            " . $great_grandchild->name . '</option>';
+ }
+ }
+ }
+ }
+ $output .='</select>'; }
+ return $output;
+}
+
+
+/**
+ * Parallax Posts_list_products
+ *
+ * Create a list of products.
+ *
+ * @access public
+ * @return void
+ */
+function parallax_posts_list_products( $text_query ) {
+ global $wpdb, $wp;
+ $cat = get_term( $cat_id, GLM_PARALLAX_POST_CATEGORY_NAME );
+ $args = array(
+ 'posts_per_page' => -1,
+ 'post_type' => GLM_PARALLAX_POST_POST_TYPE ,
+ 's' => $text_query,
+ );
+ $parallax_posts_category = ( isset( $_REQUEST[ GLM_PARALLAX_POST_CATEGORY_NAME ] ) )
+ ? filter_var( $_REQUEST[ GLM_PARALLAX_POST_CATEGORY_NAME ] )
+ : false;
+
+ if ( $parallax_posts_category ) {
+ $args['tax_query'] = array(
+ 'relation' => 'AND',
+ );
+ $args['tax_query'][] = array(
+ 'taxonomy' => GLM_PARALLAX_POST_CATEGORY_NAME,
+ 'field' => 'id',
+ 'terms' => $parallax_posts_category,
+ );
+ }
+
+ $products = get_posts( $args );
+ $total_products = count( $products );
+ $current_url = esc_url( add_query_arg( $wp->query_string, '', home_url( $wp->request ) ) );
+ $iterator = 1;
+
+ foreach ( $products as $product ) {
+ $product_terms = wp_get_post_terms( $product->ID, GLM_PARALLAX_POST_CATEGORY_NAME, 'name' );
+ $p_term = $product_terms[0];
+ $product->term = $p_term->name;
+ $product->end = false;
+ if ( $iterator == $total_products ) {
+ $product->end = true;
+ }
+ $cat->href = "?parallax_posts_category=";
+ $product->href = $current_url
+ . ( ( strpos( $current_url, '?' ) ) ? '&' : '?' )
+ . "product=" . $product->ID;
+ ++$iterator;
+ }
+
+ include 'views/list_products.php';
+ return;
+}
+/**
+ * parallax_posts_list_categories
+ *
+ * Create a list of categories.
+ *
+ * @param bool $cat_id
+ * @access public
+ * @return void
+ */
+function parallax_posts_list_categories( $cat_id = null ) {
+ global $wpdb, $wp;
+
+ $taxonomy = GLM_PARALLAX_POST_CATEGORY_NAME;
+ $args = array(
+ 'hide_empty' => false,
+ 'pad_counts' => true
+ );
+ if ( $cat_id ) {
+ $args['child_of'] = $cat_id;
+ } else {
+ $args['parent'] = 0;
+ }
+ $taxonomy_terms = get_terms( $taxonomy, $args );
+
+
+ $total_terms = count( $taxonomy_terms );
+ $current_url = esc_url( add_query_arg( $wp->query_string, '', home_url( $wp->request ) ) );
+ $iterator = 1;
+
+ foreach ( $taxonomy_terms as $term ) {
+ $term->end = false;
+ if ( $iterator === $total_terms) {
+ $term->end = true;
+ }
+ $term->href .= //$current_url
+// ( ( strpos( $current_url, '?' ) ) ? '&' : '?' ).
+ "?parallax_posts_category=" . $term->term_id;
+ ++$iterator;
+ }
+
+ include 'views/list_categories.php';
+ return;
+}
+
+/**
+ * Parallax Posts_show_product
+ *
+ * Create a product detail page.
+ *
+ * @param mixed $prod_id
+ * @access public
+ * @return void
+ */
+function parallax_posts_show_product( $prod_id ) {
+ global $wpdb, $wp;
+ $product = get_post( $prod_id );
+ include 'views/product_detail.php';
+ return;
+}
+/**
+ * Parallax Posts_show_category
+ *
+ * Create a product detail page.
+ *
+ * @param mixed $cat_id
+ * @access public
+ * @return void
+ */
+function parallax_posts_show_category( $cat_id ) {
+ global $wpdb, $wp;
+ $term = get_terms(
+ GLM_PARALLAX_POST_CATEGORY_NAME,
+ array(
+ 'child_of' => $cat_id,
+ 'hide_empty' => true,
+ //'parent' => $catid_id,
+ //'hierarchical' => false
+ )
+ );
+
+ include 'views/category_detail.php';
+ return;
+}
+add_shortcode( 'parallax_posts', 'parallax_posts_shortcode' );
+
+