| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- <?php
- if ( ! defined( 'ABSPATH' ) ) {
- die( '-1' );
- }
- require_once vc_path_dir( 'SHORTCODES_DIR', 'vc-basic-grid.php' );
- /**
- * Class WPBakeryShortCode_Vc_Media_Grid
- */
- class WPBakeryShortCode_Vc_Media_Grid extends WPBakeryShortCode_Vc_Basic_Grid {
- /**
- * WPBakeryShortCode_Vc_Media_Grid constructor.
- * @param $settings
- */
- public function __construct( $settings ) {
- parent::__construct( $settings );
- add_filter( $this->shortcode . '_items_list', array(
- $this,
- 'setItemsIfEmpty',
- ) );
- }
- /**
- * @return mixed|string
- */
- protected function getFileName() {
- return 'vc_basic_grid';
- }
- /**
- * @param $max_items
- */
- protected function setPagingAll( $max_items ) {
- $this->atts['items_per_page'] = $this->atts['query_items_per_page'] = apply_filters( 'vc_basic_grid_items_per_page_all_max_items', self::$default_max_items );
- }
- /**
- * @param $atts
- * @return array
- */
- public function buildQuery( $atts ) {
- if ( empty( $atts['include'] ) ) {
- $atts['include'] = - 1;
- }
- $settings = array(
- 'include' => $atts['include'],
- 'posts_per_page' => apply_filters( 'vc_basic_grid_max_items', self::$default_max_items ),
- 'offset' => 0,
- 'post_type' => 'attachment',
- 'orderby' => 'post__in',
- );
- return $settings;
- }
- /**
- * @param $items
- * @return string
- */
- public function setItemsIfEmpty( $items ) {
- if ( empty( $items ) ) {
- require_once vc_path_dir( 'PARAMS_DIR', 'vc_grid_item/class-vc-grid-item.php' );
- $grid_item = new Vc_Grid_Item();
- $grid_item->setGridAttributes( $this->atts );
- $grid_item->shortcodes();
- $item = '[vc_gitem]<img src="' . esc_url( vc_asset_url( 'vc/vc_gitem_image.png' ) ) . '">[/vc_gitem]';
- $grid_item->parseTemplate( $item );
- $items = str_repeat( $grid_item->renderItem( get_post( (int) vc_request_param( 'vc_post_id' ) ) ), 3 );
- }
- return $items;
- }
- /**
- * @param $param
- * @param $value
- * @return string
- */
- public function singleParamHtmlHolder( $param, $value ) {
- $output = '';
- // Compatibility fixes
- // TODO: check $old_names & &new_names. Leftover from copypasting?
- $old_names = array(
- 'yellow_message',
- 'blue_message',
- 'green_message',
- 'button_green',
- 'button_grey',
- 'button_yellow',
- 'button_blue',
- 'button_red',
- 'button_orange',
- );
- $new_names = array(
- 'alert-block',
- 'alert-info',
- 'alert-success',
- 'btn-success',
- 'btn',
- 'btn-info',
- 'btn-primary',
- 'btn-danger',
- 'btn-warning',
- );
- $value = str_ireplace( $old_names, $new_names, $value );
- $param_name = isset( $param['param_name'] ) ? $param['param_name'] : '';
- $type = isset( $param['type'] ) ? $param['type'] : '';
- $class = isset( $param['class'] ) ? $param['class'] : '';
- if ( isset( $param['holder'] ) && 'hidden' !== $param['holder'] ) {
- $output .= '<' . $param['holder'] . ' class="wpb_vc_param_value ' . $param_name . ' ' . $type . ' ' . $class . '" name="' . $param_name . '">' . $value . '</' . $param['holder'] . '>';
- }
- if ( 'include' === $param_name ) {
- $images_ids = empty( $value ) ? array() : explode( ',', trim( $value ) );
- $output .= '<ul class="attachment-thumbnails' . ( empty( $images_ids ) ? ' image-exists' : '' ) . '" data-name="' . $param_name . '">';
- foreach ( $images_ids as $image ) {
- $img = wpb_getImageBySize( array(
- 'attach_id' => (int) $image,
- 'thumb_size' => 'thumbnail',
- ) );
- $output .= ( $img ? '<li>' . $img['thumbnail'] . '</li>' : '<li><img width="150" height="150" src="' . esc_url( vc_asset_url( 'vc/blank.gif' ) ) . '" class="attachment-thumbnail" alt="" title="" /></li>' );
- }
- $output .= '</ul>';
- $output .= '<a href="#" class="column_edit_trigger' . ( ! empty( $images_ids ) ? ' image-exists' : '' ) . '">' . esc_html__( 'Add images', 'js_composer' ) . '</a>';
- }
- return $output;
- }
- }
|