/** * Get Pagination settings * * @param array $dargs The settings array of Fields * @param array $args The parameters array * @param array $pargs The pagination settings array */ static function view_get_pagination_settings(&$dargs, &$args, $pargs) { $view_settings = PT_CV_Functions::get_global_variable('view_settings'); // Get Limit value $limit = trim(PT_CV_Functions::setting_value(PT_CV_PREFIX . 'limit', $view_settings)); $limit = empty($limit) || $limit === '-1' ? 10000000 : (int) $limit; $args['limit'] = $args['posts_per_page'] = $limit; $offset = 0; // Get pagination enable/disable $pagination = PT_CV_Functions::setting_value(PT_CV_PREFIX . 'enable-pagination', $view_settings); if ($pagination) { $prefix = PT_CV_PREFIX . 'pagination-'; $field_setting = PT_CV_Functions::settings_values_by_prefix($prefix); $dargs['pagination-settings'] = apply_filters(PT_CV_PREFIX_ . 'pagination_settings', $field_setting, $prefix); // If Items per page is set, get its value $posts_per_page = isset($dargs['pagination-settings']['items-per-page']) ? (int) $dargs['pagination-settings']['items-per-page'] : $limit; if ($posts_per_page > $limit) { $posts_per_page = $limit; } // Set 'posts_per_page' parameter $args['posts_per_page'] = $posts_per_page; // Get offset $paged = self::get_current_page($pargs); $offset = $posts_per_page * ((int) $paged - 1); // Update posts_per_page if (intval($args['posts_per_page']) > $limit - $offset) { $args['posts_per_page'] = $limit - $offset; } } $offset = apply_filters(PT_CV_PREFIX_ . 'settings_args_offset', $offset); // Set 'offset' parameter $args['offset'] = $offset; }
/** * Check if using pagination: Non-ajax or First page (of Ajax pagination) * * @param array $dargs * @param int $current_page * @return bool */ static function nonajax_or_firstpage($dargs, $current_page) { if (!PT_CV_Functions::setting_value(PT_CV_PREFIX . 'enable-pagination')) { return false; } if ($dargs['pagination-settings']['type'] === 'normal') { return true; } else { if ($current_page === 1) { return true; } else { return false; } } }
/** * Wrap content of Collapsible List type * * @param array $content_items The array of Raw HTML output (is not wrapped) of each item * @param array $content The output array * * @return string Collapsible list, wrapped in a "panel-group" div */ static function collapsible_wrapper($content_items, &$content) { $random_id = PT_CV_Functions::string_random(); $idx = 0; $collapsible_list = array(); $open_first = PT_CV_Functions::setting_value(PT_CV_PREFIX . 'collapsible-open-first-item'); foreach ($content_items as $post_id => $content_item) { // Replace class in body of collapsible item, to show one (now is the first item) $class = $idx++ == 0 && $open_first === 'yes' ? 'in' : ''; $content_item = str_replace(PT_CV_PREFIX_UPPER . 'CLASS', $class, $content_item); $content_item = PT_CV_Html::content_item_wrap($content_item, 'panel panel-default', $post_id); // Replace id in {data-parent="#ID"} of each item by generated id $collapsible_list[] = str_replace(PT_CV_PREFIX_UPPER . 'ID', $random_id, $content_item); } // Data attribute $data_attr = apply_filters(PT_CV_PREFIX_ . 'collapsible_data_attr', ''); // Collapsible wrapper class $wrapper_class = apply_filters(PT_CV_PREFIX_ . 'wrapper_collapsible_class', 'panel-group'); $output = sprintf('<div class="%s" id="%s" %s>%s</div>', esc_attr($wrapper_class), esc_attr($random_id), $data_attr, implode("\n", $collapsible_list)); $content[] = $output; }
/** * HTML output of thumbnail field * * @param object $post The post object * @param array $_fargs The settings of this field * * @return string */ static function _field_thumbnail($post, $_fargs) { $layout_format = $_fargs['layout-format']; // Get thumbnail settings $fargs = $_fargs['thumbnail']; // Thumbnail class $thumbnail_position = 'default'; $thumbnail_class = array(); $thumbnail_class[] = PT_CV_PREFIX . 'thumbnail'; $thumbnail_class[] = isset($fargs['style']) ? $fargs['style'] : ''; if ($layout_format === '2-col') { $thumbnail_position = isset($fargs['position']) ? $fargs['position'] : 'left'; $thumbnail_class[] = 'pull-' . $thumbnail_position; } $gargs = array('class' => apply_filters(PT_CV_PREFIX_ . 'field_thumbnail_class', implode(' ', array_filter($thumbnail_class)))); /** * @since 1.7.5 * able to disable responsive image of WordPress 4.4 */ if (PT_CV_Functions::setting_value(PT_CV_PREFIX . 'field-thumbnail-nowprpi')) { $gargs['srcset'] = 1; } // Get thumbnail dimensions $dimensions = (array) apply_filters(PT_CV_PREFIX_ . 'field_thumbnail_dimension_output', PT_CV_Functions::field_thumbnail_dimensions($fargs), $fargs); // Check if has thumbnail ( has_post_thumbnail doesn't works ) $thumbnail_id = get_post_thumbnail_id($post->ID); // Check if user doesn't want to load thumbnail: field_thumbnail_load = 0 $load_thumbnail = !empty($thumbnail_id) && apply_filters(PT_CV_PREFIX_ . 'field_thumbnail_load', 1); $html = ''; if ($load_thumbnail) { $thumbnail_size = count($dimensions) > 1 ? $dimensions : $dimensions[0]; $html = wp_get_attachment_image((int) $thumbnail_id, $thumbnail_size, false, $gargs); $html = apply_filters(PT_CV_PREFIX_ . 'field_thumbnail_image', $html, $post, $dimensions, $fargs); } // If no thumbnail if (empty($html)) { $html = apply_filters(PT_CV_PREFIX_ . 'field_thumbnail_not_found', $html, $post, $dimensions, $gargs); } // Add link to thumbnail $dargs = PT_CV_Functions::get_global_variable('dargs'); $oargs = isset($dargs['other-settings']) ? $dargs['other-settings'] : array(); $html = self::_field_href($oargs, $post, $html, implode(' ', array(PT_CV_PREFIX . 'href-thumbnail', PT_CV_PREFIX . 'thumb-' . $thumbnail_position))); return $html; }
static function is_responsive_image_disabled() { return apply_filters(PT_CV_PREFIX_ . 'disable_responsive_image', PT_CV_Functions::setting_value(PT_CV_PREFIX . 'field-thumbnail-nowprpi')); }
public static function filter_disable_wp_responsive_image($args) { if (PT_CV_Functions::setting_value(PT_CV_PREFIX . 'field-thumbnail-nowprpi')) { if (isset($args['sizes'])) { unset($args['sizes']); } if (isset($args['srcset'])) { unset($args['srcset']); } } return $args; }