Done !
| Server IP : 46.105.57.169 / Your IP : 216.73.216.67 Web Server : Apache System : Linux webm002.cluster120.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64 User : verseaumee ( 152031) PHP Version : 8.5.7 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/verseaumee/TF89388/wp-content/plugins/noisa-toolkit/includes/ |
Upload File : |
<?php
/**
* Rascals Shortcodes
*
*
* @author Rascals Themes
* @category Core
* @package Noisa Toolkit
* @version 1.0.1
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
class RascalsShortcodes {
/*
Private variables
*/
private $SID = 0;
/*
All available shortcodes
*/
public $shortcodes_list = array(
'styles',
'weight',
'circle_button',
'lead',
'slider',
'tracklist_grid',
'tracks_carousel',
'tracklist',
'track',
'track_button',
'single_album',
'tracklist_button',
'tweets_list',
'tweets_slider',
'buttons',
'button',
'icon_column',
'pricing_column',
'details_list',
'detail',
'google_maps',
'posts_list',
'releases_grid',
'releases_carousel',
'artists_grid',
'artists_carousel',
'events',
'gallery_albums',
'gallery_images',
'event_countdown',
'time_line'
);
/**
* Rascals Constructor.
* @return void
*/
public function __construct() {
$this->init();
}
/**
* Initialize class
* @return void
*/
public function init() {
// Frontend Scripts
add_action( 'wp_enqueue_scripts' , array( $this, 'shortcodesEnqueue' ) );
// Regiter Shortcodes
$this->registerShortcodes();
}
/**
* Register shortcodes
* @return void
*/
private function registerShortcodes() {
foreach ($this->shortcodes_list as $shortcode ) {
if ( method_exists( $this, $shortcode ) ){
add_shortcode( $shortcode, array( $this, $shortcode ) );
}
}
}
/**
* Enqueue all frontend scripts and styles
* @return void
*/
public function shortcodesEnqueue() {
global $post, $wp_query;
$plugin_url = RASCALS_TOOLKIT_URL;
wp_enqueue_style( 'rascals-shortcodes', esc_url( $plugin_url ) . '/assets/css/shortcodes.css' );
// Add Custom styles
$custom_css = '';
// BG
if ( isset( $wp_query ) && isset( $post ) ) {
$bg1 = get_post_meta( $wp_query->post->ID, '_bg_1', true );
$bg2 = get_post_meta( $wp_query->post->ID, '_bg_2', true );
if ( $bg1 || $bg2 ) {
if ( $this->generateBG( $bg1 ) ) {
$custom_css .= "
html body {
" . esc_attr( $this->generateBG( $bg1 ) ) . "
}";
}
if ( $this->generateBG( $bg1 ) ) {
$custom_css .= "
body #site {
" . esc_attr( $this->generateBG( $bg2 ) ) . "
}";
}
}
}
wp_add_inline_style( 'rascals-shortcodes', $custom_css );
}
/* ==================================================
S H O R T C O D E S
================================================== */
/**
* Styles
* @return void
*/
public function styles( $atts, $content = null ) {
extract(shortcode_atts(array(
'classes' => ''
), $atts));
$this->SID++;
return '<span class="' . esc_attr( $classes ) . '" >' . do_shortcode( $content ) . '</span>';
}
/**
* Weight
* @return void
*/
public function weight( $atts, $content = null ) {
extract(shortcode_atts(array(
'weight' => '100'
), $atts));
return '<span class="weight-' . esc_attr( $weight ) . '" >' . do_shortcode( $content ) . '</span>';
}
/**
* Circle Button
* @return void
*/
public function circle_button( $atts, $content = null ) {
extract(shortcode_atts(array(
'link' => '#',
'icon' => 'twitter',
'target' => '_self',
'classes' => ''
), $atts));
return '<a class="circle-button ' . esc_attr( $classes ) . '" href="' . esc_url( $link ) . '" target="' . esc_attr( $target ) . '"><i class="icon icon-' . esc_attr( $icon ) . '"></i></a>';
}
/**
* Lead
* @return void
*/
public function lead( $atts, $content = null ) {
extract(shortcode_atts(array(
'classes' => ''
), $atts));
return '<div class="lead ' . esc_attr( $classes ) . '">' . do_shortcode( $content ) . '</div>';
}
/**
* Slider
* @return void
*/
public function slider( $atts, $content = null ) {
extract(shortcode_atts(array(
'id' => 0,
'size' => 'full'
), $atts));
$output = '';
if ( $id === 0 ) {
return false;
}
// Set unique ID
$this->SID++;
$noisa_sid = $this->SID;
// Slider Settings
// Slider navigation
$slider_nav = get_post_meta( $id, '_slider_nav', true );
if ( $slider_nav && $slider_nav === 'on' ) {
$slider_nav = 'true';
} else {
$slider_nav = 'false';
}
// Slider pagination
$slider_pagination = get_post_meta( $id, '_slider_pagination', true );
if ( $slider_pagination && $slider_pagination === 'on' ) {
$slider_pagination = 'true';
} else {
$slider_pagination = 'false';
}
// Slider speed
$slider_speed = get_post_meta( $id, '_slider_speed', true );
// Slider pause time
$slider_pause_time = get_post_meta( $id, '_slider_pause_time', true );
if ( ! $slider_pause_time && $slider_pause_time === '0' ) {
$slider_pause_time = 'false';
}
$output .= '<div id="content-slider-id-' . esc_attr( $noisa_sid ) . '" class="content-slider clearfix" data-slider-nav="' . esc_attr( $slider_nav ) . '" data-slider-pagination="' . esc_attr( $slider_pagination ) . '" data-slider-speed="' . esc_attr( $slider_speed ) . '" data-slider-pause-time="' . esc_attr( $slider_pause_time ) . '">';
/* Images ids */
$images_ids = get_post_meta( $id, '_custom_slider', true );
if ( ! $images_ids || $images_ids === '' ) {
'<p class="message error">' . esc_html__( 'Slider error: Slider has no pictures or doesn\'t exists.', 'noisa-toolkit' ) . '</p>';
}
$count = 0;
$ids = explode( '|', $images_ids );
$defaults = array(
'title' => '',
'subtitle' => '',
'crop' => 'c'
);
/* Start Loop */
foreach ( $ids as $image_id ) {
// Vars
$title = '';
$subtitle = '';
// Get image data
$image_att = wp_get_attachment_image_src( $image_id );
if ( ! $image_att[0] ) {
continue;
}
/* Count */
$count++;
/* Get image meta */
$image = get_post_meta( $id, '_custom_slider_' . $image_id, true );
/* Add default values */
if ( isset( $image ) && is_array( $image ) ) {
$image = array_merge( $defaults, $image );
} else {
$image = $defaults;
}
/* Add image src to array */
$temp_src = wp_get_attachment_image_src( $image_id, $size );
$image['src'] = $temp_src[0];
$output .= '<div class="slide">';
if ( $image['title'] !== '' || $image['subtitle'] !== '' ) {
$output .= '<div class="content-captions">';
if ( $image['title'] !== '' ) {
$output .= '<span class="caption-title">' . self::esc( $image['title'] ) . '</span>';
}
if ( $image['subtitle'] !== '' ) {
$output .= '<span class="caption-subtitle">' . self::esc( $image['subtitle'] ) . '</span>';
}
$output .= '</div>';
}
$output .= '<div class="image"><img src="' . esc_url( $image['src'] ) . '" alt="' . esc_attr__( 'Slider Image', 'noisa-toolkit' ) . '"></div>';
$output .= '</div>';
} // End foreach
$output .= '</div>';
return $output;
}
/**
* Tracklist Grid
* @return void
*/
public function tracklist_grid( $atts, $content = null ) {
extract(shortcode_atts(array(
'id' => 0,
'in_row' => '2',
'track_meta' => '0',
'list_button' => '0',
'eq' => '0',
'gap' => 'no-gap',
'limit' => '999',
'list_button_action' => 'sp-play-list',
'track_action' => 'sp-play-track',
'button_title' => esc_html__( 'Play List', 'noisa-toolkit'),
'classes' => ''
), $atts));
// Get panel options
$panel_options = get_option( 'noisa_panel_opts' );
$output = '';
// Set unique ID
$this->SID++;
$noisa_sid = $this->SID;
// Get player list
$t = noisaToolkit();
$t = $t->scamp_player;
$tracklist_grid = $t->getList( $id );
if ( $id === 0 || $tracklist_grid === false ) {
return false;
}
$limit = (int)$limit;
$count = 1;
if ( $track_meta === '0' ) {
$track_meta = 'hidden';
} else {
$track_meta = '';
}
if ( $eq === '1' ) {
$eq = '<div class="eq"><div class="bar-init"></div><div class="bar"></div><div class="bar"></div><div class="bar"></div><div class="bar"></div><div class="bar"></div></div>';
} else {
$eq = '';
}
$output .= '<div class="tracks-grid-wrap ' . esc_attr( $classes ) . '">';
$output .= '<div id="tracklist-grid-' . esc_attr( $noisa_sid ) . '" class="sp-list sp-ctrl tracklist-grid">';
foreach ( $tracklist_grid as $track ) {
/* Encode Track */
if ( isset( $panel_options['player_base64'] ) && $panel_options['player_base64'] === 'on' ) {
$track['url'] = base64_encode( $track['url'] );
}
if ( $track['disable_playback'] === 'yes' ) {
$track['url'] = '#';
$track['disable_playback'] = 'disabled';
} else {
$track['disable_playback'] = '';
}
if ( ! $track['cover'] || $track['cover'] === '' ) {
$track['cover'] = get_template_directory_uri() . '/images/no-track-image.png';
$track['cover_full'] = $track['cover'];
}
$output .= '
<div class="tracks-grid-' . esc_attr( $in_row ) . '-col sp-track-item">
<div class="tracks-grid-item ' . esc_attr( $gap ) . '">
<a class="track sp-play-next ' . esc_attr( $track['disable_playback'] ) . ' ' . esc_attr( $track_action ) . '" href="' . $track['url'] . '" data-cover="' . esc_url( $track['cover'] ) . '" data-artist="' . esc_attr( $track['artists'] ) . '" data-artist_url="' . esc_url( $track['artists_url'] ) . '" data-artist_target="' . esc_attr( $track['artists_target'] ) . '" data-release_url="' . esc_url( $track['release_url'] ) . '" data-release_target="' . esc_attr( $track['release_target'] ) . '" data-shop_url="' . esc_url( $track['cart_url'] ) . '" data-shop_target="' . esc_attr( $track['cart_target'] ) . '" data-free_download="' . esc_attr( $track['free_download'] ) . '">
<img class="track-cover" src="' . esc_attr( $track['cover_full'] ) . '" alt="' . esc_attr__( 'Cover Image', 'noisa-toolkit' ) . '">
<span class="track-status"></span>
'. $eq .'
<span class="track-meta ' . esc_attr( $track_meta ) . '">
<span class="track-meta-inner">
<span class="track-title">' . self::esc( $track['title'] ) . '</span>
<span class="track-artists">' . self::esc( $track['artists'] ) . '</span>
</span>
</span>
</a>
</div>';
$output .= '</div>';
if ( $count >= $limit ) {
break;
return false;
}
$count++;
}
$output .= '</div>';
if ( $list_button === '1' ) {
$output .= '<a class="list-btn btn btn-icon ' . esc_attr( $list_button_action ) . '" data-id="tracklist-grid-' . esc_attr( $noisa_sid ) . '" ><span class="icon icon-play2"></span>' . self::esc( $button_title ) . '</a>';
}
$output .= '</div>';
return $output;
}
/**
* Tracks Carousel
* @return void
*/
public function tracks_carousel( $atts, $content = null ) {
extract(shortcode_atts(array(
'id' => 0,
'visible_items' => '1',
'list_button' => '0',
'eq' => '0',
'gap' => 'no-gap',
'list_button_action' => 'sp-play-list',
'track_action' => 'sp-play-track',
'button_link' => '',
'button_title' => esc_html__( 'View More', 'noisa-toolkit'),
'classes' => ''
), $atts));
// Get panel options
$panel_options = get_option( 'noisa_panel_opts' );
$output = '';
// Set unique ID
$this->SID++;
$noisa_sid = $this->SID;
// Get player list
$t = noisaToolkit();
$t = $t->scamp_player;
$tracks_carousel = $t->getList( $id );
if ( $id === 0 || $tracks_carousel === false ) {
return false;
}
if ( $eq === '1' ) {
$eq = '<div class="eq"><div class="bar-init"></div><div class="bar"></div><div class="bar"></div><div class="bar"></div><div class="bar"></div><div class="bar"></div></div>';
} else {
$eq = '';
}
$output .= '<div class="tracks-carousel-wrap ' . esc_attr( $classes ) . '">';
$output .= '<div id="tracks-carousel-id' . esc_attr( $noisa_sid ) . '" class="carousel-slider carousel-tracks-slider" data-effect="fade" data-pagination="true" data-nav="false" data-autoplay="false" data-items="' . esc_attr( $visible_items ) . '">';
foreach ( $tracks_carousel as $track ) {
/* Encode Track */
if ( isset( $panel_options['player_base64'] ) && $panel_options['player_base64'] === 'on' ) {
$track['url'] = base64_encode( $track['url'] );
}
if ( $track['disable_playback'] === 'yes' ) {
$track['url'] = '#';
$track['disable_playback'] = 'disabled';
} else {
$track['disable_playback'] = '';
}
if ( ! $track['cover'] || $track['cover'] === '' ) {
$track['cover'] = get_template_directory_uri() . '/images/no-track-image.png';
$track['cover_full'] = $track['cover'];
}
$output .= '<div class="sp-track-item">
<a class="track sp-play-next ' . esc_attr( $track['disable_playback'] ) . ' thumb-desc ' . esc_attr( $track_action ) . ' ' . esc_attr( $gap ) . ' owl-link" href="' . $track['url'] . '" data-cover="' . esc_url( $track['cover'] ) . '" data-artist="' . esc_attr( $track['artists'] ) . '" data-artist_url="' . esc_url( $track['artists_url'] ) . '" data-artist_target="' . esc_attr( $track['artists_target'] ) . '" data-release_url="' . esc_url( $track['release_url'] ) . '" data-release_target="' . esc_attr( $track['release_target'] ) . '" data-shop_url="' . esc_url( $track['cart_url'] ) . '" data-shop_target="' . esc_attr( $track['cart_target'] ) . '" data-free_download="' . esc_attr( $track['free_download'] ) . '">
<img class="track-cover" src="' . esc_attr( $track['cover_full'] ) . '" alt="' . esc_attr__( 'Cover Image', 'noisa-toolkit' ) . '">
<span class="track-meta">
<span class="track-meta-inner">
<span class="track-title">' . self::esc( $track['title'] ) . '</span>
<span class="track-artists">' . self::esc( $track['artists'] ) . '</span>
</span>
</span>
<span class="track-status"></span>
'. $eq .'
</a></div>';
}
$output .= '</div>'; // carousel;
if ( $button_link !== '' ) {
$output .= '<div class="button-position"><a class="btn medium more-posts" href="' . esc_url( $button_link ) . '">' . self::esc( $button_title ) . '</a></div>';
}
$output .= '</div>'; // wrap;
return $output;
}
/**
* Tracklist
* @return void
*/
public function tracklist( $atts, $content = null ) {
extract(shortcode_atts(array(
'id' => 0,
'style' => 'normal',
'list_button' => '0',
'eq' => '0',
'list_button_action' => 'sp-play-list',
'track_action' => 'sp-play-track',
'button_title' => esc_html__( 'Play List', 'noisa-toolkit'),
'classes' => ''
), $atts));
// Get panel options
$panel_options = get_option( 'noisa_panel_opts' );
$output = '';
// Set unique ID
$this->SID++;
$noisa_sid = $this->SID;
// Get player list
$t = noisaToolkit();
$t = $t->scamp_player;
$tracklist = $t->getList( $id );
if ( $id === 0 || $tracklist === false ) {
return false;
}
if ( $eq === '1' ) {
$eq = '<div class="eq"><div class="bar-init"></div><div class="bar"></div><div class="bar"></div><div class="bar"></div><div class="bar"></div><div class="bar"></div></div>';
} else {
$eq = '';
}
$output .= '<div class="tracklist-wrap ' . esc_attr( $classes ) . '">';
$output .= '<ol id="tracklist-' . esc_attr( $noisa_sid ) . '" class="sp-list sp-ctrl tracklist ' . esc_attr( $style ) . '">';
$count = 0;
// Tracklist style: Compact or normal
if ( $style === 'normal' || $style === 'compact' ) {
foreach ( $tracklist as $track ) {
/* Encode Track */
if ( isset( $panel_options['player_base64'] ) && $panel_options['player_base64'] === 'on' ) {
$track['url'] = base64_encode( $track['url'] );
}
if ( $track['disable_playback'] === 'yes' ) {
$track['url'] = '#';
$track['disable_playback'] = 'disabled';
} else {
$track['disable_playback'] = '';
}
if ( ! $track['cover'] || $track['cover'] === '' ) {
$track['cover'] = get_template_directory_uri() . '/images/no-track-image.png';
}
$count ++;
$output .= '
<li class="sp-track-item">
<div class="single-track ' . esc_attr( $style ) . '">
<span class="track-nr">' . sprintf( "%02d", $count ) . '</span>
<div class="track-wrap">
<a href="' . $track['url'] . '" class="track sp-play-next ' . esc_attr( $track['disable_playback'] ) . ' ' . esc_attr( $track_action ) . '" data-cover="' . esc_url( $track['cover'] ) . '" data-artist="' . esc_attr( $track['artists'] ) . '" data-artist_url="' . esc_url( $track['artists_url'] ) . '" data-artist_target="' . esc_attr( $track['artists_target'] ) . '" data-release_url="' . esc_url( $track['release_url'] ) . '" data-release_target="' . esc_attr( $track['release_target'] ) . '" data-shop_url="' . esc_url( $track['cart_url'] ) . '" data-shop_target="' . esc_attr( $track['cart_target'] ) . '" data-free_download="' . esc_attr( $track['free_download'] ) . '">
<img class="track-cover" src="' . esc_url( $track['cover'] ) . '" alt="' . esc_attr__( 'Cover Image', 'noisa-toolkit') . '">
<span class="track-status"></span><span class="track-title hidden">' . self::esc( $track['title'] ) . '</span>
'. $eq .'
</a>
</div>
<span class="track-meta">
<span class="track-title">' . self::esc( $track['title'] ) . '</span>
<span class="track-artists">' . self::esc( $track['artists'] ) . '</span>';
if ( $style === 'normal' ) {
if ( isset( $track['links'] ) ) {
$output .= '<span class="track-buttons">' . do_shortcode ( $track['links'] ) . '</span>';
}
}
$output .= '</span>';
$output .= '</div>';
$output .= '</li>';
}
// Simple style
} elseif ( $style === 'simple' ) {
foreach ( $tracklist as $track ) {
/* Encode Track */
if ( isset( $panel_options['player_base64'] ) && $panel_options['player_base64'] === 'on' ) {
$track['url'] = base64_encode( $track['url'] );
}
if ( $track['disable_playback'] === 'yes' ) {
$track['url'] = '#';
$track['disable_playback'] = 'disabled';
} else {
$track['disable_playback'] = '';
}
if ( ! $track['cover'] || $track['cover'] === '' ) {
$track['cover'] = get_template_directory_uri() . '/images/no-track-image.png';
}
$count ++;
$output .= '
<li class="sp-track-item">
<a href="' . self::esc( $track['url'] ) . '" class="simple-track sp-play-next ' . esc_attr( $track['disable_playback'] ) . ' ' . esc_attr( $track_action ) . '" data-cover="' . esc_url( $track['cover'] ) . '" data-artist="' . esc_attr( $track['artists'] ) . '" data-artist_url="' . esc_url( $track['artists_url'] ) . '" data-artist_target="' . esc_attr( $track['artists_target'] ) . '" data-release_url="' . esc_url( $track['release_url'] ) . '" data-release_target="' . esc_attr( $track['release_target'] ) . '" data-shop_url="' . esc_url( $track['cart_url'] ) . '" data-shop_target="' . esc_attr( $track['cart_target'] ) . '" data-free_download="' . esc_attr( $track['free_download'] ) . '">
<span class="track-nr">' . sprintf( "%02d", $count ) . '</span>
<span class="action"></span>
<span class="title">' . self::esc( $track['title'] ) . '</span>
<span class="artists">' . self::esc( $track['artists'] ) . '</span>
<span class="track-title hidden">' . self::esc( $track['title'] ) . '</span>
</a>
</li>';
}
}
$output .= '</ol>';
if ( $list_button === '1' ) {
$output .= '<a class="list-btn btn btn-icon ' . esc_attr( $list_button_action ) . '" data-id="tracklist-' . esc_attr( $noisa_sid ) . '" ><span class="icon icon-play2"></span>' . self::esc( $button_title ) . '</a>';
}
$output .= '</div>';
return $output;
}
/**
* Single Track
* @return void
*/
public function track( $atts, $content = null ) {
extract(shortcode_atts(array(
'id' => 0,
'style' => 'normal',
'eq' => '0',
'track_action' => 'sp-play-track',
'classes' => ''
), $atts));
// Get panel options
$panel_options = get_option( 'noisa_panel_opts' );
$output = '';
// Set unique ID
$this->SID++;
$noisa_sid = $this->SID;
// Get player list
$t = noisaToolkit();
$t = $t->scamp_player;
$track = $t->getList( $id );
if ( $id === 0 || $track === false ) {
return false;
}
if ( $eq === '1' ) {
$eq = '<div class="eq"><div class="bar-init"></div><div class="bar"></div><div class="bar"></div><div class="bar"></div><div class="bar"></div><div class="bar"></div></div>';
} else {
$eq = '';
}
foreach ( $track as $i => $track ) {
/* Encode Track */
if ( isset( $panel_options['player_base64'] ) && $panel_options['player_base64'] === 'on' ) {
$track['url'] = base64_encode( $track['url'] );
}
if ( $track['disable_playback'] === 'yes' ) {
$track['url'] = '#';
$track['disable_playback'] = 'disabled';
} else {
$track['disable_playback'] = '';
}
if ( ! $track['cover'] || $track['cover'] === '' ) {
$track['cover'] = get_template_directory_uri() . '/images/no-track-image.png';
}
$output .= '<div class="single-track-wrap ' . esc_attr( $classes ) . '">';
$output .= '
<div class="single-track ' . esc_attr( $style ) . '">
<div class="track-wrap">
<a href="' . $track['url'] . '" class="track ' . esc_attr( $track['disable_playback'] ) . ' ' . esc_attr( $track_action ) . '" data-cover="' . esc_url( $track['cover'] ) . '" data-artist="' . esc_attr( $track['artists'] ) . '" data-artist_url="' . esc_url( $track['artists_url'] ) . '" data-artist_target="' . esc_attr( $track['artists_target'] ) . '" data-release_url="' . esc_url( $track['release_url'] ) . '" data-release_target="' . esc_attr( $track['release_target'] ) . '" data-shop_url="' . esc_url( $track['cart_url'] ) . '" data-shop_target="' . esc_attr( $track['cart_target'] ) . '" data-free_download="' . esc_attr( $track['free_download'] ) . '">
<img class="track-cover" src="' . esc_url( $track['cover'] ) . '" alt="' . esc_attr__( 'Cover Image', 'noisa-toolkit') . '">
<span class="track-status"></span><span class="track-title hidden">' . self::esc( $track['title'] ) . '</span>
'. self::esc( $eq ) .'
</a>
</div>
<span class="track-meta">
<span class="track-title">' . self::esc( $track['title'] ) . '</span>
<span class="track-artists">' . self::esc( $track['artists'] ) . '</span>';
if ( $style === 'normal' ) {
$output .= '<span class="track-buttons">' . do_shortcode ( $track['links'] ) . '</span>';
}
$output .= '</span>';
$output .= '</div>';
$output .= '</div>';
if ( $i === 0 ) {
break;
return false;
}
}
return $output;
}
/**
* Track Button
* @return void
*/
public function track_button( $atts, $content = null ) {
extract(shortcode_atts(array(
'link' => '#',
'icon' => 'soundcloud',
'target' => '_self',
'classes' => ''
), $atts));
return '<a class="track-button ' . esc_attr( $classes ) . '" href="' . esc_url( $link ) . '" target="' . esc_attr( $target ) . '"><i class="icon icon-' . esc_attr( $icon ) . '"></i></a>';
}
/**
* Single Album
* @return void
*/
public function single_album( $atts, $content = null ) {
extract(shortcode_atts(array(
'album_title' => '',
'album_artists' => '',
'id' => 0,
'album_cover' => 0,
'size' => 'noisa-release-thumb',
'eq' => '0',
'classes' => ''
), $atts));
// Get panel options
$panel_options = get_option( 'noisa_panel_opts' );
$output = '';
// Set unique ID
$this->SID++;
$noisa_sid = $this->SID;
// Get player list
$t = noisaToolkit();
$t = $t->scamp_player;
$tracklist = $t->getList( $id );
if ( $id === 0 || $tracklist === false ) {
return false;
}
if ( $eq === '1' ) {
$eq = '<div class="eq"><div class="bar-init"></div><div class="bar"></div><div class="bar"></div><div class="bar"></div><div class="bar"></div><div class="bar"></div></div>';
} else {
$eq = '';
}
$output .= '<div class="single-album-wrap ' . esc_attr( $classes ) . '">';
// Hidden tracklist
$output .= '<ol id="album-list-' . esc_attr( $noisa_sid ) . '" class="sp-list sp-ctrl tracklist">';
foreach ( $tracklist as $track ) {
/* Encode Track */
if ( isset( $panel_options['player_base64'] ) && $panel_options['player_base64'] === 'on' ) {
$track['url'] = base64_encode( $track['url'] );
}
if ( $track['disable_playback'] === 'yes' ) {
$track['url'] = '#';
$track['disable_playback'] = 'disabled';
} else {
$track['disable_playback'] = '';
}
if ( ! $track['cover'] || $track['cover'] === '' ) {
$track['cover'] = get_template_directory_uri() . '/images/no-track-image.png';
}
$output .= '
<li class="sp-track-item">
<a href="' . self::esc( $track['url'] ) . '" class="sp-play-track sp-play-next" data-cover="' . esc_url( $track['cover'] ) . '" data-artist="' . esc_attr( $track['artists'] ) . '" data-artist_url="' . esc_url( $track['artists_url'] ) . '" data-artist_target="' . esc_attr( $track['artists_target'] ) . '" data-release_url="' . esc_url( $track['release_url'] ) . '" data-release_target="' . esc_attr( $track['release_target'] ) . '" data-shop_url="' . esc_url( $track['cart_url'] ) . '" data-shop_target="' . esc_attr( $track['cart_target'] ) . '" data-free_download="' . esc_attr( $track['free_download'] ) . '"><span class="track-title hidden">' . esc_attr( $track['title'] ) . '</span>
</a>
</li>';
}
$output .= '</ol>';
// Cover
$image = wp_get_attachment_image_src( $album_cover, $size );
$image = $image[0];
if ( ! $image || $image === '' ) {
$image = get_template_directory_uri() . '/images/no-track-image.png';
}
$output .= '
<a href="#" class="album-cover track sp-play-list" data-id="album-list-' . esc_attr( $noisa_sid ) . '" >
<img class="track-cover" src="' . esc_attr( $image ) . '" alt="' . esc_attr__( 'Cover Image', 'noisa-toolkit' ) . '">
<span class="track-meta">
<span class="track-count">
<span class="icon icon-music"></span>' . count($tracklist) . '
</span>
<span class="track-meta-inner">
<span class="track-title">' . self::esc( $album_title ) . '</span>
<span class="track-artists">' . self::esc( $album_artists ) . '</span>
</span>
</span>
<span class="track-status"></span>
'. self::esc( $eq ) .'
</a>';
$output .= '</div>';
return $output;
}
/**
* Tracklist Button
* @return void
*/
public function tracklist_button( $atts, $content = null ) {
extract(shortcode_atts(array(
'id' => 0,
'list_button_action' => 'sp-play-list',
'track_action' => 'sp-play-track',
'button_title' => esc_html__( 'Play List', 'noisa-toolkit'),
'classes' => ''
), $atts));
// Get panel options
$panel_options = get_option( 'noisa_panel_opts' );
$output = '';
// Set unique ID
$this->SID++;
$noisa_sid = $this->SID;
// Get player list
$t = noisaToolkit();
$t = $t->scamp_player;
$tracklist = $t->getList( $id );
if ( $id === 0 || $tracklist === false ) {
return false;
}
// Hidden tracklist
$output .= '<ol id="tracklist-' . esc_attr( $noisa_sid ) . '" class="sp-list sp-ctrl tracklist hidden">' ."\n";
foreach ( $tracklist as $track ) {
/* Encode Track */
if ( isset( $panel_options['player_base64'] ) && $panel_options['player_base64'] === 'on' ) {
$track['url'] = base64_encode( $track['url'] );
}
if ( ! $track['cover'] || $track['cover'] === '' ) {
$track['cover'] = get_template_directory_uri() . '/images/*no-track-image.png';
}
$output .= '
<li>
<a href="' . $track['url'] . '" class="sp-play-track" data-cover="' . esc_url( $track['cover'] ) . '" data-artist="' . esc_attr( $track['artists'] ) . '" data-artist_url="' . esc_url( $track['artists_url'] ) . '" data-artist_target="' . esc_attr( $track['artists_target'] ) . '" data-release_url="' . esc_url( $track['release_url'] ) . '" data-release_target="' . esc_attr( $track['release_target'] ) . '" data-shop_url="' . esc_url( $track['cart_url'] ) . '" data-shop_target="' . esc_attr( $track['cart_target'] ) . '" data-free_download="' . esc_attr( $track['free_download'] ) . '">><span class="track-title hidden">' . self::esc( $track['title'] ) . '</span><span class="track-artists hidden">' . self::esc( $track['artists'] ) . '</span>
</a>
</li>';
}
$output .= '</ol>' ."\n";
$output .= '<a class="list-btn btn btn-icon ' . esc_attr( $list_button_action ) . ' ' . esc_attr( $classes ) . '" data-id="tracklist-' . esc_attr( $noisa_sid ) . '" ><span class="icon icon-play2"></span>' . self::esc( $button_title ) . '</a>';
return $output;
}
/**
* Tweets List
* @return void
*/
public function tweets_list( $atts, $content = null ) {
extract(shortcode_atts(array(
'time' => 30,
'limit' => '1',
'username' => '',
'replies' => 'no',
'api_key' => '',
'api_secret' => ''
), $atts));
$opts = array(
'time' => $time,
'limit' => $limit,
'username' => $username,
'replies' => $replies,
'api_key' => $api_key,
'api_secret' => $api_secret
);
$output = '';
if ( class_exists( 'RascalsTwitter' ) ) {
$feed = new RascalsTwitter($opts);
$tweets = $feed->showTweets();
if ( is_array( $tweets ) ) {
$output .= '<ul class="tweets">';
foreach ( $tweets as $key => $tweet ) {
$output .= '<li>' . self::esc( $tweet['text'] ) . '<span class="date">' . self::esc( $tweet['date'] ) . '</span></li>';
if ( $key === $limit ) {
break;
}
}
$output .= '</ul>';
return $output;
} else {
// Errors
return $tweets;
}
}
return;
}
/**
* Tweets Slider
* @return void
*/
public function tweets_slider( $atts, $content = null ) {
extract(shortcode_atts(array(
'bg_color' => 'light-bg',
'time' => 30,
'limit' => '1',
'username' => '',
'replies' => 'no',
'api_key' => '',
'api_secret' => ''
), $atts));
$opts = array(
'time' => $time,
'limit' => $limit,
'username' => $username,
'replies' => $replies,
'api_key' => $api_key,
'api_secret' => $api_secret
);
$this->SID++;
$noisa_sid = $this->SID;
$output = '';
if ( class_exists( 'RascalsTwitter' ) ) {
$feed = new RascalsTwitter($opts);
$tweets = $feed->showTweets();
if ( is_array( $tweets ) ) {
$output .= '<div id="twitter-slider-id' . esc_attr( $noisa_sid ) . '" class="slider carousel-slider text-slider tweets-slider ' . esc_attr( $bg_color ) . '" data-effect="fade" data-pagination="true" data-nav="false" data-autoplay="false">';
foreach ( $tweets as $key => $tweet ) {
$output .= '<div class="slide"><div class="tweet">' . self::esc( $tweet['text'] ) . '<span class="date">' . self::esc( $tweet['date'] ) . '</span></div></div>';
if ( $key === $limit ) {
break;
}
}
$output .= '</div>';
return $output;
} else {
// Errors
return $tweets;
}
}
return;
}
/**
* Buttons
* @return void
*/
public function buttons( $atts, $content = null ) {
extract(shortcode_atts(array(
'classes' => '',
'align' => 'text-left'
), $atts));
$classes .= ' ' . $align;
return '<div class="buttons ' . esc_attr( $classes ) . '">' . do_shortcode( $content ) . '</div>';
}
/**
* Button
* @return void
*/
public function button( $atts, $content = null ) {
extract(shortcode_atts(array(
'size' => 'btn-medium',
'title' => 'Example Button Text',
'link' => '#',
'target' => '',
'icon' => '',
'style' => 'default-btn'
), $atts));
if ( $target === '0' ) {
$target = 'target="_blank"';
}
if ( $icon !== '' ) {
$icon = '<span class="icon icon-' . esc_attr( $icon ) . '"></span>';
return '<a class="btn btn-icon ' . esc_attr( $size ) . ' ' . $style . '" href="' . esc_url( $link ) . '" ' . self::esc( $target ) . '>' . self::esc( $icon ) . esc_html( $title ) . '</a>';
} else {
return '<a class="btn ' . esc_attr( $size ) . ' ' . esc_attr( $style ) . '" href="' . esc_url( $link ) . '" ' . self::esc( $target ) . '>' . self::esc( $title ) . '</a>';
}
}
/**
* Icon Column
* @return void
*/
public function icon_column( $atts, $content = null ) {
extract(shortcode_atts(array(
'icon_title' => '',
'bold_title' => '',
'icon' => '',
'icon_place' => 'icon_left',
'button_title' => '',
'button_link' => ''
), $atts));
$output = '';
$button = '';
if ( $button_link !== '' && $button_title !== '' ) {
$button = '<a class="readmore" href="' . esc_url( $button_link ) . '">' . esc_html( $button_title ) . '</a>';
}
if ( $icon !== '' ) {
$icon = '<span class="icon icon-' . esc_attr( $icon ) . '"></span>';
}
if ( $bold_title === '0' && $icon_title !== '' ) {
$icon_title = '<strong>' . esc_html( $icon_title ) . '</strong>';
}
if ( $icon_title !== '' ) {
$icon_title = '<span class="icon_column_title">' . esc_html( $icon_title ) . '</span>';
}
$output .= '
<div class="icon_column ' . esc_attr( $icon_place ) . '">
' . self::esc( $icon ) . '
<div class="text-holder">' . self::esc( $icon_title ) . do_shortcode( $content ) . '</div>
' . self::esc( $button ) . '
</div>
';
return $output;
}
/**
* Pricing Column
* @return void
*/
public function pricing_column( $atts, $content = null ) {
extract(shortcode_atts(array(
'title' => '',
'price' => '0',
'currency' => '$',
'period' => '',
'link' => '#',
'target' => '_self',
'button_text' => 'Buy Now',
'important' => '',
'list' => '2x option 1,Free option 2,Unlimited option 3,Unlimited option 4,1x option 5'
), $atts));
$output = '';
$html_list = '';
$output .= "<div class='price-table'>";
if ( $important === "yes" ){
$output .= "<div class='price-table-inner important-price'>";
} else {
$output .= "<div class='price-table-inner'>";
}
if ( $list !== '' ){
$list = explode( ',', $list );
if ( is_array( $list) ) {
$html_list .= '<ul>';
foreach ( $list as $li ) {
$html_list .= '<li>' . self::esc( $li ) . '</li>';
}
$html_list .= '</ul>';
}
}
$output .= "<ul>";
$output .= "<li class='prices'>";
$output .= "<div class='price-wrapper'>";
$output .= "<sup class='value'>" . esc_attr( $currency ) . "</sup>";
$output .= "<span class='price'>" . esc_attr( $price ) . "</span>";
$output .= "<sub class='mark'>" . esc_attr( $period ) . "</sub>";
$output .= "</div>";
$output .= "</li>"; // end prices
$output .= "<li class='table-title'>" . self::esc( $title ) . "</li>";
$output .= '<li class="price-content-list">' . self::esc( $html_list ) . '</li>';
$output .= "<li class='price-button-wrapper'>";
$output .= "<a class='btn medium' href='" . esc_url( $link ) . "' target='" . esc_attr( $target ) . "'>" . self::esc( $button_text ) . "</a>";
$output .= "</li>"; // end button
$output .= "</ul>";
$output .= "</div>"; // end price-table-inner
$output .="</div>"; // end price-table
return $output;
}
/**
* Details List
* @return void
*/
public function details_list( $atts, $content = null ) {
extract(shortcode_atts(array(
'classes' => ''
), $atts));
return '<ul class="details-list ' . esc_attr( $classes ) . '">' . do_shortcode($content) . '</ul>';
}
/**
* Detail
* @return void
*/
public function detail( $atts, $content = null ) {
extract(shortcode_atts(array(
'label' => 'Color',
'value' => 'White',
'text_link' => '1',
'url' => '',
'target' => ''
), $atts));
if ( $text_link === '0' && $url !== '' ) {
if ( $target === '0' ) {
$target = 'target="_blank"';
}
$value = '<a href="' . esc_url( $url ) . '" ' . self::esc( $target ) . '>' . self::esc( $value ) . '</a>';
}
return '<li><span>' . self::esc( $label ) . '</span>' . self::esc( $value ) . '</li>';
}
/**
* Google Maps
* @return void
*/
public function google_maps( $atts, $content = null ) {
extract(shortcode_atts(array(
'height' => '400',
'address' => 'Level 13, 2 Elizabeth St, Melbourne Victoria 3000 Australia',
'depth' => '15',
'zoom_control' => 'true',
'scrollwheel' => 'false',
'classes' => ''
), $atts));
$this->SID++;
$noisa_sid = $this->SID;
$output = '<div class="gmap-wrap">';
$output .= '<div id="gmap_' . esc_attr( $noisa_sid ) . '" class="gmap" style="height:' . esc_attr( $height ) . 'px" data-address="' . esc_attr( $address ) . '" data-zoom="' . esc_attr( $depth ) . '" data-zoom_control="' . esc_attr( $zoom_control ) . '" data-scrollwhell="' . esc_attr( $scrollwheel ) . '">';
$output .= '<p>' . esc_html__( 'Please enable your JavaScript in your browser, to view our location.', 'noisa-toolkit' ) . '</p>';
$output .= '</div>';
$output .= '</div>';
return $output;
}
/**
* Posts List
* @return void
*/
public function posts_list( $atts, $content = null ) {
extract(shortcode_atts(array(
'limit' => '10',
'title' => '',
'columns' => '2',
'button_link' => '',
'posts_in' => '',
'categories_in' => '',
'classes' => ''
), $atts));
global $wp_query, $post;
// Set unique ID
$this->SID++;
$noisa_sid = $this->SID;
$output = '';
$panel_options = get_option( 'noisa_panel_opts' );
$words_number = 30;
// Date format
$date_format = get_option( 'date_format' );
// Pagination Limit
$limit = $limit && $limit === '' ? $limit = 6 : $limit = $limit;
// post backup
if ( isset( $post ) ) {
$backup = $post;
}
// Loop Args.
$args = array(
'showposts' => $limit
);
/* Posts in */
if ( $posts_in !== '' ) {
$args['post__in'] = explode( ',', $posts_in );
}
/* Categories */
if ( $categories_in !== '' ) {
$categories_in = explode( ',', $categories_in );
$c = array();
foreach ( $categories_in as $cat ) {
$cat_id = get_cat_ID( $cat );
if ( $cat_id ) {
array_push( $c, $cat_id );
}
}
if ( is_array( $c ) && ! empty( $c ) ) {
$args['cat'] = implode( ',', $c );
}
}
$posts_list = new WP_Query();
$posts_list->query( $args );
// Begin Loop
if ( $posts_list->have_posts() ) {
$output .= '<div class="posts-list '. esc_attr( $classes ) .'">';
while ( $posts_list->have_posts() ) {
$posts_list->the_post();
$output .= '<a href="' . esc_url( get_permalink() ) . '">';
$output .= '<span class="date">' . get_the_time( $date_format ) . '</span>';
$output .= '<div class="title"><h2>' . get_the_title() . '</h2></div>';
$categories = get_the_category();
$separator = ' / ';
$cats = '';
if ( ! empty( $categories ) ) {
foreach( $categories as $category ) {
$cats .= esc_html( $category->name ) . $separator;
}
}
$output .= '<span class="cats">' . trim( $cats, $separator ) . '</span>';
$output .= '</a>';
} // end loop
$output .= '</div>'; //wrap;
if ( $button_link !== '' ) {
$output .= '<div class="button-position"><a class="btn btn-medium more-posts" href="' . esc_url( $button_link ) . '">' . esc_html__( 'View More Posts', 'noisa-toolkit' ) . '</a></div>';
}
} // end have_posts
if ( isset( $post ) ) {
$post = $backup;
}
return $output;
}
/**
* Releases Grid
* @return void
*/
public function releases_grid( $atts, $content = null ) {
extract(shortcode_atts(array(
'limit' => '40',
'order' => 'menu_order',
'in_row' => '3',
'url' => '',
'gap' => 'no-gap',
'display_by' => 'all',
'terms' => ''
), $atts));
global $wp_query, $post;
$output = '';
$panel_options = get_option( 'noisa_panel_opts' );
// Date format
$date_format = get_option( 'date_format' );
// Pagination Limit
$limit = $limit && $limit === '' ? $limit = 6 : $limit = $limit;
if ( isset( $post ) ) {
$backup = $post;
}
if ( $url !== '' ) {
$n_cpt = wp_count_posts( 'noisa_releases' );
$n_cpt_publish = $n_cpt->publish;
}
// Loop Args.
$args = array(
'post_type' => 'noisa_releases',
'orderby' => $order, // menu_order, date, title
'showposts' => $limit
);
$args['order'] = 'ASC';
if ( $order === 'date' ) {
$args['order'] = 'DESC';
}
// Taxonimies
if ( $display_by !== 'all' && $terms !== '' ) {
$terms = explode( ',', $terms );
$args['tax_query'] = array(
array(
'taxonomy' => $display_by,
'field' => 'slug',
'terms' => $terms
)
);
}
$releases_query = new WP_Query();
$releases_query->query( $args );
// begin Loop
if ( $releases_query->have_posts() ) {
$output .= '<div class="' . esc_attr( $gap ) . ' releases-grid clearfix">';
while ( $releases_query->have_posts() ) {
$releases_query->the_post();
if ( has_post_thumbnail() ) {
$last = false;
if ( ( $releases_query->current_post ) < ( $releases_query->post_count -1 ) ) {
$last = false;
} else {
if ( $url !== '' ) {
$last = true;
}
}
$output .= '<article class="' . implode( ' ', get_post_class( 'masonry-item masonry-item-1-'. $in_row, $releases_query->post->ID ) ) . '">';
$output .= '<div class="grid-media">';
if ( ! $last ) {
$link_classes = 'thumb thumb-desc';
$permalink = get_permalink();
} else {
$link_classes = 'thumb thumb-desc thumb-post-count';
$permalink = $url;
}
$tip = get_post_meta( $releases_query->post->ID, '_tooltip', true );
if ( isset( $tip ) && $tip !== '' ) {
$link_classes .= ' tip active-tip';
} else {
$tip = false;
}
$output .= '<a href="' . esc_url( $permalink ) . '" class="' . esc_attr( $link_classes ) . '">';
if ( ! $last ) {
$img_src = wp_get_attachment_image_src( get_post_thumbnail_id( $releases_query->post->ID ), 'noisa-release-thumb' );
$output .= '<img src="' . esc_url( $img_src[0] ) . '" alt="' . esc_attr__( 'Post Image', 'noisa-toolkit' ) . '">';
$output .= '<div class="desc-layer">';
$output .= '<div class="desc-details">';
$output .= '<h2 class="grid-title">' . get_the_title() . '</h2>';
$output .= '<div class="grid-cats">';
$categories = get_the_terms( $releases_query->post->ID, 'noisa_releases_genres' );
$separator = ' / ';
$cats = '';
if ( ! empty( $categories ) ) {
foreach( $categories as $term ) {
$cats .= '<span>' . esc_html( $term->name ) . '</span>' . esc_html( $separator );
}
}
$output .= trim( $cats, $separator );
$output .= '</div>';
$output .= '</div>';
$output .= '<div class="arrow-icon"></div>';
$output .= '</div>';
if ( $tip ) {
$output .= '<div class="tip-content hidden">' . self::esc( $tip ) . '</div>';
}
} else {
$img_src = wp_get_attachment_image_src( get_post_thumbnail_id( $releases_query->post->ID ), 'noisa-release-thumb' );
$output .= '<img src="' . esc_url( $img_src[0] ) . '" alt="' . esc_attr__( 'Post Image', 'noisa-toolkit' ) . '">';
$output .= '<div class="desc-layer">';
$output .= '<div class="desc-plus"></div>';
$output .= '<div class="desc-count">' . self::esc( $n_cpt_publish ) . '</div>';
$output .= '</div>';
}
$output .= '</a>';
$output .= '</div>';
$output .= '</article>';
}
} // end loop
// End grid
$output .= '</div>';
} // end have_posts
$output .= '<div class="clear"></div>';
if ( isset( $post ) ) {
$post = $backup;
}
return $output;
}
/**
* Releases Carousel
* @return void
*/
public function releases_carousel( $atts, $content = null ) {
global $wp_query, $post;
extract(shortcode_atts(array(
'limit' => '40',
'order' => 'menu_order',
'visible_items' => '1',
'gap' => 'no-gap',
'display_by' => 'all',
'terms' => '',
'button_link' => '',
'button_title' => esc_html__( 'View More', 'noisa-toolkit'),
'classes' => ''
), $atts));
$this->SID++;
$noisa_sid = $this->SID;
$output = '';
$panel_options = get_option( 'noisa_panel_opts' );
// Pagination Limit
$limit = $limit && $limit === '' ? $limit = 6 : $limit = $limit;
if ( isset( $post ) ) {
$backup = $post;
}
// Loop Args.
$args = array(
'post_type' => 'noisa_releases',
'orderby' => $order, // menu_order, date, title
'showposts' => $limit
);
$args['order'] = 'ASC';
if ( $order === 'date' ) {
$args['order'] = 'DESC';
}
// Taxonimies
if ( $display_by !== 'all' && $terms !== '' ) {
$terms = explode( ',', $terms );
$args['tax_query'] = array(
array(
'taxonomy' => $display_by,
'field' => 'slug',
'terms' => $terms
)
);
}
$releases_query = new WP_Query();
$releases_query->query( $args );
// begin Loop
if ( $releases_query->have_posts() ) {
$output .= '<div class="releases-carousel-wrap ' . esc_attr( $classes ) . '">';
$output .= '<div id="releases-carousel-id' . esc_attr( $noisa_sid ) . '" class="carousel-slider carousel-releases-slider '. esc_attr( $gap ) . '" data-effect="fade" data-pagination="true" data-nav="false" data-autoplay="false" data-items="' . esc_attr( $visible_items ) . '">';
while ( $releases_query->have_posts() ) {
$releases_query->the_post();
if ( has_post_thumbnail() ) {
$output .= '<article class="' . implode( ' ', get_post_class( $releases_query->post->ID ) ) . '">';
$output .= '<div class="grid-media">';
$link_classes = 'thumb thumb-desc';
$permalink = get_permalink();
$tip = get_post_meta( $releases_query->post->ID, '_tooltip', true );
if ( isset( $tip ) && $tip !== '' ) {
$link_classes .= ' tip active-tip';
} else {
$tip = false;
}
$output .= '<a href="' . esc_url( $permalink ) . '" class="' . esc_attr( $link_classes ) . '">';
$img_src = wp_get_attachment_image_src( get_post_thumbnail_id( $releases_query->post->ID ), 'noisa-release-thumb' );
$output .= '<img src="' . esc_url( $img_src[0] ) . '" alt="' . esc_attr__( 'Post Image', 'noisa-toolkit' ) . '">';
$output .= '<div class="desc-layer">';
$output .= '<div class="desc-details">';
$output .= '<h2 class="grid-title">' . get_the_title() . '</h2>';
$output .= '<div class="grid-cats">';
$categories = get_the_terms( $releases_query->post->ID, 'noisa_releases_genres' );
$separator = ' / ';
$cats = '';
if ( ! empty( $categories ) ) {
foreach( $categories as $term ) {
$cats .= '<span>' . esc_html( $term->name ) . '</span>' . esc_html( $separator );
}
}
$output .= trim( $cats, $separator );
$output .= '</div>';
$output .= '</div>';
$output .= '<div class="arrow-icon"></div>';
$output .= '</div>';
if ( $tip ) {
$output .= '<div class="tip-content hidden">' . self::esc( $tip ) . '</div>';
}
$output .= '</a>';
$output .= '</div>';
$output .= '</article>';
}
} // end loop
// End carousel
$output .= '</div>';
if ( $button_link !== '' ) {
$output .= '<div class="button-position"><a class="btn medium more-posts" href="' . esc_url( $button_link ) . '">' . self::esc( $button_title ) . '</a></div>';
}
$output .= '</div>'; // wrap;
} // end have_posts
$output .= '<div class="clear"></div>';
if ( isset( $post ) ) {
$post = $backup;
}
return $output;
}
/**
* Artists Grid
* @return void
*/
public function artists_grid( $atts, $content = null ) {
extract(shortcode_atts(array(
'limit' => '40',
'order' => 'menu_order',
'in_row' => '3',
'url' => '',
'gap' => 'no-gap',
'display_by' => 'all',
'disable_artists_links' => '',
'terms' => ''
), $atts));
global $wp_query, $post;
$output = '';
$panel_options = get_option( 'noisa_panel_opts' );
// Date format
$date_format = get_option( 'date_format' );
// Pagination Limit
$limit = $limit && $limit === '' ? $limit = 6 : $limit = $limit;
if ( isset( $post ) ) {
$backup = $post;
}
if ( $url !== '' ) {
$n_cpt = wp_count_posts( 'noisa_artists' );
$n_cpt_publish = $n_cpt->publish;
} else {
$n_cpt_publish = '0';
}
// Loop Args.
$args = array(
'post_type' => 'noisa_artists',
'orderby' => $order, // menu_order, date, title
'showposts' => $limit
);
$args['order'] = 'ASC';
if ( $order === 'date' ) {
$args['order'] = 'DESC';
}
// Taxonimies
if ( $display_by !== 'all' && $terms !== '' ) {
$terms = explode( ',', $terms );
$args['tax_query'] = array(
array(
'taxonomy' => $display_by,
'field' => 'slug',
'terms' => $terms
)
);
}
$artists_query = new WP_Query();
$artists_query->query( $args );
// begin Loop
if ( $artists_query->have_posts() ) {
$output .= '<div class="masonry ' . esc_attr( $gap ) . ' artists-grid clearfix">';
while ( $artists_query->have_posts() ) {
$artists_query->the_post();
if ( has_post_thumbnail() ) {
$last = false;
if ( ( $artists_query->current_post ) < ( $artists_query->post_count -1 ) ) {
$last = false;
} else {
if ( $url !== '' ) {
$last = true;
}
}
$output .= '<article class="' . implode( ' ', get_post_class( 'masonry-item masonry-item-1-'. $in_row, $artists_query->post->ID ) ) . '">';
$output .= '<div class="grid-media">';
if ( ! $last ) {
$link_classes = 'thumb thumb-desc';
$permalink = get_permalink();
} else {
$link_classes = 'thumb thumb-desc thumb-post-count';
$permalink = $url;
}
$tip = get_post_meta( $artists_query->post->ID, '_tooltip', true );
if ( isset( $tip ) && $tip !== '' ) {
$link_classes .= ' tip active-tip';
} else {
$tip = false;
}
if ( $disable_artists_links === '0' && ! $last ) {
$output .= '<a class="' . esc_attr( $link_classes ) . '">';
} else {
$output .= '<a href="' . esc_url( $permalink ) . '" class="' . esc_attr( $link_classes ) . '">';
}
if ( ! $last ) {
$img_src = wp_get_attachment_image_src( get_post_thumbnail_id( $artists_query->post->ID ), 'full' );
$output .= '<img src="' . esc_url( $img_src[0] ) . '" alt="' . esc_attr__( 'Post Image', 'noisa-toolkit' ) . '">';
$output .= '';
$output .= '<div class="desc-layer">';
$output .= '<div class="desc-details">';
$output .= '<h2 class="grid-title">' . get_the_title() . '</h2>';
$output .= '<div class="grid-cats">';
$categories = get_the_terms( $artists_query->post->ID, 'noisa_artists_genres' );
$separator = ' / ';
$cats = '';
if ( ! empty( $categories ) ) {
foreach( $categories as $term ) {
$cats .= '<span>' . esc_html( $term->name ) . '</span>' . esc_html( $separator );
}
}
$output .= trim( $cats, $separator );
$output .= '</div>';
$output .= '</div>';
$output .= '<div class="arrow-icon"></div>';
$output .= '</div>';
if ( $tip ) {
$output .= '<div class="tip-content hidden">' . self::esc( $tip ) . '</div>';
}
} else {
$img_src = wp_get_attachment_image_src( get_post_thumbnail_id( $artists_query->post->ID ), 'full' );
$output .= '<img src="' . esc_url( $img_src[0] ) . '" alt="' . esc_attr__( 'Post Image', 'noisa-toolkit' ) . '">';
$output .= '<div class="desc-layer">';
$output .= '<div class="desc-plus"></div>';
$output .= '<div class="desc-count">' . self::esc( $n_cpt_publish ) . '</div>';
$output .= '</div>';
}
$output .= '</a>';
$output .= '</div>';
$output .= '</article>';
}
} // end loop
// End grid
$output .= '</div>';
} // end have_posts
$output .= '<div class="clear"></div>';
if ( isset( $post ) ) {
$post = $backup;
}
return $output;
}
/**
* Artists Carousel
* @return void
*/
public function artists_carousel( $atts, $content = null ) {
global $wp_query, $post;
extract(shortcode_atts(array(
'limit' => '40',
'order' => 'menu_order',
'visible_items' => '1',
'gap' => 'no-gap',
'display_by' => 'all',
'offset' => 0 ,
'pagination' => '0',
'terms' => '',
'button_link' => '',
'button_title' => esc_html__( 'View More', 'noisa-toolkit'),
'classes' => ''
), $atts));
// Set unique ID
$this->SID++;
$noisa_sid = $this->SID;
$output = '';
$panel_options = get_option( 'noisa_panel_opts' );
$thumb_size = 'full';
$classes .= ' grab';
// Pagination
$limit = $limit && $limit === '' ? $limit = 6 : $limit = $limit;
if ( $pagination === '0' ) {
$pagination = 'true';
} else {
$pagination = 'false';
}
if ( isset( $post ) ) {
$backup = $post;
}
// Loop Args.
$args = array(
'post_type' => 'noisa_artists',
'orderby' => $order, // menu_order, date, title
'order' => 'ASC',
'offset' => $offset,
'showposts' => $limit
);
$args['order'] = 'ASC';
if ( $order === 'date' ) {
$args['order'] = 'DESC';
}
// Taxonimies
if ( $display_by !== 'all' && $terms !== '' ) {
$terms = explode( ',', $terms );
$args['tax_query'] = array(
array(
'taxonomy' => $display_by,
'field' => 'slug',
'terms' => $terms
)
);
}
$artists_query = new WP_Query();
$artists_query->query( $args );
// begin Loop
if ( $artists_query->have_posts() ) {
$output .= '<div class="artists-carousel-wrap ' . esc_attr( $classes ) . '">';
$output .= '<div id="artists-carousel-id' . esc_attr( $noisa_sid ) . '" class="carousel-slider carousel-artists-slider '. esc_attr( $gap ) . '" data-effect="fade" data-pagination="' . esc_attr( $pagination ) . '" data-nav="false" data-autoplay="false" data-items="' . esc_attr( $visible_items ) . '">';
while ( $artists_query->have_posts() ) {
$artists_query->the_post();
if ( has_post_thumbnail() ) {
$output .= '<article class="' . implode( ' ', get_post_class( $artists_query->post->ID ) ) . '">';
$output .= '<div class="grid-media">';
$link_classes = 'thumb thumb-desc';
$permalink = get_permalink();
$tip = get_post_meta( $artists_query->post->ID, '_tooltip', true );
if ( isset( $tip ) && $tip !== '' ) {
$link_classes .= ' tip active-tip';
} else {
$tip = false;
}
$output .= '<a href="' . esc_url( $permalink ) . '" class="' . esc_attr( $link_classes ) . '">';
$img_src = wp_get_attachment_image_src( get_post_thumbnail_id( $artists_query->post->ID ), 'full' );
$output .= '<img src="' . esc_url( $img_src[0] ) . '" alt="' . esc_attr__( 'Post Image', 'noisa-toolkit' ) . '">';
$output .= '';
$output .= '<div class="desc-layer">';
$output .= '<div class="desc-details">';
$output .= '<h2 class="grid-title">' . get_the_title() . '</h2>';
$output .= '<div class="grid-cats">';
$categories = get_the_terms( $artists_query->post->ID, 'noisa_artists_genres' );
$separator = ' / ';
$cats = '';
if ( ! empty( $categories ) ) {
foreach( $categories as $term ) {
$cats .= '<span>' . esc_html( $term->name ) . '</span>' . esc_html( $separator );
}
}
$output .= trim( $cats, $separator );
$output .= '</div>';
$output .= '</div>';
$output .= '<div class="arrow-icon"></div>';
$output .= '</div>';
if ( $tip ) {
$output .= '<div class="tip-content hidden">' . self::esc( $tip ) . '</div>';
}
$output .= '</a>';
$output .= '</div>';
$output .= '</article>';
}
} // end loop
// End carousel
$output .= '</div>';
if ( $button_link !== '' ) {
$output .= '<div class="button-position"><a class="btn medium more-posts" href="' . esc_url( $button_link ) . '">' . self::esc( $button_title ) . '</a></div>';
}
$output .= '</div>'; // wrap;
} // end have_posts
$output .= '<div class="clear"></div>';
if ( isset( $post ) ) {
$post = $backup;
}
return $output;
}
/**
* Events
* @return void
*/
public function events( $atts, $content = null ) {
global $wp_query, $post;
extract(shortcode_atts(array(
'limit' => '40',
'in_row' => '3',
'gap' => 'no-gap',
'display_type' => 'grid',
'event_type' => 'future-events',
'display_by' => 'all',
'terms' => '',
'thumb_style' => 'default',
'show_end_date' => true
), $atts));
$output = '';
$panel_options = get_option( 'noisa_panel_opts' );
// Date format
$date_format = 'd/m/Y';
if ( isset( $panel_options ) && isset( $panel_options['event_date'] ) ) {
$date_format = $panel_options['event_date'];
} else {
$date_format = get_option( 'date_format' );
}
// Pagination Limit
$limit = $limit && $limit === '' ? $limit = 6 : $limit = $limit;
if ( isset( $post ) ) {
$backup = $post;
}
// Taxonomies
if ( $display_by !== 'all' && $terms !== '' ) {
$terms = explode( ',', $terms );
}
// ---------------------- All events
if ( $event_type === 'all-events' ) {
$future_tax = array(
'relation' => 'AND',
array(
'taxonomy' => 'noisa_event_type',
'field' => 'slug',
'terms' => 'future-events'
)
);
$past_tax = array(
'relation' => 'AND',
array(
'taxonomy' => 'noisa_event_type',
'field' => 'slug',
'terms' => 'past-events'
)
);
if ( $display_by !== 'all' && $terms !== '' ) {
array_push( $future_tax,
array(
'taxonomy' => $display_by,
'field' => 'slug',
'terms' => $terms
)
);
array_push( $past_tax,
array(
'taxonomy' => $display_by,
'field' => 'slug',
'terms' => $terms
)
);
}
$future_events = get_posts( array(
'post_type' => 'noisa_events',
'showposts' => -1,
'tax_query' => $future_tax,
'orderby' => 'meta_value',
'meta_key' => '_event_date_start',
'order' => 'ASC'
));
// Past Events
$past_events = get_posts(array(
'post_type' => 'noisa_events',
'showposts' => -1,
'tax_query' => $past_tax,
'orderby' => 'meta_value',
'meta_key' => '_event_date_start',
'order' => 'DSC'
));
$future_nr = count( $future_events );
$past_nr = count( $past_events );
$mergedposts = array_merge( $future_events, $past_events ); //combine queries
$postids = array();
foreach( $mergedposts as $item ) {
$postids[] = $item->ID; //create a new query only of the post ids
}
$uniqueposts = array_unique( $postids ); //remove duplicate post ids
// var_dump($uniqueposts);
$args = array(
'post_type' => 'noisa_events',
'showposts' => $limit,
'post__in' => $uniqueposts,
'orderby' => 'post__in'
);
// ---------------------- Future or past events
} else {
/* Set order */
$order = $event_type === 'future-events' ? $order = 'ASC' : $order = 'DSC';
// Event type taxonomy
$taxonomies = array(
array(
'taxonomy' => 'noisa_event_type',
'field' => 'slug',
'terms' => $event_type
)
);
if ( $display_by !== 'all' && $terms !== '' ) {
array_push( $taxonomies,
array(
'taxonomy' => $display_by,
'field' => 'slug',
'terms' => $terms
)
);
}
// Begin Loop
$args = array(
'post_type' => 'noisa_events',
'showposts' => $limit,
'tax_query' => $taxonomies,
'orderby' => 'meta_value',
'meta_key' => '_event_date_start',
'order' => $order,
'suppress_filters' => 0 // WPML FIX
);
}
$events_query = new WP_Query();
$events_query->query( $args );
// begin Loop
if ( $events_query->have_posts() ) {
if ( $display_type === 'grid' ) {
$grid_classes = 'masonry events-grid clearfix ' . esc_attr( $gap ) . ' ' . esc_attr( $thumb_style );
} elseif ( $display_type === 'list' ) {
$grid_classes = 'masonry masonry-list events-list clearfix';
}
$output .= '<div class="' . esc_attr( $grid_classes ) . ' clearfix">';
while ( $events_query->have_posts() ) {
$events_query->the_post();
/* Event Date */
$event_time_start = get_post_meta( $events_query->post->ID, '_event_time_start', true );
$event_date_start = get_post_meta( $events_query->post->ID, '_event_date_start', true );
$event_date_end = get_post_meta( $events_query->post->ID, '_event_date_end', true );
$event_date_start = strtotime( $event_date_start );
$event_date_end = strtotime( $event_date_end );
$end_date = false;
if ( $show_end_date === true ) {
if ( $event_date_start !== $event_date_end ) {
$end_date = true;
}
}
if ( $display_type === 'grid' ) {
$output .= '<article class="' . implode( ' ', get_post_class( 'masonry-item masonry-item-1-'. $in_row, $events_query->post->ID ) ) . '">';
if ( has_post_thumbnail() ) {
$output .= '<div class="grid-media">';
$link_classes = 'thumb thumb-event';
if ( has_term( 'past-events', 'noisa_event_type' ) ) {
$link_classes .= ' past-event';
}
$output .= '<a href="' . esc_url( get_permalink() ) . '" class="' . esc_attr( $link_classes ) . '">';
$img_src = wp_get_attachment_image_src( get_post_thumbnail_id( $events_query->post->ID ), 'large' );
$output .= '<img src="' . esc_url( $img_src[0] ) . '" alt="' . esc_attr__( 'Post Image', 'noisa-toolkit' ) . '">';
$output .= '<div class="desc-layer">';
$output .= '<div class="desc-details">';
// Meta top
$output .= '<div class="event-meta-top">';
$output .= '<span class="event-day">' . date_i18n( 'D', $event_date_start ) . '</span>';
$output .= '<span class="event-locations">';
$categories = get_the_terms( $events_query->post->ID, 'noisa_events_locations' );
$separator = ' / ';
$cats = '';
if ( ! empty( $categories ) ) {
foreach( $categories as $term ) {
$cats .= '<span>' . esc_html( $term->name ) . '</span>' . esc_html( $separator );
}
}
$output .= trim( $cats, $separator );
$output .= '</span>';
$output .= '</div>';
// Meta bottom
$output .= '<div class="event-meta-bottom">';
$output .= '<span class="event-date">' . date_i18n( $date_format, $event_date_start ) . '</span>';
$output .= '<h2 class="grid-title">' . get_the_title() . '</h2>';
$output .= '<span class="event-artists">';
$categories = get_the_terms( $events_query->post->ID, 'noisa_events_artists' );
$separator = ' / ';
$cats = '';
if ( ! empty( $categories ) ) {
foreach( $categories as $term ) {
$cats .= '<span>' . esc_html( $term->name ) . '</span>' . esc_html( $separator );
}
}
$output .= trim( $cats, $separator );
$output .= '</span>';
if ( has_term( 'past-events', 'noisa_event_type' ) ) {
$output .= '<span class="pill-btn medium">' . esc_html__( 'Past Event', 'noisa-toolkit' ) . '</span>';
}
$output .= '</div>';
$output .= '</div>';
$output .= '</div>';
$output .= '</a>';
$output .= '</div>';
$output .= '</article>';
}
} elseif ( $display_type === 'list' ) {
$output .= '<article class="' . implode( ' ', get_post_class( 'masonry-item', $events_query->post->ID ) ) . '">';
$output .= '<a href="' . esc_url( get_permalink() ) . '" class="event-li">';
if ( $end_date === true ) {
$output .= '<span class="date">' . date_i18n( $date_format, $event_date_start ) . ' - ' . date_i18n( $date_format, $event_date_end );
} else {
$output .= '<span class="date">' . date_i18n( $date_format, $event_date_start );
}
if ( has_term( 'past-events', 'noisa_event_type' ) ) {
$output .= '<span class="past-event-label">' . esc_html__( 'Past Event', 'noisa-toolkit' ) . '</span>';
}
$output .= '</span>';
$output .= '<span class="venue">';
$categories = get_the_terms( $events_query->post->ID, 'noisa_events_locations' );
$separator = ' / ';
$cats = '';
if ( ! empty( $categories ) ) {
foreach( $categories as $term ) {
$cats .= '<span>' . esc_html( $term->name ) . '</span>' . esc_html( $separator );
}
}
$output .= trim( $cats, $separator );
$output .= '</span>';
$output .= '<span class="title">' . get_the_title() . '</span>';
$output .= '</a>';
$output .= '</article>';
}
} // end loop
// End grid
$output .= '</div>';
} // end have_posts
$output .= '<div class="clear"></div>';
if ( isset( $post ) ) {
$post = $backup;
}
return $output;
}
/**
* Gallery Albums
* @return void
*/
public function gallery_albums( $atts, $content = null ) {
extract(shortcode_atts(array(
'limit' => '40',
'in_row' => '3',
'url' => '',
'gap' => 'no-gap',
'display_by' => 'all',
'masonry' => '0',
'terms' => '',
'thumb_style' => 'default',
'classes' => ''
), $atts));
global $wp_query, $post;
$output = '';
$panel_options = get_option( 'noisa_panel_opts' );
// Date format
$date_format = get_option( 'date_format' );
// Masonry
if ( $masonry !== '0' ) {
$masonry = 'masonry';
} else {
$masonry = '';
}
// Pagination Limit
$limit = $limit && $limit === '' ? $limit = 6 : $limit = $limit;
if ( isset( $post ) ) {
$backup = $post;
}
if ( $url !== '' ) {
$n_cpt = wp_count_posts( 'noisa_gallery' );
$n_cpt_publish = $n_cpt->publish;
} else {
$n_cpt_publish = '0';
}
// Loop Args.
$args = array(
'post_type' => 'noisa_gallery',
'showposts' => $limit
);
// Taxonimies
if ( $display_by !== 'all' && $terms !== '' ) {
$terms = explode( ',', $terms );
$args['tax_query'] = array(
array(
'taxonomy' => $display_by,
'field' => 'slug',
'terms' => $terms
)
);
}
$gallery_query = new WP_Query();
$gallery_query->query( $args );
// begin Loop
if ( $gallery_query->have_posts() ) {
$output .= '<div class="' . esc_attr( $gap ) . ' ' . esc_attr( $masonry ) . ' gallery-shortcode-grid clearfix ' . $classes . '">';
while ( $gallery_query->have_posts() ) {
$gallery_query->the_post();
if ( has_post_thumbnail() ) {
$last = false;
if ( ( $gallery_query->current_post ) < ( $gallery_query->post_count -1 ) ) {
$last = false;
} else {
if ( $url !== '' ) {
$last = true;
}
}
// IDS
$images_ids = get_post_meta( $gallery_query->post->ID, '_gallery_ids', true );
if ( $images_ids || $images_ids !== '' ) {
$ids = explode( '|', $images_ids );
$ids = count( $ids );
} else {
$ids = '0';
}
$output .= '<article class="' . implode( ' ', get_post_class( 'masonry-item masonry-item-1-'. $in_row, $gallery_query->post->ID ) ) . '">';
$output .= '<div class="grid-media">';
if ( ! $last ) {
$link_classes = 'thumb thumb-desc';
$permalink = get_permalink();
} else {
$link_classes = 'thumb thumb-desc thumb-post-count';
$permalink = $url;
}
$output .= '<a href="' . esc_url( $permalink ) . '" class="' . esc_attr( $link_classes ) . '">';
if ( ! $last ) {
$img_src = wp_get_attachment_image_src( get_post_thumbnail_id( $gallery_query->post->ID ), 'noisa-release-thumb' );
$output .= '<img src="' . esc_url( $img_src[0] ) . '" alt="' . esc_attr__( 'Post Image', 'noisa-toolkit' ) . '">';
if ( $thumb_style === 'default' ) {
$output .= '<div class="desc-layer">';
$output .= '<div class="images-count">' . esc_html( $ids ) . '</div>';
$output .= '<div class="desc-details desc-full">';
$output .= '<h2 class="grid-title">' . get_the_title() . '</h2>';
$output .= '<div class="grid-date">' . get_the_time( $date_format ) . '</div>';
$output .= '</div>';
$output .= '</div>';
}
} else {
$img_src = wp_get_attachment_image_src( get_post_thumbnail_id( $gallery_query->post->ID ), 'noisa-release-thumb' );
$output .= '<img src="' . esc_url( $img_src[0] ) . '" alt="' . esc_attr__( 'Post Image', 'noisa-toolkit' ) . '">';
$output .= '<div class="desc-layer">';
$output .= '<div class="desc-plus"></div>';
$output .= '<div class="desc-count">' . esc_html( $n_cpt_publish ) . '</div>';
$output .= '</div>';
}
$output .= '</a>';
$output .= '</div>';
$output .= '</article>';
}
} // end loop
// End grid
$output .= '</div>';
} // end have_posts
$output .= '<div class="clear"></div>';
if ( isset( $post ) ) {
$post = $backup;
}
return $output;
}
/**
* Gallery Images
* @return void
*/
public function gallery_images( $atts, $content = null ) {
global $wp_query, $post;
extract(shortcode_atts(array(
'limit' => '40',
'url' => '0',
'gap' => 'no-gap',
'album_id' => 0,
'in_row' => '4',
'thumb_style' => 'default',
'classes' => ''
), $atts));
$output = '';
$panel_options = get_option( 'noisa_panel_opts' );
// Pagination Limit
$limit = $limit && $limit === '' ? $limit = 6 : $limit = $limit;
if ( isset( $post ) ) {
$backup = $post;
}
// IDS
$images_ids = get_post_meta( $album_id, '_gallery_ids', true );
if ( ! $images_ids || $images_ids === 0 ) {
return;
}
$ids = explode( '|', $images_ids );
$n_cpt_publish = count( $ids );
// Begin Loop
$args = array(
'post_type' => 'attachment',
'post_mime_type' => 'image',
'post__in' => $ids,
'orderby' => 'post__in',
'post_status' => 'any',
'showposts' => $limit
);
$gallery_query = new WP_Query();
$gallery_query->query( $args );
// begin Loop
if ( $gallery_query->have_posts() ) {
$output .= '<div class="' . esc_attr( $gap ) . ' gallery-shortcode-images-grid clearfix ' . $classes . '">';
while ( $gallery_query->have_posts() ) {
$gallery_query->the_post();
$last = false;
if ( ( $gallery_query->current_post ) < ( $gallery_query->post_count -1 ) ) {
$last = false;
} else {
if ( $url !== '0' ) {
$last = true;
}
}
$image_att = wp_get_attachment_image_src( get_the_id(), 'noisa-small-thumb' );
if ( ! $image_att[0] ) {
continue;
}
$defaults = array(
'title' => '',
'custom_link' => '',
'thumb_icon' => 'view'
);
/* Get image meta */
$image = get_post_meta( $album_id, '_gallery_ids_' . get_the_id(), true );
/* Add default values */
if ( isset( $image ) && is_array( $image ) ) {
$image = array_merge( $defaults, $image );
} else {
$image = $defaults;
}
/* Add image src to array */
$image['src'] = $image_att[0];
if ( $image['custom_link'] !== '' ) {
$link = $image['custom_link'];
$link_class = 'iframe-link';
} else {
$link = wp_get_attachment_image_src( get_the_id(), 'full' );
$link = $link[0];
$link_class = '';
}
if ( ! $last ) {
$thumb_classes = 'thumb-desc';
if ( $thumb_style === 'simple' ) {
$thumb_classes = 'thumb-simple';
}
if ( $image['thumb_icon'] === 'view' ) {
$image['thumb_icon'] = 'search';
} else if ( $image['thumb_icon'] === 'video' ) {
$image['thumb_icon'] = 'play2';
}
$output .= '<div class="masonry-item gallery-album-image flex-col-1-' . esc_attr( $in_row ) . '">';
$output .= '<a href="' . esc_attr( $link ) .'" class="thumb ' . esc_attr( $thumb_classes ) . ' ' . esc_attr( $link_class ) . ' g-item" title="' . esc_attr( $image['title'] ) . '" data-group="gallery">';
$output .= '<img src="' . esc_url( $image['src'] ) . '" alt="' . esc_attr__( 'Gallery thumbnail', 'noisa_theme' ) . '" title="' . esc_attr( $image['title'] ) . '">';
$output .= '<div class="desc-layer"><span class="thumb-icon"><span class="icon icon-' . esc_attr( $image['thumb_icon'] ) . '"></span></span></div>';
$output .= '</a>';
$output .= '</div>';
} else {
$output .= '<div class="masonry-item gallery-album-image flex-col-1-' . esc_attr( $in_row ) . '">';
$output .= '<a href="' . get_permalink( $album_id ) .'" class="thumb thumb-desc thumb-post-count">';
$output .= '<img src="' . esc_url( $image['src'] ) . '" alt="' . esc_attr__( 'Gallery thumbnail', 'noisa_theme' ) . '" title="' . esc_attr( $image['title'] ) . '">';
$output .= '<div class="desc-layer">';
$output .= '<div class="desc-plus"></div>';
$output .= '<div class="desc-count">' . esc_html( $n_cpt_publish ) . '</div>';
$output .= '</div>';
$output .= '</a>';
$output .= '</div>';
}
} // end loop
// End grid
$output .= '</div>';
} // end have_posts
$output .= '<div class="clear"></div>';
if ( isset( $post ) ) {
$post = $backup;
}
return $output;
}
/**
* Event Countdown
* @return void
*/
public function event_countdown( $atts, $content = null ) {
global $post;
extract(shortcode_atts(array(
'style' => 'compact',
'custom_event' => '',
'custom_event_id' => '0',
'display_by' => 'all',
'terms' => ''
), $atts));
$custom_event_id = (int)$custom_event_id;
if ( isset( $post ) ) {
$backup = $post;
}
// Event type taxonomy
$tax = array(
array(
'taxonomy' => 'noisa_event_type',
'field' => 'slug',
'terms' => 'future-events'
)
);
// Taxonimies
if ( $display_by !== 'all' && $terms !== '' && $custom_event === '' ) {
$terms = explode( ',', $terms );
array_push( $tax,
array(
'taxonomy' => $display_by,
'field' => 'slug',
'terms' => $terms
)
);
}
$args = array(
'post_type' => 'noisa_events',
'showposts' => 1,
'tax_query' => $tax,
'orderby' => 'meta_value',
'meta_key' => '_event_date_start',
'order' => 'ASC',
'suppress_filters' => 0 // WPML FIX
);
if ( $custom_event_id ==! 0 ) {
$custom_event_id_a = array();
$custom_event_id_a[0] = $custom_event_id;
$args['post__in'] = $custom_event_id_a;
}
$events = get_posts( $args );
$events_count = count( $events );
if ( $events_count !== 0 ) {
$custom_event_id = $events[0]->ID;
}
$panel_options = get_option( 'noisa_panel_opts' );
if ( $custom_event_id === 0 ) {
return false;
}
$output = '';
// Get event date and time
$event_date = strtotime( get_post_meta( $custom_event_id, '_event_date_start', true ) );
$event_time = strtotime( get_post_meta( $custom_event_id, '_event_time_start', true ) );
// Date format
$date_format = get_option( 'date_format' );
// locations
$categories = get_the_terms( $custom_event_id, 'noisa_events_locations' );
$separator = ' / ';
$locations = '';
if ( ! empty( $categories ) ) {
foreach( $categories as $term ) {
$locations .= '<span>' . esc_html( $term->name ) . '</span>' . esc_html( $separator );
}
}
$output .= '
<div class="event-countdown ' . esc_attr( $style ) . '">
<header class="content-header">
<h6 class="upcoming-title">' . get_the_title( $custom_event_id ) . '</h6>
<h6 class="upcoming-locations">' . date_i18n( $date_format, $event_date ) . ' @ ' . trim( $locations, $separator ) . '</h6>
</header>
<div class="countdown" data-event-date="' . date_i18n( 'Y/m/d', $event_date ) . ' ' . date_i18n( 'H:i', $event_time ) . ':00">
<div class="days" data-label="' . esc_attr__( 'Days', 'noisa-toolkit' ) . '">000</div>
<div class="hours" data-label="' . esc_attr__( 'Hours', 'noisa-toolkit' ) . '">00</div>
<div class="minutes" data-label="' . esc_attr__( 'Minutes', 'noisa-toolkit' ) . '">00</div>
<div class="seconds" data-label="' . esc_attr__( 'Seconds', 'noisa-toolkit' ) . '">00</div>
</div>
</div>
';
if ( isset( $post ) ) {
$post = $backup;
}
return $output;
}
/**
* Time Line
* @return void
*/
public function time_line( $atts, $content = null ) {
extract(shortcode_atts(array(
'list' => '01:30 AM - 03:00 AM|Lady C,11:30 PM - 01:30 AM|Gorrilla,10:30 PM - 11:30 PM|Vibeman,09:00 PM - 10:30 PM|DJ Nando,08:00 PM - 09:00 PM|General Midi'
), $atts));
$output = '';
$html_list = '';
if ( $list !== '' ){
$list = explode( ',', $list );
if ( is_array( $list) ) {
$i = 0;
$html_list .= '<ul class="timeline">';
foreach ( $list as $li ) {
$list_details = explode( '|', $li );
if ( is_array( $list_details) ) {
$direction = ($i%2 === 0) ? 'direction-r' : 'direction-l';
$html_list .= '
<li>
<div class="' . esc_attr( $direction ) . '">
<div class="flag-wrapper">
<span class="artist-wrapper"><span class="artist">' . self::esc( $list_details[1] ) . '</span></span>
<span class="flag">' . self::esc( $list_details[0] ) . '</span>
</div>
</div>
</li>';
$i++;
}
}
$html_list .= '</ul>';
}
} else {
return;
}
return $html_list;
}
/* ==================================================
Helpers
================================================== */
/**
* Get Background Code
* @param $bg json
* @return false|string
*/
function generateBG( $bg ) {
if ( json_decode( $bg ) !== null ) {
$css = '';
$data = json_decode( $bg, true );
// Image
if ( isset( $data['image'] ) ) {
$image = wp_get_attachment_image_src( $data['image'], 'full' );
$image = $image[0];
// If image exists
if ( $image ) {
$css .= 'background-image: url( ' . esc_url( $image ) . ');'."\n";
}
}
// Color
if ( isset( $data['color'] ) ) {
$css .= 'background-color:' . esc_attr( $data['color'] ) . ';'."\n";
}
// Position
if ( isset( $data['position'] ) ) {
$css .= 'background-position:' . esc_attr( $data['position'] ) . ';'."\n";
}
// Repeat
if ( isset( $data['repeat'] ) ) {
$css .= 'background-repeat:' . esc_attr( $data['repeat'] ) . ';'."\n";
}
// Attachment
if ( isset( $data['attachment'] ) ) {
$css .= 'background-attachment:' . esc_attr( $data['attachment'] ) . ';'."\n";
}
// Size
if ( isset( $data['size'] ) ) {
$css .= 'background-size:' . esc_attr( $data['size'] ) . ';'."\n";
}
return $css;
} else {
return false;
}
}
/**
* Share Buttons
* @return string
*/
public function shareGridButtons( $post_id ) {
return '
<a class="share-button fb-share-btn" target="_blank" href="http://www.facebook.com/sharer.php?u=' . esc_url( get_permalink( $post_id ) ) . '"><span class="icon icon-facebook"></span></a>
<a class="share-button twitter-share-btn" target="_blank" href="http://twitter.com/share?url=' . esc_url( get_permalink( $post_id ) ) . '"><span class="icon icon-twitter"></span></a>
<a class="share-button linkedin-share-btn" target="_blank" href="https://www.linkedin.com/cws/share?url=' . esc_url( get_permalink( $post_id ) ) . '"><span class="icon icon-linkedin"></span></a>';
}
/**
* Display theme icons
* $json object
* @return array
*/
public function getIcons( $json = null ) {
// Icomoon parser
if ( $json !== null ) {
$obj = json_decode( $json );
foreach ( $obj->icons as $icon ) {
echo "'" . wp_kses_post( $icon->properties->name ) . "', ";
}
}
$icons = array('', 'pushpin', 'home', 'pencil', 'pencil2', 'droplet', 'image', 'image2', 'images', 'camera2', 'music', 'headphones', 'play', 'film', 'bullhorn', 'connection', 'tag', 'cart', 'support', 'phone2', 'envelope', 'location', 'map', 'clock', 'calendar', 'screen', 'download', 'upload', 'bubbles', 'user', 'users', 'quotes-left', 'spinner', 'search', 'zoomin', 'zoomout', 'expand', 'wrench', 'equalizer', 'cog', 'cog2', 'pie', 'stats', 'bars', 'bars2', 'gift', 'rocket2', 'fire', 'lab', 'lightning', 'list', 'numbered-list', 'menu', 'menu2', 'cloud', 'earth', 'link', 'eye', 'eye-blocked', 'bookmark', 'star', 'star2', 'star3', 'heart', 'thumbs-up', 'thumbs-up2', 'cancel-circle', 'close', 'checkmark', 'minus', 'plus', 'play2', 'pause', 'volume-high', 'arrow-right', 'arrow-left', 'arrow-up', 'arrow-right2', 'arrow-down', 'arrow-left2', 'newtab', 'code', 'share', 'mail', 'googleplus', 'google-drive', 'facebook', 'twitter', 'feed', 'youtube', 'youtube2', 'vimeo', 'lanyrd', 'flickr', 'flickr2', 'picassa', 'dribbble', 'forrst', 'deviantart', 'steam', 'github', 'github2', 'wordpress', 'joomla', 'blogger', 'tumblr', 'yahoo', 'tux', 'apple', 'finder', 'android', 'windows', 'soundcloud', 'skype', 'reddit', 'linkedin', 'lastfm', 'delicious', 'stumbleupon', 'stackoverflow', 'pinterest', 'xing', 'flattr', 'paypal', 'yelp', 'html5', 'html52', 'css3', 'chrome', 'firefox', 'IE', 'opera', 'number', 'number2', 'number3', 'number4', 'number5', 'number6', 'number7', 'number8', 'number9', 'number10', 'phone', 'tablet', 'window', 'monitor', 'ipod', 'camera', 'lamp', 'diamond', 'paperplane', 'rocket', 'globe', 'ruler', 'chevron-left', 'chevron-right', 'chevron-up', 'chevron-down', 'angle-left', 'angle-right', 'angle-up', 'angle-down');
asort( $icons );
return $icons;
}
/**
* Display escaped text.
* @param $text
* @return string
*/
static function esc( $text ) {
$text = preg_replace( array('/<(\?|\%)\=?(php)?/', '/(\%|\?)>/'), array('',''), $text );
return $text;
}
/**
* Display escaped text through echo function.
* @param $text
* @return string
*/
static function e_esc( $text ) {
echo preg_replace( array('/<(\?|\%)\=?(php)?/', '/(\%|\?)>/'), array('',''), $text );
}
}