first commit
This commit is contained in:
333
modules/appagebuilder/classes/shortcodes/ApImage360.php
Normal file
333
modules/appagebuilder/classes/shortcodes/ApImage360.php
Normal file
@@ -0,0 +1,333 @@
|
||||
<?php
|
||||
/**
|
||||
* 2007-2015 Apollotheme
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* ApPageBuilder is module help you can build content for your shop
|
||||
*
|
||||
* DISCLAIMER
|
||||
*
|
||||
* @author Apollotheme <apollotheme@gmail.com>
|
||||
* @copyright 2007-2019 Apollotheme
|
||||
* @license http://apollotheme.com - prestashop template provider
|
||||
*/
|
||||
|
||||
if (!defined('_PS_VERSION_')) {
|
||||
# module validation
|
||||
exit;
|
||||
}
|
||||
|
||||
class ApImage360 extends ApShortCodeBase
|
||||
{
|
||||
public $name = 'ApImage360';
|
||||
public $for_module = 'manage';
|
||||
|
||||
public function getInfo()
|
||||
{
|
||||
return array('label' => $this->l('Image 360'), 'position' => 20, 'desc' => $this->l('Adds multiple 360 images, rotating display objects'),
|
||||
'icon_class' => 'icon-image', 'tag' => 'content structure');
|
||||
}
|
||||
|
||||
public function getConfigList()
|
||||
{
|
||||
$href = Context::getContext()->link->getAdminLink('AdminApPageBuilderImages').'&ajax=1&action=manageimage&imgDir=images&widget=ApImage360';
|
||||
$inputs = array(
|
||||
array(
|
||||
'type' => 'text',
|
||||
'name' => 'title',
|
||||
'label' => $this->l('Title'),
|
||||
'lang' => 'true',
|
||||
'default' => '',
|
||||
),
|
||||
array(
|
||||
'type' => 'textarea',
|
||||
'name' => 'sub_title',
|
||||
'label' => $this->l('Sub Title'),
|
||||
'lang' => true,
|
||||
'values' => '',
|
||||
'autoload_rte' => false,
|
||||
'default' => '',
|
||||
),
|
||||
array(
|
||||
'type' => 'select',
|
||||
'label' => $this->l('Spin'),
|
||||
'name' => 'spin',
|
||||
'options' => array(
|
||||
'query' => array(
|
||||
array('id' => 'drag', 'name' => $this->l('Drag')),
|
||||
array('id' => 'hover', 'name' => $this->l('Hover')),
|
||||
),
|
||||
'id' => 'id',
|
||||
'name' => 'name'
|
||||
),
|
||||
'desc' => $this->l('Method for spinning the image'),
|
||||
),
|
||||
array(
|
||||
'type' => 'text',
|
||||
'name' => 'speed',
|
||||
'label' => $this->l('Speed'),
|
||||
// 'lang' => 'true',
|
||||
'default' => '50',
|
||||
'desc' => $this->l('Mouse drag distance in pixels to next image (1 - 100). Ex 50'),
|
||||
),
|
||||
array(
|
||||
'type' => 'text',
|
||||
'name' => 'mousewheel_step',
|
||||
'label' => $this->l('Mousewheel Step'),
|
||||
// 'lang' => 'true',
|
||||
'default' => '1',
|
||||
'desc' => $this->l('Number of image to spin on mousewheel'),
|
||||
),
|
||||
array(
|
||||
'type' => 'switch',
|
||||
'label' => $this->l('Smoothing'),
|
||||
'name' => 'smoothing',
|
||||
'is_bool' => true,
|
||||
'values' => ApPageSetting::returnYesNo(),
|
||||
'default' => 1,
|
||||
'desc' => $this->l('Smoothly stop the image spinning'),
|
||||
),
|
||||
array(
|
||||
'type' => 'select',
|
||||
'label' => $this->l('Initialization'),
|
||||
'name' => 'initialize_on',
|
||||
'options' => array(
|
||||
'query' => array(
|
||||
array('id' => 'hover', 'name' => $this->l('hover')),
|
||||
array('id' => 'click', 'name' => $this->l('click')),
|
||||
array('id' => 'load', 'name' => $this->l('load')),
|
||||
),
|
||||
'id' => 'id',
|
||||
'name' => 'name'
|
||||
),
|
||||
'default' => 'load',
|
||||
'desc' => $this->l('Start automatic spin on page load, click or hover'),
|
||||
),
|
||||
array(
|
||||
'type' => 'select',
|
||||
'label' => $this->l('Autospin duration'),
|
||||
'name' => 'autospin',
|
||||
'options' => array(
|
||||
'query' => array(
|
||||
array('id' => 'once', 'name' => $this->l('Once')),
|
||||
array('id' => 'twice', 'name' => $this->l('Twice')),
|
||||
array('id' => 'infinite', 'name' => $this->l('Infinite')),
|
||||
array('id' => 'off', 'name' => $this->l('Off')),
|
||||
),
|
||||
'id' => 'id',
|
||||
'name' => 'name'
|
||||
),
|
||||
// 'desc' => $this->l('Method for spinning the image'),
|
||||
),
|
||||
array(
|
||||
'type' => 'select',
|
||||
'label' => $this->l('Autospin start'),
|
||||
'name' => 'autospin_start',
|
||||
'options' => array(
|
||||
'query' => array(
|
||||
array('id' => 'load', 'name' => $this->l('load')),
|
||||
array('id' => 'hover', 'name' => $this->l('hover')),
|
||||
array('id' => 'click', 'name' => $this->l('click')),
|
||||
array('id' => 'load,hover', 'name' => $this->l('load,hover')),
|
||||
array('id' => 'load,click', 'name' => $this->l('load,click')),
|
||||
),
|
||||
'id' => 'id',
|
||||
'name' => 'name'
|
||||
),
|
||||
'desc' => $this->l('Start automatic spin on page load, click or hover'),
|
||||
),
|
||||
array(
|
||||
'type' => 'select',
|
||||
'label' => $this->l('Autospin stops'),
|
||||
'name' => 'autospin_stop',
|
||||
'options' => array(
|
||||
'query' => array(
|
||||
array('id' => 'hover', 'name' => $this->l('hover')),
|
||||
array('id' => 'click', 'name' => $this->l('click')),
|
||||
array('id' => 'never', 'name' => $this->l('never')),
|
||||
),
|
||||
'id' => 'id',
|
||||
'name' => 'name'
|
||||
),
|
||||
'desc' => $this->l('Start automatic spin on page load, click or hover'),
|
||||
),
|
||||
array(
|
||||
'type' => 'text',
|
||||
'name' => 'autospin_speed',
|
||||
'label' => $this->l('Autospin Time'),
|
||||
// 'lang' => 'true',
|
||||
'default' => '2000',
|
||||
'desc' => $this->l('Value is milisecond. Ex 2000 (2s)'),
|
||||
),
|
||||
array(
|
||||
'type' => 'select',
|
||||
'label' => $this->l('Autospin direction'),
|
||||
'name' => 'autospin_direction',
|
||||
'options' => array(
|
||||
'query' => array(
|
||||
array('id' => 'clockwise', 'name' => $this->l('Clockwise')),
|
||||
array('id' => 'anticlockwise', 'name' => $this->l('Anticlockwise')),
|
||||
array('id' => 'alternate-clockwise', 'name' => $this->l('Alternate Clockwise')),
|
||||
array('id' => 'alternate-anticlockwise', 'name' => $this->l('Alternate Anticlockwise')),
|
||||
),
|
||||
'id' => 'id',
|
||||
'name' => 'name'
|
||||
),
|
||||
'desc' => $this->l('Method for spinning the image'),
|
||||
),
|
||||
array(
|
||||
'type' => 'text',
|
||||
'name' => 'start_column',
|
||||
'label' => $this->l('Start Column'),
|
||||
'default' => '1',
|
||||
'desc' => $this->l('Column from which to start spin. auto means to start from the middle'),
|
||||
),
|
||||
array(
|
||||
'type' => 'switch',
|
||||
'label' => $this->l('Loop Column'),
|
||||
'name' => 'loop_column',
|
||||
'is_bool' => true,
|
||||
'values' => ApPageSetting::returnYesNo(),
|
||||
'default' => 1,
|
||||
'desc' => $this->l('Continue spin after the last image on X-axis'),
|
||||
),
|
||||
array(
|
||||
'type' => 'switch',
|
||||
'label' => $this->l('Reverse rotation on X-axis'),
|
||||
'name' => 'reverse_column',
|
||||
'is_bool' => true,
|
||||
'values' => ApPageSetting::returnYesNo(),
|
||||
'default' => 0,
|
||||
),
|
||||
array(
|
||||
'type' => 'text',
|
||||
'name' => 'message',
|
||||
'label' => $this->l('Message under image'),
|
||||
'default' => 'Drag image to spin',
|
||||
'lang' => true,
|
||||
),
|
||||
array(
|
||||
'type' => 'switch',
|
||||
'label' => $this->l('Show hint message'),
|
||||
'name' => 'hint',
|
||||
'is_bool' => true,
|
||||
'values' => ApPageSetting::returnYesNo(),
|
||||
'default' => 1,
|
||||
),
|
||||
array(
|
||||
'type' => 'text',
|
||||
'name' => 'message_desktop_hint',
|
||||
'label' => $this->l('Message Desktop Hint'),
|
||||
'default' => 'Drag to spin',
|
||||
'lang' => true,
|
||||
'desc' => $this->l('Text of the hint on Desktop'),
|
||||
),
|
||||
array(
|
||||
'type' => 'text',
|
||||
'name' => 'message_mobile_hint',
|
||||
'label' => $this->l('Message Mobile Hint'),
|
||||
'default' => 'Swipe to spin',
|
||||
'lang' => true,
|
||||
'desc' => $this->l('Text of the hint on iOS/Android devices'),
|
||||
),
|
||||
array(
|
||||
'type' => 'hidden',
|
||||
'name' => 'total_slider',
|
||||
'default' => '',
|
||||
),
|
||||
array(
|
||||
'label' => $this->l('Image Url (not image base 64 code)'),
|
||||
'type' => 'image_url_360',
|
||||
'name' => 'image_url_360',
|
||||
'lang' => false,
|
||||
'class' => 'image_url_360',
|
||||
'show_image' => false,
|
||||
),
|
||||
array(
|
||||
'label' => $this->l('Image'),
|
||||
'type' => 'selectImg',
|
||||
'href' => $href,
|
||||
'name' => 'image_360',
|
||||
'lang' => false,
|
||||
'class' => 'item-add-slide ignore-lang',
|
||||
'form_group_class' => 'apfullslider-row select-img',
|
||||
'show_image' => false,
|
||||
)
|
||||
);
|
||||
return $inputs;
|
||||
}
|
||||
|
||||
public function endRenderForm()
|
||||
{
|
||||
$this->helper->module = new $this->module_name();
|
||||
}
|
||||
|
||||
/**
|
||||
* Widget can override this method and add more config at here
|
||||
*/
|
||||
public function addConfigList($values)
|
||||
{
|
||||
// Get value with keys special
|
||||
$config_val = array();
|
||||
$total = isset($values['total_slider']) ? $values['total_slider'] : '';
|
||||
|
||||
$arr = explode('|', $total);
|
||||
$inputs = array('image360');
|
||||
// $languages = Language::getLanguages(false);
|
||||
foreach ($arr as $i) {
|
||||
foreach ($inputs as $config) {
|
||||
$config_val[$config][$i] = str_replace($this->str_search, $this->str_relace_html_admin, Tools::getValue($config.'_'.$i, ''));
|
||||
}
|
||||
}
|
||||
|
||||
Context::getContext()->smarty->assign(array(
|
||||
'arr' => $arr,
|
||||
'config_val' => $config_val,
|
||||
'image_folder' => apPageHelper::getImgThemeUrl(),
|
||||
));
|
||||
$list_slider = Context::getContext()->smarty->fetch(apPageHelper::getShortcodeTemplatePath('ApImage360.tpl'));
|
||||
$input = array(
|
||||
'type' => 'html',
|
||||
'name' => 'default_html',
|
||||
'html_content' => $list_slider
|
||||
);
|
||||
$this->config_list[] = $input;
|
||||
}
|
||||
|
||||
public function prepareFontContent($assign, $module = null)
|
||||
{
|
||||
// validate module
|
||||
unset($module);
|
||||
|
||||
if (!Configuration::get('APPAGEBUILDER_LOAD_IMAGE360')) {
|
||||
$assign['formAtts']['lib_has_error'] = true;
|
||||
$assign['formAtts']['lib_error'] = 'Please enable Magic360 library in Appagebuilder Configuration.';
|
||||
return $assign;
|
||||
}
|
||||
|
||||
$total_slider = isset($assign['formAtts']['total_slider']) ? $assign['formAtts']['total_slider'] : '';
|
||||
$list = explode('|', $total_slider);
|
||||
|
||||
|
||||
$image_list = array();
|
||||
$image_path = apPageHelper::getImgThemeUrl();
|
||||
|
||||
foreach ($list as $item) {
|
||||
if (isset($assign['formAtts']['image360_'.$item])) {
|
||||
$image_list[] = $assign['formAtts']['image360_'.$item];
|
||||
}
|
||||
}
|
||||
|
||||
$assign['formAtts']['image_path'] = $image_path;
|
||||
$assign['formAtts']['columns'] = count($list);
|
||||
$assign['formAtts']['row'] = 1;
|
||||
$assign['formAtts']['image_list'] = $image_list;
|
||||
|
||||
// IMAGE DEFAULT
|
||||
$min_key = min(array_keys($image_list));
|
||||
$assign['formAtts']['image_default'] = $image_list[$min_key];
|
||||
|
||||
return $assign;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user