function presscore_blog_ajax_loading_responce($ajax_data = array()) { global $post, $wp_query, $paged, $page; extract($ajax_data); if (!$nonce || !$post_id || !$post_paged || !$target_page || !wp_verify_nonce($nonce, 'presscore-posts-ajax')) { $responce = array('success' => false, 'reason' => 'corrupted data'); } else { require_once PRESSCORE_EXTENSIONS_DIR . '/aq_resizer.php'; require_once PRESSCORE_DIR . '/template-hooks.php'; require_once PRESSCORE_EXTENSIONS_DIR . '/dt-pagination.php'; // get page query_posts(array('post_type' => 'page', 'page_id' => $post_id, 'post_status' => 'publish', 'page' => $target_page)); $html = ''; if (have_posts() && !post_password_required()) { while (have_posts()) { the_post(); // main loop $config = Presscore_Config::get_instance(); $config->set('template', 'blog'); $config->set('layout', empty($page_data['layout']) ? 'masonry' : $page_data['layout']); presscore_config_base_init(); presscore_react_on_categorizer(); do_action('presscore_before_loop'); ob_start(); $query = presscore_get_blog_query(); if ($query->have_posts()) { $page_layout = presscore_get_current_layout_type(); $current_post = $posts_count; while ($query->have_posts()) { $query->the_post(); /* // check if current post already loaded $key_in_loaded = array_search( $post->ID, $loaded_items ); if ( false !== $key_in_loaded ) { unset( $loaded_items[ $key_in_loaded ] ); continue; } */ presscore_populate_post_config(); switch ($page_layout) { case 'masonry': presscore_get_template_part('theme', 'blog/masonry/blog-masonry-post'); break; case 'list': // global posts counter $config->set('post.query.var.current_post', ++$current_post); presscore_get_template_part('theme', 'blog/list/blog-list-post'); break; } } wp_reset_postdata(); } $html .= ob_get_clean(); } $responce = array('success' => true); /////////////////// // pagination // /////////////////// $next_page_link = dt_get_next_posts_url($query->max_num_pages); if ($next_page_link) { $responce['nextPage'] = dt_get_paged_var() + 1; } else { $responce['nextPage'] = 0; } $load_style = $config->get('load_style'); // pagination style if (presscore_is_load_more_pagination()) { $pagination = dt_get_next_page_button($query->max_num_pages, 'paginator paginator-more-button with-ajax'); if ($pagination) { $responce['currentPage'] = dt_get_paged_var(); $responce['paginationHtml'] = $pagination; } else { $responce['currentPage'] = $post_paged; } $responce['paginationType'] = 'more'; } else { if ('ajax_pagination' == $load_style) { ob_start(); dt_paginator($query, array('class' => 'paginator with-ajax', 'ajaxing' => true)); $pagination = ob_get_clean(); if ($pagination) { $responce['paginationHtml'] = $pagination; } $responce['paginationType'] = 'paginator'; } } ///////////////// // response // ///////////////// $responce['itemsToDelete'] = array_values($loaded_items); // $responce['query'] = $page_query->query; $responce['order'] = $query->query['order']; $responce['orderby'] = $query->query['orderby']; } // main loop $responce['html'] = $html; } return $responce; }
protected function custom_loop() { do_action('presscore_before_loop'); $page_query = presscore_get_filtered_posts(array('post_type' => 'dt_portfolio', 'taxonomy' => 'dt_portfolio_category')); if ($page_query->have_posts()) { $page_layout = presscore_get_current_layout_type(); $current_post = $this->input['posts_count']; while ($page_query->have_posts()) { $page_query->the_post(); // populate post config presscore_populate_portfolio_config(); // post template switch ($page_layout) { case 'masonry': presscore_get_template_part('mod_portfolio', 'masonry/project'); break; case 'list': // global posts counter $this->config->set('post.query.var.current_post', ++$current_post); presscore_get_template_part('mod_portfolio', 'list/project'); break; } } wp_reset_postdata(); } return $page_query; }
function presscore_populate_post_config($target_post_id = 0) { $config = Presscore_Config::get_instance(); global $post; if ($target_post_id) { $post_id = $target_post_id; } elseif ($post && !empty($post->ID)) { $post_id = $post->ID; } else { return false; } $prefix = '_dt_post_options_'; ///////////////////////// // post preview width // ///////////////////////// if ('list' == presscore_get_current_layout_type()) { $post_preview_media_width = $config->get('post.preview.media.width'); if ($post_preview_media_width >= 100) { $post_preview_width = 'wide'; } else { $post_preview_width = get_post_meta($post_id, "{$prefix}preview", true); } } else { $post_preview_width = get_post_meta($post_id, "{$prefix}preview", true); } $config->set('post.preview.width', $post_preview_width, 'normal'); $config->set('post.preview.gallery.style', get_post_meta($post_id, "{$prefix}preview_style_gallery", true), 'standard_gallery'); $config->set('post.preview.gallery.sideshow.proportions', get_post_meta($post_id, "{$prefix}slider_proportions", true), array('width' => '', 'height' => '')); $config->set('post.preview.video.style', get_post_meta($post_id, "{$prefix}preview_style_video", true), 'image'); return true; }
/** * Get portfolio posts in masonry layout. * */ public static function get_masonry_content($ajax_data = array()) { global $post, $wp_query, $paged, $page; extract($ajax_data); if (!$nonce || !$post_id || !$post_paged || !$target_page || !wp_verify_nonce($nonce, 'presscore-posts-ajax')) { $responce = array('success' => false, 'reason' => 'corrupted data'); } else { //////////////////// // theme files // //////////////////// /** * Include AQResizer. * */ require_once PRESSCORE_EXTENSIONS_DIR . '/aq_resizer.php'; /** * Include helpers. * */ require_once PRESSCORE_DIR . '/helpers.php'; /** * Include template actions and filters. * */ require_once PRESSCORE_DIR . '/template-hooks.php'; /** * Include paginator. * */ require_once PRESSCORE_EXTENSIONS_DIR . '/dt-pagination.php'; /** * Mobile detection library. * */ if (!class_exists('Mobile_Detect')) { require_once PRESSCORE_EXTENSIONS_DIR . '/mobile-detect.php'; } // get page query_posts(array('post_type' => 'page', 'page_id' => $post_id, 'post_status' => 'publish', 'page' => $target_page)); $config = Presscore_Config::get_instance(); $config->set('template', 'portfolio'); presscore_config_base_init($post_id); if ($config->get('justified_grid') && isset($sender) && in_array($sender, array('filter', 'paginator'))) { $loaded_items = array(); } presscore_react_on_categorizer(); $html = ''; $responce = array('success' => true); if (have_posts() && !post_password_required()) { while (have_posts()) { the_post(); // main loop ob_start(); presscore_portfolio_meta_new_controller(); do_action('presscore_before_loop'); $ppp = $config->get('posts_per_page'); $order = $config->get('order'); $orderby = $config->get('orderby'); $display = $config->get('display'); $request_display = $config->get('request_display'); // $layout = 'masonry'; $all_terms = get_categories(array('type' => 'dt_portfolio', 'hide_empty' => 1, 'hierarchical' => 0, 'taxonomy' => 'dt_portfolio_category', 'pad_counts' => false)); $all_terms_array = array(); foreach ($all_terms as $term) { $all_terms_array[] = $term->term_id; } $page_args = array('post_type' => 'dt_portfolio', 'post_status' => 'publish', 'paged' => dt_get_paged_var(), 'order' => $order, 'orderby' => 'name' == $orderby ? 'title' : $orderby); if ($ppp) { $page_args['posts_per_page'] = intval($ppp); } if ('all' != $display['select'] && !empty($display['terms_ids'])) { $page_args['tax_query'] = array(array('taxonomy' => 'dt_portfolio_category', 'field' => 'term_id', 'terms' => array_values($display['terms_ids']), 'operator' => 'IN')); if ('except' == $display['select']) { $terms_arr = array_diff($all_terms_array, $display['terms_ids']); sort($terms_arr); if ($terms_arr) { $page_args['tax_query']['relation'] = 'OR'; $page_args['tax_query'][1] = $page_args['tax_query'][0]; $page_args['tax_query'][0]['terms'] = $terms_arr; $page_args['tax_query'][1]['operator'] = 'NOT IN'; } add_filter('posts_clauses', 'dt_core_join_left_filter'); } } // filter if ($request_display) { // except if (0 == current($request_display['terms_ids'])) { // ninjaaaa $request_display['terms_ids'] = $all_terms_array; } $page_args['tax_query'] = array(array('taxonomy' => 'dt_portfolio_category', 'field' => 'term_id', 'terms' => array_values($request_display['terms_ids']), 'operator' => 'IN')); if ('except' == $request_display['select']) { $page_args['tax_query'][0]['operator'] = 'NOT IN'; } } $page_query = new WP_Query($page_args); remove_filter('posts_clauses', 'dt_core_join_left_filter'); update_post_thumbnail_cache($page_query); if ($page_query->have_posts()) { $page_layout = presscore_get_current_layout_type(); $current_post = $posts_count; while ($page_query->have_posts()) { $page_query->the_post(); // populate post config presscore_populate_portfolio_config(); // post template switch ($page_layout) { case 'masonry': dt_get_template_part('portfolio/masonry/portfolio-masonry-post'); break; case 'list': // global posts counter $config->set('post.query.var.current_post', ++$current_post); dt_get_template_part('portfolio/list/portfolio-list-post'); break; } } wp_reset_postdata(); } $html .= ob_get_clean(); } /////////////////// // pagination // /////////////////// $next_page_link = dt_get_next_posts_url($page_query->max_num_pages); if ($next_page_link) { $responce['nextPage'] = dt_get_paged_var() + 1; } else { $responce['nextPage'] = 0; } $load_style = $config->get('load_style'); // pagination style if (presscore_is_load_more_pagination()) { $pagination = dt_get_next_page_button($page_query->max_num_pages, 'paginator paginator-more-button with-ajax'); if ($pagination) { $responce['currentPage'] = dt_get_paged_var(); $responce['paginationHtml'] = $pagination; } else { $responce['currentPage'] = $post_paged; } $responce['paginationType'] = 'more'; } else { if ('ajax_pagination' == $load_style) { ob_start(); dt_paginator($page_query, array('class' => 'paginator with-ajax', 'ajaxing' => true)); $pagination = ob_get_clean(); if ($pagination) { $responce['paginationHtml'] = $pagination; } $responce['paginationType'] = 'paginator'; } } ///////////////// // response // ///////////////// $responce['itemsToDelete'] = array_values($loaded_items); // $responce['query'] = $page_query->query; $responce['order'] = strtolower($page_query->query['order']); $responce['orderby'] = strtolower($page_query->query['orderby']); } // main loop $responce['html'] = $html; } return $responce; }
function presscore_display_posts_filter($args = array()) { $default_args = array('post_type' => 'post', 'taxonomy' => 'category', 'query' => null); $args = wp_parse_args($args, $default_args); $config = presscore_get_config(); $load_style = $config->get('load_style'); // categorizer $filter_args = array(); if ($config->get('template.posts_filter.terms.enabled')) { // $posts_ids = $terms_ids = array(); $display = $config->get('display'); $select = $display['select']; // categorizer args $filter_args = array('taxonomy' => $args['taxonomy'], 'post_type' => $args['post_type'], 'select' => $select); if ('default' == $load_style && 'masonry' == $config->get('layout')) { if ($args['query'] && $args['query']->have_posts()) { foreach ($args['query']->posts as $p) { $p_ids[] = $p->ID; } // get posts terms $terms_ids = wp_get_object_terms($p_ids, $args['taxonomy'], array('fields' => 'ids')); $terms_ids = array_unique($terms_ids); $filter_args['terms'] = $terms_ids; } $filter_args['select'] = 'only'; } elseif ('category' == $display['type']) { $terms_ids = empty($display['terms_ids']) ? array() : $display['terms_ids']; $filter_args['terms'] = $terms_ids; } elseif ('albums' == $display['type']) { $posts_ids = isset($display['posts_ids']) ? $display['posts_ids'] : array(); $filter_args['post_ids'] = $posts_ids; } } $filter_class = ''; if ('default' != $load_style) { $filter_class .= ' with-ajax'; } if ('list' == presscore_get_current_layout_type()) { $filter_class .= ' without-isotope'; } // display categorizer presscore_get_category_list(array('data' => dt_prepare_categorizer_data($filter_args), 'class' => 'filter' . $filter_class)); }
function presscore_populate_portfolio_config($target_post_id = 0) { $config = Presscore_Config::get_instance(); global $post; if ($target_post_id) { $post_id = $target_post_id; } elseif ($post && !empty($post->ID)) { $post_id = $post->ID; } else { return false; } ///////////////////////////// // project media library // ///////////////////////////// $prefix = '_dt_project_media_'; $project_library = get_post_meta($post_id, "{$prefix}items", true); $config->set('post.media.library', $project_library, array()); //////////////////////////////// // post preview media style // //////////////////////////////// $prefix = '_dt_project_options_'; // if project media library is empty - treat preview style as featured image if (!empty($project_library)) { $project_preview_media_style = get_post_meta($post_id, "{$prefix}preview_style", true); } else { $project_preview_media_style = 'featured_image'; } $config->set('post.preview.media.style', $project_preview_media_style, 'featured_image'); ///////////////////////// // post preview width // ///////////////////////// if ('list' == presscore_get_current_layout_type()) { $post_preview_media_width = $config->get('post.preview.media.width'); if ($post_preview_media_width >= 100) { $post_preview_width = 'wide'; } else { $post_preview_width = get_post_meta($post_id, "{$prefix}preview", true); } } else { $post_preview_width = get_post_meta($post_id, "{$prefix}preview", true); } $config->set('post.preview.width', $post_preview_width, 'normal'); //////////////////// // project link // //////////////////// // allways show project link for post preview $config->set('post.buttons.link.enabled', get_post_meta($post_id, "{$prefix}show_link", true), false); $config->set('post.buttons.link.title', get_post_meta($post_id, "{$prefix}link_name", true), ''); $config->set('post.buttons.link.url', get_post_meta($post_id, "{$prefix}link", true), '#'); $config->set('post.buttons.link.target_blank', get_post_meta($post_id, "{$prefix}link_target", true), ''); ////////////////////////////////// // is project content visible // ////////////////////////////////// if (in_the_loop()) { $show_title = $config->get('show_titles') && get_the_title(); $show_description = $config->get('show_excerpts') && get_the_excerpt(); $show_links = $config->get('show_links') && $config->get('show_details') && $config->get('show_zoom') && has_post_thumbnail() && !post_password_required(); $show_meta = $config->get('post.meta.fields.date') && $config->get('post.meta.fields.categories') && $config->get('post.meta.fields.comments') && $config->get('post.meta.fields.author'); } else { $show_project_content = true; } $config->set('post.preview.content.visible', $show_title || $show_description || $show_links || $show_meta); return true; }
/** * Add post format classes to post. */ function presscore_post_class_filter($classes = array()) { $config = Presscore_Config::get_instance(); $is_archive = is_search() || is_archive(); // post preview width if (!$is_archive && 'wide' == $config->get('post.preview.width')) { $classes[] = 'media-wide'; } // post preview background if ($config->get('post.preview.background.enabled')) { $classes[] = 'bg-on'; } $current_layout_type = presscore_get_current_layout_type(); // only for layouts from masonry family if ('masonry' == $current_layout_type) { // fullwidth preview background if ($config->get('post.preview.background.enabled') && 'fullwidth' == $config->get('post.preview.background.style')) { $classes[] = 'fullwidth-img'; } if (!$config->get('post.media.library') && !has_post_thumbnail()) { $classes[] = 'no-img'; } // preview content alignment if ('center' == $config->get('post.preview.description.alignment')) { $classes[] = 'text-centered'; } } if (!$config->get('post.preview.content.visible')) { $classes[] = 'description-off'; } if (is_single()) { $hentry_key = array_search('hentry', $classes); if ($hentry_key !== false) { unset($classes[$hentry_key]); } } return $classes; }