| Current Path : /home/cbequiperp/www/plugins/flexicontent_fields/image/tmpl/ |
| Current File : /home/cbequiperp/www/plugins/flexicontent_fields/image/tmpl/value_gallery_juxtapose.php |
<?php // *** DO NOT EDIT THIS FILE, CREATE A COPY !!
/**
* (Popup) Gallery layout -- Juxtapose
*
* This layout supports inline_info, pretext, posttext
*/
// ***
// *** Values loop
// ***
$i = -1;
$compositeKey='';
$compare_mode = $field->parameters->get( $PPFX_ . 'compare_mode', 'horizontal' ); // Horizontal slide or vertical
$slider_position = $field->parameters->get( $PPFX_ . 'slider_position', '50' ); // Starting position of slider
$display_label = $field->parameters->get( $PPFX_ . 'display_label', 'true' ); // Display label
$display_credit = $field->parameters->get( $PPFX_ . 'display_credit', 'true' ); // Display credit
$use_animation = $field->parameters->get( $PPFX_ . 'use_animation', 'true' ); // Disable animation
$make_responsive = $field->parameters->get( $PPFX_ . 'make_responsive', 'true' ); // Disable responsive image
foreach ($values as $n => $value)
{
// Include common layout code for preparing values, but you may copy here to customize
$result = include( JPATH_ROOT . '/plugins/flexicontent_fields/image/tmpl_common/prepare_value_display.php' );
if ($result === _FC_CONTINUE_) continue;
if ($result === _FC_BREAK_) break;
$field->{$prop}[] = $pretext . $img_legend . $inline_info . $posttext;
}
//var_dump($field->{$prop});
// ***
// *** Add per field custom JS
// ***
if ( !isset(static::$js_added[$field->id][__FILE__]) )
{
//flexicontent_html::loadFramework('juxtapose'); TODO ADDING script inline not in CDN
$js = "
(function($)
{
$(document).ready(function()
{
var juxtapose = $('.juxtapose_" . $field->id . "');
juxtapose.each(function(index, element) {
var juxtaposeContainer = juxtapose.parent();
var juxtaposeRatio;
$(window).on('load', function (event) {
juxtaposeRatio = $(element).outerHeight() / $(element).outerWidth();
});
$(window).on('resize', function (event) {
var newWidth = juxtaposeContainer.outerWidth();
var newHeight = newWidth * juxtaposeRatio;
$(element).css({width: newWidth, height: newHeight});
});
});
});
})(jQuery);
";
if ($js) JFactory::getDocument()->addScriptDeclaration($js);
static::$js_added[$field->id][__FILE__] = array();
}
// ***
// *** Add - per (field, item) pair - custom JS
// ***
$uid = 'fc_'.$field_name_js."_fcitem".$item->id;
if (!isset(static::$js_added[$field->id][__FILE__][$item->id]))
{
$js = "";
if ($js) JFactory::getDocument()->addScriptDeclaration($js);
static::$js_added[$field->id][__FILE__][$item->id] = true;
}
/**
* Include common layout code before finalize values
*/
$result = include( JPATH_ROOT . '/plugins/flexicontent_fields/image/tmpl_common/before_values_finalize.php' );
if ($result !== _FC_RETURN_)
{
// ***
// *** Add container HTML (if required by current layout) and add value separator (if supported by current layout), then finally apply open/close tags
// ***
$i = 0;
$html = array();
while($i < count($field->{$prop}))
{
/**
* Check for special case of 9 or 11 images.
* Meanging that we have a single image (at the end of values array)
* and just add it by itself
*/
if ($i + 1 == count($field->{$prop}))
{
$html[] = $field->{$prop}[$i];
break;
}
/**
* Create a pair of images, (e.g. a "before" and an "after") this layout create a "comparison" slider for every pair
*/
$html[] = '
<div
id="juxtapose-wrapper_' . $item->id . '_' . $field->id . '"
class="juxtapose juxtapose_' . $field->id . '"
data-startingposition="'.$slider_position.'%"
data-showlabels="' . $display_label . '"
data-showcredits="' . $display_credit . '"
data-makeresponsive="' . $make_responsive . '"
data-mode="' . $compare_mode . '"
data-animate="' . $use_animation . '"
>
' . $field->{$prop}[$i] . '
' . $field->{$prop}[$i+1] . '
</div>
';
$i = $i + 2;
}
// Implode the image pairs ... that were created inside $html using configured value separator
$field->{$prop} = implode($separatorf, $html);
// Apply open/close tags
$field->{$prop} = $opentag . $field->{$prop} . $closetag;
}
if ( !isset(static::$js_added['juxtapose']) )
{
static::$js_added['juxtapose'] = true;
$field->{$prop} .= '
<script src="https://cdn.knightlab.com/libs/juxtapose/latest/js/juxtapose.min.js"></script>
<link rel="stylesheet" href="https://cdn.knightlab.com/libs/juxtapose/latest/css/juxtapose.css">
';
}