-
Search Results
-
Topic: Large thumbnail blurry
I tried searching for the answer for this but could not get it to work.
My issue is the image on the large thumbnail, where there are smaller thumbnails under it, are blurry when they get big.
The gallery is resizing correctly but Google Pagespeed Insights does not recognize the new scaled size, only the fixed 447X705 thumbnail size.
The score I get is abysmal due to this.
The images are optimized via shortpixel.How am I going to get GPSI to recognize the scaled data?
Hi,
Love the theme!
Usually I can manage, but this time i don’t seem to find the correct code.
Every blog post (is user generated) has an image and a title. But enfold automatically adds an extra thumbnail (of the same image) now as you click one of the images the light box opens with both images (the same image) in it.I would like to remove the thumbnail form all posts. Could you please help?
Hi,
Im making a site that sells artwork and I need to get the product thumbnails in the shop to show the whole piece of art, in the correct ratio but scaled to fit the thumbnail container. I’ve fiddled around with the Woocommerce product display settings as well as the default WP media thumbnail settings but I can’t get it to work. Their settings either stretch the image to fit the dimensions or they crop a thumbnail out of the image. When I use the WP settings as well, I can keep the ratio but only on the width, not the longest edge.
If you look at my shop
https://jomaydesign.simplicitywebdesign.co.nz/product-category/outdoor-garden-art-panel-catalogue/small-and-medium-outdoor-art-panel-catalogue/you can see how the images are scaled to have their width match the thumbnail dimension. What I need is for the longest edge to be scaled and then the ratio kept so it looks like this site
http://www.sarahcdesign.co.nz/shop/
Woocomerce have said its something the theme is doing rather than them. Do you have any ideas how I can contain the whole piece of art, whatever the shape, within a 320×320 thumbnail square?
Thank you
In enfold 4.0.7, we have 4 footer columns for widgets, and Latest News/Blog have column3.
The latest blog excerpts show up fine, but I cannot figure out why the image thumbnail is not displaying properly.
Or…how do I display a different thumbnail?I am new to this theme, and could use any help on this, which would be greatly appreciated.
Thanks very much,
rickvvHi
I’m getting this error in my woocommerce site
Warning: Missing argument 3 for avia_woocommerce_gallery_thumbnail_description(), called in …./…./wp-includes/class-wp-hook.php on line 286 and called in …/…/…/wp-content/themes/enfold/config-woocommerce/config.php on line 1360This is a new site setup with latest wordpress, Enfold, and Woo-commerce.
Any help appreciated
Thanks
SJHi
I want to display thumbnails of related category product images at the bottom of each portfolio item page to show thumbnails going across the page of products in the same category. Under the gallery below the videoThanks
James
Topic: Masonry flip on x
hi i want insert a masonry of my last posts. i want show a thumbnail with title in the center and when i hover on it, thumbnail rotate and show the excerpt. is it possible?
Hi,
i try to solve the following issue. Every link is just an example to give you an idea of what i try to accomplish.
1.) Productoverview: http://www.soelker-professional.com/marmor-produkte/marmor-heizung/800-watt-marmor-heizung/
– Every thumbnail should have max dimensions of 270×270 (solved), but with the full image in it. It doesn’t matter if it generates whitespace all around.
2.) Productdetailpage: http://www.soelker-professional.com/shop/marmor-heizung/classic-marmor-infrarotheizung-800-watt-16-10/
– Everything should stay as it is. This link is just to show you how tall the original-image is.what i tried is to solve this with standard-woocommerce settings and the plugin which recalculates the thumbnails. but the only thing i really get is that it crops the original images inside a “correct” 270×270 container.
what am i doing wrong and is there an “easy” solution to make this happen without upload each and every image again?
cheers
JensTopic: blog preview pic size
Hi guys,
Have been wrestling with the blog preview pic size. I have it set to 300×300 in the Blog-post element on my page but it doesn’t seem to take effect. Also tried setting the square size in the function.php to a larger size and regenerating thumbnails.
I would like a preview pic in the 250 square range that is left floating.
Was hoping you could help me out.Steve
I need to make a page of downloadable magazines. It would ideally show a grid of thumbnails of the cover of each magazine which you would click on and then the pdf containing the contents of that magazine would open. Here’s my old page doing just that: http://follies.org.uk/ebuletin.html
However, I can’t find anyhting in Enfold or indeed even amongst the various WordPress add-ons that will allow me to do this. The Enfold galleries don’t allow links to be added. Even maikng a grid with a text box in each, then adding the thumbnail and link only attches the link to the words underneath the picture, not the picture itself. How do I make a link to an image?What is going on with this..happened after an update and I have checked for a plug in problem..but nothing
Thank you!
Lex
Hi,
I have a couple of customised templates., archive and single, used to display cpt. I have noticed a strange problem that I just cannot get around:
With a customised single.php, I replaced
get_template_part( ‘includes/loop’, ‘index’ );
with
get_template_part( ‘includes/singleadoptloop’, ‘index’ );
Then I added a file called singleadoptloop-index.php in my child/includes folder. THAT works a treat and has done for 3 years.With a customised archive.php I cannot do the same. I created a custom archive.php template and made various changes inside that. Text that sits in a div before the posts are called, and an alternative layout in the footer, for example. That all works a treat and has done for 3 years.
Recently, I realised I needed to change the way posts are displayed on the archive page – basically I want to add an image overlay to posts which have a specific value in a custom field. I’ve done it many times in avada and assumed I’d be able to do it with enfold too (basically the posts are for animals awaiting adoption, and instead of deleting adopted animals we now want to overlay an ‘adopted’ png over the post thumbnail).
I assumed that the file that I need to edit in order to add the necessary html (and so on) would be loop-index.php
So, inside my custom archive template I replaced
get_template_part( ‘includes/loop’, ‘index’ );
with
get_template_part( ‘includes/archiveadoptloop’, ‘index’ );
and placed the appropriate file in the includes folder.Unfortunately, this doesn’t work. I can do anything to the customised template and it doesn’t change a thing, including deleting a random block of its code (which would normally trigger errors or fatal errors). It put get_template_part( ‘includes/loop’, ‘index’ ); back in the custom archive template and copied the standard loop-index.php file into my child/includes folder. Again, the version in the child/includes folder was ignored. I tried butchering the code, and this was ignored too.
Desperate to find out what on earth was going on, I went into the parent enfold folder and renamed the loop-index.php file.
That did nothing at all.The only file I can see the archive template calling is the loop-index file, so I’m confised as hell….
It looks to me that I’m trying to customise the wrong file. Can you tell me, which file do I need to customise (in a child setup) when I want to customise the post archive blog output?
Topic: Portfolio navigation
I’m trying to find a way to build a Masonry gallery for my portfolio posts. The problem with the current one shown here https://kriesi.at/themes/enfold-2017/portfolio/masonry-portfolio-example-4-column-masonry-grid/ is that when you click on one of the images, it brings you to a new portfolio-item page, but there is NO clear navigation to go back to the thumbnails. Here is an example on another theme: http://themenectar.com/demo/salient/portfolio/merchant/ Do you see how there are large arrows to go to the next post, and also an icon to go back to the thumbnails?
How can I build something like this in Enfold? I love the Ajax portfolio I currently have at https://www.flylanddesigns.com, but the problem is that it doesn’t work with Masonry.
Topic: Fatal error
Following the attempt to update the theme (which is not working), I have the following error :
Fatal error: Call to undefined method aviaShortcodeTemplate::__destruct() in /var/www/vhosts/kyramedias.com/httpdocs/wp-content/themes/enfold/config-templatebuilder/avia-shortcodes/audio-player.php on line 53
Here is the css of audio-player :
<?php
/**
* Audio File Playlist Element
*
* Shortcode that allows to add a playlist
*
* @since 4.1.3
*/
if ( ! defined( ‘ABSPATH’ ) ) { exit; } // Exit if accessed directlyif ( ! class_exists( ‘avia_sc_audio_player’ ) )
{class avia_sc_audio_player extends aviaShortcodeTemplate
{
/**
*
* @since 4.1.3
* @var int
*/
static protected $instance = 0;
var $extra_style = “”;
var $non_ajax_style = “”;/**
*
* @since 4.1.3
* @var array
*/
protected $atts;/**
*
* @since 4.1.3
* @param AviaBuilder $builder
*/
public function __construct( $builder )
{
parent::__construct( $builder );$this->atts = array();
}/**
*
* @since 4.1.3
*/
public function __destruct()
{
parent::__destruct();unset( $this->atts );
}/**
* Create the config array for the shortcode button
*
* @since 4.1.3
*/
public function shortcode_insert_button()
{
$this->config[‘name’] = __( ‘Audio Player’, ‘avia_framework’ );
$this->config[‘tab’] = __( ‘Media Elements’, ‘avia_framework’ );
$this->config[‘icon’] = AviaBuilder::$path[‘imagesURL’] . “sc-audio-player.png”;
$this->config[‘order’] = 60;
$this->config[‘target’] = ‘avia-target-insert’;
$this->config[‘shortcode’] = ‘av_player’;
$this->config[‘shortcode_nested’] = array( ‘av_playlist_element’ );
$this->config[‘tooltip’] = __( ‘Add an audio player element’, ‘avia_framework’ );
$this->config[‘tinyMCE’] = array( ‘disable’ => “true” );
$this->config[‘drag-level’] = 3;
$this->config[‘preview’] = false;
}/**
* Popup Elements
*
* If this function is defined in a child class the element automatically gets an edit button, that, when pressed
* opens a modal window that allows to edit the element properties
*
* @since 4.1.3
* @return void
*/
function popup_elements()
{
$this->elements = array(array(
“type” => “tab_container”,
‘nodescription’ => true
),array(
“type” => “tab”,
“name” => __( “Playlist” , ‘avia_framework’ ),
‘nodescription’ => true
),array(
“name” => __( “Autoplay”, ‘avia_framework’ ),
“desc” => __( “Choose if the player starts on pageload or has to be started manually”, ‘avia_framework’ ),
“id” => “autoplay”,
“type” => “select”,
“std” => ”,
“subtype” => array(
__( ‘Start manually’,’avia_framework’ ) => ‘manual’,
__( ‘Start on pageload’,’avia_framework’ ) => ‘autoplay’
)
),array(
“name” => __( “Playlist Order”, ‘avia_framework’ ),
“desc” => __( “Here you can select how to sort the playlist when rendering to the player on each pageload.”, ‘avia_framework’ ),
“id” => “playorder”,
“type” => “select”,
“std” => ”,
“subtype” => array(
__( ‘Use order of playlist as selected’,’avia_framework’ ) => ‘normal’,
__( ‘Shuffle the playlist randomly’,’avia_framework’ ) => ‘shuffle’,
/*__( ‘Reverse the playlist’,’avia_framework’ ) => ‘reverse’*/
)
),array(
“type” => “modal_group”,
“id” => “content”,
‘container_class’ =>”avia-element-fullwidth avia-multi-img”,
“modal_title” => __(“Edit Form Element”, ‘avia_framework’ ),
‘modal_open’ => ‘no’,
‘trigger_button’ => ‘avia-builder-audio-edit’,
“add_label” => __(“Add single audio”, ‘avia_framework’ ),
‘disable_manual’ => ‘yes’,
“std” => array(),‘creator’ => array(
“name” => __( “Create and Edit Audio Playlist”, ‘avia_framework’ ),
“desc” => __( “Here you can add new audio files to the playlist, remove files or reorder them.”, ‘avia_framework’ ),
“id” => “id”,
“type” => “audio_player”,
‘state’ => ‘avia_insert_multi_audio’,
“title” => __( “Add/Edit Audio Files”, ‘avia_framework’ ),
“button” => __( “Insert Audio Files”, ‘avia_framework’ ),
“std” => “”
),‘subelements’ => array(
array(
“type” => “tab_container”, ‘nodescription’ => true
),array(
“type” => “tab”,
“name” => __( “Content Audio” , ‘avia_framework’ ),
‘nodescription’ => true
),// Dummy element only to avoid notices
array(
“name” => __(“Which type of media is this?”,’avia_framework’ ),
“id” => “audio_type”,
“type” => “select”,
“std” => “audio”,
“subtype” => array(
__( ‘Audio File’, ‘avia_framework’ ) => ‘audio’,
__( ‘Video File’, ‘avia_framework’ ) => ‘video’,
)
),array(
“type” => “close_div”,
‘nodescription’ => true
),array(
“type” => “close_div”,
‘nodescription’ => true
),), // subelements
), // modal_group
array(
“name” => __(“For Developers: Section ID”, ‘avia_framework’ ),
“desc” => __(“Apply a custom ID Attribute to the section, so you can apply a unique style via CSS. This option is also helpful if you want to use anchor links to scroll to a sections when a link is clicked”, ‘avia_framework’ ).”<br/><br/>”.
__(“Use with caution and make sure to only use allowed characters. No special characters can be used.”, ‘avia_framework’ ),
“id” => “id”,
“type” => “input”,
“std” => “”
),array(
“type” => “close_div”,
‘nodescription’ => true
),array(
“type” => “tab”,
“name” => __( “Layout” , ‘avia_framework’ ),
‘nodescription’ => true
),array(
“name” => __( “Player styling”, ‘avia_framework’ ),
“desc” => __( “Here you can select the general appearance of the player”, ‘avia_framework’ ),
“id” => “player_style”,
“type” => “select”,
“std” => ”,
“subtype” => array(
__( ‘Classic (boxed)’, ‘avia_framework’ ) => ‘classic’,
__( ‘Minimal (borderless, no background)’, ‘avia_framework’ ) => ‘minimal’,
)
),array(
“name” => __( “Choose a Cover Image”, ‘avia_framework’ ),
“desc” => __(“Either upload a new or choose an existing image from your media library”, ‘avia_framework’ ),
“id” => “cover_id”,
“fetch” => “id”,
“type” => “image”,
“title” => __(“Choose a Cover Image”, ‘avia_framework’ ),
“button” => __(“Choose a Cover Image”, ‘avia_framework’ ),
“std” => ”
),/*
array(
“name” => __( “Cover Image Location”, ‘avia_framework’ ),
“desc” => __( “Here you can select where to show the cover for larger screens. On mobile devices the image will be centered above the player by default.”, ‘avia_framework’ ),
“id” => “cover_location”,
“type” => “select”,
“std” => ‘top left’,
“subtype” => array(
__( ‘Hide the cover image’, ‘avia_framework’ ) => ‘hide’,
__( ‘Show above player left aligned’, ‘avia_framework’ ) => ‘top left’,
__( ‘Show above player centered’, ‘avia_framework’ ) => ‘top center’,
__( ‘Show above player right aligned’, ‘avia_framework’ ) => ‘top right’,
__( ‘Show left of player’, ‘avia_framework’ ) => ‘aside left’,
__( ‘Show right of player’, ‘avia_framework’ ) => ‘aside right’
)
),array(
“name” => __( “Cover Image Size”, ‘avia_framework’ ),
“desc” => __( “Choose image size for your cover.”, ‘avia_framework’ ),
“id” => “cover_size”,
“type” => “select”,
“std” => “thumbnail”,
“required” => array( ‘cover_location’, ‘not’, ‘hide’ ),
“subtype” => AviaHelper::get_registered_image_sizes( array(), false, true )
),array(
“name” => __( “Playlist styling”, ‘avia_framework’ ),
“desc” => __( “Here you can select the styling of the playlist”, ‘avia_framework’ ),
“id” => “playlist_style”,
“type” => “select”,
“std” => ‘light’,
“subtype” => array(
__( ‘Light’, ‘avia_framework’ ) => ‘light’,
__( ‘Dark’, ‘avia_framework’ ) => ‘dark’
)
),*/
array(
“name” => __( “Tracklist”, ‘avia_framework’ ),
“desc” => __( “Here you can select to show or hide the tracklist”, ‘avia_framework’ ),
“id” => “tracklist”,
“type” => “select”,
“std” => ‘show’,
“subtype” => array(
__( ‘Show tracklist’, ‘avia_framework’ ) => ‘show’,
__( ‘Hide tracklist’, ‘avia_framework’ ) => ‘hide’
)
),array(
“name” => __( “Tracknumbers”, ‘avia_framework’ ),
“desc” => __( “Here you can select to show or hide the tracknumbers next to entries in the playlist”, ‘avia_framework’ ),
“id” => “tracknumbers”,
“type” => “select”,
“std” => ‘show’,
“required” => array( ‘tracklist’, ‘equals’, ‘show’ ),
“subtype” => array(
__( ‘Show tracknumbers’, ‘avia_framework’ ) => ‘show’,
__( ‘Hide tracknumbers’, ‘avia_framework’ ) => ‘hide’
)
),array(
“name” => __( “Artists Name”, ‘avia_framework’ ),
“desc” => __( “Here you can select to show or hide the artists name in the playlist”, ‘avia_framework’ ),
“id” => “artists”,
“type” => “select”,
“std” => ‘show’,
“required” => array( ‘tracklist’, ‘equals’, ‘show’ ),
“subtype” => array(
__( ‘Show artists name’, ‘avia_framework’ ) => ‘show’,
__( ‘Hide artists name’, ‘avia_framework’ ) => ‘hide’
)
),array(
“name” => __( “Media Icon/Album Cover”, ‘avia_framework’ ),
“desc” => __( “Here you can select to show or hide the media icon in the playlist. This icon can be set in the media gallery for each element as the featured image. WP will use a default icon on upload, if none is set.”, ‘avia_framework’ ),
“id” => “media_icon”,
“type” => “select”,
“std” => ‘show’,
“subtype” => array(
__( ‘Show media icon/album cover’, ‘avia_framework’ ) => ‘show’,
__( ‘Hide’, ‘avia_framework’ ) => ‘hide’
)
),array(
“type” => “close_div”,
‘nodescription’ => true
),array(
“type” => “tab”,
“name” => __( “Colors” , ‘avia_framework’ ),
‘nodescription’ => true
),array(
“name” => __( “Font Color”, ‘avia_framework’ ),
“desc” => __( “Select a font color”, ‘avia_framework’ ),
“id” => “font_color”,
“type” => “select”,
“std” => “”,
“subtype” => array(
__( “Default Color”, ‘avia_framework’ ) => ”,
__( “Custom Color”, ‘avia_framework’ ) => ‘custom-font-color’
)
),array(
“name” => __( “Custom Font Color”, ‘avia_framework’ ),
“desc” => __( “Select a custom font color for your Player here”, ‘avia_framework’ ),
“id” => “custom_font_color”,
“type” => “colorpicker”,
“std” => “”,
“rgba” => true,
“required” => array( ‘font_color’, ‘equals’, ‘custom-font-color’ )
),array(
“name” => __( “Background Color”, ‘avia_framework’ ),
“desc” => __( “Select a background color”, ‘avia_framework’ ),
“id” => “background_color”,
“type” => “select”,
“std” => “”,
“subtype” => array(
__( “Default Color”, ‘avia_framework’ ) => ”,
__( “Custom Color”, ‘avia_framework’ ) => ‘custom-background-color’
)
),array(
“name” => __( “Custom Background Color”, ‘avia_framework’ ),
“desc” => __( “Select a custom background color for your Player here”, ‘avia_framework’ ),
“id” => “custom_background_color”,
“type” => “colorpicker”,
“std” => “”,
“rgba” => true,
“required” => array( ‘background_color’, ‘equals’, ‘custom-background-color’ )
),array(
“name” => __( “Border Color”, ‘avia_framework’ ),
“desc” => __( “Select a border color”, ‘avia_framework’ ),
“id” => “border_color”,
“type” => “select”,
“std” => “”,
“subtype” => array(
__( “Default Color”, ‘avia_framework’ ) => ”,
__( “Custom Color”, ‘avia_framework’ ) => ‘custom-border-color’
)
),array(
“name” => __( “Custom Border Color”, ‘avia_framework’ ),
“desc” => __( “Select a custom background color for your Player here”, ‘avia_framework’ ),
“id” => “custom_border_color”,
“type” => “colorpicker”,
“rgba” => true,
“std” => “”,
“required” => array( ‘border_color’, ‘equals’, ‘custom-border-color’ )
),array(
“type” => “close_div”,
‘nodescription’ => true
),array(
“type” => “tab”,
“name” => __(“Screen Options”,’avia_framework’ ),
‘nodescription’ => true
),array(
“name” => __( “Element Visibility”,’avia_framework’ ),
“desc” => __( “Set the visibility for this element, based on the device screensize.”, ‘avia_framework’ ),
“type” => “heading”,
“description_class” => “av-builder-note av-neutral”,
),array(
“desc” => __( “Hide on large screens (wider than 990px – eg: Desktop)”, ‘avia_framework’ ),
“id” => “av-desktop-hide”,
“std” => “”,
“container_class” => ‘av-multi-checkbox’,
“type” => “checkbox”
),array(
“desc” => __( “Hide on medium sized screens (between 768px and 989px – eg: Tablet Landscape)”, ‘avia_framework’ ),
“id” => “av-medium-hide”,
“std” => “”,
“container_class” => ‘av-multi-checkbox’,
“type” => “checkbox”
),array(
“desc” => __( “Hide on small screens (between 480px and 767px – eg: Tablet Portrait)”, ‘avia_framework’ ),
“id” => “av-small-hide”,
“std” => “”,
“container_class” => ‘av-multi-checkbox’,
“type” => “checkbox”
),array(
“desc” => __( “Hide on very small screens (smaller than 479px – eg: Smartphone Portrait)”, ‘avia_framework’ ),
“id” => “av-mini-hide”,
“std” => “”,
“container_class” => ‘av-multi-checkbox’,
“type” => “checkbox”
),array(
“type” => “close_div”,
‘nodescription’ => true
),array(
“type” => “close_div”,
‘nodescription’ => true
),);
}/**
* Editor Element – this function defines the visual appearance of an element on the AviaBuilder Canvas
* Most common usage is to define some markup in the $params[‘innerHtml’] which is then inserted into the drag and drop container
* Less often used: $params[‘data’] to add data attributes, $params[‘class’] to modify the className
*
*
* @since 4.1.3
* @param array $params this array holds the default values for $content and $args.
* @return $params the return array usually holds an innerHtml key that holds item specific markup.
*/
function editor_element($params)
{$element = $this->get_popup_element_by_id( ‘autoplay’ );
$playmodes = $element[‘subtype’];$update_template = ‘<span class=”av-player-{{autoplay}}”>’;
foreach( $playmodes as $info => $playmode )
{
$update_template .= ‘<span class=”av-play-‘ . $playmode . ‘”>’ . $info . ‘</span>’;
}$update_template .= ‘</span>’;
$update = $this->update_template( ‘autoplay’, $update_template );
$selected = empty( $params[‘args’][‘autoplay’] ) ? ‘manual’ : $params[‘args’][‘autoplay’];
$template = str_replace(‘{{autoplay}}’, $selected, $update_template );$params[‘innerHtml’] = “
config[‘icon’] . “‘ title='”.$this->config[‘name’] . “‘ />”;
$params[‘innerHtml’].= “<div class=’av-player’>” . $this->config[‘name’] . ‘ – <span ‘ . $update . ‘”>’ . $template . “</span></div>”;
return $params;
}/**
* Editor Sub Element – this function defines the visual appearance of an element that is displayed within a modal window and on click opens its own modal window
* Works in the same way as Editor Element
*
* @since 4.1.3
* @param array $params this array holds the default values for $content and $args.
* @return array the return array usually holds an innerHtml key that holds item specific markup.
*/
function editor_sub_element( $params )
{$img_template = $this->update_template( “img_fakeArg”, “{{img_fakeArg}}” );
$title = $this->update_template( “title_info”, “{{title_info}}” );
$artist = $this->update_template( “artist”, “{{artist}}” );
$album = $this->update_template( “album”, “{{album}}” );
$description = $this->update_template( “description”, “{{description}}” );
$filename = $this->update_template( “filename”, “{{filename}}” );
$id = $this->update_template( “id”, “{{id}}” );
$filelength = $this->update_template( “filelength”, “{{filelength}}” );$title_info = isset( $params[‘args’][‘title’] ) ? $params[‘args’][‘title’] : ”;
$thumbnail = isset( $params[‘args’][‘icon’] ) ? ‘‘ : “”;
$album_info = isset( $params[‘args’][‘album’] ) && ‘undefined’ != $params[‘args’][‘album’] ? $params[‘args’][‘album’] : ”;
$desc_info = isset( $params[‘args’][‘description’] ) && ‘undefined’ != $params[‘args’][‘description’] ? $params[‘args’][‘description’] : ”;
$file_info = isset( $params[‘args’][‘filename’] ) && ‘undefined’ != $params[‘args’][‘filename’] ? $params[‘args’][‘filename’] : ”;
$id_info = isset( $params[‘args’][‘id’] ) && ‘undefined’ != $params[‘args’][‘id’] ? $params[‘args’][‘id’] : ‘0’;$main = ‘<span class=”avia-audiolist-title” ‘. $title . ‘>’;
if( isset( $params[‘args’][‘title’] ) && ‘undefined’ != $params[‘args’][‘title’] )
{
$main .= ‘<span class=”avia-known-title”>’ . $params[‘args’][‘title’];
}
else
{
$main .= ‘<span class=”avia-unknown-title”>’ . __( ‘ Unknown ‘ , ‘avia_framework’ );
}
$main .= ‘</span></span>’;/**
* Currently WP does not return artist when editing an existing playlist in popup playlist editor.
*
* This might change in future -> then uncomment the following lines to show the artist
*/
// $main .= ‘<span class=”avia_audiolist-by”>’ . __( ‘ by ‘ , ‘avia_framework’ ) . ‘</span>’;
//
// if( isset( $params[‘args’][‘artist’] ) && ‘undefined’ != $params[‘args’][‘artist’] )
// {
// $main .= ‘<span class=”avia-audiolist-artist” ‘ . $artist . ‘>’ . $params[‘args’][‘artist’];
// }
// else
// {
// $main .= ‘<span class=”avia-audiolist-artist avia-unknown” ‘ . $artist . ‘>’ . __( ‘ unknown ‘ , ‘avia_framework’ );
// }
// $main .= ‘</span>’;if( isset( $params[‘args’][‘filelength’] ) )
{
$main .= ‘ (<span class=”avia-audiolist-length” ‘ . $filelength . ‘>’ . $params[‘args’][‘filelength’];
}
else
{
$main .= ‘ (<span class=”avia-audiolist-length avia-unknown” ‘ . $filelength . ‘>’ . __( ‘ ??? ‘ , ‘avia_framework’ );
}
$main .= ‘</span>)’;$params[‘innerHtml’] = ”;
$params[‘innerHtml’] .= “<div class=’avia_title_container’>”;
$params[‘innerHtml’] .= ” <div ” . $this->class_by_arguments( ‘audio_type’ ,$params[‘args’] ) . “>”;
$params[‘innerHtml’] .= ” <span class=’avia_audiolist_image’ {$img_template} >{$thumbnail}</span>”;
$params[‘innerHtml’] .= ” <div class=’avia_audiolist_content’>”;
$params[‘innerHtml’] .= ” <h4 class=’avia_title_container_inner’>” . $main . “</h4>”;
$params[‘innerHtml’] .= ” <p class=’avia_content_album’ {$album}>” . stripslashes( $album_info ) . “</p>”;
$params[‘innerHtml’] .= ” <p class=’avia_content_description’ {$description}>” . stripslashes( $desc_info ) . “</p>”;
$params[‘innerHtml’] .= ” <small class=’avia_audio_url’ {$filename}>” . stripslashes( $file_info ) . “</small>”;
$params[‘innerHtml’] .= ” </div>”;
$params[‘innerHtml’] .= ” <div class=’hidden-attachment-id’ style=’display: none;’ {$id}>” . $id_info . ‘</div>’;
$params[‘innerHtml’] .= ” </div>”;
$params[‘innerHtml’] .= “</div>”;return $params;
}/**
* Frontend Shortcode Handler
*
* @since 4.1.3
* @param array $atts array of attributes
* @param string $content text within enclosing form of shortcode element
* @param string $shortcodename the shortcode found, when == callback name
* @return string $output returns the modified html string
*/
function shortcode_handler( $atts, $content = “”, $shortcodename = “”, $meta = “” )
{
extract( AviaHelper::av_mobile_sizes( $atts ) ); //return $av_font_classes, $av_title_font_classes and $av_display_classes$this->extra_style = “”;
$this->atts = shortcode_atts( array(
‘handle’ => $shortcodename,
‘id’ => ”,
‘autoplay’ => ‘manual’,
‘playorder’ => ‘normal’,
‘player_style’ => ‘classic’,
‘cover_id’ => ”,
‘cover_size’ => ‘thumbnail’,
‘cover_location’ => ‘hide’,
‘playlist_style’ => ‘light’,
‘tracklist’ => ‘show’,
‘tracknumbers’ => ‘show’,
‘artists’ => ‘show’,
‘media_icon’ => ‘show’,
‘font_color’ => ”,
‘custom_font_color’ => ”,
‘background_color’ => ”,
‘custom_background_color’ =>”,
‘border_color’ => ”,
‘custom_border_color’ => ”,‘content’ => ShortcodeHelper::shortcode2array( $content, 1 )
), $atts, $this->config[‘shortcode’] );
//replace some values that are removed for simplicity with defaults. can be later changed if user request those features
$this->atts[‘cover_location’] = “hide”;
$this->atts[‘playlist_style’] = “light”;if( $this->atts[‘media_icon’] == “cover”)
{
$this->atts[‘media_icon’] = “show”;
}/**
* Replace empty default values so we can later use them to add classes
*/
if( empty( $this->atts[‘id’] ) )
{
$this->atts[‘id’] = $this->config[‘shortcode’] . ‘-‘ . avia_sc_audio_player::$instance;
}avia_sc_audio_player::$instance++;
if( empty( $this->atts[‘player_style’] ) )
{
$this->atts[‘player_style’] = ‘classic’;
}extract( $this->atts );
/**
* Return if no playlist defined
*/
if( empty( $content ) )
{
return ”;
}$ids = array();
foreach( $content as $key => $audio )
{
$ids[] = $audio[‘attr’][‘id’];
}if( ‘shuffle’ == $playorder )
{
shuffle( $ids );
}
else if( ‘reverse’ == $playorder )
{
$ids = array_reverse( $ids );
}$args = array(
‘type’ => ‘audio’,
‘ids’ => $ids,
‘style’ => empty( $playlist_style ) ? ‘classic’ : $playlist_style,
‘tracklist’ => empty( $tracklist ) || ( ‘hide’ != $tracklist ) ? true : false,
‘tracknumbers’ => empty( $tracknumbers ) || ( ‘hide’ != $tracknumbers ) ? true : false,
‘images’ => empty( $media_icon) || ( ‘hide’ != $media_icon ) ? true : false,
‘artists’ => empty( $artists ) || ( ‘hide’ != $artists ) ? true : false
);if( ( $media_icon == ‘show’ ) && ( is_numeric( $cover_id ) ) )
{
add_filter( ‘wp_get_attachment_image_src’, array( $this, ‘handler_wp_get_attachment_image_src’ ), 10, 4 );
add_filter( ‘wp_mime_type_icon’, array( $this, ‘handler_wp_mime_type_icon’ ), 10, 3 );
}$player = wp_playlist_shortcode( $args );
if( ( $media_icon == ‘show’ ) && ( is_numeric( $cover_id ) ) )
{
remove_filter( ‘wp_get_attachment_image_src’, array( $this, ‘handler_wp_get_attachment_image_src’ ), 10 );
remove_filter( ‘wp_mime_type_icon’, array( $this, ‘handler_wp_mime_type_icon’ ), 10 );
}$output = ”;
$outer_cls = array(
‘av-player’,
‘av-player-container’,
$av_display_classes
);if( 1 == avia_sc_audio_player::$instance )
{
$outer_cls[] = ‘first’;
}$outer_styles = array();
$outer_cls[] = ‘avia-playerstyle-‘ . $player_style;
if( $autoplay == ‘autoplay’ )
{
$outer_cls[] = ‘avia-playlist-autoplay’;
}if( ( $font_color == ‘custom-font-color’) && ( ! empty( $custom_font_color ) ) )
{
$outer_cls[] = ‘avia-playlist-‘ . $font_color;
$outer_styles[] = ‘color:’ . $custom_font_color . ‘;’;
}if( ( $background_color == ‘custom-background-color’) && ( ! empty( $custom_background_color ) ) )
{
$outer_cls[] = ‘avia-playlist-‘ . $background_color;
$outer_styles[] = ‘background-color:’ . $custom_background_color . ‘;’;
}if( ( $border_color == ‘custom-border-color’) && ( ! empty( $custom_border_color ) ) )
{
$outer_cls[] = ‘avia-playlist-‘ . $border_color;
$outer_styles[] = ‘border-color:’ . $custom_border_color . ‘;’;//generate thumb width based on columns
$this->extra_style .= “<style type=’text/css’>”;
$this->extra_style .= “#top #wrap_all #{$id} .wp-playlist-item {border-color:{$custom_border_color};}”;
$this->extra_style .= “</style>”;if(!empty($this->extra_style))
{
if(!empty($atts[‘ajax_request’]) || !empty($_POST[‘avia_request’]))
{
$output .= $this->extra_style;
$this->extra_style = “”;
}
else
{
$this->non_ajax_style .= $this->extra_style;
add_action(‘wp_footer’, array($this, ‘print_extra_style’));
}
}}
$cover = ”;
if( ( $cover_location != ‘hide’ ) && ( ! empty( $cover_id ) ) )
{
$outer_cls[] = ‘avia-playlist-show-cover’;
$outer_cls[] = $cover_location;
$cover = wp_get_attachment_link( $cover_id, $cover_size );
}
else
{
$outer_cls[] = ‘avia-playlist-hide-cover’;
}if( ! empty( $outer_styles ) )
{
$outer_styles = ‘ style=”‘ . implode( ”, $outer_styles ) . ‘” ‘;
}
else
{
$outer_styles = ”;
}$output .= ‘<div id=”‘ . $id . ‘” class=”‘ . implode( ‘ ‘, $outer_cls ) . ‘” ‘ . $outer_styles . ‘>’;
if( ! empty( $cover ) )
{
$output .= ‘<div class=”av-player-cover-container”>’;
$output .= ‘<div class=”av-player-cover”>’ . $cover . ‘</div>’;
$output .= ‘</div>’;
}$output .= ‘<div class=”av-player-player-container”>’;
$output .= $player;
$output .= ‘</div>’;$output .= ‘</div>’;
return $output;
}/**
* If user uploads an image for tbe player this image will overwrite any preset featured image.
* To speed up the code the filter should only be activated when images should be exchanged
*
* @since 4.1.3
* @param array|false $image Either array with src, width & height, icon src, or false.
* @param int $attachment_id Image attachment ID.
* @param string|array $size Size of image. Image size or array of width and height values
* (in that order). Default ‘thumbnail’.
* @param bool $icon Whether the image should be treated as an icon. Default false.
* @return array|false
*/
public function handler_wp_get_attachment_image_src( $image, $attachment_id, $size, $icon )
{
static $recursive = 0;/**
* To avoid duplicating code we call the original function. Avoid endless recursions.
*/
if( $recursive > 0 )
{
return $image;
}$new_id = $this->atts[‘cover_id’];
if( empty( $new_id ) || ( ! is_numeric( $new_id ) ) || ( (int) $new_id == $attachment_id ) )
{
return $image;
}$recursive++;
$image = wp_get_attachment_image_src( $new_id, $size, $icon );
$recursive–;
return $image;
}/**
* If user uploads an image for tbe player this image will overwrite the default mime icon from WP if no featured image was assigned
* to the media file.
* To speed up the code the filter should only be activated when images should be exchanged
*
* @since 4.1.3
* @param string $icon
* @param string $mime
* @param int $post_id
* @return string
*/
public function handler_wp_mime_type_icon( $icon, $mime, $post_id )
{
$new_id = $this->atts[‘cover_id’];if( empty( $new_id ) || ! is_numeric( $new_id ) )
{
return $icon;
}$image = wp_get_attachment_image_src( $new_id, ‘thumbnail’, false );
return $image[0];
}function print_extra_style()
{
echo $this->non_ajax_style;
}} // end class definition
What do I have to do ?
Many thanks






