advanced-composer-blocks-fo.../blocks/mbtnp-image/block.php

110 lines
No EOL
3.9 KiB
PHP

<?php
/*
* Name: Image+
* Section: content
* Description: Extended image block
*/
/* @var $options array */
// Don't access this file directly
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// On future releases of Newsletter, default options will be part of the options.php
// file, it is the best place to have them. By now, be patience.
// The "block_*" options are reserved and could be processed dutrectly by Newsletter. For example the
// "block_background" and "block_padding_*" are used to generated the wrapper of the block content.
$defaults = array(
'image' => '',
'image-alt' => '',
'url' => '',
'width' => 0,
'border-radius' => '7',
'box-shadow-x' => '0',
'box-shadow-y' => '0',
'box-shadow-blur' => '0',
'box-shadow-spread' => '0',
'box-shadow-color' => '#ffffff',
'align' => 'center',
'block_background' => '',
'block_padding_left' => 0,
'block_padding_right' => 0,
'block_padding_bottom' => 15,
'block_padding_top' => 15
);
$options = array_merge($defaults, $options);
if (empty($options['image']['id'])) {
if ( !empty($options['image-url']) ) {
$media = new TNP_Media();
$media->url = $options['image-url'];
$media->width = $composer['width'];
} else {
$media = new TNP_Media();
// A placeholder can be set by a preset and it is kept indefinitely
if ( !empty($options['placeholder']) ) {
$media->url = $options['placeholder'];
$media->width = $composer['width'];
$media->height = 250;
} else {
$media->url = esc_url( MBTNP_PLUGIN_URL . '/images/placeholder-image.jpg' );
$media->width = $composer['width'];
$media->height = 250;
}
}
} else {
$media = tnp_resize_2x($options['image']['id'], [$composer['width'], 0]);
// Should never happen but... it happens
if (!$media) {
echo 'The selected media file cannot be processed';
return;
}
}
if (!empty($options['width'])) {
$media->set_width( $options['width'] );
}
$media->link = $options['url'];
$media->alt = $options['image-alt'];
$media->border_radius = $options['border-radius'];
echo '<table width="100%" cellpadding="0" cellspacing="0" border="0" width="100%"><tr><td align="', esc_attr( $options['align'] ), '">';
if ( $media->link ) {
echo '<a href="', esc_url( $media->link ), '" target="_blank" rel="noopener nofollow" style="display: block; font-size: 0; text-decoration: none; line-height: normal !important;">';
} else {
}
echo '<img src="', esc_url( $media->url ), '" width="', esc_attr( $media->width ), '"';
if ( $media->height ) {
echo ' height="', esc_attr( $media->height ), '"';
}
echo ' alt="', esc_attr( $media->alt ), '"';
// The font size is important for the alt text
echo ' border="0" style="display: block; height: auto; max-width: ', esc_attr( $media->width ), 'px !important; width: 100%; padding: 0; border: 0; font-size: 12px;';
if( $media->border_radius ){
echo ' border-radius: ' . esc_attr( $media->border_radius ) . 'px;';
}
if( $options['box-shadow-x'] || $options['box-shadow-y'] || $options['box-shadow-blur'] || $options['box-shadow-spread'] || $options['box-shadow-color'] ){
if( empty($options['box-shadow-x']) ){ $options['box-shadow-x'] = '0'; }
if( empty($options['box-shadow-y']) ){ $options['box-shadow-y'] = '0'; }
if( empty($options['box-shadow-blur']) ){ $options['box-shadow-blur'] = '0'; }
if( empty($options['box-shadow-spread']) ){ $options['box-shadow-spread'] = '0'; }
if( empty($options['box-shadow-color']) ){ $options['box-shadow-color'] = '#000000'; }
echo ' box-shadow: ' . esc_attr( $options['box-shadow-x'] ) . 'px ' . esc_attr( $options['box-shadow-y'] ) . 'px ' . esc_attr( $options['box-shadow-blur'] ) . 'px ' . esc_attr( $options['box-shadow-spread'] ) . 'px ' . esc_attr( $options['box-shadow-color'] ) . ';';
}
echo '">';
if ( $media->link ) {
echo '</a>';
} else {
}
echo '</td></tr></table>';