first commit

This commit is contained in:
2024-11-05 12:22:50 +01:00
commit e5682a3912
19641 changed files with 2948548 additions and 0 deletions

View File

@@ -0,0 +1,17 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<div class="col-md-12 code plist-element" data-element='code'>
<div class="desc-box"><a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Drag me' mod='appagebuilder'}" class="group-action gaction-drag label-tooltip"><i class="icon-move"></i> </a> tpl code</div>
<div class="pull-right">
<a class="plist-code"><i class="icon-code"></i></a>
<a class="plist-eremove"><i class="icon-trash"></i></a>
</div>
<div class="content-code">
<textarea name="filecontent" rows="5" class="">{if isset($code)}{$code nofilter}{/if}</textarea>
</div>
</div>

View File

@@ -0,0 +1,31 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<!-- @file modules\appagebuilder\views\templates\admin\ap_page_builder_shortcodes\ApColumn -->
<div {if isset($defaultColumn)}id="default_column" class="column-row plist-element col-sp-12 col-xs-12 col-sm-12 col-md-12 col-lg-12 col-xl-12"{else}
class="column-row{foreach $column.form key=ckey item=citem} col-{$ckey}-{$citem}{/foreach} plist-element" data-form='{$column.dataForm}'{/if}>
<div class="cover-column">
<div class="pull-left">
<a href="javascript:void(0)" title="{l s='Edit Column' mod='appagebuilder'}" class="column-action btn-edit-column" data-type="ApColumn" data-for=".column-row"><i class="icon-pencil"></i></a>
</div>
<div class="pull-right">
<a class="plist-eremove"><i class="icon-trash"></i></a>
</div>
<div class="content row">
{if !isset($defaultColumn)}
{foreach $column.sub item=columnsub}
{if $columnsub.name == 'code'}
{include file='./code.tpl' code=$columnsub.code}
{else}
{include file='./element.tpl' eItem=$columnsub.config configElement=$columnsub.dataForm}
{/if}
{/foreach}
{/if}
</div>
</div>
</div>

View File

@@ -0,0 +1,20 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<div class="widget-row col-md-12 {$eItem.file} plist-element" data-element='{$eItem.file}'{if isset($configElement)} data-form='{$configElement}'{/if}><a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Drag me' mod='appagebuilder'}" class="group-action gaction-drag label-tooltip"><i class="icon-move"></i> </a>
<a class="show-postion" href="#postion_layout" title="Click to see postion">
{$eItem.name|escape:'html':'UTF-8'}
</a>
{if isset($eItem.icon)}<i class="{$eItem.icon}"></i>{/if}
<div class="pull-right">
{if isset($eItem.config)}
<a href="javascript:void(0)" data-config="{$eItem.config}" title="{l s='Config element' mod='appagebuilder'}" class="element-config" data-type="ApColumn" data-for=".column-row"><i class="icon-pencil"></i></a>
{/if}
<a class="plist-eremove"><i class="icon-trash"></i></a>
<a class="plist-eedit" data-element='{$eItem.file}'><i class="icon-edit"></i></a>
</div>
</div>

View File

@@ -0,0 +1,552 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<!-- @file modules\appagebuilder\views\templates\admin\_configure\ap_page_builder_products\helpers\form\form -->
{extends file="helpers/form/form.tpl"}
{block name="field"}
{if $input.type == 'ap_proGrid'}
<h4>{l s='Difficult to use, you can select avail item' mod='appagebuilder'}: </h4>
<div class="row" id="product-demo-sample">
<div class="col-lg-3 col-md-4 col-sm-6 col-xs-6">
<div class="item-demo">
<div class="block-image">
<img class="img-fuild img-responsive" src="https://i.pinimg.com/originals/8c/16/f9/8c16f9f024af16977adc1f618872eb8b.jpg" alt="{l s='Product image thumbs bottom' mod='appagebuilder'}">
<a href="{$input.demodetaillink}&sampledetail=product_image_thumbs_bottom" class="btn btn-default" title="{l s='Product image thumbs bottom' mod='appagebuilder'}">{l s='Create with this layout' mod='appagebuilder'}</a>
</div>
<div class="block-name">{l s='Product image thumbs bottom' mod='appagebuilder'}</div>
</div>
</div>
<div class="col-lg-3 col-md-4 col-sm-6 col-xs-6">
<div class="item-demo">
<div class="block-image">
<img class="img-fuild img-responsive" src="https://i.pinimg.com/originals/98/b4/b0/98b4b05fef8913b2a37cbb592b921e7b.jpg" alt="{l s='Product image thumbs left' mod='appagebuilder'}">
<a href="{$input.demodetaillink}&sampledetail=product_image_thumbs_left" class="btn btn-default" title="{l s='Product image thumbs left' mod='appagebuilder'}">{l s='Create with this layout' mod='appagebuilder'}</a>
</div>
<div class="block-name">{l s='Product image thumbs left' mod='appagebuilder'}</div>
</div>
</div>
<div class="col-lg-3 col-md-4 col-sm-6 col-xs-6">
<div class="item-demo">
<div class="block-image">
<img class="img-fuild img-responsive" src="https://i.pinimg.com/originals/81/c4/41/81c441c1b2f6c3e56b3da56b65324423.jpg" alt="{l s='Product image thumbs right' mod='appagebuilder'}">
<a href="{$input.demodetaillink}&sampledetail=product_image_thumbs_right" class="btn btn-default" title="{l s='Product image thumbs right' mod='appagebuilder'}">{l s='Create with this layout' mod='appagebuilder'}</a>
</div>
<div class="block-name">{l s='Product image thumbs right' mod='appagebuilder'}</div>
</div>
</div>
<div class="col-lg-3 col-md-4 col-sm-6 col-xs-6">
<div class="item-demo">
<div class="block-image">
<img class="img-fuild img-responsive" src="https://i.pinimg.com/originals/60/ca/57/60ca570f6a8254c3741d8c9db78eb3d5.jpg" alt="{l s='Product image no thumbs' mod='appagebuilder'}">
<a href="{$input.demodetaillink}&sampledetail=product_image_no_thumbs" class="btn btn-default" title="{l s='Product image no thumbs' mod='appagebuilder'}">{l s='Create with this layout' mod='appagebuilder'}</a>
</div>
<div class="block-name">{l s='Product image no thumbs' mod='appagebuilder'}</div>
</div>
</div>
<div class="col-lg-3 col-md-4 col-sm-6 col-xs-6">
<div class="item-demo">
<div class="block-image">
<img class="img-fuild img-responsive" src="https://i.pinimg.com/originals/38/99/1a/38991a8c1582669d29abe889bc0d5f52.jpg" alt="{l s='Product image no thumbs center' mod='appagebuilder'}">
<a href="{$input.demodetaillink}&sampledetail=product_image_no_thumbs_center" class="btn btn-default" title="{l s='Product image no thumbs center' mod='appagebuilder'}">{l s='Create with this layout' mod='appagebuilder'}</a>
</div>
<div class="block-name">{l s='Product image no thumbs center' mod='appagebuilder'}</div>
</div>
</div>
<div class="col-lg-3 col-md-4 col-sm-6 col-xs-6">
<div class="item-demo">
<div class="block-image">
<img class="img-fuild img-responsive" src="https://i.pinimg.com/originals/c5/d9/02/c5d9025b68250832a31eac3b6d344955.jpg" alt="{l s='Product image no thumbs fullwidth' mod='appagebuilder'}">
<a href="{$input.demodetaillink}&sampledetail=product_image_no_thumbs_fullwidth" class="btn btn-default" title="{l s='Product image no thumbs fullwidth' mod='appagebuilder'}">{l s='Create with this layout' mod='appagebuilder'}</a>
</div>
<div class="block-name">{l s='Product image no thumbs fullwidth' mod='appagebuilder'}</div>
</div>
</div>
<div class="col-lg-3 col-md-4 col-sm-6 col-xs-6">
<div class="item-demo">
<div class="block-image">
<img class="img-fuild img-responsive" src="https://i.pinimg.com/originals/b1/a8/b9/b1a8b9381d8d3e3c4d13dfe24231581f.jpg" alt="{l s='Product image gallery' mod='appagebuilder'}">
<a href="{$input.demodetaillink}&sampledetail=product_image_gallery" class="btn btn-default" title="{l s='Product image gallery' mod='appagebuilder'}">{l s='Create with this layout' mod='appagebuilder'}</a>
</div>
<div class="block-name">{l s='Product image gallery' mod='appagebuilder'}</div>
</div>
</div>
</div>
<input id="main_class" type="hidden" name="main_class" value="{if isset($input.params.class)}{$input.params.class}{/if}" />
<div id="top_wrapper">
<a class="btn btn-default btn-fwidth width-default" data-width="auto">{l s='Default' mod='appagebuilder'}</a>
<a class="btn btn-default btn-fwidth width-large" data-width="1200">{l s='Large' mod='appagebuilder'}</a>
<a class="btn btn-default btn-fwidth width-medium" data-width="992">{l s='Medium' mod='appagebuilder'}</a>
<a class="btn btn-default btn-fwidth width-small" data-width="768">{l s='Small' mod='appagebuilder'}</a>
<a class="btn btn-default btn-fwidth width-extra-small" data-width="603">{l s='Extra Small' mod='appagebuilder'}</a>
<a class="btn btn-default btn-fwidth width-mobile" data-width="480">{l s='Mobile' mod='appagebuilder'}</a>
</div>
<div class="col-lg-12 {$input.type|escape:'html':'UTF-8'}">
<div class="row">
<div id="home_wrapper" class="col-lg-12 col-md-12">
<div class="panel product-container">
<div class="desc-box">product-layout</div>
{foreach $input.blockList key=kBlock item=vblock}
<div class="{$vblock.class|escape:'html':'UTF-8'}">
<div class="content {$kBlock|escape:'html':'UTF-8'}-block-content">
{assign var=blockElement value=$input.params[$kBlock]}
{foreach $blockElement item=gridElement}
{if $gridElement.name == 'code'}
{include file='./code.tpl' code=$gridElement.code}
{else if $gridElement.name == 'functional_buttons'}
<div class="row group-row functional_buttons plist-element" data-element='functional_buttons'{if isset($gridElement.dataForm)} data-form='{$gridElement.dataForm}'{/if}>
<div class="desc-box">
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Drag to sort group' mod='appagebuilder'}" class="group-action gaction-drag label-tooltip"><i class="icon-move"></i> </a> Group
<a href="javascript:void(0)" title="{l s='Edit Group Class' mod='appagebuilder'}" class="column-action btn-edit-group" data-type="ApColumn" data-for=".column-row"><i class="icon-pencil"></i></a>
</div>
<div class="pull-right">
<a class="plist-eremove"><i class="icon-trash"></i></a>
</div>
<p class="row-preactive">{l s='Drag me to layout to set element in column' mod='appagebuilder'}</p>
<div class="row-actived">
<div class="group">
{foreach $gridElement.columns item=column}
{include file='./column.tpl' column=$column}
{/foreach}
</div>
<br/>
<div class="group-button">
<a href="javascript:void(0)" title="{l s='Add New Column' mod='appagebuilder'}" class="group-action btn-add-column" tabindex="0" data-container="body" data-toggle="popover" data-placement="top" data-trigger="focus"><i class="icon-plus"></i></a>
</div>
</div>
</div>
{else}
{include file='./element.tpl' eItem=$gridElement.config configElement=$gridElement.dataForm}
{/if}
{/foreach}
</div>
{/foreach}
</div>
</div>
</div>
<div class="row element-list content">
<div class="col-md-3">
<div class="row">
<div class="row group-row functional_buttons plist-element" data-element='functional_buttons'>
<div class="desc-box">
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Drag to sort group' mod='appagebuilder'}" class="group-action gaction-drag label-tooltip"><i class="icon-move"></i> </a> Group
<a href="javascript:void(0)" title="{l s='Edit Group Class' mod='appagebuilder'}" class="column-action btn-edit-group" data-type="ApColumn" data-for=".column-row"><i class="icon-pencil"></i></a>
</div>
<div class="pull-right">
<a class="plist-eremove"><i class="icon-trash"></i></a>
</div>
<p class="row-preactive">{l s='Drag me to layout to set element in column' mod='appagebuilder'}</p>
<div class="row-actived">
<div class="group row"></div>
<br/>
<div class="group-button">
<a href="javascript:void(0)" title="{l s='Add New Column' mod='appagebuilder'}" class="group-action btn-add-column" tabindex="0" data-container="body" data-toggle="popover" data-placement="top" data-trigger="focus"><i class="icon-plus"></i></a>
</div>
</div>
</div>
<div class="col-md-12 code plist-element" data-element='code'>
<div class="desc-box"><a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Drag me' mod='appagebuilder'}" class="group-action gaction-drag label-tooltip"><i class="icon-move"></i> </a> tpl code</div>
<div class="pull-right">
<a class="plist-code"><i class="icon-code"></i></a>
<a class="plist-eremove"><i class="icon-trash"></i></a>
</div>
<div class="content-code">
<textarea name="filecontent" rows="5" class=""></textarea>
</div>
</div>
</div>
</div>
{foreach from=$input.elements item=eItems}
<div class="col-md-3">
<div class="row">
{foreach from=$eItems.group item=eItem}
{if isset($eItem.type) and $eItem.type=="sperator"}
<div class="col-md-12">
<p>{$eItem.name}</p>
</div>
{else}
{include file='./element.tpl' eItem=$eItem configElement=$eItem.dataForm}
{/if}
{/foreach}
</div>
</div>
{/foreach}
<div id="postion_layout" class="col-lg-12 col-md-12 col-sm-12">
<br/>
<a class="postion-img-co btn btn-default" href="javascript:void(0)">{l s='Close or open image' mod='appagebuilder'}</a>
<img style="display:none" src="https://drscdn.500px.org/photo/243373101/q%3D80_m%3D1500/v2?user_id=24883015&webp=true&sig=f7caa5d610248680886907ebc15e1239a965a19a7f976a899b7a8c16ddd9408a" title="postion"/>
</div>
</div>
</div>
</div>
<div class="modal fade" id="modal_form" data-backdrop="0" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content modal-lg">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span>
<span class="sr-only">{l s='Close' mod='appagebuilder'}</span></button>
</div>
<div class="modal-body"></div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">{l s='Close' mod='appagebuilder'}</button>
<button type="button" class="btn btn-primary btn-savewidget">{l s='Save changes' mod='appagebuilder'}</button>
</div>
</div>
</div>
</div>
<div style="display:none">
<div id="image-thumb-1">
<div class="form-group">
<label class="control-label col-lg-5">
<span class="label-tooltip" data-toggle="tooltip">
{l s='Thumb Position' mod='appagebuilder'}
</span>
</label>
<div class="col-lg-5">
<select class="select_thumb" name="templateview">
<option value="bottom">{l s='Bottom' mod='appagebuilder'}</option>
<option value="right">{l s='Right' mod='appagebuilder'}</option>
<option value="left">{l s='Left' mod='appagebuilder'}</option>
<option value="none">{l s='None' mod='appagebuilder'}</option>
</select>
</div>
</div>
<div class="form-group select_thumb-none">
<label class="control-label col-lg-5">
<span class="label-tooltip" data-toggle="tooltip">
{l s='Number thumb in over 1200: Extra Large' mod='appagebuilder'}
</span>
</label>
<div class="col-lg-5">
<input type="text" name="numberimage" value="5">
</div>
</div>
<div class="form-group select_thumb-none">
<label class="control-label col-lg-5">
<span class="label-tooltip" data-toggle="tooltip">
{l s='Number thumb in 1200: Desktop' mod='appagebuilder'}
</span>
</label>
<div class="col-lg-5">
<input type="text" name="numberimage1200" value="5">
</div>
</div>
<div class="form-group select_thumb-none">
<label class="control-label col-lg-5">
<span class="label-tooltip" data-toggle="tooltip">
{l s='Number thumb in 992: Small desktop' mod='appagebuilder'}
</span>
</label>
<div class="col-lg-5">
<input type="text" name="numberimage992" value="4">
</div>
</div>
<div class="form-group select_thumb-none">
<label class="control-label col-lg-5">
<span class="label-tooltip" data-toggle="tooltip">
{l s='Number thumb in 768: Tablet' mod='appagebuilder'}
</span>
</label>
<div class="col-lg-5">
<input type="text" name="numberimage768" value="3">
</div>
</div>
<div class="form-group select_thumb-none">
<label class="control-label col-lg-5">
<span class="label-tooltip" data-toggle="tooltip">
{l s='Number thumb in 576: Small tablet' mod='appagebuilder'}
</span>
</label>
<div class="col-lg-5">
<input type="text" name="numberimage576" value="3">
</div>
</div>
<div class="form-group select_thumb-none">
<label class="control-label col-lg-5">
<span class="label-tooltip" data-toggle="tooltip">
{l s='Number thumb in 480: Smartphone' mod='appagebuilder'}
</span>
</label>
<div class="col-lg-5">
<input type="text" name="numberimage480" value="2">
</div>
</div>
<div class="form-group select_thumb-none">
<label class="control-label col-lg-5">
<span class="label-tooltip" data-toggle="tooltip">
{l s='Number thumb in 360: Smartphone vertical' mod='appagebuilder'}
</span>
</label>
<div class="col-lg-5">
<input type="text" name="numberimage360" value="2">
</div>
</div>
<div class="form-group">
<label class="control-label col-lg-5">
<span class="label-tooltip" data-toggle="tooltip">
{l s='Display modal popup' mod='appagebuilder'}
</span>
</label>
<div class="col-lg-5">
<select class="select_modal" name="templatemodal">
<option value="1">{l s='Yes' mod='appagebuilder'}</option>
<option value="0">{l s='No' mod='appagebuilder'}</option>
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-lg-5">
<span class="label-tooltip" data-toggle="tooltip">
{l s='Zoom Type' mod='appagebuilder'}
</span>
</label>
<div class="col-lg-5">
<select class="select_zoom" name="templatezoomtype">
<option value="in">{l s='Zoom In' mod='appagebuilder'}</option>
<option value="in_scrooll">{l s='Scroll To Zoom' mod='appagebuilder'}</option>
<option value="out">{l s='Zoom Out' mod='appagebuilder'}</option>
<option value="none">{l s='None' mod='appagebuilder'}</option>
</select>
<p class="help-block">{l s='\'Scroll To Zoom\' doesn\'t work on Internet Explorer. Default is replaced' mod='appagebuilder'}</p>
</div>
</div>
<div class="form-group select-zoom-none">
<label class="control-label col-lg-5">
<span class="label-tooltip" data-toggle="tooltip">
{l s='Zoom position' mod='appagebuilder'}
</span>
</label>
<div class="col-lg-5">
<select class="select_position" name="zoomposition">
<option value="right">{l s='Right' mod='appagebuilder'}</option>
<option value="left">{l s='Left' mod='appagebuilder'}</option>
<option value="top">{l s='Top' mod='appagebuilder'}</option>
<option value="bottom">{l s='Bottom' mod='appagebuilder'}</option>
</select>
</div>
</div>
<div class="form-group select-zoom-none">
<label class="control-label col-lg-5">
<span class="label-tooltip" data-toggle="tooltip">
{l s='Zoom window width' mod='appagebuilder'}
</span>
</label>
<div class="col-lg-5">
<input type="text" name="zoomwindowwidth" value="400">
</div>
</div>
<div class="form-group select-zoom-none">
<label class="control-label col-lg-5">
<span class="label-tooltip" data-toggle="tooltip">
{l s='Zoom window height' mod='appagebuilder'}
</span>
</label>
<div class="col-lg-5">
<input type="text" name="zoomwindowheight" value="400">
</div>
</div>
</div>
<div id="image-thumb-2">
<div class="form-group">
<label class="control-label col-lg-5">
<span class="label-tooltip" data-toggle="tooltip">
{l s='Zoom Type' mod='appagebuilder'}
</span>
</label>
<div class="col-lg-5">
<select class="select_zoom" name="templatezoomtype">
<option value="in">{l s='Zoom In' mod='appagebuilder'}</option>
<option value="in_scrooll">{l s='Scroll To Zoom' mod='appagebuilder'}</option>
<option value="out">{l s='Zoom Out' mod='appagebuilder'}</option>
<option value="none">{l s='None' mod='appagebuilder'}</option>
</select>
<p class="help-block">{l s='\'Scroll To Zoom\' doesn\'t work on Internet Explorer. Default is replaced' mod='appagebuilder'}</p>
</div>
</div>
<div class="form-group select-zoom-none">
<label class="control-label col-lg-5">
<span class="label-tooltip" data-toggle="tooltip">
{l s='Zoom position' mod='appagebuilder'}
</span>
</label>
<div class="col-lg-5">
<select class="select_position" name="zoomposition">
<option value="right">{l s='Right' mod='appagebuilder'}</option>
<option value="left">{l s='Left' mod='appagebuilder'}</option>
<option value="top">{l s='Top' mod='appagebuilder'}</option>
<option value="bottom">{l s='Bottom' mod='appagebuilder'}</option>
</select>
</div>
</div>
<div class="form-group select-zoom-none">
<label class="control-label col-lg-5">
<span class="label-tooltip" data-toggle="tooltip">
{l s='Zoom window width' mod='appagebuilder'}
</span>
</label>
<div class="col-lg-5">
<input type="text" name="zoomwindowwidth" value="400">
</div>
</div>
<div class="form-group select-zoom-none">
<label class="control-label col-lg-5">
<span class="label-tooltip" data-toggle="tooltip">
{l s='Zoom window height' mod='appagebuilder'}
</span>
</label>
<div class="col-lg-5">
<input type="text" name="zoomwindowheight" value="400">
</div>
</div>
</div>
<div id="addnew-column-form">
<ul class="list-group dropdown-menu">
{for $i=1 to 6}
<li>
<a href="javascript:void(0);" data-col="{$i|escape:'html':'UTF-8'}" data-width="{(12/$i)|replace:'.':'-'|escape:'html':'UTF-8'}" class="column-add">
<span class="width-val ap-w-{$i|escape:'html':'UTF-8'}">{$i|escape:'html':'UTF-8'} {l s='column per row' mod='appagebuilder'} - ( {math equation="100/$i" x=$i format="%.2f"} % )</span>
</a>
</li>
{/for}
</ul>
</div>
<div id="group_config">
<div class="well">
<div class="row">
{if $input.type == 'ApRowclass'}
<label class="choise-class col-lg-12"><input type="checkbox" class="chk-row" data-value="row" value="1"> {l s='Use class row' mod='appagebuilder'}</label>
{/if}
<label class="control-label col-lg-1">{l s='Group Class:' mod='appagebuilder'}</label>
<div class="col-lg-11"><input type="text" class="element_class" value="row" name="class"></div>
</div><br/>
<div class="desc-bottom">
{l s='Insert new or select classes for toggling content across viewport breakpoints' mod='appagebuilder'}<br>
<ul class="ap-col-class">
<li>
<label class="choise-class"><input class="select-class no-save" name="hidden_from[]" type="radio" data-value="hidden-xl-down" value="1"> {l s='Hidden on All Devices' mod='appagebuilder'}</label>
</li>
<li>
<label class="choise-class"><input class="select-class no-save" name="hidden_from[]" type="radio" data-value="hidden-lg-down" value="1"> {l s='Hidden from Large devices (screen < 1200px)' mod='appagebuilder'}</label>
</li>
<li>
<label class="choise-class"><input class="select-class no-save" name="hidden_from[]" type="radio" data-value="hidden-md-down" value="1"> {l s='Hidden from Medium devices (screen < 992px)' mod='appagebuilder'}</label>
</li>
<li>
<label class="choise-class"><input class="select-class no-save" name="hidden_from[]" type="radio" data-value="hidden-sm-down" value="1"> {l s='Hidden from Small devices (screen < 768px)' mod='appagebuilder'}</label>
</li>
<li>
<label class="choise-class"><input class="select-class no-save" name="hidden_from[]" type="radio" data-value="hidden-xs-down" value="1"> {l s='Hidden from Extra small devices (screen < 576px)' mod='appagebuilder'}</label>
</li>
{*<li>
<label class="choise-class"><input class="select-class no-save" name="hidden_from[]" type="checkbox" data-value="hidden-xs-up" value="1"> {l s='Hidden from Smart Phone' mod='appagebuilder'}</label>
</li>*}
</ul>
</div>
</div>
</div>
<div id="column_config">
<div class="well">
<div class="row">
<label class="control-label col-lg-1">{l s='Column Class:' mod='appagebuilder'}</label>
<div class="col-lg-11"><input type="text" class="element_class" value="" name="class"></div>
</div><br/>
<div class="desc-bottom">
{l s='Insert new or select classes for toggling content across viewport breakpoints' mod='appagebuilder'}<br>
<ul class="ap-col-class">
<li>
<label class="choise-class"><input class="select-class no-save" name="hidden_from[]" type="radio" data-value="hidden-xl-down" value="1"> {l s='Hidden on All Devices' mod='appagebuilder'}</label>
</li>
<li>
<label class="choise-class"><input class="select-class no-save" name="hidden_from[]" type="radio" data-value="hidden-lg-down" value="1"> {l s='Hidden from Large devices (screen < 1200px)' mod='appagebuilder'}</label>
</li>
<li>
<label class="choise-class"><input class="select-class no-save" name="hidden_from[]" type="radio" data-value="hidden-md-down" value="1"> {l s='Hidden from Medium devices (screen < 992px)' mod='appagebuilder'}</label>
</li>
<li>
<label class="choise-class"><input class="select-class no-save" name="hidden_from[]" type="radio" data-value="hidden-sm-down" value="1"> {l s='Hidden from Small devices (screen < 768px)' mod='appagebuilder'}</label>
</li>
<li>
<label class="choise-class"><input class="select-class no-save" name="hidden_from[]" type="radio" data-value="hidden-xs-down" value="1"> {l s='Hidden from Extra small devices (screen < 576px)' mod='appagebuilder'}</label>
</li>
{*<li>
<label class="choise-class"><input class="select-class no-save" name="hidden_from[]" type="checkbox" data-value="hidden-xs-up" value="1"> {l s='Hidden from Smart Phone' mod='appagebuilder'}</label>
</li>*}
</ul>
</div>
</div>
<div class="panel panel-default">
<div class="panel-body">
<p>{l s='Responsive: You can config width for each Devices' mod='appagebuilder'}</p>
</div>
<table class="table">
<thead><tr>
<th>{l s='Devices' mod='appagebuilder'}</th>
<th>{l s='Width' mod='appagebuilder'}</th>
</tr></thead>
<tbody>
{foreach $input.columnGrids as $gridKey=>$gridValue}
<tr>
<td>
<span class="col-{$gridKey|escape:'html':'UTF-8'}"></span>
{$gridValue|escape:'html':'UTF-8'}
</td>
<td>
<div class="btn-group">
<input type='hidden' class="col-val" name='{$gridKey|escape:'html':'UTF-8'}' value="12"/>
<button type="button" class="btn btn-default apbtn-width dropdown-toggle" tabindex="-1" data-toggle="dropdown">
<span class="width-val ap-w-12">12/12 - ( 100 % )</span><span class="caret"></span>
</button>
<ul class="dropdown-menu">
{foreach from=$input.widthList item=itemWidth}
<li>
<a class="width-select width-select-{$gridKey}-{$itemWidth|replace:'.':'-'|escape:'html':'UTF-8'}" href="javascript:void(0);" tabindex="-1">
<span data-width="{$itemWidth|replace:'.':'-'|escape:'html':'UTF-8'}" class="width-val ap-w-{if $itemWidth|strpos:"."|escape:'html':'UTF-8'}{$itemWidth|replace:'.':'-'|escape:'html':'UTF-8'}{else}{$itemWidth|escape:'html':'UTF-8'}{/if}">{$itemWidth|escape:'html':'UTF-8'}/12 - ( {math equation="x/y*100" x=$itemWidth|replace:'-':'.' y=12 format="%.2f"} % )</span>
</a>
</li>
{/foreach}
</ul>
</div>
</td>
</tr>
{/foreach}
</tbody>
</table>
</div>
</div>
{include file='./column.tpl' defaultColumn=1}
</div>
{/if}
{$smarty.block.parent}
{/block}

View File

@@ -0,0 +1,36 @@
<?php
/*
* 2007-2012 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2012 PrestaShop SA
* @version Release: $Revision: 13573 $
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

View File

@@ -0,0 +1,36 @@
<?php
/*
* 2007-2012 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2012 PrestaShop SA
* @version Release: $Revision: 13573 $
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

View File

@@ -0,0 +1,36 @@
<?php
/*
* 2007-2012 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2012 PrestaShop SA
* @version Release: $Revision: 13573 $
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

View File

@@ -0,0 +1,117 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<!-- @file modules\appagebuilder\views\templates\admin\_configure\ap_page_builder_products\helpers\form\form -->
{extends file="helpers/form/form.tpl"}
{block name="field"}
{if $input.type == 'ap_proGrid'}
<div class="col-lg-9 {$input.type|escape:'html':'UTF-8'}">
<div class="row">
<div class="col-lg-8 col-md-8">
<div class="panel product-container">
<div class="desc-box">product-container</div>
{foreach $input.blockList key=kBlock item=vblock}
<div class="{$vblock.class|escape:'html':'UTF-8'}">
<div class="panel-heading">{$vblock.title|escape:'html':'UTF-8'}</div>
<div class="content {$kBlock|escape:'html':'UTF-8'}-block-content">
{assign var=blockElement value=$input.params[$kBlock]}
{foreach $blockElement item=gridElement}
{if $gridElement.name == 'functional_buttons'}
{assign var=iconVal value='icon-puzzle-piece'}
{assign var=NameVal value=$gridElement.name}
{else if $gridElement.name == 'code'}
{assign var=iconVal value='icon-code'}
{assign var=NameVal value='code'}
{else}
{assign var=iconVal value=$input.elements[$gridElement.name]['icon']}
{assign var=NameVal value=$input.elements[$gridElement.name]['name']}
{/if}
<div class="{$gridElement.name|escape:'html':'UTF-8'} plist-element" data-element='{$gridElement.name|escape:'html':'UTF-8'}'><i class="{$iconVal|escape:'html':'UTF-8'}"></i> {$NameVal|escape:'html':'UTF-8'}
{if $gridElement.name == 'code'}
<div class="desc-box"><i class="icon-code"></i> tpl code</div>
{/if}
<div class="pull-right">
<a class="plist-eremove"><i class="icon-trash"></i></a>
<a class="plist-eedit" data-element='{$gridElement.name|escape:'html':'UTF-8'}'><i class="icon-edit"></i></a>
</div>
{if $gridElement.name == 'functional_buttons'}
<div class="content">
{if isset($gridElement.element)}
{foreach $gridElement.element item=gridSubElement}
{if $gridSubElement.name == 'code'}
{assign var=iconVal value='icon-code'}
{assign var=NameVal value='code'}
{else}
{assign var=iconVal value=$input.elements[$gridSubElement.name]['icon']}
{assign var=NameVal value=$input.elements[$gridSubElement.name]['name']}
{/if}
<div class="{$gridSubElement.name|escape:'html':'UTF-8'} plist-element" data-element='{$gridSubElement.name|escape:'html':'UTF-8'}'><i class="{$iconVal|escape:'html':'UTF-8'}"></i> {$NameVal|escape:'html':'UTF-8'}
{if $gridSubElement.name == 'code'}
<div class="desc-box"><i class="icon-code"></i> tpl code</div>
{/if}
<div class="pull-right">
<a class="plist-eremove"><i class="icon-trash"></i></a>
<a class="plist-eedit" data-element='{$gridSubElement.name|escape:'html':'UTF-8'}'><i class="icon-edit"></i></a>
</div>
{if $gridSubElement.name == 'code'}
<div class="content-code">
<textarea name="filecontent" id="filecontent" rows="5" value="" class="">{$gridSubElement.code nofilter}{* HTML form , no escape necessary *}</textarea>
</div>
{/if}
</div>
{/foreach}
{/if}
</div>
{/if}
{if $gridElement.name == 'code'}
<div class="content-code">
<textarea name="filecontent" rows="5" class="">{$gridElement.code nofilter}{* HTML form , no escape necessary *}</textarea>
</div>
{/if}
</div>
{/foreach}
</div>
</div>
{/foreach}
</div>
</div>
<div class="col-lg-4 col-md-4 element-list content">
{foreach from=$input.elements key=eKey item=eItem}
<div class="{$eKey|escape:'html':'UTF-8'} plist-element" data-element='{$eKey|escape:'html':'UTF-8'}'><i class="{$eItem.icon|escape:'html':'UTF-8'}"></i> {$eItem.name|escape:'html':'UTF-8'}
<div class="pull-right">
<a class="plist-eremove"><i class="icon-trash"></i></a>
<a class="plist-eedit" data-element='{$eKey|escape:'html':'UTF-8'}'><i class="icon-edit"></i></a>
</div>
</div>
{/foreach}
<div class="code plist-element" data-element='code'>
<div class="desc-box"><i class="icon-code"></i> tpl code</div>
<div class="pull-right">
<a class="plist-code"><i class="icon-code"></i></a>
<a class="plist-eremove"><i class="icon-trash"></i></a>
</div>
<div class="content-code">
<textarea name="filecontent" rows="5" class=""></textarea>
</div>
</div>
<div class="functional_buttons plist-element" data-element='functional_buttons'>
<div class="desc-box"><i class="icon-puzzle-piece"></i> functional-buttons</div>
<div class="pull-right">
<a class="plist-eremove"><i class="icon-trash"></i></a>
</div>
<div class="content"></div>
</div>
</div>
</div>
</div>
{/if}
{$smarty.block.parent}
{/block}

View File

@@ -0,0 +1,36 @@
<?php
/*
* 2007-2012 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2012 PrestaShop SA
* @version Release: $Revision: 13573 $
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

View File

@@ -0,0 +1,36 @@
<?php
/*
* 2007-2012 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2012 PrestaShop SA
* @version Release: $Revision: 13573 $
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

View File

@@ -0,0 +1,36 @@
<?php
/*
* 2007-2012 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2012 PrestaShop SA
* @version Release: $Revision: 13573 $
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

View File

@@ -0,0 +1,770 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<!-- @file modules\appagebuilder\views\templates\admin\_configure\helpers\form\form -->
{extends file="helpers/form/form.tpl"}
{block name="field"}
{if $input.type == 'blockLink'}
<script>
function getMaxIndex()
{
if($('.link_group').length == 0)
{
return 1;
}
else
{
var list_index = [];
$('.link_group').each(function(){
list_index.push($(this).data('index'));
})
return Math.max.apply(Math,list_index) + 1;
}
}
function updateNewLink(total_link, scroll_to_new_e, current_index, allow_add_fieldname)
{
var array_id_lang = $.parseJSON(list_id_lang);
if(allow_add_fieldname){
$('.form-group.link_group.new .form-action').trigger("change"); // FIX show_hide input follow select_box
hideOtherLanguage(id_language); // FIX when add new link, only show input in current_lang
updateField('add','link_title_'+total_link,true);
updateField('add','link_url_'+total_link,true);
updateField('add','target_type_'+total_link, false);
updateField('add','link_type_'+total_link, false);
updateField('add','cmspage_id_'+total_link, false);
updateField('add','category_id_'+total_link, false);
updateField('add','product_id_'+total_link, false);
updateField('add','manufacture_id_'+total_link, false);
updateField('add','page_id_'+total_link, false);
updateField('add','page_param_'+total_link, false);
updateField('add','supplier_id_'+total_link, false);
}
$('.link_group.new .form-group .tmp').each(function(){
// RENAME INPUT
var e_obj = $(this);
if($(this).closest(".translatable-field").length)
{
// MULTI_LANG
$.each(array_id_lang, function( index, value ) {
if (current_index == 0)
{
// ADD NEW
switch(e_obj.attr('id'))
{
case 'link_title_'+value:
e_obj.attr('id','link_title_'+total_link+'_'+value);
e_obj.attr('name','link_title_'+total_link+'_'+value);
break;
case 'link_url_'+value:
e_obj.attr('id','link_url_'+total_link+'_'+value);
e_obj.attr('name','link_url_'+total_link+'_'+value);
break;
}
}
});
}else{
// ONE_LANG
switch(e_obj.attr('id'))
{
case 'link_title_'+id_language:
e_obj.attr('id','link_title_'+total_link+'_'+id_language);
e_obj.attr('name','link_title_'+total_link+'_'+id_language);
break;
case 'link_url_'+id_language:
e_obj.attr('id','link_url_'+total_link+'_'+id_language);
e_obj.attr('name','link_url_'+total_link+'_'+id_language);
break;
default:
var old_id = e_obj.attr('id');
var old_name = e_obj.attr('name');
e_obj.attr('id',old_id+'_'+total_link);
e_obj.attr('name',old_name+'_'+total_link);
break;
}
}
});
$("#total_link").val(total_link);
}
function updateField(action, value, is_lang)
{
if (action == 'add')
{
if (is_lang == true)
{
$('#list_field_lang').val($('#list_field_lang').val()+value+',');
}
else
{
$('#list_field').val($('#list_field').val()+value+',');
}
}
else
{
// REMOVE
if (is_lang == true)
{
var old_list_field_lang = $('#list_field_lang').val();
var new_list_field_lang = old_list_field_lang.replace(value+',','');
$('#list_field_lang').val(new_list_field_lang);
}
else
{
var old_list_field = $('#list_field').val();
var new_list_field = old_list_field.replace(value+',','');
$('#list_field').val(new_list_field);
}
}
// UPDATE INDEX FORM 2,3,4,5,
$('#list_id_link').val('');
$('.link_group').each(function(){
$('#list_id_link').val($('#list_id_link').val()+$(this).data('index')+',');
})
}
$(document).off("click", ".add-new-link");
$(document).on("click", ".add-new-link", function(e) {
e.preventDefault();
addLinkForm();
});
/**
* ACTION FOR BUTTON ADD NEW
* param : index for edit ajax_widget
*/
function addLinkForm( index ){
var maxIndex = getMaxIndex();
var allow_add_fieldname = true;
if(index){
maxIndex = index;
allow_add_fieldname = false;
}
var new_link_html = '';
new_link_html += '<div class="form-group link_group new">';
$('.parent-tmp').each(function(){
new_link_html += $(this).prop('outerHTML');
new_link_html = new_link_html.replace('parent-tmp hidden','');
new_link_html = new_link_html.replace('parent-tmp','');
new_link_html = new_link_html.replace('display: none;','');
});
new_link_html += "<div class='form-group'>";
new_link_html += "<div class='col-lg-3'></div>";
new_link_html += "<div class='col-lg-9'>";
new_link_html += "<button class='fr btn btn-warning remove_link'>"+remove_button_text+"</button>";
new_link_html += '</div>';
new_link_html += '</div>';
new_link_html += '</div>';
$(new_link_html).insertBefore('.form-group.frm-add-new-link').data('index', maxIndex);
updateNewLink(maxIndex, true , 0, allow_add_fieldname);
$('.link_group.new').removeClass('new');
}
$(document).off("click", ".remove_link");
$(document).on("click", ".remove_link", function(e) {
e.preventDefault();
$(this).closest('.link_group').find('.tmp').each(function(){
// REMOVE FORM list_field, list_field_lang
var name_val = $(this).attr('name');
if($(this).closest(".translatable-field").length)
{
name_val = name_val.substring(0, name_val.lastIndexOf('_'));
updateField('remove',name_val,true);
}
else
{
updateField('remove',name_val,false);
}
});
$(this).closest('.link_group').fadeOut(function(){
// REMOVE FORM
$(this).remove();
var total_link = parseInt($("#total_link").val())-1;
$("#total_link").val(total_link);
$('#list_id_link').val('');
$('.link_group').each(function(){
$('#list_id_link').val($('#list_id_link').val()+$(this).data('index')+',');
})
});
});
$(document).off("change", ".form-action");
$(".form-action").each(function(e) {
$(this).attr('data-name', $(this).attr('name') );
});
$(document).on("change", ".link_group .form-action", function(e) {
var elementName = $(this).attr('data-name');
$('.' + elementName + '_sub', $(this).closest('.form-group.link_group')).hide();
$('.' + elementName + '-' + $(this).val(), $(this).closest('.form-group.link_group')).show();
});
/**
* AJAX FOR EDIT BLOCKLINK WIDGET
*/
function editWidgetLink()
{
if ($('#list_id_link').length && $('#list_id_link').val() != '')
{
var list_id_link = $('#list_id_link').val().split(',');
$.each(list_id_link, function( index, value ) {
if (value != '')
{
// GENERATE FORM
addLinkForm(value);
}
});
$.each(listData, function( index, value ) {
// FILL DATA INTO FORM
$('#'+index).val(value);
$('#'+index).val(value).prop('selected', true);;
});
setTimeout(function(){
// SHOW_HIDE INPUT FOLLOW SELECT_BOX
$('.form-group.link_group .form-action').trigger("change");
}, 500);
}
}
editWidgetLink();
</script>
{/if}
{if $input.type == 'leoalert'}
{if $input.show}
<div class="alert alert-danger">
{if isset($input.href) && $input.href}
<a href="{$input.href}" target="_blank">
{/if}
{$input.html_text}
{if isset($input.href) && $input.href}
</a>
{/if}
</div>
{/if}
{/if}
{if $input.type == 'counterbox'}
<script>
function getMaxIndex()
{
if($('.link_group').length == 0)
{
return 1;
}
else
{
var list_index = [];
$('.link_group').each(function(){
list_index.push($(this).data('index'));
})
return Math.max.apply(Math,list_index) + 1;
}
}
function updateNewLink(total_link, scroll_to_new_e, current_index, allow_add_fieldname)
{
var array_id_lang = $.parseJSON(list_id_lang);
if(allow_add_fieldname){
$('.form-group.link_group.new .form-action').trigger("change"); // FIX show_hide input follow select_box
hideOtherLanguage(id_language); // FIX when add new link, only show input in current_lang
updateField('add','link_title_'+total_link,true);
updateField('add','bootom_html_'+total_link, true);
updateField('add','min_'+total_link,false);
updateField('add','max_'+total_link, false);
updateField('add','increment_'+total_link, false);
updateField('add','number_suffix_'+total_link, false);
updateField('add','delay_'+total_link, false);
updateField('add','counterclass_'+total_link, false);
}
$('.link_group.new .form-group .tmp').each(function(){
// RENAME INPUT
var e_obj = $(this);
if($(this).closest(".translatable-field").length)
{
// MULTI_LANG
$.each(array_id_lang, function( index, value ) {
if (current_index == 0)
{
// ADD NEW
switch(e_obj.attr('id'))
{
case 'link_title_'+value:
e_obj.attr('id','link_title_'+total_link+'_'+value);
e_obj.attr('name','link_title_'+total_link+'_'+value);
break;
case 'bootom_html_'+value:
e_obj.attr('id','bootom_html_'+total_link+'_'+value);
e_obj.attr('name','bootom_html_'+total_link+'_'+value);
break;
}
}
});
}else{
// ONE_LANG
switch(e_obj.attr('id'))
{
case 'link_title_'+id_language:
e_obj.attr('id','link_title_'+total_link+'_'+id_language);
e_obj.attr('name','link_title_'+total_link+'_'+id_language);
break;
case 'bootom_html_'+id_language:
e_obj.attr('id','bootom_html_'+total_link+'_'+id_language);
e_obj.attr('name','bootom_html_'+total_link+'_'+id_language);
break;
default:
var old_id = e_obj.attr('id');
var old_name = e_obj.attr('name');
e_obj.attr('id',old_id+'_'+total_link);
e_obj.attr('name',old_name+'_'+total_link);
break;
}
}
});
$("#total_link").val(total_link);
}
function updateField(action, value, is_lang)
{
if (action == 'add')
{
if (is_lang == true)
{
$('#list_field_lang').val($('#list_field_lang').val()+value+',');
}
else
{
$('#list_field').val($('#list_field').val()+value+',');
}
}
else
{
// REMOVE
if (is_lang == true)
{
var old_list_field_lang = $('#list_field_lang').val();
var new_list_field_lang = old_list_field_lang.replace(value+',','');
$('#list_field_lang').val(new_list_field_lang);
}
else
{
var old_list_field = $('#list_field').val();
var new_list_field = old_list_field.replace(value+',','');
$('#list_field').val(new_list_field);
}
}
// UPDATE INDEX FORM 2,3,4,5,
$('#list_id_link').val('');
$('.link_group').each(function(){
$('#list_id_link').val($('#list_id_link').val()+$(this).data('index')+',');
})
}
$(document).off("click", ".add-new-link");
$(document).on("click", ".add-new-link", function(e) {
e.preventDefault();
addLinkForm();
});
/**
* ACTION FOR BUTTON ADD NEW
* param : index for edit ajax_widget
*/
function addLinkForm( index ){
var maxIndex = getMaxIndex();
var allow_add_fieldname = true;
if(index){
maxIndex = index;
allow_add_fieldname = false;
}
var new_link_html = '';
new_link_html += '<div class="form-group link_group new">';
$('.parent-tmp').each(function(){
new_link_html += $(this).prop('outerHTML');
new_link_html = new_link_html.replace('parent-tmp hidden','');
new_link_html = new_link_html.replace('parent-tmp','');
new_link_html = new_link_html.replace('display: none;','');
});
new_link_html += "<div class='form-group'>";
new_link_html += "<div class='col-lg-3'></div>";
new_link_html += "<div class='col-lg-9'>";
new_link_html += "<button class='fr btn btn-warning remove_link'>"+remove_button_text+"</button>";
new_link_html += '</div>';
new_link_html += '</div>';
new_link_html += '</div>';
$(new_link_html).insertBefore('.form-group.frm-add-new-link').data('index', maxIndex);
updateNewLink(maxIndex, true , 0, allow_add_fieldname);
$('.link_group.new').removeClass('new');
}
$(document).off("click", ".remove_link");
$(document).on("click", ".remove_link", function(e) {
e.preventDefault();
$(this).closest('.link_group').find('.tmp').each(function(){
// REMOVE FORM list_field, list_field_lang
var name_val = $(this).attr('name');
if($(this).closest(".translatable-field").length)
{
name_val = name_val.substring(0, name_val.lastIndexOf('_'));
updateField('remove',name_val,true);
}
else
{
updateField('remove',name_val,false);
}
});
$(this).closest('.link_group').fadeOut(function(){
// REMOVE FORM
$(this).remove();
var total_link = parseInt($("#total_link").val())-1;
$("#total_link").val(total_link);
$('#list_id_link').val('');
$('.link_group').each(function(){
$('#list_id_link').val($('#list_id_link').val()+$(this).data('index')+',');
})
});
});
$(document).off("change", ".form-action");
$(".form-action").each(function(e) {
$(this).attr('data-name', $(this).attr('name') );
});
$(document).on("change", ".link_group .form-action", function(e) {
var elementName = $(this).attr('data-name');
$('.' + elementName + '_sub', $(this).closest('.form-group.link_group')).hide();
$('.' + elementName + '-' + $(this).val(), $(this).closest('.form-group.link_group')).show();
});
/**
* AJAX FOR EDIT BLOCKLINK WIDGET
*/
function editWidgetLink()
{
if ($('#list_id_link').length && $('#list_id_link').val() != '')
{
var list_id_link = $('#list_id_link').val().split(',');
$.each(list_id_link, function( index, value ) {
if (value != '')
{
// GENERATE FORM
addLinkForm(value);
}
});
$.each(listData, function( index, value ) {
// FILL DATA INTO FORM
$('#'+index).val(value);
$('#'+index).val(value).prop('selected', true);;
});
setTimeout(function(){
// SHOW_HIDE INPUT FOLLOW SELECT_BOX
$('.form-group.link_group .form-action').trigger("change");
}, 500);
}
}
editWidgetLink();
</script>
{/if}
{if $input.type == 'tabConfig'}
<div class="row">
{assign var=tabList value=$input.values}
<ul class="nav nav-tabs" role="tablist">
{foreach $tabList as $key => $value name="tabList"}
<li role="presentation" class="{if $smarty.foreach.tabList.first}active{/if}"><a href="#{$key|escape:'html':'UTF-8'}" class="aptab-config" role="tab" data-toggle="tab">{$value|escape:'html':'UTF-8'}</a></li>
{/foreach}
</ul>
</div>
{/if}
{if $input.type == 'image_url_360'}
<div class="col-lg-9">
<input type="text" value="" name="image_link_360"/>
<button type="button" class="btn btn-default btn-image_link_360">{l s='Use this image url' mod='appagebuilder'}</button>
</div>
{/if}
{if $input.type == 'selectImg'}
{if isset($input.lang) AND $input.lang}
<div class="row selectImg lang">
{foreach from=$languages item=language}
{if $languages|count > 1}
<div class="translatable-field lang-{$language.id_lang|escape:'html':'UTF-8'}" data-lang="{$language.id_lang|escape:'html':'UTF-8'}" {if $language.id_lang != $defaultFormLanguage}style="display:none"{/if}>
{/if}
<div class="col-lg-6">
{if isset($input.show_image) && $input.show_image != false}
{if isset($fields_value[$input.name][$language.id_lang]) && $fields_value[$input.name][$language.id_lang]}
<img src="{$path_image|escape:'html':'UTF-8'}{$fields_value[$input.name][$language.id_lang]|escape:'html':'UTF-8'}" class="img-thumbnail" data-img="">
{/if}
{/if}
<div style="margin-top: 10px; font-size: 13px;">
<a class="choose-img {if isset($input.class)}{$input.class|escape:'html':'UTF-8'}{/if}" data-fancybox-type="iframe" href="{$input.href|escape:'html':'UTF-8'}" data-for="#{$input.name|escape:'html':'UTF-8'}_{$language.id_lang|escape:'html':'UTF-8'}">{l s='Select image' mod='appagebuilder'}</a>
-
<a class="reset-img">{l s='Reset this image' mod='appagebuilder'}</a>
-
<a class="reset-allimg">{l s='Reset all image' mod='appagebuilder'}</a>
</div>
<input id="{$input.name|escape:'html':'UTF-8'}_{$language.id_lang|escape:'html':'UTF-8'}" type="text" name="{$input.name|escape:'html':'UTF-8'}_{$language.id_lang|escape:'html':'UTF-8'}" class="hide img-value{if isset($input.class)} {$input.class|escape:'html':'UTF-8'}{/if}" value="{if isset($fields_value[$input.name][$language.id_lang]) && ($fields_value[$input.name][$language.id_lang])}{$fields_value[$input.name][$language.id_lang]|escape:'html':'UTF-8'}{/if}"/>
</div>
{if isset($input.lang) AND $input.lang }
{if $languages|count > 1}
<div class="col-lg-2">
<button type="button" class="btn btn-default dropdown-toggle" tabindex="-1" data-toggle="dropdown">
{$language.iso_code|escape:'html':'UTF-8'}
<span class="caret"></span>
</button>
<ul class="dropdown-menu">
{foreach from=$languages item=lang}
<li><a href="javascript:hideOtherLanguage({$lang.id_lang|escape:'html':'UTF-8'});" tabindex="-1">{$lang.name|escape:'html':'UTF-8'}</a></li>
{/foreach}
</ul>
</div>
{/if}
{/if}
{if $languages|count > 1}
</div>
{/if}
<script type="text/javascript">
$(document).ready(function(){
$('#{$input.name|escape:'html':'UTF-8'}_{$language.id_lang|escape:'html':'UTF-8'}-selectbutton').click(function(e){
$('#{$input.name|escape:'html':'UTF-8'}_{$language.id_lang|escape:'html':'UTF-8'}').trigger('click');
});
$('#{$input.name|escape:'html':'UTF-8'}_{$language.id_lang|escape:'html':'UTF-8'}').change(function(e){
var val = $(this).val();
var file = val.split(/[\\/]/);
$('#{$input.name|escape:'html':'UTF-8'}_{$language.id_lang|escape:'html':'UTF-8'}-name').val(file[file.length-1]);
});
});
</script>
{/foreach}
</div>
{else}
<div class="row selectImg">
<div class="col-lg-6">
{if isset($input.show_image) && $input.show_image != false}
{if isset($fields_value[$input.name]) && $fields_value[$input.name]}
<img src="{$path_image|escape:'html':'UTF-8'}{$fields_value[$input.name]|escape:'html':'UTF-8'}" class="img-thumbnail" data-img="">
{/if}
{/if}
<div></div>
<a class="choose-img {if isset($input.class)}{$input.class|escape:'html':'UTF-8'}{/if}" data-fancybox-type="iframe" href="{$input.href|escape:'html':'UTF-8'}" data-for="#{$input.name|escape:'html':'UTF-8'}">{l s='Select image' mod='appagebuilder'}</a> -
<a href="javascript:void(0)" onclick="resetLeoImage();">{l s='Reset' mod='appagebuilder'}</a>
<input id="{$input.name|escape:'html':'UTF-8'}" type="text" name="{$input.name|escape:'html':'UTF-8'}" class="hide input-s-image" value="{if isset($fields_value[$input.name]) && ($fields_value[$input.name])}{$fields_value[$input.name]|escape:'html':'UTF-8'} {/if}"/>
<script type="text/javascript">
function resetLeoImage(){
// Reset img and hidden input
$(".img-thumbnail").hide();
$(".img-thumbnail").attr('src','');
$(".input-s-image").val('');
}
</script>
</div>
<script type="text/javascript">
$(document).ready(function(){
$('#{$input.name|escape:'html':'UTF-8'}-selectbutton').click(function(e){
$('#{$input.name|escape:'html':'UTF-8'}').trigger('click');
});
$('#{$input.name|escape:'html':'UTF-8'}').change(function(e){
var val = $(this).val();
var file = val.split(/[\\/]/);
$('#{$input.name|escape:'html':'UTF-8'}-name').val(file[file.length-1]);
});
});
</script>
</div>
{/if}
{/if}
{if $input.type == 'img_cat'}
{assign var=tree value=$input.tree}
{assign var=imageList value=$input.imageList}
{assign var=selected_images value=$input.selected_images}
<div class="form-group form-select-icon">
<label class="control-label col-lg-3 " for="categories"> {l s='Categories' mod='appagebuilder'} </label>
<div class="col-lg-9">
{$tree}{* HTML form , no escape necessary *}
</div>
<input type="hidden" name="category_img" id="category_img" value='{$selected_images|escape:'html':'UTF-8'}'/>
<div id="list_image_wrapper" style="display:none">
<div class="list-image">
<img id="apci" src="" class="hidden" path="{$input.path_image|escape:'html':'UTF-8'}" widget="ApCategoryImage"/>
<a data-for="#apci" href="{$input.href_image|escape:'html':'UTF-8'}" class="apcategoryimage field-link choose-img"> [{l s='Select image' mod='appagebuilder'}]</a>
<input type="text" class="image_link_cat" value="" placeholder="{l s='Image Link' mod='appagebuilder'}" style="width: 100px;display: inline-block;"/>
<a href="javascript:;" class="apcategoryimage field-link remove-img hidden"> [{l s='Remove image' mod='appagebuilder'}]</a>
</div>
</div>
<script type="text/javascript">
full_loaded = true;
intiForApCategoryImage();
</script>
</div>
{/if}
{if $input.type == 'categories'}
<script type="text/javascript">
var full_loaded = undefined;
</script>
{/if}
{if $input.type == 'bg_img'}
<div class="col-lg-9 ">
<input type="text" name="bg_img" id="bg_img" value="{$fields_value['bg_img']|escape:'html':'UTF-8'}" class="">
{if strpos($fields_value['bg_img'], "/") !== false}
<img id="s-image" src="{$fields_value['bg_img']|escape:'html':'UTF-8'}"/>
{else}
<img id="s-image"{if !$fields_value['bg_img']} class="hidden" src="" {else}src="{$input['img_link']|escape:'html':'UTF-8'}{$fields_value['bg_img']|escape:'html':'UTF-8'}"{/if}/>
{/if}
<div>
<a class="choose-img" data-fancybox-type="iframe" href="{$link->getAdminLink('AdminApPageBuilderImages')|escape:'html':'UTF-8'}&ajax=1&action=manageimage&imgDir=images" data-for="#bg_img">{l s='Select image' mod='appagebuilder'}</a> -
<a class="reset-img" href="javascript:void(0)" onclick="resetBgImage();">{l s='Reset' mod='appagebuilder'}</a>
<a class="reset-allimg" href="javascript:void(0)" onclick="resetAllBgImage();">{l s='Reset All Language' mod='appagebuilder'}</a>
</div>
<p class="help-block">{l s='Please put image link or select image' mod='appagebuilder'}</p>
</div>
<script type="text/javascript">
function resetBgImage(){
// Reset img and hidden input
$("#s-image").addClass('hiden');
$("#s-image").attr('src','');
$("#bg_img").val('');
}
</script>
{/if}
{if $input.type == 'apExceptions'}
<div class="well">
<div>
{l s='Please specify the files for which you do not want it to be displayed.' mod='appagebuilder'}<br />
{l s='Please input each filename, separated by a comma (",").' mod='appagebuilder'}<br />
{l s='You can also click the filename in the list below, and even make a multiple selection by keeping the Ctrl key pressed while clicking, or choose a whole range of filename by keeping the Shift key pressed while clicking.' mod='appagebuilder'}<br />
{$exception_list}{* HTML form , no escape necessary *}
</div>
</div>
{/if}
{if $input.type == 'ApColumnclass' || $input.type == 'ApRowclass'}
<div class="">
<div class="well">
<div class="row">
{if $input.type == 'ApRowclass'}
<label class="choise-class col-lg-12"><input type="checkbox" class="chk-row" data-value="row" value="1"> {l s='Use class row' mod='appagebuilder'}</label>
{/if}
<label class="control-label col-lg-1">{$input.leolabel}</label>
<div class="col-lg-11"><input type="text" class="element_class" value="{$fields_value['class']|escape:'html':'UTF-8'}" name="class"></div>
</div><br/>
<div class="desc-bottom">
{l s='Insert new or select classes for toggling content across viewport breakpoints' mod='appagebuilder'}<br>
<ul class="ap-col-class">
<li>
<label class="choise-class"><input class="select-class" name="hidden_from[]" type="radio" data-value="hidden-xl-down" value="1"> {l s='Hidden on All Devices' mod='appagebuilder'}</label>
</li>
<li>
<label class="choise-class"><input class="select-class" name="hidden_from[]" type="radio" data-value="hidden-lg-down" value="1"> {l s='Hidden from Large devices (screen < 1200px)' mod='appagebuilder'}</label>
</li>
<li>
<label class="choise-class"><input class="select-class" name="hidden_from[]" type="radio" data-value="hidden-md-down" value="1"> {l s='Hidden from Medium devices (screen < 992px)' mod='appagebuilder'}</label>
</li>
<li>
<label class="choise-class"><input class="select-class" name="hidden_from[]" type="radio" data-value="hidden-sm-down" value="1"> {l s='Hidden from Small devices (screen < 768px)' mod='appagebuilder'}</label>
</li>
<li>
<label class="choise-class"><input class="select-class" name="hidden_from[]" type="radio" data-value="hidden-xs-down" value="1"> {l s='Hidden from Extra small devices (screen < 576px)' mod='appagebuilder'}</label>
</li>
{*<li>
<label class="choise-class"><input class="select-class" name="hidden_from[]" type="checkbox" data-value="hidden-xs-up" value="1"> {l s='Hidden from Smart Phone' mod='appagebuilder'}</label>
</li>*}
</ul>
</div>
</div>
</div>
{/if}
{if $input.type == 'bg_select'}
{$image_uploader}{* HTML form , no escape necessary *}
{/if}
{if $input.type == 'column_width'}
<div class="panel panel-default">
<div class="panel-body">
<p>{l s='Responsive: You can config width for each Devices' mod='appagebuilder'}</p>
</div>
<table class="table">
<thead><tr>
<th>{l s='Devices' mod='appagebuilder'}</th>
<th>{l s='Width' mod='appagebuilder'}</th>
</tr></thead>
<tbody>
{foreach $input.columnGrids as $gridKey=>$gridValue}
<tr>
<td>
<span class="col-{$gridKey|escape:'html':'UTF-8'}"></span>
{$gridValue|escape:'html':'UTF-8'}
</td>
<td>
<div class="btn-group">
<input type='hidden' class="col-val" name='{$gridKey|escape:'html':'UTF-8'}' value="{$fields_value[$gridKey]|escape:'html':'UTF-8'}"/>
<button type="button" class="btn btn-default apbtn-width dropdown-toggle" tabindex="-1" data-toggle="dropdown">
<span class="width-val ap-w-{$fields_value[$gridKey]|replace:'.':'-'|escape:'html':'UTF-8'}">{$fields_value[$gridKey]|escape:'html':'UTF-8'}/12 - ( {math equation="x/y*100" x=$fields_value[$gridKey]|replace:'-':'.' y=12 format="%.2f"} % )</span><span class="caret"></span>
</button>
<ul class="dropdown-menu">
{foreach from=$widthList item=itemWidth}
<li>
<a class="width-select" href="javascript:void(0);" tabindex="-1">
<span data-width="{$itemWidth|replace:'.':'-'|escape:'html':'UTF-8'}" class="width-val ap-w-{if $itemWidth|strpos:"."|escape:'html':'UTF-8'}{$itemWidth|replace:'.':'-'|escape:'html':'UTF-8'}{else}{$itemWidth|escape:'html':'UTF-8'}{/if}">{$itemWidth|escape:'html':'UTF-8'}/12 - ( {math equation="x/y*100" x=$itemWidth|replace:'-':'.' y=12 format="%.2f"} % )</span>
</a>
</li>
{/foreach}
</ul>
</div>
</td>
</tr>
{/foreach}
</tbody>
</table>
</div>
{/if}
{if $input.type == 'reloadControler'}
<div class="col-lg-9 ">
<div style="margin-top: 5px; font-size: 13px;">
<a class="reload-controller-exception" href="javascript:void(0);">{l s='Reload' mod='appagebuilder'}</a>
</div>
</div>
<script>
$(document).off('click', '.reload-controller-exception').on('click', '.reload-controller-exception', function(){
$($globalthis.currentElement).data('form').reloadControllerException = '1';
var idFormApRow = $($globalthis.currentElement).data('form').form_id;
$('.'+idFormApRow+' .btn-edit').first().click();
$($globalthis.currentElement).data('form').reloadControllerException = '0';
});
</script>
{/if}
{$smarty.block.parent}
{/block}

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2019 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2019 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2019 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

View File

@@ -0,0 +1,8 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<!-- @file modules\appagebuilder\views\templates\admin\ap_page_builder_products\element_form -->

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2019 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

View File

@@ -0,0 +1,154 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<!-- @file modules\appagebuilder\views\templates\admin\ap_page_builder_home\home -->
{if isset($errorText) && $errorText}
<div class="error alert alert-danger">
{$errorText|escape:'html':'UTF-8'}
</div>
{/if}
{if isset($errorSubmit) && $errorSubmit}
<div class="error alert alert-danger">
{$errorSubmit|escape:'html':'UTF-8'}
</div>
{/if}
<form id="form_data_profile" name="form_data_profile" action="{$ajaxHomeUrl}&id_appagebuilder_profiles={$idProfile}" method="post">
<input id="data_profile" type="hidden" value="" name="data_profile" />
<input id="data_id_profile" type="hidden" value="" name="data_id_profile" />
<input id="submitSaveAndStay" type="hidden" value="1" name="submitSaveAndStay" />
<button class="hidden" type="submit">submit</button>
</form>
<div id="top_wrapper">
<a class="btn btn-default btn-form-toggle" title="{l s='Expand or Colapse' mod='appagebuilder'}">
<i class="icon-resize-small"></i>
</a>
<a class="btn btn-default btn-fwidth width-default" data-width="auto">{l s='Default' mod='appagebuilder'}</a>
<a class="btn btn-default btn-fwidth width-large" data-width="1200">{l s='Large' mod='appagebuilder'}</a>
<a class="btn btn-default btn-fwidth width-medium" data-width="992">{l s='Medium' mod='appagebuilder'}</a>
<a class="btn btn-default btn-fwidth width-small" data-width="768">{l s='Small' mod='appagebuilder'}</a>
<a class="btn btn-default btn-fwidth width-extra-small" data-width="603">{l s='Extra Small' mod='appagebuilder'}</a>
<a class="btn btn-default btn-fwidth width-mobile" data-width="480">{l s='Mobile' mod='appagebuilder'}</a>
<div class="btn btn-default leo-group-devicesd">
<a class="btn btn-default width-desktop leo-devicesd label-tooltip" title="Show only on desktop" data-width="1200"><i class="icon-desktop"></i></a>
<a class="btn btn-default width-tablet leo-devicesd label-tooltip" title="Show only on tablet " data-width="768"><i class="icon-tablet"></i></a>
<a class="btn btn-default width-mobile leo-devicesd label-tooltip" title="Show only on mobile " data-width="480"><i class="icon-mobile"></i></a>
</div>
<div class="pull-right control-right">
<div class="dropdown">
<a id="current_profile" class="btn btn-default" role="button" data-toggle="dropdown" data-target="#" data-id='{$currentProfile.id_appagebuilder_profiles|escape:'html':'UTF-8'}'>
<i class="icon-file-text"></i> {l s='Current Profile:' mod='appagebuilder'} {$currentProfile.name|escape:'html':'UTF-8'}{if $profilesList} <span class="caret"></span>{/if}
</a>
{if $profilesList}
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
{foreach from=$profilesList item=profile}
<li><a class="btn btn-select-profile" href="{$ajaxHomeUrl|escape:'html':'UTF-8'}&id_appagebuilder_profiles={$profile.id_appagebuilder_profiles|escape:'html':'UTF-8'}">{$profile.name|escape:'html':'UTF-8'}</a></li>
{/foreach}
</ul>
{/if}
</div>
<a class="btn btn-default btn-form-action btn-import" data-text="{l s='Import Form' mod='appagebuilder'}"><i class="icon-cloud-upload"></i> {l s='Import' mod='appagebuilder'}</a>
<div class="dropdown">
<a class="btn btn-default export_button" role="button" data-toggle="dropdown" data-target="#" href="/page.html">
<i class="icon-cloud-download"></i> {l s='Export Data' mod='appagebuilder'} <span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu" aria-labelledby="dLabel">
<li><a class="btn export-from btn-export" data-type="all"><strong>{l s='Profile' mod='appagebuilder'}</strong></a></li>
{foreach from=$exportItems key=position item=hookData}
<li><a class="btn export-from btn-export" data-type="position" data-position="{$position|lower|escape:'html':'UTF-8'}"><strong>{l s='Position' mod='appagebuilder'} {$position|escape:'html':'UTF-8'}</strong></a></li>
{foreach from=$hookData item=hook}
<li><a class="btn export-from btn-export" data-type="{$hook|escape:'html':'UTF-8'}">-------- Hook {$hook|escape:'html':'UTF-8'}</a></li>
{/foreach}
{/foreach}
</ul>
</div>
</div>
</div>
<div id="home_wrapper" class="default">
<div class="position-cover row" id="position-header">
{include file='./position.tpl' position='Header' config=$positions.header listPositions=$listPositions.header default=$currentPosition.header}
</div>
<div class="position-cover row" id="position-content">
{include file='./position.tpl' position='Content' config=$positions.content listPositions=$listPositions.content default=$currentPosition.content}
</div>
<div class="position-cover row" id="position-footer">
{include file='./position.tpl' position='Footer' config=$positions.footer listPositions=$listPositions.footer default=$currentPosition.footer}
</div>
<div class="position-cover row" id="position-product">
{include file='./position.tpl' position='Product' config=$positions.product listPositions=$listPositions.product default=$currentPosition.product}
</div>
</div>
<div id="bottom_wrapper">
<a class="btn btn-default btn-form-toggle" title="{l s='Expand or Colapse' mod='appagebuilder'}">
<i class="icon-resize-small"></i>
</a>
<a class="btn btn-default btn-fwidth width-default" data-width="auto">{l s='Default' mod='appagebuilder'}</a>
<a class="btn btn-default btn-fwidth width-large" data-width="1200">{l s='Large' mod='appagebuilder'}</a>
<a class="btn btn-default btn-fwidth width-medium" data-width="992">{l s='Medium' mod='appagebuilder'}</a>
<a class="btn btn-default btn-fwidth width-small" data-width="768">{l s='Small' mod='appagebuilder'}</a>
<a class="btn btn-default btn-fwidth width-extra-small" data-width="603">{l s='Extra Small' mod='appagebuilder'}</a>
<a class="btn btn-default btn-fwidth width-mobile" data-width="480">{l s='Mobile' mod='appagebuilder'}</a>
<div class="pull-right control-right">
<div class="dropdown">
<a class="btn btn-default" role="button" data-toggle="dropdown" data-target="#" data-id='{$currentProfile.id_appagebuilder_profiles|escape:'html':'UTF-8'}'>
<i class="icon-file-text"></i> {l s='Current Profile:' mod='appagebuilder'} {$currentProfile.name|escape:'html':'UTF-8'}{if $profilesList}<span class="caret"></span>{/if}
</a>
{if $profilesList}
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
{foreach from=$profilesList item=profile}
<li><a class="btn btn-select-profile" href="{$ajaxHomeUrl|escape:'html':'UTF-8'}&id_appagebuilder_profiles={$profile.id_appagebuilder_profiles|escape:'html':'UTF-8'}">{$profile.name|escape:'html':'UTF-8'}</a></li>
{/foreach}
</ul>
{/if}
</div>
<a class="btn btn-default btn-form-action btn-import" data-text="{l s='Import Form' mod='appagebuilder'}"><i class="icon-cloud-upload"></i> {l s='Import' mod='appagebuilder'}</a>
<div class="dropdown dropup">
<a class="btn btn-default export_button" role="button" data-toggle="dropdown" data-target="#">
<i class="icon-cloud-download"></i> {l s='Export Data' mod='appagebuilder'} <span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-menu-right" role="menu" aria-labelledby="dLabel">
<li><a class="btn export-from btn-export" data-type="all"><strong>{l s='Profile' mod='appagebuilder'}</strong></a></li>
{foreach from=$exportItems key=position item=hookData}
<li><a class="btn export-from btn-export" data-type="position" data-position="{$position|lower|escape:'html':'UTF-8'}"><strong>{l s='Position' mod='appagebuilder'} {$position|escape:'html':'UTF-8'}</strong></a></li>
{foreach from=$hookData item=hook}
<li><a class="btn export-from btn-export" data-type="{$hook|escape:'html':'UTF-8'}">-------- Hook {$hook|escape:'html':'UTF-8'}</a></li>
{/foreach}
{/foreach}
</ul>
</div>
</div>
</div>
<div id="ap_loading" class="ap-loading">
<div class="spinner">
<div class="cube1"></div>
<div class="cube2"></div>
</div>
</div>
{include file="$tplPath/ap_page_builder_home/home_form.tpl"}
<script type="text/javascript">
{addJsDef imgModuleLink=$imgModuleLink}
{addJsDef apAjaxShortCodeUrl=$ajaxShortCodeUrl}
{addJsDef apAjaxHomeUrl=$ajaxHomeUrl}
{addJsDef apImgController=$imgController}
var checkSaveMultithreading={$checkSaveMultithreading};
var checkSaveSubmit={$checkSaveSubmit};
$(document).ready(function(){
var $apHomeBuilder = $(document).apPageBuilder();
$apHomeBuilder.process('{$dataForm}{* HTML form , no escape necessary *}','{$shortcodeInfos}{* HTML form , no escape necessary *}','{$languages}{* HTML form , no escape necessary *}');
$apHomeBuilder.ajaxShortCodeUrl = apAjaxShortCodeUrl;
$apHomeBuilder.ajaxHomeUrl = apAjaxHomeUrl;
$apHomeBuilder.lang_id = '{$lang_id|escape:'html':'UTF-8'}';
$apHomeBuilder.imgController = apImgController;
$apHomeBuilder.profileId = '{$idProfile|escape:'html':'UTF-8'}';
});
</script>

View File

@@ -0,0 +1,92 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<!-- @file modules\appagebuilder\views\templates\admin\ap_page_builder_home\home_form -->
{*form for group*}
<div id="form_content" style="display:none;" data-select="{l s='You are sure data saved, before select other profile?' mod='appagebuilder'}" data-delete="{l s='Are you sure you want to delete?' mod='appagebuilder'}" data-reduce="{l s='Minimum value of width is 1' mod='appagebuilder'}" data-increase="{l s='Maximum value of width is 12' mod='appagebuilder'}">
<a id="export_process" href="" title="{l s='Export Process' mod='appagebuilder'}" download='group.txt' target="_blank" >{l s='Export Process' mod='appagebuilder'}</a>
<div id="addnew-group-form">
<ul class="list-group dropdown-menu">
{foreach from=$widthList item=itemWidth}
<li>
<a href="javascript:void(0);" data-width="{$itemWidth|escape:'html':'UTF-8'}" class="number-column">
<span class="width-val ap-w-{if $itemWidth|strpos:"."|escape:'html':'UTF-8'}{$itemWidth|replace:'.':'-'|escape:'html':'UTF-8'}{else}{$itemWidth|escape:'html':'UTF-8'}{/if}">{$itemWidth|escape:'html':'UTF-8'}/12 - ( {math equation="x/y*100" x=$itemWidth y=12 format="%.2f"} % )</span>
</a>
</li>
{/foreach}
</ul>
</div>
<div id="addnew-column-form">
<ul class="list-group dropdown-menu">
{for $i=1 to 6}
<li>
<a href="javascript:void(0);" data-col="{$i|escape:'html':'UTF-8'}" data-width="{(12/$i)|replace:'.':'-'|escape:'html':'UTF-8'}" class="column-add">
<span class="width-val ap-w-{$i|escape:'html':'UTF-8'}">{$i|escape:'html':'UTF-8'} {l s='column per row' mod='appagebuilder'} - ( {math equation="100/$i" x=$i format="%.2f"} % )</span>
</a>
</li>
{/for}
</ul>
</div>
<div id="addnew-widget-group-form">
<ul class="list-group dropdown-menu">
<li>
<a href="javascript:void(0);" data-col="0" data-width="0" class="group-add">
<span class="width-val ap-w-0">{l s='Create a group blank' mod='appagebuilder'}</span>
</a>
</li>
{for $i=1 to 6}
<li>
<a href="javascript:void(0);" data-col="{$i|escape:'html':'UTF-8'}" data-width="{(12/$i)|escape:'html':'UTF-8'}" class="group-add">
<span class="width-val ap-w-{$i|escape:'html':'UTF-8'}">{$i|escape:'html':'UTF-8'} {l s='column per row' mod='appagebuilder'} - ( {math equation="100/$i" x=$i format="%.2f"} % )</span>
</a>
</li>
{/for}
</ul>
</div>
{foreach from=$shortcodeForm item=sform}
{include file=$sform}
{/foreach}
</div>
<div class="modal fade" id="modal_form" data-backdrop="0" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content modal-lg">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span>
<span class="sr-only">{l s='Close' mod='appagebuilder'}</span></button>
<div class="box-search-widget">
<input type="text" id="txt-search" placeholder="{l s='Search' mod='appagebuilder'}"/>
</div>
<h4 class="modal-title" id="myModalLabel" data-addnew="{l s='Add new Widget' mod='appagebuilder'}" data-edit="{l s='Editting' mod='appagebuilder'}"></h4>
</div>
<div class="modal-body"></div>
<div class="modal-footer">
<button type="button" class="btn btn-default btn-back-to-list pull-left">{l s='Back to List' mod='appagebuilder'}</button>
<button type="button" class="btn btn-default" data-dismiss="modal">{l s='Close' mod='appagebuilder'}</button>
<button type="button" class="btn btn-primary btn-savewidget">{l s='Save changes' mod='appagebuilder'}</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="modal_select_image" data-backdrop="0" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content modal-lg">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span>
<span class="sr-only">{l s='Close' mod='appagebuilder'}</span></button>
<h4 class="modal-title2">{l s='Image manager' mod='appagebuilder'}</h4>
</div>
<div class="modal-body"></div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">{l s='Close' mod='appagebuilder'}</button>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2019 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

View File

@@ -0,0 +1,85 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<!-- @file modules\appagebuilder\views\templates\admin\ap_page_builder_home\position -->
<div class="header-cover">
<strong>Position {$position|escape:'html':'UTF-8'}</strong>
<div class="fr">
<div class="dropdown">
<div class="hide box-edit-position">
<div class="form-group">
<label>{l s='Position name:' mod='appagebuilder'}</label>
<input class="edit-name" value="" type="text" placeholder="{l s='Enter position name ' mod='appagebuilder'}"/>
</div>
<button type="button" class="btn btn-primary btn-save">{l s='Save' mod='appagebuilder'}</button>
<button type="button" class="btn btn-default" data-dismiss="modal">{l s='Close' mod='appagebuilder'}</button>
</div>
<a class="btn btn-default" id="dropdown-{$position|lower|escape:'html':'UTF-8'}" role="button" data-toggle="dropdown" data-target="#">
<i class="icon-columns"></i>
<span class="lbl-name">{l s='Current Position:' mod='appagebuilder'}
{if $default.name}{$default.name|escape:'html':'UTF-8'}{else}{l s=' Blank' mod='appagebuilder'}{/if}
</span>
{if $listPositions} <span class="caret"></span>{/if}
</a>
<ul class="dropdown-menu dropdown-menu-right list-position" role="menu" aria-labelledby="dLabel"
data-position="{$position|lower|escape:'html':'UTF-8'}" id="position-{$position|lower|escape:'html':'UTF-8'}"
data-id="{$default.id|escape:'html':'UTF-8'}" data-blank-error="{l s=' Please choose or create new a position ' mod='appagebuilder'}{$position|escape:'html':'UTF-8'}">
<li>
<a href="javascript:;" class="add-new-position" data-id="0">
<span>{l s='New ' mod='appagebuilder'}{$position|escape:'html':'UTF-8'}</span>
</a>
</li>
{if $listPositions}
{foreach from=$listPositions item=val}
{if isset($val.id_appagebuilder_positions)}
<li>
<a href="javascript:;" class="position-name" data-id="{$val.id_appagebuilder_positions|escape:'html':'UTF-8'}">
<span title="{$val.name|escape:'html':'UTF-8'}">{$val.name|escape:'html':'UTF-8'}</span>
<i class="icon-edit label-tooltip" data-id="{$val.id_appagebuilder_positions|escape:'html':'UTF-8'}" title="{l s='Edit name' mod='appagebuilder'}"></i>
<i class="icon-paste label-tooltip" data-id="{$val.id_appagebuilder_positions|escape:'html':'UTF-8'}" title="{l s='Duplicate' mod='appagebuilder'}" data-temp="{l s='Duplicate' mod='appagebuilder'}"></i>
</a>
</li>
{/if}
{/foreach}
{/if}
</ul>
</div>
</div>
</div>
<br/>
<div class="position-area">
{foreach from=$config key=hookKey item=hookData}
{if $hookKey == "displayHome"}
<div class="col-md-6 home-content-wrapper">
{/if}
<div class="hook-wrapper {$hookKey|escape:'html':'UTF-8'} {$hookData.class|escape:'html':'UTF-8'}" data-hook="{$hookKey|escape:'html':'UTF-8'}">
<div class="hook-top">
<div class="pull-left hook-desc">{*{$hookData.hook_name}*}</div>
<div class="hook-info text-center">
<a href="javascript:;" tabindex="0" class="open-group label-tooltip" title="{l s='Expand Hook' mod='appagebuilder'}" id="{$hookKey|escape:'html':'UTF-8'}" name="{$hookKey|escape:'html':'UTF-8'}">
{$hookKey|escape:'html':'UTF-8'} <i class="icon-circle-arrow-down"></i>
</a>
</div>
</div>
<div class="hook-content">
{if isset($hookData.content)}
{$hookData.content}{* HTML form , no escape necessary *}
{/if}
<div class="hook-content-footer text-center">
<a href="javascript:void(0)" tabindex="0" class="btn-new-widget-group" title="{l s='Add Widget in new Group' mod='appagebuilder'}" data-container="body" data-toggle="popover" data-placement="top" data-trigger="focus">
<i class="icon-plus"></i>
</a>
</div>
</div>
</div>
{if $hookKey == "displayHome"}
</div>
{/if}
{/foreach}
</div>

View File

@@ -0,0 +1,79 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<!-- @file modules\appagebuilder\views\templates\admin\ap_page_builder_shortcodes\shortcodelist -->
{if isset($importData)}
{else}
<ul class="nav nav-tabs" role="tablist" id="tab-new-widget">
<li role="presentation" class="active"><a href="#widget" aria-controls="widget" role="tab" data-toggle="tab">Widget</a></li>
<li id="popup_list_module" role="presentation"><a href="#module" aria-controls="module" role="tab" data-toggle="tab">Module</a></li>
</ul>
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="widget">
<ol class="breadcrumb in-widget filters for-widget" data-for="widget">
<li><a href="javascript:;"><button data-filter="*" class="btn is-checked">Show all</button></a></li>
<li><a href="javascript:;"><button data-filter="content" class="btn">Content</button></a></li>
<li><a href="javascript:;"><button data-filter="slider" class="btn">Slider</button></a></li>
<li><a href="javascript:;"><button data-filter="social" class="btn">Social</button></a></li>
<li><a href="javascript:;"><button data-filter="structure" class="btn">Structure</button></a></li>
</ol>
<div class="row" id="widget_container">
{foreach from=$shortCodeList key=kshort item=shortCode}
{if $kshort != 'ApModule'}
<div class="item col-md-3 col-sm-4 col-xs-6 " data-tag="{$shortCode.tag|escape:'html':'UTF-8'}">
<div class="cover-short-code">
<a href="javascript:void(0)" title="{$shortCode.desc|escape:'html':'UTF-8'}" class="shortcode new-shortcode" data-type='{$kshort|escape:'html':'UTF-8'}'>
<i class="icon {if isset($shortCode.icon_class)}{$shortCode.icon_class|escape:'html':'UTF-8'}{/if}"> </i>
<span class="label">{$shortCode.label|escape:'html':'UTF-8'}</span>
<small class="clearfix"><i>{$shortCode.desc|escape:'html':'UTF-8'}</i></small>
</a>
</div>
</div>
{/if}
{/foreach}
</div>
</div>
<div role="tabpanel" class="tab-pane" id="module">
<ol class="breadcrumb in-widget filters for-module" data-for="module">
<li><a href="javascript:;"><button data-filter="*" class="btn is-checked">{l s='Show all' mod='appagebuilder'}</button></a></li>
{foreach from=$author item=item}
<li><a href="javascript:;"><button data-filter="{$item|escape:'html':'UTF-8'}" class="btn">{$item|escape:'html':'UTF-8'}</button></a></li>
{/foreach}
<li><a href="javascript:;"><button data-filter="other" class="btn">{l s='Other' mod='appagebuilder'}</button></a></li>
<li><a href="javascript:;"><button data-filter="other" class="btn btn-new-widget reload-module">{l s='ReLoad' mod='appagebuilder'}</button></a></li>
</ol>
<div class="row" id="module_container">
{foreach from=$listModule key=kshort item=item}
<div class="item col-md-3 col-sm-4 col-xs-6 " data-tag="{if $item.author}{$item.author|escape:'html':'UTF-8'}{else}other{/if}">
<div class="cover-short-code">
<a href="javascript:void(0)" title="{if $item.description_short}{$item.description|escape:'html':'UTF-8'}{else}{$item.name|escape:'html':'UTF-8'}{/if}"
class="shortcode new-shortcode module" data-type="{$item.name|escape:'html':'UTF-8'}">
<img class="icon" src="../modules/{$item.name|escape:'html':'UTF-8'}/logo.png"/>
<span class="label">{$item.name|escape:'html':'UTF-8'}</span>
<small class="clearfix"><i>{$item.description_short|escape:'html':'UTF-8'}</i></small>
</a>
</div>
</div>
{/foreach}
</div>
</div>
</div>
<script type="text/javascript">
$(function () {
var tab = $(".btn-back-to-list").attr("tab");
$("#tab-new-widget a").each(function() {
if($(this).attr("aria-controls") == tab) {
$(this).tab("show");
}
});
//$("#tab-new-widget a:first").tab("show");
})
</script>
{/if}

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2019 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

View File

@@ -0,0 +1,509 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
{if $showed==true}
{*{$toolbar}*}{* HTML form , no escape necessary *}
<div id="leo-page" class="clearfix">
<div class="note">
<p>+ {l s='Drop modules from hooks layouts to "<b>UnHook Modules</b>" Panel to unhook them' mod='appagebuilder'}. {l s='Drag and drop modules from hooks layouts to update theirs order and hook position' mod='appagebuilder'}</p>
<p>+ {l s='Override hook feature only applies for <b>HOOK_HEADERRIGHT, HOOK_SLIDESHOW, HOOK_TOPNAVIATION, HOOK_SLIDESHOW, HOOK_PROMOTETOP, HOOK_CONTENTBOTTOM, HOOK_BOTTOM</b>' mod='appagebuilder'}</p>
<p>+ {l s='Here only shows all of installed modules having hooks supportting for LeoTheme Layout.' mod='appagebuilder'}
</div>
<div class="leo-container holdposition" id="noposition">
<div class="pos">{l s='UnHook Modules' mod='appagebuilder'} </div>
{foreach from=$modules item=module name=leotempcp}
<div class="module-pos" id="module-{$module->id|escape:'html':'UTF-8'}">
<a class="editmod" href="{$moduleEditURL|escape:'html':'UTF-8'}&module_name={$module->name|escape:'html':'UTF-8'}&configure={$module->name|escape:'html':'UTF-8'}" data-mod="{$module->name|escape:'html':'UTF-8'}"></a>
<div class="leo-editmodule" rel="{$module->author|escape:'html':'UTF-8'}">
<img src="{$URI|escape:'html':'UTF-8'}{$module->name|escape:'html':'UTF-8'}/logo.png"/>
{$module->displayName|escape:'html':'UTF-8'}
</div>
</div>
{/foreach}
</div>
<div class="leotheme-layout">
<div id="leo-header">
<div id="leo-displaynav" class="leo-container overridehook" data-position="displayNav1"><div class="pos">HOOK_NAV1</div>
{if isset($hookModules['displayNav1']) && $hookModules['displayNav1']['module_count'] > 0}
{foreach $hookModules['displayNav1']['modules'] as $position => $module}
{if isset($module['instance'])}
<div class="module-pos" id="module-{$module['instance']->id|escape:'html':'UTF-8'}" data-position="{$module['id_hook']|escape:'html':'UTF-8'}">
<a class="editmod" href="{$moduleEditURL|escape:'html':'UTF-8'}&module_name={$module['name']|escape:'html':'UTF-8'}&configure={$module['name']|escape:'html':'UTF-8'}" data-mod="{$module['name']|escape:'html':'UTF-8'}"></a><div class="edithook"></div>
<div class="leo-editmodule">
<img src="{$URI|escape:'html':'UTF-8'}{$module['name']|escape:'html':'UTF-8'}/logo.png"/>
{$module['instance']->displayName|escape:'html':'UTF-8'}
</div>
</div>
{/if}
{/foreach}
{/if}
</div>
<div id="leo-displaynav" class="leo-container overridehook" data-position="displayNav2"><div class="pos">HOOK_NAV2</div>
{if isset($hookModules['displayNav2']) && $hookModules['displayNav2']['module_count'] > 0}
{foreach $hookModules['displayNav2']['modules'] as $position => $module}
{if isset($module['instance'])}
<div class="module-pos" id="module-{$module['instance']->id|escape:'html':'UTF-8'}" data-position="{$module['id_hook']|escape:'html':'UTF-8'}">
<a class="editmod" href="{$moduleEditURL|escape:'html':'UTF-8'}&module_name={$module['name']|escape:'html':'UTF-8'}&configure={$module['name']|escape:'html':'UTF-8'}" data-mod="{$module['name']|escape:'html':'UTF-8'}"></a><div class="edithook"></div>
<div class="leo-editmodule">
<img src="{$URI|escape:'html':'UTF-8'}{$module['name']|escape:'html':'UTF-8'}/logo.png"/>
{$module['instance']->displayName|escape:'html':'UTF-8'}
</div>
</div>
{/if}
{/foreach}
{/if}
</div>
<div id="leo-displaynav" class="leo-container overridehook" data-position="displayTop"><div class="pos">HOOK_TOP</div>
{if isset($hookModules['displayTop']) && $hookModules['displayTop']['module_count'] > 0}
{foreach $hookModules['displayTop']['modules'] as $position => $module}
{if isset($module['instance'])}
<div class="module-pos" id="module-{$module['instance']->id|escape:'html':'UTF-8'}" data-position="{$module['id_hook']|escape:'html':'UTF-8'}">
<a class="editmod" href="{$moduleEditURL|escape:'html':'UTF-8'}&module_name={$module['name']|escape:'html':'UTF-8'}&configure={$module['name']|escape:'html':'UTF-8'}" data-mod="{$module['name']|escape:'html':'UTF-8'}"></a><div class="edithook"></div>
<div class="leo-editmodule">
<img src="{$URI|escape:'html':'UTF-8'}{$module['name']|escape:'html':'UTF-8'}/logo.png"/>
{$module['instance']->displayName|escape:'html':'UTF-8'}
</div>
</div>
{/if}
{/foreach}
{/if}
</div>
<div id="leo-displaynav" class="leo-container overridehook" data-position="displayNavFullWidth"><div class="pos">HOOK_NAV_FULLWIDTH</div>
{if isset($hookModules['displayNavFullWidth']) && $hookModules['displayNavFullWidth']['module_count'] > 0}
{foreach $hookModules['displayNavFullWidth']['modules'] as $position => $module}
{if isset($module['instance'])}
<div class="module-pos" id="module-{$module['instance']->id|escape:'html':'UTF-8'}" data-position="{$module['id_hook']|escape:'html':'UTF-8'}">
<a class="editmod" href="{$moduleEditURL|escape:'html':'UTF-8'}&module_name={$module['name']|escape:'html':'UTF-8'}&configure={$module['name']|escape:'html':'UTF-8'}" data-mod="{$module['name']|escape:'html':'UTF-8'}"></a><div class="edithook"></div>
<div class="leo-editmodule">
<img src="{$URI|escape:'html':'UTF-8'}{$module['name']|escape:'html':'UTF-8'}/logo.png"/>
{$module['instance']->displayName|escape:'html':'UTF-8'}
</div>
</div>
{/if}
{/foreach}
{/if}
</div>
</div>
<div id="leo-content" class="clearfix leo_top_25" >
<div id="leo-left" class="leo-container" data-position="displayLeftColumn"><div class="pos">HOOK_LEFT</div>
{if isset($hookModules['displayLeftColumn']) && $hookModules['displayLeftColumn']['module_count'] > 0}
{foreach $hookModules['displayLeftColumn']['modules'] as $position => $module}
{if isset($module['instance'])}
<div class="module-pos" id="module-{$module['instance']->id|escape:'html':'UTF-8'}" data-position="{$module['id_hook']|escape:'html':'UTF-8'}">
<a class="editmod" href="{$moduleEditURL|escape:'html':'UTF-8'}&module_name={$module['name']|escape:'html':'UTF-8'}&configure={$module['name']|escape:'html':'UTF-8'}" data-mod="{$module['name']|escape:'html':'UTF-8'}"></a><div class="edithook"></div>
<div class="leo-editmodule">
<img src="{$URI|escape:'html':'UTF-8'}{$module['name']|escape:'html':'UTF-8'}/logo.png"/>
{$module['instance']->displayName|escape:'html':'UTF-8'}
</div>
</div>
{/if}
{/foreach}
{/if}
</div>
<div id="leo-center" class="leo-container inner" data-position="displayHome" style="min-height:250px"><div class="pos">HOOK_HOME</div>
{if isset($hookModules['displayHome']) && $hookModules['displayHome']['module_count'] > 0}
{foreach $hookModules['displayHome']['modules'] as $position => $module}
{if isset($module['instance'])}
<div class="module-pos" id="module-{$module['instance']->id|escape:'html':'UTF-8'}" data-position="{$module['id_hook']|escape:'html':'UTF-8'}">
<a class="editmod" href="{$moduleEditURL|escape:'html':'UTF-8'}&module_name={$module['name']|escape:'html':'UTF-8'}&configure={$module['name']|escape:'html':'UTF-8'}" data-mod="{$module['name']|escape:'html':'UTF-8'}"></a><div class="edithook"></div>
<div class="leo-editmodule">
<img src="{$URI|escape:'html':'UTF-8'}{$module['name']|escape:'html':'UTF-8'}/logo.png"/>
{$module['instance']->displayName|escape:'html':'UTF-8'}
</div>
</div>
{/if}
{/foreach}
{/if}
</div>
<div id="leo-right" class="leo-container" data-position="displayRightColumn"><div class="pos">HOOK_RIGHT</div>
{if isset($hookModules['displayRightColumn']) && $hookModules['displayRightColumn']['module_count'] > 0}
{foreach $hookModules['displayRightColumn']['modules'] as $position => $module}
{if isset($module['instance'])}
<div class="module-pos" id="module-{$module['instance']->id|escape:'html':'UTF-8'}" data-position="{$module['id_hook']|escape:'html':'UTF-8'}">
<a class="editmod" href="{$moduleEditURL|escape:'html':'UTF-8'}&module_name={$module['name']|escape:'html':'UTF-8'}&configure={$module['name']|escape:'html':'UTF-8'}" data-mod="{$module['name']|escape:'html':'UTF-8'}"></a><div class="edithook"></div>
<div class="leo-editmodule">
<img src="{$URI|escape:'html':'UTF-8'}{$module['name']|escape:'html':'UTF-8'}/logo.png"/>
{$module['instance']->displayName|escape:'html':'UTF-8'}
</div>
</div>
{/if}
{/foreach}
{/if}
</div>
</div>
<div id="leo-content" class="clearfix" >
<div id="leo-left" class="leo-container clearfix" data-position="displayLeftColumnProduct"><div class="pos">HOOK_PRODUCT_LEFT</div>
{if isset($hookModules['displayLeftColumnProduct']) && $hookModules['displayLeftColumnProduct']['module_count'] > 0}
{foreach $hookModules['displayLeftColumnProduct']['modules'] as $position => $module}
{if isset($module['instance'])}
<div class="module-pos" id="module-{$module['instance']->id|escape:'html':'UTF-8'}" data-position="{$module['id_hook']|escape:'html':'UTF-8'}">
<a class="editmod" href="{$moduleEditURL|escape:'html':'UTF-8'}&module_name={$module['name']|escape:'html':'UTF-8'}&configure={$module['name']|escape:'html':'UTF-8'}" data-mod="{$module['name']|escape:'html':'UTF-8'}"></a><div class="edithook"></div>
<div class="leo-editmodule">
<img src="{$URI|escape:'html':'UTF-8'}{$module['name']|escape:'html':'UTF-8'}/logo.png"/>
{$module['instance']->displayName|escape:'html':'UTF-8'}
</div>
</div>
{/if}
{/foreach}
{/if}
</div>
<div id="leo-center"></div>
<div id="leo-right" class="leo-container" data-position="displayRightColumnProduct"><div class="pos">HOOK_PRODUCT_RIGHT</div>
{if isset($hookModules['displayRightColumnProduct']) && $hookModules['displayRightColumnProduct']['module_count'] > 0}
{foreach $hookModules['displayRightColumnProduct']['modules'] as $position => $module}
{if isset($module['instance'])}
<div class="module-pos" id="module-{$module['instance']->id|escape:'html':'UTF-8'}" data-position="{$module['id_hook']|escape:'html':'UTF-8'}">
<a class="editmod" href="{$moduleEditURL|escape:'html':'UTF-8'}&module_name={$module['name']|escape:'html':'UTF-8'}&configure={$module['name']|escape:'html':'UTF-8'}" data-mod="{$module['name']|escape:'html':'UTF-8'}"></a><div class="edithook"></div>
<div class="leo-editmodule">
<img src="{$URI|escape:'html':'UTF-8'}{$module['name']|escape:'html':'UTF-8'}/logo.png"/>
{$module['instance']->displayName|escape:'html':'UTF-8'}
</div>
</div>
{/if}
{/foreach}
{/if}
</div>
</div>
<div id="leo-bottom" class="leo-container overridehook clearfix leo_top_25" data-position="displayFooterBefore">
<div class="pos">HOOK_FOOTER_BEFORE</div>
{if isset($hookModules['displayFooterBefore']) && $hookModules['displayFooterBefore']['module_count'] > 0}
{foreach $hookModules['displayFooterBefore']['modules'] as $position => $module}
{if isset($module['instance'])}
<div class="module-pos" id="module-{$module['instance']->id|escape:'html':'UTF-8'}" data-position="{$module['id_hook']|escape:'html':'UTF-8'}">
<a class="editmod" href="{$moduleEditURL|escape:'html':'UTF-8'}&module_name={$module['name']|escape:'html':'UTF-8'}&configure={$module['name']|escape:'html':'UTF-8'}" data-mod="{$module['name']|escape:'html':'UTF-8'}"></a><div class="edithook"></div>
<div class="leo-editmodule">
<img src="{$URI|escape:'html':'UTF-8'}{$module['name']|escape:'html':'UTF-8'}/logo.png"/>
{$module['instance']->displayName|escape:'html':'UTF-8'}
</div>
</div>
{/if}
{/foreach}
{/if}
</div>
<div id="leo-bottom" class="leo-container overridehook clearfix" data-position="displayFooter">
<div class="pos">HOOK_FOOTER</div>
{if isset($hookModules['displayFooter']) && $hookModules['displayFooter']['module_count'] > 0}
{foreach $hookModules['displayFooter']['modules'] as $position => $module}
{if isset($module['instance'])}
<div class="module-pos" id="module-{$module['instance']->id|escape:'html':'UTF-8'}" data-position="{$module['id_hook']|escape:'html':'UTF-8'}">
<a class="editmod" href="{$moduleEditURL|escape:'html':'UTF-8'}&module_name={$module['name']|escape:'html':'UTF-8'}&configure={$module['name']|escape:'html':'UTF-8'}" data-mod="{$module['name']|escape:'html':'UTF-8'}"></a><div class="edithook"></div>
<div class="leo-editmodule">
<img src="{$URI|escape:'html':'UTF-8'}{$module['name']|escape:'html':'UTF-8'}/logo.png"/>
{$module['instance']->displayName|escape:'html':'UTF-8'}
</div>
</div>
{/if}
{/foreach}
{/if}
</div>
<div id="leo-bottom" class="leo-container overridehook clearfix" data-position="displayFooterAfter">
<div class="pos">HOOK_FOOTER_AFTER</div>
{if isset($hookModules['displayFooterAfter']) && $hookModules['displayFooterAfter']['module_count'] > 0}
{foreach $hookModules['displayFooterAfter']['modules'] as $position => $module}
{if isset($module['instance'])}
<div class="module-pos" id="module-{$module['instance']->id|escape:'html':'UTF-8'}" data-position="{$module['id_hook']|escape:'html':'UTF-8'}">
<a class="editmod" href="{$moduleEditURL|escape:'html':'UTF-8'}&module_name={$module['name']|escape:'html':'UTF-8'}&configure={$module['name']|escape:'html':'UTF-8'}" data-mod="{$module['name']|escape:'html':'UTF-8'}"></a><div class="edithook"></div>
<div class="leo-editmodule">
<img src="{$URI|escape:'html':'UTF-8'}{$module['name']|escape:'html':'UTF-8'}/logo.png"/>
{$module['instance']->displayName|escape:'html':'UTF-8'}
</div>
</div>
{/if}
{/foreach}
{/if}
</div>
<div id="leo-bottom" class="leo-container overridehook clearfix" data-position="displayFooterProduct">
<div class="pos">HOOK_FOOTER_PRODUCT</div>
{if isset($hookModules['displayFooterProduct']) && $hookModules['displayFooterProduct']['module_count'] > 0}
{foreach $hookModules['displayFooterProduct']['modules'] as $position => $module}
{if isset($module['instance'])}
<div class="module-pos" id="module-{$module['instance']->id|escape:'html':'UTF-8'}" data-position="{$module['id_hook']|escape:'html':'UTF-8'}">
<a class="editmod" href="{$moduleEditURL|escape:'html':'UTF-8'}&module_name={$module['name']|escape:'html':'UTF-8'}&configure={$module['name']|escape:'html':'UTF-8'}" data-mod="{$module['name']|escape:'html':'UTF-8'}"></a><div class="edithook"></div>
<div class="leo-editmodule">
<img src="{$URI|escape:'html':'UTF-8'}{$module['name']|escape:'html':'UTF-8'}/logo.png"/>
{$module['instance']->displayName|escape:'html':'UTF-8'}
</div>
</div>
{/if}
{/foreach}
{/if}
</div>
{* <div class="clearfix" id="page-footer">
<div id="leo-copyright" class="clearfix"><div class="pos">POWERED BY</div></div>
<hr>
</div>*}
<div class="clearfix"></div>
</div>
<div id="overidehook" style="display:none">
<div id="oh-close">Close</div>
<form action="{$currentURL}&action=overridehook" method="post">
<p class="clearfix"><label>{l s='Select override hook' mod='appagebuilder'}</lable><br>
<select name="name_hook">
<option value="0">{l s='--- Use Self Hook ---' mod='appagebuilder'}</option>
</select>
<input type="hidden" name="hdidmodule" id="hdidmodule" value=""/>
<input type="hidden" name="deshook" id="deshook" value=""/>
<input type="submit" value="{l s='Save' mod='appagebuilder'}" name="submit" />
</p>
</form>
</div>
<script type="text/javascript">
$("#noposition").css("height",$(".leotheme-layout").height() );
{*
https://www.google.com.vn/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=jquery+sortable+and+clone&*
http://jsfiddle.net/v265q/
http://jsfiddle.net/v265q/190/
*}
{*$('#leo-page .leo-container').sortable( {
connectWith: '#leo-page .leo-container',
containment: '#leo-page',
forceHelperSize: true,
forcePlaceholderSize: true,
placeholder: 'placeholder',
handle:".leo-editmodule",
drop: function(e, ui){
console.log('abc');
},
});
*}
{*$('#noposition.leo-container').sortable( {
connectWith: ".leotheme-layout .leo-container",
remove: function(event, ui) {
ui.item.clone().appendTo('.leotheme-layout .leo-container');
$(this).sortable('cancel');
}
});
$('.leotheme-layout .leo-container').sortable( {
connectWith: "#noposition.leo-container, .leotheme-layout .leo-container",
});*}
// 2
$('#noposition.leo-container').sortable( {
connectWith: ".leotheme-layout .leo-container",
helper: function (e, li) {
this.copyHelper = li.clone().insertAfter(li);
$(this).data('copied', false);
return li.clone();
},
stop: function () {
var copied = $(this).data('copied');
if (!copied) {
this.copyHelper.remove();
}
this.copyHelper = null;
}
});
$('.leotheme-layout .leo-container').sortable( {
connectWith: "#noposition.leo-container, .leotheme-layout .leo-container",
receive: function (e, ui) {
ui.sender.data('copied', true);
}
});
// 3
{*$('#noposition.leo-container').sortable( {
connectWith: ".leotheme-layout .leo-container",
helper: "clone",
}).on('dragstart', function (e, ui) {
$(ui.helper).css('z-index','999999');
}).on('dragstop', function (e, ui) {
$(this).after($(ui.helper).clone().draggable());
});
$('.leotheme-layout .leo-container').sortable( {
connectWith: "#noposition.leo-container",
});
$('.leotheme-layout .leo-container').sortable( {
connectWith: ".leotheme-layout .leo-container",
});*}
$(document).ready( function(){
miniLeftMenu();
//$('#leohook_toolbar').hide();
$("#desc-leohook-save, #page-header-desc-leohook-save").click( function(){
//var string = 'rand='+Math.random();
var string = '';
var hook = '';
$(".leotheme-layout .ui-sortable").each( function(){
if( $(this).attr("data-position") && $(".module-pos",this).length>0)
{
string +="&position[]="+$(this).attr("data-position")+"|";
hook += "&"+$(this).attr("data-position")+"=";
$(".module-pos",this).each( function(){
if( $(this).attr("id") != "" ){
string += $(this).attr("id").replace("module-","")+",";
hook += $(this).attr("data-position")+",";
}
} );
string = string.replace(/\,$/,"");
hook = hook.replace(/\,$/,"");
}
});
var unhook = '';
var arr_unhook = [];
$("#noposition .module-pos").each( function(){
var id_position = $(this).attr("data-position");
var id_module = $(this).attr("id").replace("module-","");
if( arr_unhook[ id_module ] )
{
// REMOVE MODULE AT MANY HOOK
arr_unhook[ id_module ] += ',' + id_position;
}else
{
arr_unhook[ id_module ] = id_position;
}
for( i=0; i < arr_unhook.length; i++)
{
if(arr_unhook[i])
{
unhook += '&unhook['+i+']='+arr_unhook[i];
}
}
});
$.ajax({
type: 'POST',
url: $(this).attr("href") + "&updateleohook=1&ajax=1",
data: string+"&"+hook+unhook,
dataType: 'json',
cache: false,
success: function(json){
if (json && json.hasError == true){
alert(json.errors);
} else {
window.location.reload(true);
}
}
});
return false;
});
{* $(".module-pos .edithook").bind("click", function(){
var parent = $(this).parent(".module-pos");
$("#overidehook").css({
"top":$(parent).offset().top-$("#overidehook").height()-$(parent).height(),
"left":$(parent).offset().left
});
var id = $(parent).attr("id").replace("module-","");
$("#overidehook #hdidmodule").val( id );
var leocontainer = $(this).closest("div.leo-container");
$("#overidehook #deshook").val( leocontainer.data("position"));
$.ajax({ type:'POST',
url:'{$currentURL}&action=modulehook',
data:'id='+id,
success: function( data ){
if( data.hooks ){
var hooks = data.hooks.split("|");
$("#overidehook select option").each( function(){
if( $(this).val() == 0 || $(this).val() == 1 ){}else{ $(this).remove(); }
});
for (i =0; i<hooks.length; i++){
$("#overidehook select").append('<option value="'+hooks[i]+'">'+hooks[i]+'</option>')
}
}
if( !data.hasError) {
$("#overidehook select option").each( function(){
if( $(this).val() == data.hook ){
$(this).attr("selected","selected" );
}
} );
}
$("#overidehook").show();
},
dataType:'json'
});
} );*}
$("#overidehook #oh-close").click( function() { $("#overidehook").hide(); } );
$("#overidehook form").submit( function(){
var string = $("#overidehook form").serialize();
if( $("#overidehook #hdidmodule").val() ){
$.ajax({
type:'POST',
url:$(this).attr("action") + "&updateleohook=1&ajax=1",
data:string,
dataType: 'json',
cache: false,
success: function( json ){
if (json && json.hasError == true){
alert(json.errors);
}else{
$("#overidehook").hide();
}
}
});
}
return false;
});
} );
$(".editmod").fancybox({
'type':'iframe',
'width':1024,
'height':500,
afterLoad:function()
{
if( $('body',$('.fancybox-iframe').contents()).find("#main").length )
{
$('body',$('.fancybox-iframe').contents()).find("#header").hide();
$('body',$('.fancybox-iframe').contents()).find("#footer").hide();
$('body',$('.fancybox-iframe').contents()).find(".page-head, #nav-sidebar ").hide();
$('body',$('.fancybox-iframe').contents()).find("#content.bootstrap").css( 'padding',0).css('margin',0);
}else
{
$('body',$('.fancybox-iframe').contents()).find("#psException").html('<div class="alert error"> {$noModuleConfig|escape:'html':'UTF-8'}</div>');
}
}
});
</script>
{/if}

View File

@@ -0,0 +1,171 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<!-- @file modules\appagebuilder\views\templates\admin\ap_page_builder_images\imagemanager -->
{if isset($url_param) && $url_param}
{else}
{* DEFAULT VALUE *}
{assign var=url_param value=''}
{/if}
{if isset($reloadBack) && $reloadBack==1}
{foreach $images as $image}
<div style="background:url('{$image.link|escape:'html':'UTF-8'}') no-repeat center center;" class="pull-left" data-image="{$image.link|escape:'html':'UTF-8'}" data-val="../../../../assets/img/patterns/{$image.name|escape:'html':'UTF-8'}">
</div>
{/foreach}
{else}
{if !(isset($reloadSliderImage) && $reloadSliderImage==1)}
<div class="bootstrap image-manager">
<div class="panel product-tab">
<h3 class="tab" >
{l s='Images Manager' mod='appagebuilder'}
<span class="badge" id="countImage">{$countImages|escape:'html':'UTF-8'}</span>
<label class="control-label col-lg-3 file_upload_label">
{l s='Format:' mod='appagebuilder'} JPG, GIF, PNG. {l s='Filesize:' mod='appagebuilder'} {$max_image_size|string_format:"%.2f"|escape:'html':'UTF-8'} {l s='MB max.' mod='appagebuilder'}
</label>
</h3>
<div class="row">
<div class="form-group">
<div class="col-lg-12">
{$image_uploader}{* HTML form , no escape necessary *}
<div class="btn-group search-image-group">
<input type="text" placeholder="{l s='Search image' mod='appagebuilder'}" class="search-image" value="">
<button type="button" class="btn btn-primary search-bt">{l s='Search' mod='appagebuilder'}</button>
<button type="button" class="btn btn-warning clear-search-bt">{l s='Clear' mod='appagebuilder'}</button>
</div>
</div>
</div>
</div>
<div class="row">
<div class="form-group">
<ul id="list-imgs">
{/if}
{foreach from=$images item=image name=myLoop}
<li class="image-item" data-image-name="{$image.name|escape:'html':'UTF-8'}">
<div class="row img-row">
<a class="label-tooltip img-link" data-widget="{if isset($widget) && $widget}{$widget}{/if}" data-toggle="tooltip" href="{$image.link|escape:'html':'UTF-8'}" title="{$image.name|escape:'html':'UTF-8'}" style="height:70px;overflow: hidden">
<img class="select-img" data-widget="{if isset($widget) && $widget}{$widget}{/if}" data-name="{$image.name|escape:'html':'UTF-8'}" title="" width="70" alt="" src="{$image.link|escape:'html':'UTF-8'}?t={math equation='rand(1000,9999)'}"/>
</a>
</div>
<div class="row">
{$image.name|rtrim|escape:'html':'UTF-8'}
</div>
<div class="row">
<a class="fancybox" data-toggle="tooltip" href="{$image.link|escape:'html':'UTF-8'}" title="{l s='Click to view' mod='appagebuilder'}">
<i class="icon-eye-open"></i>
{l s='View' mod='appagebuilder'}
</a>
<a href="{$link->getAdminLink('AdminApPageBuilderImages')|escape:'html':'UTF-8'}&ajax=1&action=deleteimage&imgName={$image.name|rtrim|escape:'html':'UTF-8'}" class="text-danger delete-image" title="{l s='Delete Selected Image?' mod='appagebuilder'}" onclick="if (confirm('{l s='Delete Selected Image?' mod='appagebuilder'}')) {
return deleteImage($(this));
} else {
return false;
}
;">
<i class="icon-remove"></i>
{l s='Delete' mod='appagebuilder'}
</a>
</div>
</li>
{/foreach}
{if !(isset($reloadSliderImage) && $reloadSliderImage==1)}
</ul>
</div>
</div>
<script type="text/javascript">
var imgManUrl = "{$imgManUrl}";
var img_dir = "{$img_dir}";
var upbutton = "{l s='Upload an image' mod='appagebuilder'}";
{literal}
$(document).ready(function() {
$('.fancybox').fancybox();
//DONGND:: search image by name
$(".search-image").keyup(function(){
var filter = $(this).val();
$(".image-item").each(function(){
if ($(this).data('image-name').search(new RegExp(filter, "i")) < 0) {
$(this).hide();
} else {
$(this).show();
}
});
});
//DONGND:: clear search image by name
$('.clear-search-bt').click(function(){
$(".search-image").val('').trigger('keyup');
});
//DONGND:: search image by name with button
$('.search-bt').click(function(){
$(".search-image").trigger('keyup');
});
//DONGND:: add dir to filter
$("#img_order a").each(function(){
$(this).data('dir', img_dir);
});
});
function deleteImage(element){
$.ajax({
type: 'GET',
url: element.attr("href"),
data: '',
dataType: 'json',
cache: false, // @todo see a way to use cache and to add a timestamps parameter to refresh cache each 10 minutes for example
success: function(data) {
$("#list-imgs").html(data);
$("#countImage").text($("#list-imgs li").length);
$('.label-tooltip').tooltip();
$('.fancybox').fancybox();
}
});
return false;
}
function getUrlVars()
{
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
{/literal}
function reloadImageList(sortBy, imgDir){
if(!sortBy) sortBy = "date_add";
if(!imgDir) sortBy = "images";
$.ajax({
type: 'GET',
url: imgManUrl + '&ajax=1&action=reloadSliderImage&imgDir='+imgDir+'&sortBy='+sortBy+'{$url_param}',
data: '',
dataType: 'json',
cache: false, // @todo see a way to use cache and to add a timestamps parameter to refresh cache each 10 minutes for example
success: function(data)
{
$("#list-imgs").html(data);
$('.label-tooltip').tooltip();
$('.fancybox').fancybox();
}
});
}
</script>
</div>
</div>
{/if}
{/if}

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2019 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

View File

@@ -0,0 +1,8 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<!-- @file modules\appagebuilder\views\templates\admin\ap_page_builder_products\element_form -->

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2019 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2019 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

View File

@@ -0,0 +1,136 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<!-- @file modules\appagebuilder\views\templates\admin\ap_page_builder_profiles\list -->
{$id_default = 0}
{if isset($list_profile) && $list_profile}
<ul class="source-profile hidden" data-emobile="{l s='Please enable mobile themes in Ap page builder > Ap theme config' mod='appagebuilder'}">
{$nameProfile = ''}
{foreach $list_profile as $item}
<li class="{if $item['active'] == 1}active{/if}">={$item['id_appagebuilder_profiles']|escape:'html':'UTF-8'}</li>
{if $item['active'] == 1}
{$id_default = $item['id_appagebuilder_profiles']}
{$nameProfile = $item['name']}
{/if}
{/foreach}
</ul>
<div id="ap_loading" class="ap-loading">
<div class="spinner">
<div class="cube1"></div>
<div class="cube2"></div>
</div>
</div>
<script language="javascript" type="text/javascript">
{addJsDef urlLiveEdit=$url_live_edit}
{addJsDef urlPreview=$url_preview}
{addJsDef urlEditProfile=$url_edit_profile}
{addJsDef urlProfileDetail=$url_profile_detail}
{addJsDef urlEditProfileToken=$url_edit_profile_token}
{addJsDef idProfile=$id_default}
{addJsDef use_mobile_theme=$use_mobile_theme}
function resize() {
//$("#live-edit-iframe").width($(window).width() - 80);
$("#live-edit-iframe").height($("body").height() -
$("#header_infos").height() - $(".page-head").height() -
$("#form-appagebuilder_profiles").height() - $(".ap-live-tool").height() -
$("#footer").height() - 80 - ($(".bootstrap .alert").length > 0 ? ($(".bootstrap .alert").height() + 20) : 0));
}
function changeProfilePreview(obj) {
$("#ap_loading").show();
if($('.table-responsive-row .row-selector').length){
var td = $(obj).closest("tr").find("td:nth-child(2)");
var tdName = $(obj).closest("tr").find("td:nth-child(3)");
} else {
var td = $(obj).closest("tr").find("td:nth-child(1)");
var tdName = $(obj).closest("tr").find("td:nth-child(2)");
}
var d = new Date();
idProfile = $.trim($(td).text());
$("#name-profile b").text($.trim($(tdName).text()));
$("#live-edit-iframe").attr("idProfile", idProfile);
$("#live-edit-iframe").attr("src", urlLiveEdit + "&ap_edit_token=" + urlEditProfileToken + "&id_appagebuilder_profiles=" + idProfile + "&t=" + d.getTime());
}
$(function() {
// Add button preview, tooltip for row
totalTr = $(".appagebuilder_profiles tbody tr").length;
$(".appagebuilder_profiles tbody tr").each(function() {
$(this).attr("title", "{l s='When you click any profiles in profile list, this will be shown at the same screen below in mode live edit' mod='appagebuilder'}");
// Add button preview
if(totalTr <=1)
var idProfile = $.trim($(this).find("td:nth-child(1)").text());
else
var idProfile = $.trim($(this).find("td:nth-child(2)").text());
var url = urlProfileDetail + "&submitBulkinsertLangappagebuilder_profiles&id=" + idProfile;
$(this).find(".pull-right ul").prepend("<li><a title='{l s='Copy data from default language to other' mod='appagebuilder'}' href='" + url + "'><i class='icon-copy'></i> {l s='Copy to Other Language' mod='appagebuilder'}</a></li>");
url = urlEditProfile + "&id_appagebuilder_profiles=" + idProfile;
$(this).find(".pull-right ul").prepend("<li><a title='{l s='Edit in mode design layout' mod='appagebuilder'}' target='_blank' href='" + url + "'><i class='icon-desktop'></i> {l s='Edit Design Layout' mod='appagebuilder'}</a></li>");
url = urlPreview + "?id_appagebuilder_profiles=" + idProfile;
$(this).find(".pull-right ul").prepend("<li><a title='{l s='Preview' mod='appagebuilder'}' target='_blank' href='" + url + "'><i class='icon-search-plus'></i> {l s='Preview' mod='appagebuilder'}</a></li>");
});
$(".appagebuilder_profiles tbody tr").tooltip();
//$("#ap_loading").show();
$(window).resize(function() {
resize();
});
var d = new Date();
if($('.table-responsive-row .row-selector').length){
var listTd = ".appagebuilder_profiles tr td:nth-child(2)," +
".appagebuilder_profiles tr td:nth-child(3), .appagebuilder_profiles tr td:nth-child(4)";
} else {
var listTd = ".appagebuilder_profiles tr td:nth-child(1)," +
".appagebuilder_profiles tr td:nth-child(2), .appagebuilder_profiles tr td:nth-child(3)";
}
$("#live-edit-iframe").attr("src", urlLiveEdit + "&ap_edit_token=" + urlEditProfileToken + "&id_appagebuilder_profiles=" + idProfile + "&t=" + d.getTime());
$("#btn-reload-live").click(function() {
$("#ap_loading").show();
var d = new Date();
$("#live-edit-iframe").attr("src", urlLiveEdit + "&ap_edit_token=" + urlEditProfileToken + "&id_appagebuilder_profiles=" + idProfile + "&t=" + d.getTime());
});
$("#btn-preview").click(function() {
window.open(urlPreview + "?id_appagebuilder_profiles=" + idProfile, "_blank");
});
$("#btn-design-layout").click(function() {
window.open(urlEditProfile + "&id_appagebuilder_profiles=" + idProfile, "_blank");
});
$("#btn-change-mode").click(function() {
if($(this).hasClass("full-screen")) {
$("#cover-live-iframe").removeClass("full-screen");
$(this).removeClass("full-screen");
$(this).find("i").attr("class", "icon-expand");
} else {
$("#cover-live-iframe").addClass("full-screen");
$(this).addClass("full-screen");
$(this).find("i").attr("class", "icon-compress");
}
});
$("#live-edit-iframe").load(function() {
$("#ap_loading").hide();
});
miniLeftMenu();
resize();
});
</script>
{else}
<hr/>
<center><p><a href="{$profile_link|escape:'html':'UTF-8'}" class="btn btn btn-primary"><i class="icon-file-text"></i> {l s='Create first Profile >>' mod='appagebuilder'}</a>
</p></center>
<script type="text/javascript">
$(function() {
$(".appagebuilder_profiles td:first-child").attr("colspan", $(".appagebuilder_profiles th").length);
});
</script>
{/if}

View File

@@ -0,0 +1,47 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<!-- @file modules\appagebuilder\views\templates\admin\ap_page_builder_home\home -->
{if isset($errorText) && $errorText}
<div class="error alert alert-danger">
{$errorText|escape:'html':'UTF-8'}
</div>
{/if}
{if isset($errorSubmit) && $errorSubmit}
<div class="error alert alert-danger">
{$errorSubmit|escape:'html':'UTF-8'}
</div>
{/if}
<div id="home_wrapper" class="default">
<div class="position-cover row">
{include file='./position.tpl'}
</div>
</div>
<div id="ap_loading" class="ap-loading">
<div class="spinner">
<div class="cube1"></div>
<div class="cube2"></div>
</div>
</div>
{include file="$tplPath/ap_page_builder_shortcode/home_form.tpl"}
<script type="text/javascript">
{addJsDef imgModuleLink=$imgModuleLink}
{addJsDef apAjaxShortCodeUrl=$ajaxShortCodeUrl}
{addJsDef apAjaxHomeUrl=$ajaxHomeUrl}
{addJsDef apImgController=$imgController}
$(document).ready(function(){
var $apHomeBuilder = $(document).apPageBuilder();
$apHomeBuilder.process('{$dataForm}{* HTML form , no escape necessary *}','{$shortcodeInfos}{* HTML form , no escape necessary *}','{$languages}{* HTML form , no escape necessary *}');
$apHomeBuilder.ajaxShortCodeUrl = apAjaxShortCodeUrl;
$apHomeBuilder.ajaxHomeUrl = apAjaxHomeUrl;
$apHomeBuilder.lang_id = '{$lang_id|escape:'html':'UTF-8'}';
$apHomeBuilder.imgController = apImgController;
});
</script>

View File

@@ -0,0 +1,91 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<!-- @file modules\appagebuilder\views\templates\admin\ap_page_builder_home\home_form -->
{*form for group*}
<div id="form_content" style="display:none;" data-select="{l s='You are sure data saved, before select other profile?' mod='appagebuilder'}" data-delete="{l s='Are you sure you want to delete?' mod='appagebuilder'}" data-reduce="{l s='Minimum value of width is 1' mod='appagebuilder'}" data-increase="{l s='Maximum value of width is 12' mod='appagebuilder'}">
<a id="export_process" href="" title="{l s='Export Process' mod='appagebuilder'}" download='group.txt' target="_blank" >{l s='Export Process' mod='appagebuilder'}</a>
<div id="addnew-group-form">
<ul class="list-group dropdown-menu">
{foreach from=$widthList item=itemWidth}
<li>
<a href="javascript:void(0);" data-width="{$itemWidth|escape:'html':'UTF-8'}" class="number-column">
<span class="width-val ap-w-{if $itemWidth|strpos:"."|escape:'html':'UTF-8'}{$itemWidth|replace:'.':'-'|escape:'html':'UTF-8'}{else}{$itemWidth|escape:'html':'UTF-8'}{/if}">{$itemWidth|escape:'html':'UTF-8'}/12 - ( {math equation="x/y*100" x=$itemWidth y=12 format="%.2f"} % )</span>
</a>
</li>
{/foreach}
</ul>
</div>
<div id="addnew-column-form">
<ul class="list-group dropdown-menu">
{for $i=1 to 6}
<li>
<a href="javascript:void(0);" data-col="{$i|escape:'html':'UTF-8'}" data-width="{(12/$i)|replace:'.':'-'|escape:'html':'UTF-8'}" class="column-add">
<span class="width-val ap-w-{$i|escape:'html':'UTF-8'}">{$i|escape:'html':'UTF-8'} {l s='column per row' mod='appagebuilder'} - ( {math equation="100/$i" x=$i format="%.2f"} % )</span>
</a>
</li>
{/for}
</ul>
</div>
<div id="addnew-widget-group-form">
<ul class="list-group dropdown-menu">
<li>
<a href="javascript:void(0);" data-col="0" data-width="0" class="group-add">
<span class="width-val ap-w-0">{l s='Create a group blank' mod='appagebuilder'}</span>
</a>
</li>
{for $i=1 to 6}
<li>
<a href="javascript:void(0);" data-col="{$i|escape:'html':'UTF-8'}" data-width="{(12/$i)|escape:'html':'UTF-8'}" class="group-add">
<span class="width-val ap-w-{$i|escape:'html':'UTF-8'}">{$i|escape:'html':'UTF-8'} {l s='column per row' mod='appagebuilder'} - ( {math equation="100/$i" x=$i format="%.2f"} % )</span>
</a>
</li>
{/for}
</ul>
</div>
{foreach from=$shortcodeForm item=sform}
{include file=$sform}
{/foreach}
</div>
<div class="modal fade" id="modal_form" data-backdrop="0" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content modal-lg">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span>
<span class="sr-only">{l s='Close' mod='appagebuilder'}</span></button>
<div class="box-search-widget">
<input type="text" id="txt-search" placeholder="{l s='Search' mod='appagebuilder'}"/>
</div>
<h4 class="modal-title" id="myModalLabel" data-addnew="{l s='Add new Widget' mod='appagebuilder'}" data-edit="{l s='Editting' mod='appagebuilder'}"></h4>
</div>
<div class="modal-body"></div>
<div class="modal-footer">
<button type="button" class="btn btn-default btn-back-to-list pull-left">{l s='Back to List' mod='appagebuilder'}</button>
<button type="button" class="btn btn-default" data-dismiss="modal">{l s='Close' mod='appagebuilder'}</button>
<button type="button" class="btn btn-primary btn-savewidget">{l s='Save changes' mod='appagebuilder'}</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="modal_select_image" data-backdrop="0" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content modal-lg">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span>
<span class="sr-only">{l s='Close' mod='appagebuilder'}</span></button>
<h4 class="modal-title2">{l s='Image manager' mod='appagebuilder'}</h4>
</div>
<div class="modal-body"></div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">{l s='Close' mod='appagebuilder'}</button>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2019 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

View File

@@ -0,0 +1,30 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<!-- @file modules\appagebuilder\views\templates\admin\ap_page_builder_home\position -->
<div class="position-area">
<div class="hook-wrapper apshortcode {if isset($data_shortcode_content.apshortcode.class)}{$data_shortcode_content.apshortcode.class|escape:'html':'UTF-8'}{/if}" data-hook="apshortcode">
<div class="hook-top">
<div class="pull-left hook-desc"></div>
<div class="hook-info text-center">
<a href="javascript:;" tabindex="0" class="open-group label-tooltip" title="{l s='Expand Hook' mod='appagebuilder'}" id="apshortcode" name="apshortcode">
{l s='Shortcode Content' mod='appagebuilder'} <i class="icon-circle-arrow-down"></i>
</a>
</div>
</div>
<div class="hook-content">
{if isset($data_shortcode_content.apshortcode.content)}
{$data_shortcode_content.apshortcode.content}{* HTML form , no escape necessary *}
{/if}
<div class="hook-content-footer text-center">
<a href="javascript:void(0)" tabindex="0" class="btn-new-widget-group" title="{l s='Add Widget in new Group' mod='appagebuilder'}" data-container="body" data-toggle="popover" data-placement="top" data-trigger="focus">
<i class="icon-plus"></i>
</a>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,90 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<!-- @file modules\appagebuilder\views\templates\admin\ap_page_builder_shortcodes\ApAccordions -->
{if !isset($isSubTab)}
<div id="{if !isset($apInfo)}default_ApAccordions{else}{$formAtts.id|escape:'html':'UTF-8'}{/if}" class="widget-row clearfix ApAccordions{if isset($formAtts)} {$formAtts.form_id|escape:'html':'UTF-8'}{/if}{if isset($formAtts.active) && !$formAtts.active} deactive{else} active{/if}
{if isset($formAtts.active_desktop) && !$formAtts.active_desktop} deactive-desktop{else} active-desktop{/if}
{if isset($formAtts.active_tablet) && !$formAtts.active_tablet} deactive-tablet{else} active-tablet{/if}
{if isset($formAtts.active_mobile) && !$formAtts.active_mobile} deactive-mobile{else} active-mobile{/if}" data-type='ApAccordions'>
<div class="float-center-control text-center">
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Drag to sort accordion' mod='appagebuilder'}" class="accordions-action waction-drag label-tooltip"><i class="icon-move"></i> </a>
<span>{l s='Widget Accordions' mod='appagebuilder'}</span>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Edit Accordions' mod='appagebuilder'}" class="accordions-action btn-edit label-tooltip " data-type="ApAccordions"><i class="icon-edit"></i></a>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Delete Accordions' mod='appagebuilder'}" class="accordions-action btn-delete label-tooltip"><i class="icon-trash"></i></a>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Duplicate Accordions' mod='appagebuilder'}" class="accordions-action btn-duplicate label-tooltip"><i class="icon-paste"></i></a>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Disable or Enable Accordions' mod='appagebuilder'}" class="accordions-action btn-status label-tooltip{if isset($formAtts.active) && !$formAtts.active} deactive{else} active{/if}"><i class="icon-ok"></i></a>
<div class="devicesd-active widget-action group-devicesd pull-right">
<div class="btn-group {if isset($formAtts.active_desktop) && !$formAtts.active_desktop} deactive-desktop{else} active-desktop{/if} label-tooltip" device="desktop" data-toggle="tooltip"
title="{if isset($formAtts.active_desktop) && !$formAtts.active_desktop}Enable Widget On Desktop{else}Disable Widget On Desktop{/if}">
<i class="icon-desktop leo-devicesd" ></i>
</div>
<div class="btn-group {if isset($formAtts.active_tablet) && !$formAtts.active_tablet} deactive-tablet{else} active-tablet{/if} label-tooltip" device="tablet" data-toggle="tooltip"
title="{if isset($formAtts.active_tablet) && !$formAtts.active_tablet}Enable Widget On Tablet{else}Disable Widget On Tablet{/if}">
<i class="icon-tablet leo-devicesd" ></i>
</div>
<div class="btn-group {if isset($formAtts.active_mobile) && !$formAtts.active_mobile} deactive-mobile{else} active-mobile{/if} label-tooltip" device="mobile" data-toggle="tooltip"
title="{if isset($formAtts.active_mobile) && !$formAtts.active_mobile}Enable Widget On Mobile{else}Disable Widget On Mobile{/if}">
<i class="icon-mobile leo-devicesd" ></i>
</div>
</div>
</div>
<div class="panel-group" id="{if isset($formAtts.id)}{$formAtts.id|escape:'html':'UTF-8'}{else}accordion{/if}">
{if !isset($formAtts.form_id)}
{for $foo=1 to 2}
<div class="panel panel-default">
<div class="panel-heading widget-container-heading">
<h4 class="panel-title">
<a data-toggle="collapse" href="#collapse{$foo|escape:'html':'UTF-8'}">Accordion {$foo|escape:'html':'UTF-8'}</a>
</h4>
</div>
<div id="collapse{$foo|escape:'html':'UTF-8'}" class="panel-collapse collapse in widget-container-content">
<div class="panel-body">
<div class="text-center tab-content-control">
<span>{l s='Accordion' mod='appagebuilder'}</span>
<a href="javascript:void(0)" class="tabcontent-action accordion btn-new-widget label-tooltip" title=""><i class="icon-plus-sign"></i></a>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Edit Tab' mod='appagebuilder'}" class="tabcontent-action accordions btn-edit label-tooltip" data-type="apSubAccordions"><i class="icon-edit"></i></a>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Delete Tab' mod='appagebuilder'}" class="tabcontent-action accordions btn-delete label-tooltip"><i class="icon-trash"></i></a>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Duplicate Tab' mod='appagebuilder'}" class="tabcontent-action accordions btn-duplicate label-tooltip"><i class="icon-paste"></i></a>
</div>
<div class="subwidget-content">
</div>
</div>
</div>
</div>
{/for}
{else}
{$apContent}{* HTML form , no escape necessary *}
{/if}
<a href="javascript:void(0)" class="btn-add-accordion"><i class="icon-plus"></i> {l s='Add' mod='appagebuilder'}</a>
</div>
</div>
{else}
<div class="panel panel-default">
<div class="panel-heading widget-container-heading">
<h4 class="panel-title">
<a data-toggle="collapse" class="{$formAtts.form_id|escape:'html':'UTF-8'}" data-parent="#{$formAtts.parent_id|escape:'html':'UTF-8'}" href="#{$formAtts.id|escape:'html':'UTF-8'}">{$formAtts.title|escape:'html':'UTF-8'}</a>
</h4>
</div>
<div id="{$formAtts.id|escape:'html':'UTF-8'}" class="panel-collapse collapse widget-wrapper-content widget-container-content">
<div class="panel-body">
<div class="text-center tab-content-control">
<span>{l s='Content' mod='appagebuilder'}</span>
<a href="javascript:void(0)" class="tabcontent-action accordion btn-new-widget label-tooltip" title=""><i class="icon-plus-sign"></i></a>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Edit Tab' mod='appagebuilder'}" class="tabcontent-action accordions btn-edit label-tooltip" data-type="apSubAccordions"><i class="icon-edit"></i></a>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Delete Tab' mod='appagebuilder'}" class="tabcontent-action accordions btn-delete label-tooltip"><i class="icon-trash"></i></a>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Duplicate Tab' mod='appagebuilder'}" class="tabcontent-action accordions btn-duplicate label-tooltip"><i class="icon-paste"></i></a>
</div>
<div class="subwidget-content">
{$apContent}{* HTML form , no escape necessary *}
</div>
</div>
</div>
</div>
{/if}

View File

@@ -0,0 +1,92 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<!-- @file modules\appagebuilder\views\templates\admin\ap_page_builder_shortcodes\ApAjaxTabs -->
{if !isset($isSubTab)}
<div {if !isset($apInfo)}id="default_ApAjaxTabs"{/if} class="widget-row clearfix ApAjaxTabs{if isset($formAtts)} {$formAtts.form_id|escape:'html':'UTF-8'}{/if}{if isset($formAtts.active) && !$formAtts.active} deactive{else} active{/if}
{if isset($formAtts.active_desktop) && !$formAtts.active_desktop} deactive-desktop{else} active-desktop{/if}
{if isset($formAtts.active_tablet) && !$formAtts.active_tablet} deactive-tablet{else} active-tablet{/if}
{if isset($formAtts.active_mobile) && !$formAtts.active_mobile} deactive-mobile{else} active-mobile{/if}" data-type='ApAjaxTabs'>
<div class="float-center-control text-center">
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Drag to sort group' mod='appagebuilder'}" class="tab-action waction-drag label-tooltip"><i class="icon-move"></i> </a>
<span>{l s='Widget Tab' mod='appagebuilder'}</span>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Edit Tabs' mod='appagebuilder'}" class="tab-action btn-edit label-tooltip" data-type="ApAjaxTabs"><i class="icon-edit"></i></a>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Delete Tabs' mod='appagebuilder'}" class="tab-action btn-delete label-tooltip"><i class="icon-trash"></i></a>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Duplicate Tabs' mod='appagebuilder'}" class="tab-action btn-duplicate label-tooltip"><i class="icon-paste"></i></a>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Disable or Enable Tab' mod='appagebuilder'}" class="tab-action btn-status label-tooltip{if isset($formAtts.active) && !$formAtts.active} deactive{else} active{/if}"><i class="icon-ok"></i></a>
<div class="devicesd-active widget-action group-devicesd pull-right">
<div class="btn-group {if isset($formAtts.active_desktop) && !$formAtts.active_desktop} deactive-desktop{else} active-desktop{/if} label-tooltip" device="desktop" data-toggle="tooltip"
title="{if isset($formAtts.active_desktop) && !$formAtts.active_desktop}Enable Widget On Desktop{else}Disable Widget On Desktop{/if}">
<i class="icon-desktop leo-devicesd" ></i>
</div>
<div class="btn-group {if isset($formAtts.active_tablet) && !$formAtts.active_tablet} deactive-tablet{else} active-tablet{/if} label-tooltip" device="tablet" data-toggle="tooltip"
title="{if isset($formAtts.active_tablet) && !$formAtts.active_tablet}Enable Widget On Tablet{else}Disable Widget On Tablet{/if}">
<i class="icon-tablet leo-devicesd" ></i>
</div>
<div class="btn-group {if isset($formAtts.active_mobile) && !$formAtts.active_mobile} deactive-mobile{else} active-mobile{/if} label-tooltip" device="mobile" data-toggle="tooltip"
title="{if isset($formAtts.active_mobile) && !$formAtts.active_mobile}Enable Widget On Mobile{else}Disable Widget On Mobile{/if}">
<i class="icon-mobile leo-devicesd" ></i>
</div>
</div>
</div>
{if !isset($apInfo)}
<ul class="widget-container-heading nav nav-tabs" role="tablist">
{for $foo=1 to 3}
<li {if $foo ==3}id="default_tabnav"{/if} class="{if $foo==1}active{/if}">
<a href="#tab{$foo|escape:'html':'UTF-8'}" role="tab" data-toggle="tab">{if $foo ==3}{l s='New Tab' mod='appagebuilder'}{else}{l s='Tab' mod='appagebuilder'} {$foo|escape:'html':'UTF-8'}{/if}</a></li>
{/for}
<li class="tab-button"><a href="javascript:void(0)" class="btn-add-tab"><i class="icon-plus"></i> {l s='Add' mod='appagebuilder'}</a></li>
</ul>
<div class="tab-content widget-container-content">
{for $foo=1 to 3}
<div {if $foo ==3}id="default_tabcontent"{else}id="tab{$foo|escape:'html':'UTF-8'}"{/if} class="tab-pane{if $foo==1} active{/if} widget-wrapper-content">
<div class="text-center tab-content-control">
<span>{l s='Tab' mod='appagebuilder'}</span>
<a href="javascript:void(0)" class="tabcontent-action btn-new-widget label-tooltip" title=""><i class="icon-plus-sign"></i></a>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Edit Tab' mod='appagebuilder'}" class="tabcontent-action btn-edit label-tooltip" data-type="apSubTabs"><i class="icon-edit"></i></a>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Delete Tab' mod='appagebuilder'}" class="tabcontent-action btn-delete label-tooltip tab"><i class="icon-trash"></i></a>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Duplicate Tab' mod='appagebuilder'}" class="tabcontent-action btn-duplicate label-tooltip"><i class="icon-paste"></i></a>
</div>
<div class="subwidget-content">
</div>
</div>
{/for}
</div>
{else}
<ul class="widget-container-heading nav nav-tabs" role="tablist">
{foreach from=$subTabContent item=subTab}
<li class="">
<a href="#{$subTab.id|escape:'html':'UTF-8'}" class="{$subTab.form_id|escape:'html':'UTF-8'}" role="tab" data-toggle="tab">
<span>{$subTab.title|escape:'html':'UTF-8'}</span>
</a>
</li>
{/foreach}
<li class="tab-button"><a href="javascript:void(0)" class="btn-add-tab"><i class="icon-plus"></i> {l s='Add' mod='appagebuilder'}</a></li>
</ul>
<div class="tab-content">
{$apContent}{* HTML form , no escape necessary *}
</div>
{/if}
</div>
{else}
<div id="{$tabID|escape:'html':'UTF-8'}" class="tab-pane widget-wrapper-content">
<div class="text-center tab-content-control">
<span>{l s='Tab' mod='appagebuilder'}</span>
<a href="javascript:void(0)" class="tabcontent-action btn-new-widget label-tooltip" title=""><i class="icon-plus-sign"></i></a>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Edit Tab' mod='appagebuilder'}" class="tabcontent-action btn-edit label-tooltip" data-type="apSubTabs"><i class="icon-edit"></i></a>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Delete Tab' mod='appagebuilder'}" class="tabcontent-action btn-delete label-tooltip tab"><i class="icon-trash"></i></a>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Duplicate Tab' mod='appagebuilder'}" class="tabcontent-action btn-duplicate label-tooltip"><i class="icon-paste"></i></a>
</div>
<div class="subwidget-content">
{$apContent}{* HTML form , no escape necessary *}
</div>
</div>
{/if}

View File

@@ -0,0 +1,42 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<!-- @file modules\appagebuilder\views\templates\admin\ap_page_builder_shortcodes\ApAlert -->
<div {if !isset($apInfo)}id="default_widget"{/if} class="widget-row clearfix{if isset($apInfo)} {$apInfo.name|escape:'html':'UTF-8'}{if isset($apInfo.icon_class)} widget-icon{/if}{/if}{if isset($formAtts)} {$formAtts.form_id|escape:'html':'UTF-8'}{/if}{if isset($formAtts.active) && !$formAtts.active} deactive{else} active{/if}
{if isset($formAtts.active_desktop) && !$formAtts.active_desktop} deactive-desktop{else} active-desktop{/if}
{if isset($formAtts.active_tablet) && !$formAtts.active_tablet} deactive-tablet{else} active-tablet{/if}
{if isset($formAtts.active_mobile) && !$formAtts.active_mobile} deactive-mobile{else} active-mobile{/if} " {if isset($apInfo)}data-type="{$apInfo.name|escape:'html':'UTF-8'}"{/if}>
{if isset($formAtts) && isset($formAtts.form_id) && $formAtts.form_id}
<a id="{$formAtts.form_id|escape:'html':'UTF-8'}" name="{$formAtts.form_id|escape:'html':'UTF-8'}"></a>
{/if}
<div class="widget-controll-top pull-right">
<a href="javascript:void(0)" title="{l s='Drag to sort Widget' mod='appagebuilder'}" class="widget-action waction-drag label-tooltip"><i class="icon-move"></i> </a>
<a href="javascript:void(0)" title="{l s='Disable or Enable Column' mod='appagebuilder'}" class="widget-action btn-status{if isset($formAtts.active) && !$formAtts.active} deactive{else} active{/if} label-tooltip"><i class="{if isset($formAtts.active) && !$formAtts.active}icon-remove{else}icon-ok{/if}"></i></a>
<a href="javascript:void(0)" title="{l s='Edit Widget' mod='appagebuilder'}" class="widget-action btn-edit label-tooltip" {if isset($apInfo)}data-type="{$apInfo.name|escape:'html':'UTF-8'}"{/if}><i class="icon-pencil"></i></a>
<a href="javascript:void(0)" title="{l s='Duplicate Widget' mod='appagebuilder'}" class="widget-action btn-duplicate label-tooltip"><i class="icon-paste"></i></a>
<a href="javascript:void(0)" title="{l s='Delete Column' mod='appagebuilder'}" class="widget-action btn-delete label-tooltip"><i class="icon-trash"></i></a>
</div>
<div class="devicesd-active widget-action widget-controll-top group-devicesd pull-right">
<div class="btn-group {if isset($formAtts.active_desktop) && !$formAtts.active_desktop} deactive-desktop{else} active-desktop{/if} label-tooltip" device="desktop" data-toggle="tooltip"
title="{if isset($formAtts.active_desktop) && !$formAtts.active_desktop}Enable Widget On Desktop{else}Disable Widget On Desktop{/if}">
<i class="icon-desktop leo-devicesd" ></i>
</div>
<div class="btn-group {if isset($formAtts.active_tablet) && !$formAtts.active_tablet} deactive-tablet{else} active-tablet{/if} label-tooltip" device="tablet" data-toggle="tooltip"
title="{if isset($formAtts.active_tablet) && !$formAtts.active_tablet}Enable Widget On Tablet{else}Disable Widget On Tablet{/if}">
<i class="icon-tablet leo-devicesd" ></i>
</div>
<div class="btn-group {if isset($formAtts.active_mobile) && !$formAtts.active_mobile} deactive-mobile{else} active-mobile{/if} label-tooltip" device="mobile" data-toggle="tooltip"
title="{if isset($formAtts.active_mobile) && !$formAtts.active_mobile}Enable Widget On Mobile{else}Disable Widget On Mobile{/if}">
<i class="icon-mobile leo-devicesd" ></i>
</div>
</div>
<div class="widget-content">
<img class="w-img" width="16" src="{$moduleDir|escape:'html':'UTF-8'}appagebuilder/logo.gif" title="{l s='Appolo Widget' mod='appagebuilder'}" alt="{l s='Appolo Widget' mod='appagebuilder'}"/>
<i class="icon w-icon{if isset($apInfo) && isset($apInfo.icon_class)} {$apInfo.icon_class|escape:'html':'UTF-8'}{/if}"></i>
<a href="javascript:void(0);" title="" class="widget-title">{if isset($formAtts.title) && $formAtts.title}{$formAtts.title|rtrim|escape:'html':'UTF-8'} - {/if} {if isset($apInfo)}{$apInfo.label|escape:'html':'UTF-8'}{/if}</a>
</div>
</div>

View File

@@ -0,0 +1,151 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<!-- @file modules\appagebuilder\views\templates\admin\ap_page_builder_shortcodes\ApColumn -->
<div {if !isset($apInfo)}id="default_column"{/if} class="column-row{if !isset($apInfo)} col-sp-12 col-xs-12 col-sm-12 col-md-12 col-lg-12 col-xl-12{/if}{if isset($colClass)} {$colClass|replace:'.':'-'|escape:'html':'UTF-8'}{/if}{if isset($formAtts)} {$formAtts.form_id|escape:'html':'UTF-8'}{if isset($formAtts.active) && !$formAtts.active} deactive{else} active{/if}{/if}
{if isset($formAtts.active_desktop) && !$formAtts.active_desktop} deactive-desktop{else} active-desktop{/if}
{if isset($formAtts.active_tablet) && !$formAtts.active_tablet} deactive-tablet{else} active-tablet{/if}
{if isset($formAtts.active_mobile) && !$formAtts.active_mobile} deactive-mobile{else} active-mobile{/if} ">
<div class="cover-column">
<div class="column-controll-top">
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Drag to sort Column' mod='appagebuilder'}" class="column-action caction-drag label-tooltip"><i class="icon-move"></i> </a>
&nbsp;
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
<span>{l s='Column' mod='appagebuilder'}</span> <span class="caret"></span>
</button>
<ul class="dropdown-menu for-column-row" role="menu">
<li><a href="javascript:void(0)" title="{l s='Add new Widget' mod='appagebuilder'}" class="column-action btn-new-widget "><i class="icon-plus-sign"></i> {l s='Add new Widget' mod='appagebuilder'}</a></li>
<li><a href="javascript:void(0)" title="{l s='Edit Column' mod='appagebuilder'}" class="column-action btn-edit " data-type="ApColumn" data-for=".column-row"><i class="icon-pencil"></i> {l s='Edit Column' mod='appagebuilder'}</a></li>
<li><a href="javascript:void(0)" title="{l s='Delete Column' mod='appagebuilder'}" class="column-action btn-delete "><i class="icon-trash"></i> {l s='Delete Column' mod='appagebuilder'}</a></li>
<li><a href="javascript:void(0)" title="{l s='Duplicate Group' mod='appagebuilder'}" class="column-action btn-duplicate "><i class="icon-paste"></i> {l s='Duplicate Column' mod='appagebuilder'}</a></li>
{* <li><a href="javascript:void(0)" title="{l s='Disable or Enable Column' mod='appagebuilder'}" class="column-action btn-status {if isset($formAtts.active) && !$formAtts.active} deactive{else} active{/if}"><i class="icon-ok"></i> {l s='Disable or Enable Column' mod='appagebuilder'}</a></li> *}
</ul>
</div>
<div class="btn-group animation-section">
<button type="button" class="btn btn-default animation-button">
<i class="icon-magic"></i>
<span class="animation-status" data-text-default="" data-text-infinite="{l s='Infinite' mod='appagebuilder'}"></span>
</button>
<div class="form-horizontal animation-wrapper column-animation-wrapper">
<div class="form-group">
<label class="control-label col-lg-5">
{l s='Select Animation' mod='appagebuilder'}
</label>
<div class="col-lg-7">
<select name="animation" class="animation_select fixed-width-xl">
{if isset($listAnimation)}
{foreach $listAnimation as $listAnimation_val}
<optgroup label="{$listAnimation_val.name}">
{foreach $listAnimation_val.query as $option}
<option value="{$option.id}">{$option.name}</option>
{/foreach}
</optgroup>
{/foreach}
{/if}
</select>
</div>
</div>
<div class="form-group animate_sub">
<div class="col-lg-10 col-lg-offset-2">
<div class="animationSandbox">Prestashop.com</div>
</div>
</div>
<div class="form-group animate_sub">
<label class="control-label col-lg-5">
{l s='Delay' mod='appagebuilder'} ({l s='Default' mod='appagebuilder'}: 1)
</label>
<div class="col-lg-7">
<div class="input-group fixed-width-xs">
<input name="animation_delay" value="1" class="fixed-width-xs animation_delay" type="text">
<span class="input-group-addon">{l s='s' mod='appagebuilder'}</span>
</div>
</div>
</div>
<div class="form-group animate_sub">
<label class="control-label col-lg-5">
{l s='Duration' mod='appagebuilder'} ({l s='Default' mod='appagebuilder'}: 1)
</label>
<div class="col-lg-7">
<div class="input-group fixed-width-xs">
<input name="animation_duration" value="1" class="fixed-width-xs animation_duration" type="text">
<span class="input-group-addon">{l s='s' mod='appagebuilder'}</span>
</div>
</div>
</div>
<div class="form-group animate_sub animate_loop">
<label class="control-label col-lg-5">
{l s='Iteration count' mod='appagebuilder'} ({l s='Default' mod='appagebuilder'}: 1)
</label>
<div class="col-lg-7">
<div class="input-group fixed-width-xs">
<input name="animation_iteration_count" value="1" class="fixed-width-xs animation_iteration_count" type="text">
<span class="input-group-addon">{l s='times' mod='appagebuilder'}</span>
</div>
</div>
</div>
<div class="form-group animate_sub">
<div class="col-lg-7 col-lg-offset-5">
<div class="checkbox">
<label for="animation_infinite">
<input name="animation_infinite" class="checkbox-group animation_infinite" value="1" type="checkbox">{l s='Infinite' mod='appagebuilder'}
</label>
</div>
</div>
</div>
<div class="form-group">
<div class="col-lg-12">
<button type="button" class="btn btn-primary pull-right btn-save-animation">{l s='Save' mod='appagebuilder'}</button>
<button type="button" class="btn btn-default pull-right animate-it animate_sub">{l s='Animate demo' mod='appagebuilder'}</button>
</div>
</div>
</div>
</div>
<div class="btn-group"><a class="label-tooltip all-devicesd {if isset($formAtts.active) && !$formAtts.active} deactive{else} active{/if}" href="javascript:void(0)" data-toggle="tooltip" title="{if isset($formAtts.active) && !$formAtts.active}Enable Column{else}Disable Column{/if}"><i class="leo-devicesd {if isset($formAtts.active) && !$formAtts.active} icon-remove{else} icon-ok{/if}" ></i></a></div>
<div class="btn-group devicesd-active column-action">
<div class="btn-group {if isset($formAtts.active_desktop) && !$formAtts.active_desktop} deactive-desktop{else} active-desktop{/if} label-tooltip" device="desktop" data-toggle="tooltip"
title="{if isset($formAtts.active_desktop) && !$formAtts.active_desktop}Enable Column On Desktop{else}Disable Column On Desktop{/if}">
<i class="icon-desktop leo-devicesd" ></i>
</div>
<div class="btn-group {if isset($formAtts.active_tablet) && !$formAtts.active_tablet} deactive-tablet{else} active-tablet{/if} label-tooltip" device="tablet" data-toggle="tooltip"
title="{if isset($formAtts.active_tablet) && !$formAtts.active_tablet}Enable Column On Tablet{else}Disable Column On Tablet{/if}">
<i class="icon-tablet leo-devicesd" ></i>
</div>
<div class="btn-group {if isset($formAtts.active_mobile) && !$formAtts.active_mobile} deactive-mobile{else} active-mobile{/if} label-tooltip" device="mobile" data-toggle="tooltip"
title="{if isset($formAtts.active_mobile) && !$formAtts.active_mobile}Enable Column On Mobile{else}Disable Column On Mobile{/if}">
<i class="icon-mobile leo-devicesd" ></i>
</div>
</div>
</div>
<div class="column-controll-right pull-right">
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Reduce size' mod='appagebuilder'}" class="column-action btn-change-colwidth" data-value="-1"><i class="icon-minus-sign-alt"></i></a>
<div class="btn-group">
<button type="button" class="btn" tabindex="-1" data-toggle="dropdown">
<span class="width-val ap-w-6"></span>
</button>
<ul class="dropdown-menu dropdown-menu-right">
{foreach from=$widthList item=itemWidth}
<li class="col-{$itemWidth|replace:'.':'-'|escape:'html':'UTF-8'}">
<a class="change-colwidth" data-width="{$itemWidth|replace:'.':'-'|escape:'html':'UTF-8'}" href="javascript:void(0);" tabindex="-1">
<span data-width="{$itemWidth|replace:'.':'-'|escape:'html':'UTF-8'}" class="width-val ap-w-{if $itemWidth|strpos:"."|escape:'html':'UTF-8'}{$itemWidth|replace:'.':'-'|escape:'html':'UTF-8'}{else}{$itemWidth|escape:'html':'UTF-8'}{/if}">{$itemWidth|escape:'html':'UTF-8'}/12 - ( {math equation="x/y*100" x=$itemWidth y=12 format="%.2f"} % )</span>
</a>
</li>
{/foreach}
</ul>
</div>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Increase size' mod='appagebuilder'}" class="column-action btn-change-colwidth" data-value="1"><i class="icon-plus-sign-alt"></i></a>
</div>
<div class="column-content">
{if isset($apInfo)}{$apContent}{* HTML form , no escape necessary *}{/if}
</div>
<div class="column-controll-bottom">
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Add new Widget' mod='appagebuilder'}" class="column-action btn-new-widget label-tooltip"><i class="icon-plus-sign"></i></a>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Edit Column' mod='appagebuilder'}" class="column-action btn-edit label-tooltip" data-type="ApColumn"><i class="icon-pencil"></i></a>
</div>
</div>
</div>

View File

@@ -0,0 +1,42 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<!-- @file modules\appagebuilder\views\templates\admin\ap_page_builder_shortcodes\ApGeneral -->
<div {if !isset($apInfo)}id="default_widget"{/if} class="widget-row clearfix{if isset($apInfo)} {$apInfo.name|escape:'html':'UTF-8'}{if isset($apInfo.icon_class)} widget-icon{/if}{/if}{if isset($formAtts)} {$formAtts.form_id|escape:'html':'UTF-8'}{/if}{if isset($formAtts.active) && !$formAtts.active} deactive{else} active{/if}
{if isset($formAtts.active_desktop) && !$formAtts.active_desktop} deactive-desktop{else} active-desktop{/if}
{if isset($formAtts.active_tablet) && !$formAtts.active_tablet} deactive-tablet{else} active-tablet{/if}
{if isset($formAtts.active_mobile) && !$formAtts.active_mobile} deactive-mobile{else} active-mobile{/if}" {if isset($apInfo)}data-type="{$apInfo.name|escape:'html':'UTF-8'}"{/if}>
{if isset($formAtts)}
<a id="{$formAtts.form_id|escape:'html':'UTF-8'}" name="{$formAtts.form_id|escape:'html':'UTF-8'}"></a>
{/if}
<div class="widget-controll-top pull-right">
<a href="javascript:void(0)" title="{l s='Drag to sort Widget' mod='appagebuilder'}" class="widget-action waction-drag label-tooltip"><i class="icon-move"></i> </a>
<a href="javascript:void(0)" title="{l s='Disable or Enable Column' mod='appagebuilder'}" class="widget-action btn-status{if isset($formAtts.active) && !$formAtts.active} deactive{else} active{/if} label-tooltip"><i class="{if isset($formAtts.active) && !$formAtts.active}icon-remove{else}icon-ok{/if}"></i></a>
<a href="javascript:void(0)" title="{l s='Edit Widget' mod='appagebuilder'}" class="widget-action btn-edit label-tooltip" {if isset($apInfo)}data-type="{$apInfo.name|escape:'html':'UTF-8'}"{/if}><i class="icon-pencil"></i></a>
<a href="javascript:void(0)" title="{l s='Duplicate Widget' mod='appagebuilder'}" class="widget-action btn-duplicate label-tooltip"><i class="icon-paste"></i></a>
<a href="javascript:void(0)" title="{l s='Delete Column' mod='appagebuilder'}" class="widget-action btn-delete label-tooltip"><i class="icon-trash"></i></a>
</div>
<div class="devicesd-active widget-action widget-controll-top group-devicesd pull-right">
<div class="btn-group {if isset($formAtts.active_desktop) && !$formAtts.active_desktop} deactive-desktop{else} active-desktop{/if} label-tooltip" device="desktop" data-toggle="tooltip"
title="{if isset($formAtts.active_desktop) && !$formAtts.active_desktop}Enable Widget On Desktop{else}Disable Widget On Desktop{/if}">
<i class="icon-desktop leo-devicesd" ></i>
</div>
<div class="btn-group {if isset($formAtts.active_tablet) && !$formAtts.active_tablet} deactive-tablet{else} active-tablet{/if} label-tooltip" device="tablet" data-toggle="tooltip"
title="{if isset($formAtts.active_tablet) && !$formAtts.active_tablet}Enable Widget On Tablet{else}Disable Widget On Tablet{/if}">
<i class="icon-tablet leo-devicesd" ></i>
</div>
<div class="btn-group {if isset($formAtts.active_mobile) && !$formAtts.active_mobile} deactive-mobile{else} active-mobile{/if} label-tooltip" device="mobile" data-toggle="tooltip"
title="{if isset($formAtts.active_mobile) && !$formAtts.active_mobile}Enable Widget On Mobile{else}Disable Widget On Mobile{/if}">
<i class="icon-mobile leo-devicesd" ></i>
</div>
</div>
<div class="widget-content">
<img class="w-img" width="16" src="{$moduleDir|escape:'html':'UTF-8'}appagebuilder/logo.gif" title="{l s='Appolo Widget' mod='appagebuilder'}" alt="{l s='Appolo Widget' mod='appagebuilder'}"/>
<i class="icon w-icon{if isset($apInfo) && isset($apInfo.icon_class)} {$apInfo.icon_class|escape:'html':'UTF-8'}{/if}"></i>
<a href="javascript:void(0);" title="" class="widget-title">{if isset($formAtts.title) && $formAtts.title}{$formAtts.title|rtrim|escape:'html':'UTF-8'} - {/if} {if isset($apInfo)}{$apInfo.label|escape:'html':'UTF-8'}{/if}</a>
</div>
</div>

View File

@@ -0,0 +1,47 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<!-- @file modules\appagebuilder\views\templates\admin\ap_page_builder_shortcodes\ApModule -->
<div {if !isset($apInfo)}id="default_widget"{/if} class="widget-row clearfix{if isset($apInfo)} {$apInfo.name|escape:'html':'UTF-8'}{if isset($apInfo.icon_class)} widget-icon{/if}{/if}{if isset($formAtts)} {$formAtts.form_id|escape:'html':'UTF-8'}{/if}{if isset($formAtts.active) && !$formAtts.active} deactive{else} active{/if}" {if isset($apInfo)}data-type="{$apInfo.name|escape:'html':'UTF-8'}"{/if}>
<div class="widget-controll-top pull-right">
<a href="javascript:void(0)" title="{l s='Drag to sort Widget' mod='appagebuilder'}" class="widget-action waction-drag label-tooltip"><i class="icon-move"></i> </a>
<a href="javascript:void(0)" title="{l s='Disable or Enable Column' mod='appagebuilder'}" class="widget-action btn-status {if isset($formAtts.active) && !$formAtts.active} deactive{else} active{/if} label-tooltip">
{if isset($formAtts.active) && !$formAtts.active}
<i class="icon-remove"></i>
{else}
<i class="icon-ok"></i>
{/if}
</a>
<a href="javascript:void(0)" title="{l s='Edit Widget' mod='appagebuilder'}" class="widget-action btn-edit label-tooltip" {if isset($apInfo)}data-type="{$apInfo.name|escape:'html':'UTF-8'}"{/if}><i class="icon-pencil"></i></a>
<a href="javascript:void(0)" title="{l s='Duplicate Widget' mod='appagebuilder'}" class="widget-action btn-duplicate label-tooltip"><i class="icon-paste"></i></a>
<a href="javascript:void(0)" title="{l s='Delete Column' mod='appagebuilder'}" class="widget-action btn-delete label-tooltip"><i class="icon-trash"></i></a>
</div>
<div class="devicesd-active widget-action widget-controll-top group-devicesd pull-right">
<div class="btn-group {if isset($formAtts.active_desktop) && !$formAtts.active_desktop} deactive-desktop{else} active-desktop{/if} label-tooltip" device="desktop" data-toggle="tooltip"
title="{if isset($formAtts.active_desktop) && !$formAtts.active_desktop}Enable Widget On Desktop{else}Disable Widget On Desktop{/if}">
<i class="icon-desktop leo-devicesd" ></i>
</div>
<div class="btn-group {if isset($formAtts.active_tablet) && !$formAtts.active_tablet} deactive-tablet{else} active-tablet{/if} label-tooltip" device="tablet" data-toggle="tooltip"
title="{if isset($formAtts.active_tablet) && !$formAtts.active_tablet}Enable Widget On Tablet{else}Disable Widget On Tablet{/if}">
<i class="icon-tablet leo-devicesd" ></i>
</div>
<div class="btn-group {if isset($formAtts.active_mobile) && !$formAtts.active_mobile} deactive-mobile{else} active-mobile{/if} label-tooltip" device="mobile" data-toggle="tooltip"
title="{if isset($formAtts.active_mobile) && !$formAtts.active_mobile}Enable Widget On Mobile{else}Disable Widget On Mobile{/if}">
<i class="icon-mobile leo-devicesd" ></i>
</div>
</div>
<div class="widget-content">
<img class="w-img" width="16" src="{$moduleDir|escape:'html':'UTF-8'}appagebuilder/logo.gif" title="{l s='Appolo Widget' mod='appagebuilder'}" alt="{l s='Appolo Widget' mod='appagebuilder'}"/>
<i class="icon w-icon{if isset($apInfo) && isset($apInfo.icon_class)} {$apInfo.icon_class|escape:'html':'UTF-8'}{/if}"></i>
<a href="javascript:void(0);" title="" class="widget-title">
{if isset($formAtts.title) && $formAtts.title}{$formAtts.title|rtrim|escape:'html':'UTF-8'} -
{elseif isset($formAtts.name_module) && $formAtts.name_module}{$formAtts.name_module|escape:"html"|escape:'html':'UTF-8'} -
{/if}
{if isset($apInfo)}{$apInfo.label|escape:'html':'UTF-8'}{/if}</a>
</div>
</div>

View File

@@ -0,0 +1,131 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<!-- @file modules\appagebuilder\views\templates\admin\ap_page_builder_shortcodes\ApRow -->
<div {if !isset($apInfo)}id="default_row"{/if} class="row group-row{if isset($formAtts)} {$formAtts.form_id|escape:'html':'UTF-8'}{/if}{if isset($formAtts.active) && !$formAtts.active} deactive{else} active{/if}
{if isset($formAtts.active_desktop) && !$formAtts.active_desktop} deactive-desktop{else} active-desktop{/if}
{if isset($formAtts.active_tablet) && !$formAtts.active_tablet} deactive-tablet{else} active-tablet{/if}
{if isset($formAtts.active_mobile) && !$formAtts.active_mobile} deactive-mobile{else} active-mobile{/if} ">
<div class="group-controll-left pull-left">
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Drag to sort group' mod='appagebuilder'}" class="group-action gaction-drag label-tooltip"><i class="icon-move"></i> </a>
&nbsp;
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
<span>{l s='Group' mod='appagebuilder'}</span> <span class="caret"></span>
</button>
<ul class="dropdown-menu for-group-row" role="menu">
<li><a href="javascript:void(0)" title="{l s='Edit Group' mod='appagebuilder'}" class="group-action btn-edit" data-type="ApRow"><i class="icon-edit"></i> {l s='Edit Group' mod='appagebuilder'}</a></li>
<li><a href="javascript:void(0)" title="{l s='Delete Group' mod='appagebuilder'}" class="group-action btn-delete"><i class="icon-trash"></i> {l s='Delete Group' mod='appagebuilder'}</a></li>
<li><a href="javascript:void(0)" title="{l s='Export Group' mod='appagebuilder'}" class="group-action btn-export" data-type="group"><i class="icon-cloud-download"></i> {l s='Export Group' mod='appagebuilder'}</a></li>
<li><a href="javascript:void(0)" title="{l s='Duplicate Group' mod='appagebuilder'}" class="group-action btn-duplicate "><i class="icon-paste"></i> {l s='Duplicate Group' mod='appagebuilder'}</a></li>
{* <li><a href="javascript:void(0)" title="{l s='Disable or Enable Group' mod='appagebuilder'}" class="group-action btn-status {if isset($formAtts.active) && !$formAtts.active} deactive{else} active{/if}"><i class="icon-ok"></i> {l s='Disable or Enable Group' mod='appagebuilder'}</a></li> *}
</ul>
</div>
<div class="btn-group animation-section">
<button type="button" class="btn btn-default animation-button">
<i class="icon-magic"></i>
<span class="animation-status" data-text-default="" data-text-infinite="{l s='Infinite' mod='appagebuilder'}"></span>
</button>
<div class="form-horizontal animation-wrapper group-animation-wrapper">
<div class="form-group">
<label class="control-label col-lg-5">
{l s='Select Animation' mod='appagebuilder'}
</label>
<div class="col-lg-7">
<select name="animation" class="animation_select fixed-width-xl">
{if isset($listAnimation)}
{foreach $listAnimation as $listAnimation_val}
<optgroup label="{$listAnimation_val.name}">
{foreach $listAnimation_val.query as $option}
<option value="{$option.id}">{$option.name}</option>
{/foreach}
</optgroup>
{/foreach}
{/if}
</select>
</div>
</div>
<div class="form-group animate_sub">
<div class="col-lg-10 col-lg-offset-2">
<div class="animationSandbox">Prestashop.com</div>
</div>
</div>
<div class="form-group animate_sub">
<label class="control-label col-lg-5">
{l s='Delay' mod='appagebuilder'} ({l s='Default' mod='appagebuilder'}: 1)
</label>
<div class="col-lg-7">
<div class="input-group fixed-width-xs">
<input name="animation_delay" value="1" class="fixed-width-xs animation_delay" type="text">
<span class="input-group-addon">{l s='s' mod='appagebuilder'}</span>
</div>
</div>
</div>
<div class="form-group animate_sub">
<label class="control-label col-lg-5">
{l s='Duration' mod='appagebuilder'} ({l s='Default' mod='appagebuilder'}: 1)
</label>
<div class="col-lg-7">
<div class="input-group fixed-width-xs">
<input name="animation_duration" value="1" class="fixed-width-xs animation_duration" type="text">
<span class="input-group-addon">{l s='s' mod='appagebuilder'}</span>
</div>
</div>
</div>
<div class="form-group animate_sub animate_loop">
<label class="control-label col-lg-5">
{l s='Iteration count' mod='appagebuilder'} ({l s='Default' mod='appagebuilder'}: 1)
</label>
<div class="col-lg-7">
<div class="input-group fixed-width-xs">
<input name="animation_iteration_count" value="1" class="fixed-width-xs animation_iteration_count" type="text">
<span class="input-group-addon">{l s='times' mod='appagebuilder'}</span>
</div>
</div>
</div>
<div class="form-group animate_sub">
<div class="col-lg-7 col-lg-offset-5">
<div class="checkbox">
<label for="animation_infinite">
<input name="animation_infinite" class="checkbox-group animation_infinite" value="1" type="checkbox">{l s='Infinite' mod='appagebuilder'}
</label>
</div>
</div>
</div>
<div class="form-group">
<div class="col-lg-12">
<button type="button" class="btn btn-primary pull-right btn-save-animation">{l s='Save' mod='appagebuilder'}</button>
<button type="button" class="btn btn-default pull-right animate-it animate_sub">{l s='Animate demo' mod='appagebuilder'}</button>
</div>
</div>
</div>
</div>
<div class="btn-group"><a class="label-tooltip all-devicesd {if isset($formAtts.active) && !$formAtts.active} deactive{else} active{/if}" href="javascript:void(0)" data-toggle="tooltip" title="{if isset($formAtts.active) && !$formAtts.active}Enable Group{else}Disable Group{/if}"><i class="leo-devicesd {if isset($formAtts.active) && !$formAtts.active} icon-remove{else} icon-ok{/if}" ></i></a></div>
<div class="btn-group devicesd-active group-action">
<div class="btn-group {if isset($formAtts.active_desktop) && !$formAtts.active_desktop} deactive-desktop{else} active-desktop{/if} label-tooltip" device="desktop" data-toggle="tooltip"
title="{if isset($formAtts.active_desktop) && !$formAtts.active_desktop}Enable Group On Desktop{else}Disable Group On Desktop{/if}">
<i class="icon-desktop leo-devicesd" ></i>
</div>
<div class="btn-group {if isset($formAtts.active_tablet) && !$formAtts.active_tablet} deactive-tablet{else} active-tablet{/if} label-tooltip" device="tablet" data-toggle="tooltip"
title="{if isset($formAtts.active_tablet) && !$formAtts.active_tablet}Enable Group On Tablet{else}Disable Group On Tablet{/if}">
<i class="icon-tablet leo-devicesd" ></i>
</div>
<div class="btn-group {if isset($formAtts.active_mobile) && !$formAtts.active_mobile} deactive-mobile{else} active-mobile{/if} label-tooltip" device="mobile" data-toggle="tooltip"
title="{if isset($formAtts.active_mobile) && !$formAtts.active_mobile}Enable Group On Mobile{else}Disable Group On Mobile{/if}">
<i class="icon-mobile leo-devicesd" ></i>
</div>
</div>
</div>
<div class="group-controll-right pull-right">
<a href="javascript:void(0)" title="{l s='Add New Column' mod='appagebuilder'}" class="group-action btn-add-column" tabindex="0" data-container="body" data-toggle="popover" data-placement="left" data-trigger="focus"><i class="icon-plus"></i></a>
<a href="javascript:void(0)" title="{l s='Set width for all column' mod='appagebuilder'}" class="group-action btn-custom" tabindex="0" data-container="body" data-toggle="popover" data-placement="left" data-trigger="focus" ><i class="icon-th"></i></a>
<a href="javascript:void(0)" title="{l s='Expand or collapse Group' mod='appagebuilder'}" class="group-action gaction-toggle label-tooltip"><i class="icon-circle-arrow-down"></i></a>
</div>
<div class="group-content">
{if isset($apInfo)}{$apContent}{* HTML form , no escape necessary *}{/if}
</div>
</div>

View File

@@ -0,0 +1,92 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<!-- @file modules\appagebuilder\views\templates\admin\ap_page_builder_shortcodes\ApTabs -->
{if !isset($isSubTab)}
<div {if !isset($apInfo)}id="default_ApTabs"{/if} class="widget-row clearfix ApTabs{if isset($formAtts)} {$formAtts.form_id|escape:'html':'UTF-8'}{/if}{if isset($formAtts.active) && !$formAtts.active} deactive{else} active{/if}
{if isset($formAtts.active_desktop) && !$formAtts.active_desktop} deactive-desktop{else} active-desktop{/if}
{if isset($formAtts.active_tablet) && !$formAtts.active_tablet} deactive-tablet{else} active-tablet{/if}
{if isset($formAtts.active_mobile) && !$formAtts.active_mobile} deactive-mobile{else} active-mobile{/if} " data-type='ApTabs'>
<div class="float-center-control text-center">
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Drag to sort group' mod='appagebuilder'}" class="tab-action waction-drag label-tooltip"><i class="icon-move"></i> </a>
<span>{l s='Widget Tab' mod='appagebuilder'}</span>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Edit Tabs' mod='appagebuilder'}" class="tab-action btn-edit label-tooltip" data-type="ApTabs"><i class="icon-edit"></i></a>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Delete Tabs' mod='appagebuilder'}" class="tab-action btn-delete label-tooltip"><i class="icon-trash"></i></a>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Duplicate Tabs' mod='appagebuilder'}" class="tab-action btn-duplicate label-tooltip"><i class="icon-paste"></i></a>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Disable or Enable Tab' mod='appagebuilder'}" class="tab-action btn-status label-tooltip{if isset($formAtts.active) && !$formAtts.active} deactive{else} active{/if}"><i class="icon-ok"></i></a>
<div class="devicesd-active widget-action group-devicesd pull-right">
<div class="btn-group {if isset($formAtts.active_desktop) && !$formAtts.active_desktop} deactive-desktop{else} active-desktop{/if} label-tooltip" device="desktop" data-toggle="tooltip"
title="{if isset($formAtts.active_desktop) && !$formAtts.active_desktop}Enable Widget On Desktop{else}Disable Widget On Desktop{/if}">
<i class="icon-desktop leo-devicesd" ></i>
</div>
<div class="btn-group {if isset($formAtts.active_tablet) && !$formAtts.active_tablet} deactive-tablet{else} active-tablet{/if} label-tooltip" device="tablet" data-toggle="tooltip"
title="{if isset($formAtts.active_tablet) && !$formAtts.active_tablet}Enable Widget On Tablet{else}Disable Widget On Tablet{/if}">
<i class="icon-tablet leo-devicesd" ></i>
</div>
<div class="btn-group {if isset($formAtts.active_mobile) && !$formAtts.active_mobile} deactive-mobile{else} active-mobile{/if} label-tooltip" device="mobile" data-toggle="tooltip"
title="{if isset($formAtts.active_mobile) && !$formAtts.active_mobile}Enable Widget On Mobile{else}Disable Widget On Mobile{/if}">
<i class="icon-mobile leo-devicesd" ></i>
</div>
</div>
</div>
{if !isset($apInfo)}
<ul class="widget-container-heading nav nav-tabs" role="tablist">
{for $foo=1 to 3}
<li {if $foo ==3}id="default_tabnav"{/if} class="{if $foo==1}active{/if}">
<a href="#tab{$foo|escape:'html':'UTF-8'}" role="tab" data-toggle="tab">{if $foo ==3}{l s='New Tab' mod='appagebuilder'}{else}{l s='Tab' mod='appagebuilder'} {$foo|escape:'html':'UTF-8'}{/if}</a></li>
{/for}
<li class="tab-button"><a href="javascript:void(0)" class="btn-add-tab"><i class="icon-plus"></i> {l s='Add' mod='appagebuilder'}</a></li>
</ul>
<div class="tab-content widget-container-content">
{for $foo=1 to 3}
<div {if $foo ==3}id="default_tabcontent"{else}id="tab{$foo|escape:'html':'UTF-8'}"{/if} class="tab-pane{if $foo==1} active{/if} widget-wrapper-content">
<div class="text-center tab-content-control">
<span>{l s='Tab' mod='appagebuilder'}</span>
<a href="javascript:void(0)" class="tabcontent-action btn-new-widget label-tooltip" title=""><i class="icon-plus-sign"></i></a>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Edit Tab' mod='appagebuilder'}" class="tabcontent-action btn-edit label-tooltip" data-type="apSubTabs"><i class="icon-edit"></i></a>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Delete Tab' mod='appagebuilder'}" class="tabcontent-action btn-delete label-tooltip tab"><i class="icon-trash"></i></a>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Duplicate Tab' mod='appagebuilder'}" class="tabcontent-action btn-duplicate label-tooltip"><i class="icon-paste"></i></a>
</div>
<div class="subwidget-content">
</div>
</div>
{/for}
</div>
{else}
<ul class="widget-container-heading nav nav-tabs" role="tablist">
{foreach from=$subTabContent item=subTab}
<li class="">
<a href="#{$subTab.id|escape:'html':'UTF-8'}" class="{$subTab.form_id|escape:'html':'UTF-8'}" role="tab" data-toggle="tab">
<span>{$subTab.title|escape:'html':'UTF-8'}</span>
</a>
</li>
{/foreach}
<li class="tab-button"><a href="javascript:void(0)" class="btn-add-tab"><i class="icon-plus"></i> {l s='Add' mod='appagebuilder'}</a></li>
</ul>
<div class="tab-content">
{$apContent}{* HTML form , no escape necessary *}
</div>
{/if}
</div>
{else}
<div id="{$tabID|escape:'html':'UTF-8'}" class="tab-pane widget-wrapper-content">
<div class="text-center tab-content-control">
<span>{l s='Tab' mod='appagebuilder'}</span>
<a href="javascript:void(0)" class="tabcontent-action btn-new-widget label-tooltip" title=""><i class="icon-plus-sign"></i></a>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Edit Tab' mod='appagebuilder'}" class="tabcontent-action btn-edit label-tooltip" data-type="apSubTabs"><i class="icon-edit"></i></a>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Delete Tab' mod='appagebuilder'}" class="tabcontent-action btn-delete label-tooltip tab"><i class="icon-trash"></i></a>
<a href="javascript:void(0)" data-toggle="tooltip" title="{l s='Duplicate Tab' mod='appagebuilder'}" class="tabcontent-action btn-duplicate label-tooltip"><i class="icon-paste"></i></a>
</div>
<div class="subwidget-content">
{$apContent}{* HTML form , no escape necessary *}
</div>
</div>
{/if}

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2019 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

View File

@@ -0,0 +1,589 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<!-- @file modules\appagebuilder\views\templates\admin\ap_page_builder_theme_configuration\helpers\form\form.tpl -->
{extends file="helpers/form/form.tpl"}
{block name="field"}
{if $input.type == 'tabConfig'}
<div class="row">
{assign var=tabList value=$input.values}
<ul class="nav nav-tabs" role="tablist">
{foreach $tabList as $key => $value name="tabList"}
<li role="presentation" class="tabConfig {if $key == $input.default}active{/if}"><a href="#{$key|escape:'html':'UTF-8'}" class="aptab-config" role="tab" data-toggle="tab" data-value="{$key|escape:'html':'UTF-8'}">{$value|escape:'html':'UTF-8'}</a></li>
{/foreach}
</ul>
</div>
<input type="hidden" id="tab_open" name="tab_open" value="{$input.default}">
<script>
$(document).ready(function(){
$('.aptab-config').click(function(){
$('#tab_open').val( $(this).data('value') );
});
});
$(document).on('click', '#configuration_form_submit_btn', function(e){
e.preventDefault();
var active_tab = $('.form-wrapper ul.nav-tabs li.active a').data('value');
$('#tab_open').val( active_tab );
$(this).closest('form').submit();
});
</script>
{/if}
{if $input.type == 'modules_block'}
{assign var=moduleList value=$input.values}
{if isset($input.exist_module) && !$input.exist_module}
<label class="control-label" style="color: red; margin-bottom: 15px; margin-left: 10px;"> {l s='Empty module because not exist file config.xml in theme folder.' mod='appagebuilder'}</label>
<br />
{/if}
<div class="col-lg-9 ">
{if isset($moduleList) && count($moduleList) > 0}
<p class="help-block">{l s='You can select one or more Module.' mod='appagebuilder'}</p>
<table cellspacing="0" cellpadding="0" class="table" style="min-width:40em;">
<tr>
<th>
<input type="checkbox" name="checkme" id="checkme" class="noborder" onclick="checkDelBoxes(this.form, '{$input.name|escape:'html':'UTF-8'}[]', this.checked)" />
</th>
<th>{l s='Name' mod='appagebuilder'}</th>
<th>{l s='Back-up File' mod='appagebuilder'}
<p class="help-block" style="display: inline;">
{$backup_dir}
</p>
</th>
</tr>
{foreach from=$moduleList item=module name=moduleItem}
<tr {if $smarty.foreach.moduleItem.index % 2}class="alt_row"{/if}>
<td>
<input type="checkbox" class="cmsBox" name="{$input.name|escape:'html':'UTF-8'}[]" id="chk_{$module.name|escape:'html':'UTF-8'}" value="{$module.name|escape:'html':'UTF-8'}"/>
</td>
<td><label for="chk_{$module.name|escape:'html':'UTF-8'}" class="t"><strong>{$module.name|escape:'html':'UTF-8'}</strong></label></td>
<td>
{if isset($module.files)}
<select style="max-width: 500px;" name="file_{$module.name|escape:'html':'UTF-8'}">
{foreach from=$module.files item=file name=Modulefile}
<option value="{$file|escape:'html':'UTF-8'}">{$file|escape:'html':'UTF-8'}</option>
{/foreach}
</select>
{/if}
</td>
</tr>
{/foreach}
</table>
{/if}
</div>
<div class="form-group button-wrapper">
<div class="col-lg-9 col-lg-offset-3">
<button class="button btn btn-success" name="submitBackup" id="submitBackup" type="submit">
{l s='Back-up to PHP file' mod='appagebuilder'}
</button>
<button class="button btn btn-danger" name="submitRestore" data-confirm="{l s='Are you sure you want to restore from PHP file?' mod='appagebuilder'}" id="submitRestore" type="submit">
{l s='Restore from PHP file' mod='appagebuilder'}
</button>
<button class="button btn btn-success" name="submitSample" id="submitSample" type="submit">
{l s='Export Sample Data' mod='appagebuilder'}
</button>
<button class="button btn btn-danger" name="submitImport" data-confirm="{l s='Are you sure you want to restore data sample of template. You will lost all data of module' mod='appagebuilder'}" id="submitImport" type="submit">
{l s='Restore Sample Data' mod='appagebuilder'}
</button>
<p class="help-block">{l s='Data Sample is only for theme developer' mod='appagebuilder'}</p>
</div>
</div>
<div class="form-group">
<div class="col-lg-9 col-lg-offset-3">
<div class="alert alert-info">
{l s='With restore function, you will lost all data of module in site for all shop' mod='appagebuilder'}
<hr>
{l s='You should back-up before do any thing' mod='appagebuilder'}
</div>
</div>
</div>
<div class="form-group">
<div class="col-lg-9 col-lg-offset-3">
<button class="button btn btn-success" name="submitExportDBStruct" id="submitExportDBStruct" type="submit">
{l s='Export Data Struct' mod='appagebuilder'}
</button>
<p class="help-block">
{$input.folder_data_struct}
</p>
</div>
</div>
<div class="form-group">
<div class="col-lg-9 col-lg-offset-3">
<button class="button btn btn-success" name="submitUpdateModule" id="submitUpdateModule" type="submit" onclick="javascript:return confirm('{l s='Are you sure you want to Update and Correct Module. Please back-up all things before?' mod='appagebuilder'}')">
<i class="icon-AdminParentPreferences"></i> {l s='Update and Correct Module' mod='appagebuilder'}
</button>
</div>
</div>
<script type="text/javascript">
$(".button-wrapper .button").click(function(){
hasCheckedE = 0;
$("[name='moduleList[]']").each(function(){
if($(this).is(":checked")){
hasCheckedE = 1;
return false;
}
});
if(!hasCheckedE){
alert("You have to select atleast one module");
return false;
}
dataConfirm = $(this).attr("data-confirm");
if(dataConfirm){
return confirm(dataConfirm);
}
});
</script>
{/if}
{if $input.type == 'font_h'}
<div>
<div class="col-lg-3">
<h2>{$input.htitle}</h2>
<p class="help-block">{$input.desc}</p>
</div>
<div class="col-lg-9">
{foreach $input.items as $ikey => $item}
{if ($item.type == 'select')}
<div class="t_span4 col-lg-4">
{if isset($item.label) }<h4 class="title-item">{$item.label}</h4>{/if}
<select name="{$item.name|escape:'html':'UTF-8'}"
class="{if isset($item.class)}{$item.class|escape:'html':'UTF-8'}{/if}"
id="{if isset($item.id)}{$item.id|escape:'html':'UTF-8'}{else}{$item.name|escape:'html':'UTF-8'}{/if}"
{if isset($item.multiple) && $item.multiple} multiple="multiple"{/if}
{if isset($item.size)} size="{$item.size|escape:'html':'UTF-8'}"{/if}
{if isset($item.onchange)} onchange="{$item.onchange|escape:'html':'UTF-8'}"{/if}
{if isset($item.disabled) && $item.disabled} disabled="disabled"{/if}>
{if isset($item.options.default)}
<option value="{$item.options.default.value|escape:'html':'UTF-8'}">{$item.options.default.label|escape:'html':'UTF-8'}</option>
{/if}
{if isset($item.options.optiongroup)}
{foreach $item.options.optiongroup.query AS $optiongroup}
<optgroup label="{$optiongroup[$item.options.optiongroup.label]}">
{foreach $optiongroup[$item.options.options.query] as $option}
<option value="{$option[$item.options.options.id]}"
{if isset($item.multiple)}
{foreach $fields_value[$input.name][$item.name] as $field_value}
{if $field_value == $option[$item.options.options.id]}selected="selected"{/if}
{/foreach}
{else}
{if $fields_value[$input.name][$item.name] == $option[$item.options.options.id]}selected="selected"{/if}
{/if}
>{$option[$item.options.options.name]}</option>
{/foreach}
</optgroup>
{/foreach}
{else}
{foreach $item.options.query AS $option}
{if is_object($option)}
<option value="{$option->$item.options.id}"
{if isset($item.multiple)}
{foreach $fields_value[$input.name][$item.name] as $field_value}
{if $field_value == $option->$item.options.id}
selected="selected"
{/if}
{/foreach}
{else}
{if $fields_value[$input.name][$item.name] == $option->$item.options.id}
selected="selected"
{/if}
{/if}
>{$option->$item.options.name}</option>
{elseif $option == "-"}
<option value="">-</option>
{else}
<option value="{$option[$item.options.id]}"
{if isset($item.multiple)}
{foreach $fields_value[$input.name][$item.name] as $field_value}
{if $field_value == $option[$item.options.id]}
selected="selected"
{/if}
{/foreach}
{else}
{if $fields_value[$input.name][$item.name] == $option[$item.options.id]}
selected="selected"
{/if}
{/if}
>{$option[$item.options.name]}</option>
{/if}
{/foreach}
{/if}
</select>
</div>
{elseif $item.type == 'color'}
<div class="t_span4 col-lg-4">
{if isset($item.label) }<h4 class="title-item">{$item.label}</h4>{/if}
<div class="input-group col-lg-5">
<input type="color"
data-hex="true"
{if isset($item.class)} class="{$item.class}"
{else} class="color mColorPickerInput"{/if}
name="{$input.name}"
value="{$fields_value[$input.name][$item.name]|escape:'html':'UTF-8'}" />
</div>
</div>
{elseif $item.type == 'text'}
<div class="t_span4 col-lg-4">
{if isset($item.label) }<h4 class="title-item">{$item.label}</h4>{/if}
{assign var='value_text' value=$fields_value[$input.name][$item.name]}
{if isset($item.maxchar) || isset($item.prefix) || isset($item.suffix)}
<div class="input-group{if isset($item.class)} {$item.class}{/if}">
{/if}
{if isset($item.maxchar) && $item.maxchar}
<span id="{if isset($item.id)}{$item.id}{else}{$item.name}{/if}_counter" class="input-group-addon"><span class="text-count-down">{$item.maxchar|intval}</span></span>
{/if}
{if isset($item.prefix)}
<span class="input-group-addon">
{$item.prefix}
</span>
{/if}
<input type="text"
name="{$item.name}"
id="{if isset($item.id)}{$item.id}{else}{$item.name}{/if}"
value="{if isset($item.string_format) && $item.string_format}{$value_text|string_format:$item.string_format|escape:'html':'UTF-8'}{else}{$value_text|escape:'html':'UTF-8'}{/if}"
class="{if isset($item.class)}{$item.class}{/if}{if $item.type == 'tags'} tagify{/if}"
{if isset($item.size)} size="{$item.size}"{/if}
{if isset($item.maxchar) && $item.maxchar} data-maxchar="{$item.maxchar|intval}"{/if}
{if isset($item.maxlength) && $item.maxlength} maxlength="{$item.maxlength|intval}"{/if}
{if isset($item.readonly) && $item.readonly} readonly="readonly"{/if}
{if isset($item.disabled) && $item.disabled} disabled="disabled"{/if}
{if isset($item.autocomplete) && !$item.autocomplete} autocomplete="off"{/if}
{if isset($item.required) && $item.required } required="required" {/if}
{if isset($item.placeholder) && $item.placeholder } placeholder="{$item.placeholder}"{/if}
/>
{if isset($item.suffix)}
<span class="input-group-addon">
{$item.suffix}
</span>
{/if}
{if isset($item.maxchar) || isset($item.prefix) || isset($item.suffix)}
</div>
{/if}
{if isset($item.maxchar) && $item.maxchar}
<script type="text/javascript">
$(document).ready(function(){
countDown($("#{if isset($item.id)}{$item.id}{else}{$item.name}{/if}"), $("#{if isset($item.id)}{$item.id}{else}{$item.name}{/if}_counter"));
});
</script>
{/if}
</div>
{/if}
{/foreach}
</div>
</div>
{/if}
{if $input.type == 'font_setup'}
<h4 style="" class="t-group-attr">Google Fonts Setup </h4>
<p class="t-help-block">Here you can setup the <a href="//www.google.com/fonts" target="blank">Google web fonts</a> that you want to use in your site.</p>
<div>
<select class="select_gfont" style="font-size: 13px;height: 34px;margin-bottom: 0;margin-left: 0;margin-right: 0;margin-top: 0;max-width: 250px;width: 100%;display: inline-block">
<option value="">Please select a font</option>
{assign var=lgfonts value=$input.list_google_font}
{foreach $lgfonts as $key => $value name="lgfont"}
<option value="{$value}">{$value}</option>
{/foreach}
</select>
<a class="btn btn-success add_gfont" href="#">Add Font</a>
</div>
<br />
<br />
{literal}
<div id="use_google_font" class="use_google_font panel col-lg-12" style="margin-top: 12px">
<div class="table-responsive-row clearfix">
<table class="table appagebuilder_positions">
<thead>
<tr class="nodrag nodrop">
<th class="center fixed-width-xs"></th>
<th class=""><span class="title_box">Name</span></th>
<th></th>
</tr>
</thead>
<tbody class="list_gfonts"></tbody>
</table>
</div>
</div>
{/literal}
<div>
<h4 class="t-group-attr">{l s='Google Fonts Subset' mod='appagebuilder'}</h4>
<p class="t-help-block">{l s='Select which subsets you want to load for the Google fonts.' mod='appagebuilder'}</p>
<div>
<div class="leo_checkbox_wrapper ">
<input name="gfonts_subsets[]" id="gfonts_subsets_latin" value="latin" type="checkbox">
<label style="cursor: pointer !important;" for="gfonts_subsets_latin">{l s='Latin' mod='appagebuilder'}</label><br>
<input name="gfonts_subsets[]" id="gfonts_subsets_latin-ext" value="latin-ext" type="checkbox">
<label style="cursor: pointer !important;" for="gfonts_subsets_latin-ext">{l s='Latin Ext' mod='appagebuilder'}</label><br>
<input name="gfonts_subsets[]" id="gfonts_subsets_greek" value="greek" type="checkbox">
<label style="cursor: pointer !important;" for="gfonts_subsets_greek">{l s='Greek' mod='appagebuilder'}</label><br>
<input name="gfonts_subsets[]" id="gfonts_subsets_cyrillic" value="cyrillic" type="checkbox">
<label style="cursor: pointer !important;" for="gfonts_subsets_cyrillic">{l s='Cyrillic' mod='appagebuilder'}</label><br>
<input name="gfonts_subsets[]" id="gfonts_subsets_cyrillic-ext" value="cyrillic-ext" type="checkbox">
<label style="cursor: pointer !important;" for="gfonts_subsets_cyrillic-ext">{l s='Cyrillic Ext' mod='appagebuilder'}</label><br>
<input name="gfonts_subsets[]" id="gfonts_subsets_khmer" value="khmer" type="checkbox">
<label style="cursor: pointer !important;" for="gfonts_subsets_khmer">{l s='Khmer' mod='appagebuilder'}</label><br>
<input name="gfonts_subsets[]" id="gfonts_subsets_greek-ext" value="greek-ext" type="checkbox">
<label style="cursor: pointer !important;" for="gfonts_subsets_greek-ext">{l s='Greek Ext' mod='appagebuilder'}</label><br>
<input name="gfonts_subsets[]" id="gfonts_subsets_vietnamese" value="vietnamese" type="checkbox">
<label style="cursor: pointer !important;" for="gfonts_subsets_vietnamese">{l s='Vietnamese' mod='appagebuilder'}</label><br>
</div>
</div>
</div>
<!-- template -->
<div class="modal fade" id="modal_form" data-backdrop="0" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content modal-lg">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span>
<span class="sr-only">{l s='Close' mod='appagebuilder'}</span></button>
<h4 class="modal-title" id="myModalLabel" data-addnew="{l s='Add new Widget' mod='appagebuilder'}" data-edit="{l s='Editting' mod='appagebuilder'}"></h4>
</div>
<div class="modal-body"></div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">{l s='Close' mod='appagebuilder'}</button>
<button type="button" class="btn btn-primary save_gfont">{l s='Save changes' mod='appagebuilder'}</button>
</div>
</div>
</div>
<div class="modal-backdrop fade in" style="height: 995px;"></div>
</div>
<!-- template -->
<table id="html_item_gfont" style="display:none">
<tbody>
<tr id="" class="tmp">
<input type="hidden" class="data_gfont" value="" name=""/><!-- name, id, regular, italic-->
<td class="row-selector text-center"><!--<input name="appagebuilder_positionsBox[]" value="23" class="noborder" type="checkbox">--></td>
<td class="gfont_name"></td>
<td class="text-right">
<div class="btn-group-action">
<div class="btn-group pull-right">
<a href="javascript:void(0)" class="btn btn-default edit_gfont" title="View">
<i class="icon-pencil"></i> Edit
</a>
<button class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<i class="icon-caret-down"></i>&nbsp;
</button>
<ul class="dropdown-menu">
<li>
<a href="javascript:void(0)" title="Delete" class="delete delete_gfont">
<i class="icon-trash"></i> Delete
</a>
</li>
</ul>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<!-- template -->
<div id="temp_gfont_edit" style="display:none">
<div>
<h4 class="t-group-attr">{l s='Font CSS Class' mod='appagebuilder'}</h4>
<p class="t-help-block">{l s='Using the css property:' mod='appagebuilder'} <code>font-family:"[gfont_name]";</code> {l s='to use this font.' mod='appagebuilder'}</p>
</div>
<br />
<div>
<h4 class="t-group-attr">{l s='Font variants' mod='appagebuilder'}</h4>
<p class="t-help-block">{l s='Here you can select the font variants you want to load.' mod='appagebuilder'}</p>
<div class="leo_checkbox_wrapper ">
<!-- list variant here -->
</div>
<input id="gfont_id" value="" type="hidden">
<div id="tmp-gfont-variant" style="display: none;">
<!-- template variant -->
<label style="cursor: pointer !important;"><input class="" name="[variant_name]" value="[variant_name]" [variant_checked] type="checkbox"> [variant_value]</label>
<br>
</div>
</div>
</div>
<script>
var global_gfont_list = jQuery.parseJSON('{$fields_value.gfont_list_ori}');
var global_gfont_api = jQuery.parseJSON('{$fields_value.gfont_api}');
var global_gfont_subset = jQuery.parseJSON('{$fields_value.gfont_subset}');
</script>
{literal}
<script>
$(document).ready(function(){
//$('.aptab-config:eq(3)').trigger('click');
autoAddGoogleItem();
autoAddGoogleSubset();
});
function autoAddGoogleItem()
{
$.each(global_gfont_list, function(index, value){
addGoogleItem(value);
});
}
function autoAddGoogleSubset()
{
$.each(global_gfont_subset, function(index, value){
$('#gfonts_subsets_'+value).prop('checked', true);
});
}
function addGoogleItem(obj)
{
$('.list_gfonts').append( $('#html_item_gfont .tmp').parent().html() );
$('.list_gfonts tr.tmp .gfont_name').html( obj.gfont_name );
$('.list_gfonts tr.tmp .data_gfont').val( JSON.stringify(obj) );
$('.list_gfonts tr.tmp .data_gfont').attr( 'name', 'gfont_items[]' );
$('.list_gfonts tr.tmp').attr("id", obj['gfont_id']);
$('.list_gfonts tr.tmp').data("form", obj);
$('.list_gfonts tr:even').addClass('odd');
$('.list_gfonts tr:odd').removeClass('odd');
$('.list_gfonts tr.tmp').removeClass('tmp');
}
$('.add_gfont').click(function(e) {
e.preventDefault();
var gfont_name = $('.select_gfont').val();
// VALIDATE
if ( gfont_name == "" || gfont_name == undefined ) {
alert ('Please select a font.');
return false;
}
var gfont_name_exist = false;
$('.list_gfonts tr').each(function(){
var tmp = $(this).data('form').gfont_name;
if( gfont_name == tmp){
gfont_name_exist = true;
}
});
if(gfont_name_exist){
alert ('Font is exist.');
return false;
}
// set attribute
var tmp = {};
tmp['gfont_id'] = "gfont_" + getRandomNumber();
tmp['gfont_name'] = gfont_name;
addGoogleItem(tmp);
$('.chk_font_exist').each(function(){
$(this).append($('<option>', {
value: gfont_name,
text: gfont_name,
}));
});
});
$(document).on('click', '.edit_gfont', function(e){
var tr_parent = $(this).closest('tr').data('form');
var gfont_name = tr_parent.gfont_name;
// HTML LIST VARIANT
var html_variant = '';
$.each( global_gfont_api[gfont_name]['variants'] , function( key, value ) {
var output = '';
output = $('#tmp-gfont-variant').html();
output = output.replaceAll('[variant_name]', key);
output = output.replaceAll('[variant_value]', value);
if(tr_parent.hasOwnProperty(key))
output = output.replaceAll('[variant_checked]', 'checked="checked"');
else
output = output.replaceAll('[variant_checked]', '');
html_variant += output;
});
$('#temp_gfont_edit .leo_checkbox_wrapper').html(html_variant);
// HTML FONT NAME
var html = $('#temp_gfont_edit').html();
html = html.replace("[gfont_name]", tr_parent['gfont_name']);
// HTML MODAL
$('#myModalLabel').html( $(this).closest('tr').data('form').gfont_name + " font options");
$('.modal-body').html( html );
// HTML FONT ID
$('#gfont_id').val(tr_parent['gfont_id']);
$('#modal_form').modal('show');
});
$(document).on('click', '.delete_gfont', function(e){
if (!confirm('Delete selected item?'))
return true; // auto hide dropdow
var gfont_name = $(this).closest('tr').data('form').gfont_name;
$(this).closest('tr').remove();
$('.list_gfonts tr:even').addClass('odd');
$('.list_gfonts tr:odd').removeClass('odd');
$(".chk_font_exist option[value='"+gfont_name+"']").remove();
});
$('.save_gfont').click(function(e){
var gfont_id = $('#gfont_id').val();
var tmp = $('#'+gfont_id).data('form');
// SET VARIANT
$('#modal_form .leo_checkbox_wrapper input:checked').each(function(){
var value = $(this).val();
tmp[value] = value;
});
// SET TO FORM
$('#'+gfont_id).data('form', tmp);
$('#'+gfont_id+' .data_gfont').val( JSON.stringify(tmp) );
$('#modal_form').modal('hide');
});
function getRandomNumber(){
return (+new Date() + (Math.random() * 10000000000000000)).toString().replace('.', '');
};
String.prototype.replaceAll = function(target, replacement) {
return this.split(target).join(replacement);
};
</script>
{/literal}
{/if}
{$smarty.block.parent}
{/block}

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2019 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2019 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2019 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2019 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

View File

@@ -0,0 +1,188 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<div id="livethemeeditor">
{assign var=fonts value=$apPageHelper->getFontFamily()}
<form enctype="multipart/form-data" action="{$actionURL|escape:'html':'UTF-8'}" id="form" method="post">
<input type="hidden" name="submitAddappagebuilder_themeeditor" value="1"/>
<div id="leo-customize" class="leo-customize">
<div class="btn-show">{l s='Hide' mod='appagebuilder'} <span class="icon-wrench"></span></div>
<div class="wrapper"><div id="customize-form">
<p>
{if $profiles_active}
<span class="badge">
{$profiles_active} {l s='is active' mod='appagebuilder'}
</span>
{else}
{l s='No pattern is active' mod='appagebuilder'}
{/if}
<a class="label label-default pull-right" href="{$backLink|escape:'html':'UTF-8'}">{l s='Back' mod='appagebuilder'}</a>
</p>
<hr>
<div class="groups">
<div class="form-group clearfix">
<label>{l s='Edit for' mod='appagebuilder'}</label>
<select id="saved-files" name="saved_file" class="form-control" active="{$profiles_active}">
<option value="" data-active="0">{l s='create new' mod='appagebuilder'}</option>
{foreach $profiles as $profile}
{if $profile == $profiles_active}
<option value="{$profile|escape:'html':'UTF-8'}" data-active="1">{$profile|escape:'html':'UTF-8'}</option>
{else}
<option value="{$profile|escape:'html':'UTF-8'}" data-active="0">{$profile|escape:'html':'UTF-8'}</option>
{/if}
{/foreach}
</select>
</div>
<div class="form-group clearfix">
<label>{l s='Active Pattern' mod='appagebuilder'}</label>
<input type="radio" name="active" value="1">Yes<br>
<input type="radio" name="active" value="0">No<br>
</div>
<div class="form-group clearfix">
<label class="show-for-notexisted pull-left">{l s='Or Save New' mod='appagebuilder'}&nbsp;&nbsp;&nbsp;</label><label class="show-for-existed">{l s='And Rename File To' mod='appagebuilder'}</label>
<input type="text" name="newfile">
</div>
<div class="buttons-group">
<input type="hidden" id="action-mode" name="action-mode">
<a onclick="$('#action-mode').val('save-edit');
$('#form').submit();" class="btn btn-primary btn-xs" href="#" type="submit">{l s='Submit' mod='appagebuilder'}</a>
<a onclick="$('#action-mode').val('save-delete');
$('#form').submit();" class="btn btn-danger btn-xs show-for-existed" href="#" type="submit">{l s='Delete' mod='appagebuilder'}</a>
</div>
<hr>
<div class="form-group clearfix">
<a href="{$imgLink|escape:'html':'UTF-8'}" class="btn btn btn-default btn-xs" id="upload_pattern">{l s='Upload Image' mod='appagebuilder'}</a>
</div>
<div class="clearfix" id="customize-body">
<ul id="myCustomTab" class="nav nav-tabs">
{foreach $xmlselectors as $for => $output}
<li><a href="#tab-{$for|escape:'html':'UTF-8'}">{$for|escape:'html':'UTF-8'}</a></li>
{/foreach}
</ul>
<div class="tab-content" >
{foreach $xmlselectors as $for => $items}
<div class="tab-pane" id="tab-{$for|escape:'html':'UTF-8'}">
{if !empty($items)}
<div class="accordion" id="custom-accordion">
{foreach $items as $group}
<div class="accordion-group panel panel-default">
<div class="accordion-heading panel-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#custom-accordion" href="#collapse{$group.match|escape:'html':'UTF-8'}">
{$group.header}{* HTML form , no escape necessary *}
</a>
</div>
<div id="collapse{$group.match|escape:'html':'UTF-8'}" class="accordion-body collapse">
<div class="accordion-inner panel-body clearfix">
{foreach $group.selector as $item}
{if isset($item.type)&&$item.type=="image"}
<div class="form-group background-images cleafix">
<label>{$item.label|escape:'html':'UTF-8'}</label>
<a class="clear-bg label label-success" href="#">{l s='Clear' mod='appagebuilder'}</a>
<input value="" type="hidden" name="customize[{$group.match|escape:'html':'UTF-8'}][]" data-match="{$group.match|escape:'html':'UTF-8'}" class="input-setting" data-selector="{$item.selector|escape:'html':'UTF-8'}" data-attrs="background-image">
<div class="clearfix"></div>
<p><em style="font-size:10px">{l s='Those Images in folder YOURTHEME/img/patterns/' mod='appagebuilder'}</em></p>
<div class="bi-wrapper clearfix">
{foreach $patterns as $pattern}
<div style="background:url('{$backgroundImageURL|escape:'html':'UTF-8'}{$pattern|escape:'html':'UTF-8'}') no-repeat center center;" class="pull-left" data-image="{$backgroundImageURL|escape:'html':'UTF-8'}{$pattern|escape:'html':'UTF-8'}" data-val="../../../../../assets/img/patterns/{$pattern|escape:'html':'UTF-8'}">
</div>
{/foreach}
</div>
<ul class="bg-config">
<li>
<div>{l s='Attachment' mod='appagebuilder'}</div>
<select data-attrs="background-attachment" name="customize[{$group.match|escape:'html':'UTF-8'}][]" data-selector="{$item.selector|escape:'html':'UTF-8'}" data-match="{$group.match|escape:'html':'UTF-8'}">
<option value="">{l s='Not set' mod='appagebuilder'}</option>
{foreach $backGroundValue.attachment as $attachment}
<option value="{$attachment|escape:'html':'UTF-8'}">{$attachment|escape:'html':'UTF-8'}</option>
{/foreach}
</select>
</li>
<li>
<div>{l s='Position' mod='appagebuilder'}</div>
<select data-attrs="background-position" name="customize[{$group.match|escape:'html':'UTF-8'}][]" data-selector="{$item.selector|escape:'html':'UTF-8'}" data-match="{$group.match|escape:'html':'UTF-8'}">
<option value="">{l s='Not set' mod='appagebuilder'}</option>
{foreach $backGroundValue.position as $position}
<option value="{$position|escape:'html':'UTF-8'}">{$position|escape:'html':'UTF-8'}</option>
{/foreach}
</select>
</li>
<li>
<div>{l s='Repeat' mod='appagebuilder'}</div>
<select data-attrs="background-repeat" name="customize[{$group.match|escape:'html':'UTF-8'}][]" data-selector="{$item.selector|escape:'html':'UTF-8'}" data-match="{$group.match|escape:'html':'UTF-8'}">
<option value="">{l s='Not set' mod='appagebuilder'}</option>
{foreach $backGroundValue.repeat as $repeat}
<option value="{$repeat|escape:'html':'UTF-8'}">{$repeat|escape:'html':'UTF-8'}</option>
{/foreach}
</select>
</li>
</ul>
</div>
{elseif $item.type=="fontsize"}
<div class="form-group cleafix">
<label>{$item.label|escape:'html':'UTF-8'}</label>
<select name="customize[{$group.match|escape:'html':'UTF-8'}][]" data-match="{$group.match|escape:'html':'UTF-8'}" type="text" class="input-setting" data-selector="{$item.selector|escape:'html':'UTF-8'}" data-attrs="{$item.attrs|escape:'html':'UTF-8'}">
<option value="">Inherit</option>
{for $i=9 to 16}
<option value="{$i|escape:'html':'UTF-8'}">{$i|escape:'html':'UTF-8'}</option>
{/for}
</select> <a href="#" class="clear-bg label label-success">{l s='Clear' mod='appagebuilder'}</a>
</div>
{elseif $item.type=="fontfamily"}
<div class="form-group cleafix">
<label>{$item.label|escape:'html':'UTF-8'}</label>
<select name="customize[{$group.match|escape:'html':'UTF-8'}][]" data-match="{$group.match|escape:'html':'UTF-8'}" type="text" class="input-setting" data-selector="{$item.selector|escape:'html':'UTF-8'}" data-attrs="{$item.attrs|escape:'html':'UTF-8'}">
{foreach $fonts key=font_key item=font_item}
<option value="{$font_item.id}">{$font_item.name}</option>
{/foreach}
</select>
<a href="#" class="clear-bg label label-success">{l s='Clear' mod='appagebuilder'}</a>
</div>
{elseif $item.type=="subtitle"}
<div class="form-group cleafix">
<label class="subtitle"><strong>{$item.content}</strong></label>
<br />
</div>
{else}
<div class="form-group cleafix">
<label>{$item.label|escape:'html':'UTF-8'}</label>
<input value="" size="10" name="customize[{$group.match|escape:'html':'UTF-8'}][]" data-match="{$group.match|escape:'html':'UTF-8'}" type="text" class="input-setting" data-selector="{$item.selector|escape:'html':'UTF-8'}" data-attrs="{$item.attrs|escape:'html':'UTF-8'}"><a href="#" class="clear-bg label label-success">{l s='Clear' mod='appagebuilder'}</a>
</div>
{/if}
{/foreach}
</div>
</div>
</div>
{/foreach}
</div>
{/if}
</div>
{/foreach}
</div>
</div>
</div>
</div></div></div>
</form>
<div id="main-preview">
<iframe src="{$siteURL|escape:'html':'UTF-8'}" ></iframe>
</div>
</div>
<script>
var customizeFolderURL = '{$customizeFolderURL}';
</script>

View File

@@ -0,0 +1,118 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<!-- @file modules\appagebuilder\views\templates\admin\content -->
{extends file="helpers/form/form.tpl"}
{block name="field"}
{if $input.type == 'ApRow'}
{include file='./ApRow.tpl'}
{/if}
{if $input.type == 'tabConfig'}
<div class="row">
{assign var=tabList value=$input.values}
<ul class="nav nav-tabs" role="tablist">
{foreach $tabList as $key => $value name="tabList"}
<li role="presentation" class="{if $smarty.foreach.tabList.first}active{/if}"><a href="#{$key|escape:'html':'UTF-8'}" class="aptab-config" role="tab" data-toggle="tab">{$value|escape:'html':'UTF-8'}</a></li>
{/foreach}
</ul>
</div>
{/if}
{if $input.type == 'bg_img'}
<div class="col-lg-9 ">
<input type="text" name="bg_img" id="bg_img" value="" class=""><a href="javascript:void(0)" class="select-img">{l s='Select image ' mod='appagebuilder'}</a>
<p class="help-block">{l s='Please put image link or select image' mod='appagebuilder'}</p>
</div>
{/if}
{if $input.type == 'apExceptions'}
<div class="well">
<div>
{l s='Please specify the files for which you do not want it to be displayed.' mod='appagebuilder'}<br />
{l s='Please input each filename, separated by a comma (",").' mod='appagebuilder'}<br />
{l s='You can also click the filename in the list below, and even make a multiple selection by keeping the Ctrl key pressed while clicking, or choose a whole range of filename by keeping the Shift key pressed while clicking.' mod='appagebuilder'}<br />
{$exception_list}{* HTML form , no escape necessary *}
</div>
</div>
{/if}
{if $input.type == 'ApColumnclass' || $input.type == 'ApRowclass'}
<div class="">
<div class="well">
<div class="row">
{if $input.type == 'ApRowclass'}
<label class="choise-class col-lg-12"><input type="checkbox" class="chk-row" data-value="row" value="1"> {l s='Use class row' mod='appagebuilder'}</label>
{/if}
<label class="control-label col-lg-1">{$input.leolabel}</label>
<div class="col-lg-11"><input type="text" class="element_class" value="{$fields_value['class']|escape:'html':'UTF-8'}" name="class"></div>
</div><br/>
<div class="desc-bottom">
{l s='Insert new or select classes for toggling content across viewport breakpoints' mod='appagebuilder'}<br>
<ul class="ap-col-class">
<li>
<label class="choise-class"><input class="select-class" type="checkbox" data-value="hidden-lg" value="1"> {l s='Hidden in Large devices' mod='appagebuilder'}</label>
</li>
<li>
<label class="choise-class"><input class="select-class" type="checkbox" data-value="hidden-md" value="1"> {l s='Hidden in Medium devices' mod='appagebuilder'}</label>
</li>
<li>
<label class="choise-class"><input class="select-class" type="checkbox" data-value="hidden-sm" value="1"> {l s='Hidden in Small devices' mod='appagebuilder'}</label>
</li>
<li>
<label class="choise-class"><input class="select-class" type="checkbox" data-value="hidden-xs" value="1"> {l s='Hidden in Extra small devices' mod='appagebuilder'}</label>
</li>
<li>
<label class="choise-class"><input class="select-class" type="checkbox" data-value="hidden-sp" value="1"> {l s='Hidden in Smart Phone' mod='appagebuilder'}</label>
</li>
</ul>
</div>
</div>
</div>
{/if}
{if $input.type == 'bg_select'}
{$image_uploader}{* HTML form , no escape necessary *}
{/if}
{if $input.type == 'column_width'}
<div class="panel panel-default">
<div class="panel-body">
<p>{l s='Responsive: You can config width for each Devices' mod='appagebuilder'}</p>
</div>
<table class="table">
<thead><tr>
<th>{l s='Devices' mod='appagebuilder'}</th>
<th>{l s='Width' mod='appagebuilder'}</th>
</tr></thead>
<tbody>
{foreach $input.columnGrids as $gridKey=>$gridValue}
<tr>
<td>
<span class="col-{$gridKey|escape:'html':'UTF-8'}"></span>
{$gridValue|escape:'html':'UTF-8'}
</td>
<td>
<div class="btn-group">
<input type='hidden' class="col-val" name='{$gridKey|escape:'html':'UTF-8'}' value="{$fields_value[$gridKey]|escape:'html':'UTF-8'}"/>
<button type="button" class="btn btn-default apbtn-width dropdown-toggle" tabindex="-1" data-toggle="dropdown">
<span class="width-val ap-w-{$fields_value[$gridKey]|replace:'.':'-'|escape:'html':'UTF-8'}">{$fields_value[$gridKey]|escape:'html':'UTF-8'}/12 - ( {math equation="x/y*100" x=$fields_value[$gridKey] y=12 format="%.2f"} % )</span><span class="caret"></span>
</button>
<ul class="dropdown-menu">
{foreach from=$widthList item=itemWidth}
<li>
<a class="width-select" href="javascript:void(0);" tabindex="-1">
<span data-width="{$itemWidth|escape:'html':'UTF-8'}" class="width-val ap-w-{if $itemWidth|strpos:"."|escape:'html':'UTF-8'}{$itemWidth|replace:'.':'-'|escape:'html':'UTF-8'}{else}{$itemWidth|escape:'html':'UTF-8'}{/if}">{$itemWidth|escape:'html':'UTF-8'}/12 - ( {math equation="x/y*100" x=$itemWidth y=12 format="%.2f"} % )</span>
</a>
</li>
{/foreach}
</ul>
</div>
</td>
</tr>
{/foreach}
</tbody>
</table>
</div>
{/if}
{$smarty.block.parent}
{/block}

View File

@@ -0,0 +1,146 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<!-- @file modules\appagebuilder\views\templates\admin\configure -->
{if isset($errors) && count($errors) && current($errors) != '' && (!isset($disableDefaultErrorOutPut) || $disableDefaultErrorOutPut == false)}
<div class="bootstrap">
<div class="alert alert-danger">
<button type="button" class="close" data-dismiss="alert">&times;</button>
{if count($errors) == 1}
{reset($errors)}
{else }
{l s='%d errors' sprintf=[$errors|count] mod='appagebuilder'}
<br/>
<ol>
{foreach $errors as $error}
<li>{$error}</li>
{/foreach}
</ol>
{/if}
</div>
</div>
{/if}
{$guide_box}{* HTML form , no escape necessary *}
<div class="panel">
<h3><i class="icon icon-info"></i> {l s='Version and update' mod='appagebuilder'}</h3>
<p>{l s='Your current version is: ' mod='appagebuilder'}: {$module_version}</p>
<p><a href="#" id="apcheck_version" class="{if !$check_update} firt{/if}" data-form='{$data_shop}'>{l s='Click Here to check latest version' mod='appagebuilder'}</a></p>
<div class="apmess hidden"></div>
</div>
<div class="panel">
<h3><i class="icon icon-book"></i> {l s='Documentation' mod='appagebuilder'}</h3>
<p>
&raquo; {l s='Before Start You can click here to read guide' mod='appagebuilder'} :
<ul>
<li><a href="https://demothemes.info/prestashop/appagebuilder/guide/" target="_blank">{l s='Read Guide' mod='appagebuilder'}</a></li>
</ul>
&raquo; {l s='You can start with Ap Page Builder following steps' mod='appagebuilder'} :
<ul>
<li><a href="{$create_profile_link|escape:'html':'UTF-8'}" target="_blank">{l s='Create new Profile' mod='appagebuilder'}</a></li>
</ul>
&raquo; {l s='Others management function:' mod='appagebuilder'}
<ul>
<li><a href="{$profile_link|escape:'html':'UTF-8'}" target="_blank">{l s='Manager Profile' mod='appagebuilder'}</a>
<span> - {l s='This function enables you to manage all profiles in the module. This function is useful when you\'re building plans before the home interface changes, the product page for the event discounts, holidays ... by changing the options Default profile' mod='appagebuilder'}</span>
</li>
<li><a href="{$position_link|escape:'html':'UTF-8'}" target="_blank">{l s='Manager Position' mod='appagebuilder'}</a>
<span> - {l s='This function enables you to manage all of the position of all profiles. This function is useful when you have multiple profiles' mod='appagebuilder'}</span>
</li>
<li><a href="{$product_link|escape:'html':'UTF-8'}" target="_blank">{l s='Manager Product List Builder' mod='appagebuilder'}</a>
<span> - {l s='A function to help you design the details of the composition of the products displayed in the list of products on the website.' mod='appagebuilder'}</span>
</li>
</ul>
</p>
</div>
<div class="panel">
<h3>
<i class="icon icon-credit-card"></i> <span class="open-content">{l s='Sample Data' mod='appagebuilder'}</span>
</h3>
<div class="panel-content-builder">
<p>
<strong>{l s='Here is my module page builder!' mod='appagebuilder'}</strong><br />
{l s='Thanks to PrestaShop, now I have a great module.' mod='appagebuilder'}<br />
{l s='You can configure it using the following configuration form.' mod='appagebuilder'}
</p>
<div class="alert alert-info">
{l s='You can click here to import demo data' mod='appagebuilder'}
</div>
<a class="btn btn-default btn-primary" onclick="javascript:return confirm('{l s='Are you sure you want to install demo?' mod='appagebuilder'}')" href="{$module_link|escape:'html':'UTF-8'}&installdemo=1"><i class="icon-AdminTools"></i> {l s='Install Demo Data' mod='appagebuilder'}</a>
<br/><br/>
<div class="alert alert-info">
{l s='You can download demo image in' mod='appagebuilder'}<br/>
{l s='Then you can unzip and copy folder appagebuilder to Root/themes/THEME_NAME/assets/img/modules' mod='appagebuilder'}
</div>
<a class="btn btn-default btn-primary" href="https://demothemes.info/prestashop/appagebuilder/appagebuilder.zip"><i class="icon-AdminCatalog"></i> {l s='Demo Image' mod='appagebuilder'}</a><br/>
<br/><br/>
{*<div class="alert alert-info">
{l s='You can reset database' mod='appagebuilder'}<br/>
</div>*}
{*<a class="btn btn-default btn-primary" style="background-color:red" onclick="javascript:return confirm('{l s='Are you sure you want to reset data? All database will lost' mod='appagebuilder'}')" href="{$module_link|escape:'html':'UTF-8'}&resetmodule=1"><i class="icon-AdminTools"></i> {l s='Reset Data' mod='appagebuilder'}</a>*}
</div>
</div>
<div class="panel">
<h3>
<i class="icon icon-credit-card"></i> <span class="open-content">{l s='Back-up and Update' mod='appagebuilder'}</span>
</h3>
<div class="panel-content-builder">
<div class="alert alert-info">
{l s='Please click back-up button to back-up database' mod='appagebuilder'}
</div>
<div class="row">
<div class="col-sm-12">
<a class="btn btn-default" href="{$module_link|escape:'html':'UTF-8'}&backup=1">
<i class="icon-AdminParentPreferences"></i> {l s='Back-up to PHP file' mod='appagebuilder'}
</a>
</div>
</div>
<hr/><br/>
<div class="alert alert-info">
{l s='You can select a file by date backup to restore data' mod='appagebuilder'}
</div>
<div class="row">
<form class="defaultForm form-horizontal" action="{$module_link|escape:'html':'UTF-8'}" method="post" enctype="multipart/form-data" novalidate="">
<div class="col-sm-12">
{if $back_up_file}
<select name="backupfile" style="width:50%">
{foreach from=$back_up_file item=file name=Modulefile}
<option value="{$file|escape:'html':'UTF-8'}">{$file|escape:'html':'UTF-8'}</option>
{/foreach}
</select>
{else}
<i style="color:red">{l s='No file to select in : ' mod='appagebuilder'}{$backup_dir}</i>
{/if}
<br/>
</div>
<div class="col-sm-12">
<button type="submit" class="btn btn-default" name="restore">
{l s='Restore from PHP file' mod='appagebuilder'}
</button>
</div>
</form>
</div>
<hr/><br/>
<div class="alert alert-warning">
{l s='Delete position do not use (fix error when create profile)' mod='appagebuilder'}
</div>
<a class="btn btn-default" onclick="javascript:return confirm('{l s='Are you sure you want to Delete do not use position. Please back-up all thing before?' mod='appagebuilder'}')" href="{$module_link|escape:'html':'UTF-8'}&deleteposition=1">
<i class="icon-AdminParentPreferences"></i> {l s='Delete do not use position' mod='appagebuilder'}</a>
<hr/><br/>
<div class="alert alert-info">
{l s='Please click on update and correct button to update module to latest version. Please backup database and file before process' mod='appagebuilder'}
</div>
<p>
{l s='Guide to use product and category layout (advanced user and developer)' mod='appagebuilder'} <a href="https://www.leotheme.com/guides/prestashop17/ap_page_builder/#!/Update_Multiple_Product_Layout" target="_blank">{l s='Click Here' mod='appagebuilder'}
</p>
<a class="btn btn-default" onclick="javascript:return confirm('{l s='Are you sure you want to Update Database. Please back-up all things before?' mod='appagebuilder'}')" href="{$module_link|escape:'html':'UTF-8'}&submitUpdateModule=1">
<i class="icon-AdminParentPreferences"></i> {l s='Update and Correct Module' mod='appagebuilder'}</a>
<a class="btn btn-default" href="{$module_link|escape:'html':'UTF-8'}&submitUpdateModule=1&action=productcategory">
<i class="icon-AdminParentPreferences"></i> {l s='Update to use product and category layout' mod='appagebuilder'}</a>
</div>
</div>

View File

@@ -0,0 +1,77 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<!-- @file modules\appagebuilder\views\templates\admin\guide -->
<div class="alert alert-onboarding"><div class="" id="onboarding-starter">
<div class="row">
<div class="col-md-12">
<h3>{l s='Getting Started with AP PAGE BUILDER' mod='appagebuilder'}</h3>
</div>
</div>
<div class="row">
<div class="col-xs-4 col-md-3 col-md-offset-2">
<div class="onboarding-step step-first {if $step == 1}active step-in-progress{else if $step > 1}active step-success{else}step-todo{/if}"></div>
</div>
<div class="col-xs-4 col-md-3">
<div class="onboarding-step {if $step == 2}active step-in-progress{else if $step > 2}active step-success{else}step-todo{/if}"></div>
</div>
<div class="col-xs-4 col-md-3">
<div class="onboarding-step step-final {if $step == 3}active step-in-progress{else}step-todo{/if}"></div>
</div>
</div>
<div class="row">
<div class="col-xs-4 col-md-3 col-md-offset-2 text-center">
<a href="{$url1|escape:'html':'UTF-8'}" style="">{l s='Configure Module' mod='appagebuilder'}</a>
</div>
<div class="col-xs-4 col-md-3 text-center">
{if $step >= 2}
<a href="{$url2|escape:'html':'UTF-8'}" style="">
{else}
<a style=" color:gray; text-decoration:none ">
{/if}
{l s='Add profile' mod='appagebuilder'}</a>
</div>
<div class="col-xs-4 col-md-3 text-center">
{if $step >= 3}
<a href="{$url3|escape:'html':'UTF-8'}" style="">
{else}
<a style=" color:gray; text-decoration:none ">
{/if}{l s='Add widget' mod='appagebuilder'}</a>
</div>
</div>
<hr>
<div class="row">
<div class="col-lg-8 {if $step != 1}hidden{/if}">
<h4>{l s='Establish default parameters' mod='appagebuilder'}</h4>
<p>{l s='This module provides a way to generate more website templates homepage, quickly changing your website, the list displays the product, multiple widgets with many selling feature for your shop (all in one).' mod='appagebuilder'}</p>
</div>
<div class="col-lg-8 {if $step != 2}hidden{/if}">
<h4>{l s='Create new a profile' mod='appagebuilder'}</h4>
<p>{l s='You can create multiple profiles, only one profile, the default will be triggered when the website is published. Each profile you can customize the interface to change independently of each other website, JavaScript and Css code to be edited directly here should become more flexible.' mod='appagebuilder'}</p>
<p>{l s='How to create a new profile screen: From the menu on the left "Ap Manage Profiles" to the next screen lists Profile; Click the button "Add new +"' mod='appagebuilder'}</p>
</div>
<div class="col-lg-8 {if $step != 3}hidden{/if}">
<h4>{l s='Add new widgets and modules to build Web sites in a profile.' mod='appagebuilder'}</h4>
<p>{l s='This module also supply many widgets to build features for sales, intuitive user interface flexibility. Also integrate your existing modules in this module, you only need to build a site built just here and become faster page.' mod='appagebuilder'}</p>
<p>{l s='How to create a new profile screen: From the menu on the left "Ap Manage Profiles" to the next screen lists Profile; click the button "View" in the list of profiles.' mod='appagebuilder'}</p>
</div>
<div class="col-lg-4 onboarding-action-container">
<a class="btn btn-default btn-lg quick-start-button pull-right" href="{$next_step|escape:'html':'UTF-8'}{if $step == 3}&done=1{/if}">
{if $step == 3}
<i class="icon icon-check icon-lg"></i>
{l s='DONE ' mod='appagebuilder'}
{else}
{l s='I\'m done, take me to next step ' mod='appagebuilder'}
<i class="icon icon-angle-right icon-lg"></i>
{/if}
</a>
{if $step < 3}
<a class="btn btn-lg quick-start-button pull-right" href="{if $step == 1}{$url1|escape:'html':'UTF-8'}{else}{$url2|escape:'html':'UTF-8'}{/if}&skip=1">{l s='Skip ' mod='appagebuilder'}</a>
{/if}
</div>
</div>
</div></div>

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2019 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

View File

@@ -0,0 +1,199 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<!-- @file modules\appagebuilder\views\templates\admin\uploader\ajax -->
<div class="form-group" style="display: none;">
<div class="col-lg-12" id="{$id|escape:'html':'UTF-8'}-images-thumbnails">
{if isset($files) && $files|count > 0}
{foreach $files as $file}
{if isset($file.image) && $file.type == 'image'}
<div class="img-thumbnail text-center">
<p>{$file.image|escape:'html':'UTF-8'}</p>
{if isset($file.size)}<p>{l s='File size' mod='appagebuilder'} {$file.size|escape:'html':'UTF-8'}kb</p>{/if}
{if isset($file.delete_url)}
<p>
<a class="btn btn-default" href="{$file.delete_url|escape:'html':'UTF-8'}">
<i class="icon-trash"></i> {l s='Delete' mod='appagebuilder'}
</a>
</p>
{/if}
</div>
{/if}
{/foreach}
{/if}
</div>
</div>
{if isset($max_files) && $files|count >= $max_files}
<div class="row">
<div class="alert alert-warning">{l s='You have reached the limit (%s) of files to upload, please remove files to continue uploading' mod='appagebuilder' sprintf=$max_files}</div>
</div>
<script type="text/javascript">
$( document ).ready(function() {
{if isset($files) && $files}
$('#{$id|escape:'html':'UTF-8'}-images-thumbnails').parent().show();
{/if}
});
</script>
{else}
<div class="form-group row">
<div class="col-lg-12">
<input id="{$id|escape:'html':'UTF-8'}" type="file" name="{$name|escape:'html':'UTF-8'}[]"{if isset($url)} data-url="{$url|escape:'html':'UTF-8'}"{/if}{if isset($multiple) && $multiple} multiple="multiple"{/if} class="hide" />
<button class="btn btn-default" data-style="expand-right" data-size="s" type="button" id="{$id|escape:'html':'UTF-8'}-add-button">
<i class="icon-plus-sign"></i> {if isset($multiple) && $multiple}{l s='Add files' mod='appagebuilder'}{else}{l s='Add file' mod='appagebuilder'}{/if}
</button>
<button class="ladda-button btn btn-default" data-style="expand-right" type="button" id="{$id|escape:'html':'UTF-8'}-upload-button" style="display:none;">
<i class="icon-cloud-upload text-success"></i> <span class="ladda-label text-success">{if isset($multiple) && $multiple}{l s='Upload files' mod='appagebuilder'}{else}{l s='Upload file' mod='appagebuilder'}{/if}</span>
</button>
<!-- Split button -->
<div class="btn-group">
<button class="btn btn-default btn-sm dropdown-toggle" type="button" data-toggle="dropdown">
{l s='Order Image By' mod='appagebuilder'} <span class="caret"></span>
</button>
<ul id="img_order" class="dropdown-menu">
<li><a href="javascript:void(0);" data-type="name"><span class="text-danger">{l s='Name' mod='appagebuilder'} <i class="icon-sort-by-alphabet"></i></span></a></li>
<li><a href="javascript:void(0);" data-type="name_desc"><span>{l s='Name DESC' mod='appagebuilder'} <i class="icon-sort-by-alphabet-alt"></i></span></a></li>
<li class="divider"></li>
<li><a href="javascript:void(0);" data-type="date"><span>{l s='Date Modified' mod='appagebuilder'} <i class="icon-sort-by-attributes"></i></span></a></li>
<li><a href="javascript:void(0);" data-type="date_desc"><span>{l s='Date Modified DESC' mod='appagebuilder'} <i class="icon-sort-by-attributes-alt"></i></span></a></li>
</ul>
</div>
</div>
</div>
<div class="row" style="display:none">
<div class="alert alert-info" id="{$id|escape:'html':'UTF-8'}-files-list"></div>
</div>
<div class="row" style="display:none">
<div class="alert alert-success" id="{$id|escape:'html':'UTF-8'}-success"></div>
</div>
<div class="row" style="display:none">
<div class="alert alert-danger" id="{$id|escape:'html':'UTF-8'}-errors"></div>
</div>
<script type="text/javascript">
function humanizeSize(bytes)
{
if (typeof bytes !== 'number') {
return '';
}
if (bytes >= 1000000000) {
return (bytes / 1000000000).toFixed(2) + ' GB';
}
if (bytes >= 1000000) {
return (bytes / 1000000).toFixed(2) + ' MB';
}
return (bytes / 1000).toFixed(2) + ' KB';
}
$( document ).ready(function() {
$("#img_order a").click(function(){
reloadImageList($(this).attr("data-type"), $(this).data('dir'));
$("#img_order a span").removeClass("text-danger");
$(this).find("span").addClass("text-danger");
});
{if isset($multiple) && isset($max_files)}
var {$id|escape:'html':'UTF-8'}_max_files = {$max_files - $files|count};
{/if}
{if isset($files) && $files}
$('#{$id|escape:'html':'UTF-8'}-images-thumbnails').parent().show();
{/if}
var {$id|escape:'html':'UTF-8'}_upload_button = Ladda.create( document.querySelector('#{$id|escape:'html':'UTF-8'}-upload-button' ));
var {$id|escape:'html':'UTF-8'}_total_files = 0;
$('#{$id|escape:'html':'UTF-8'}').fileupload({
dataType: 'json',
autoUpload: false,
singleFileUploads: true,
{if isset($post_max_size)}maxFileSize: {$post_max_size|escape:'html':'UTF-8'},{/if}
{if isset($drop_zone)}dropZone: {$drop_zone}{*Dont need escape*},{/if}
start: function (e) {
{$id|escape:'html':'UTF-8'}_upload_button.start();
$('#{$id|escape:'html':'UTF-8'}-upload-button').unbind('click'); //Important as we bind it for every elements in add function
},
fail: function (e, data) {
$('#{$id|escape:'html':'UTF-8'}-errors').html(data.errorThrown.message).parent().show();
},
done: function (e, data) {
if (data.result) {
$("#list-imgs").html(data.result);
$(".label-tooltip").tooltip();
$(".fancybox").fancybox();
$("#file").val("");
$("#file-files-list").html("");
$("#file-files-list").parent().hide();
$("#file-upload-button").hide();
$("#file-errors").hide(); // Not show message error
$("#file-success").html('Upload image successful').parent().show();
$(data.context).find("button").remove();
}
},
}).on('fileuploadalways', function (e, data) {
{$id|escape:'html':'UTF-8'}_total_files--;
if ({$id|escape:'html':'UTF-8'}_total_files == 0)
{
{$id|escape:'html':'UTF-8'}_upload_button.stop();
$('#{$id|escape:'html':'UTF-8'}-upload-button').unbind('click');
$('#{$id|escape:'html':'UTF-8'}-files-list').parent().hide();
}
}).on('fileuploadadd', function(e, data) {
if (typeof {$id|escape:'html':'UTF-8'}_max_files !== 'undefined') {
if ({$id|escape:'html':'UTF-8'}_total_files >= {$id|escape:'html':'UTF-8'}_max_files) {
e.preventDefault();
alert('{l s='You can upload a maximum of %s files'|sprintf:$max_files mod='appagebuilder'}');
return;
}
}
data.context = $('<div/>').addClass('row').appendTo($('#{$id|escape:'html':'UTF-8'}-files-list'));
var file_name = $('<span/>').append('<strong>'+data.files[0].name+'</strong> ('+humanizeSize(data.files[0].size)+')').appendTo(data.context);
var button = $('<button/>').addClass('btn btn-default pull-right').prop('type', 'button').html('<i class="icon-trash"></i> {l s='Remove file' mod='appagebuilder'}').appendTo(data.context).on('click', function() {
{$id|escape:'html':'UTF-8'}_total_files--;
data.files = null;
var total_elements = $(this).parent().siblings('div.row').length;
$(this).parent().remove();
if (total_elements == 0) {
$('#{$id|escape:'html':'UTF-8'}-files-list').html('').parent().hide();
}
});
$('#{$id|escape:'html':'UTF-8'}-files-list').parent().show();
$('#{$id|escape:'html':'UTF-8'}-upload-button').show().bind('click', function () {
if (data.files != null)
data.submit();
});
{$id|escape:'html':'UTF-8'}_total_files++;
}).on('fileuploadprocessalways', function (e, data) {
var index = data.index, file = data.files[index];
if (file.error) {
$('#{$id|escape:'html':'UTF-8'}-errors').append('<div class="row"><strong>'+file.name+'</strong> ('+humanizeSize(file.size)+') : '+file.error+'</div>').parent().show();
$(data.context).find('button').trigger('click');
}
});
$('#{$id|escape:'html':'UTF-8'}-add-button').on('click', function() {
$('#{$id|escape:'html':'UTF-8'}-success').html('').parent().hide();
$('#{$id|escape:'html':'UTF-8'}-errors').html('').parent().hide();
$('#{$id|escape:'html':'UTF-8'}-files-list').parent().hide();
{$id|escape:'html':'UTF-8'}_total_files = 0;
$('#{$id|escape:'html':'UTF-8'}').trigger('click');
});
});
</script>
{/if}

View File

@@ -0,0 +1,36 @@
<?php
/*
* 2007-2012 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2012 PrestaShop SA
* @version Release: $Revision: 13573 $
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

View File

@@ -0,0 +1,35 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2019 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

View File

@@ -0,0 +1,7 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}

View File

@@ -0,0 +1,7 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}

View File

@@ -0,0 +1,56 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<ul id="list-slider">
{foreach from=$arr item=i}
{if $i}
<li id="{$i}">
{foreach from=$languages item=lang}
{if $default_lang == $lang.id_lang}
<div class="col-lg-9">
{if $config_val.tit.$i.{$lang.id_lang}}
<div class="col-lg-5">{$config_val.tit.$i.{$lang.id_lang}}</div>
{/if}
{if $config_val.img.$i.{$lang.id_lang}}
<img src="{$path}{$config_val.img.$i.{$lang.id_lang}}">
{else}
{if isset($config_val.image_link.$i.{$lang.id_lang}) && $config_val.image_link.$i.{$lang.id_lang}}
<img src="{$config_val.image_link.$i.{$lang.id_lang}}">
{/if}
{/if}
</div>
<div class="col-lg-3">
<button class="btn-edit-fullslider btn btn-info" type="button"><i class="icon-pencil"></i>{l s='Edit' mod='appagebuilder'}</button>
<button class="btn-delete-fullslider btn btn-danger" type="button"><i class="icon-trash"></i>{l s='Delete' mod='appagebuilder'}</button>
</div>
{/if}
{assign var=descript value=$config_val.descript.$i.{$lang.id_lang}}
{assign var=descript value=$descript|htmlspecialchars}
{assign var=descript value=$descript|replace:'\r\n':''}
{assign var=descript value=$descript|stripslashes}
{assign var=temp_name value="{$i}_{$lang.id_lang}"}
<input type="hidden" id="tit_{$temp_name}" value="{$config_val.tit.$i.{$lang.id_lang}|htmlspecialchars}" name="tit_{$temp_name}"/>
<input type="hidden" id="sub_tit_{$temp_name}" value="{$config_val.sub_tit.$i.{$lang.id_lang}|htmlspecialchars}" name="sub_tit_{$temp_name}"/>
<input type="hidden" id="img_{$temp_name}" value="{$config_val.img.$i.{$lang.id_lang}|htmlspecialchars}" name="img_{$temp_name}"/>
<input type="hidden" id="image_link_{$temp_name}" value="{$config_val.image_link.$i.{$lang.id_lang}|htmlspecialchars}" name="image_link_{$temp_name}"/>
<input type="hidden" id="link_{$temp_name}" value="{$config_val.link.$i.{$lang.id_lang}|htmlspecialchars}" name="link_{$temp_name}"/>
<input type="hidden" id="descript_{$temp_name}" value="{$descript}" name="descript_{$temp_name}"/>
{/foreach}
</li>
{/if}
{/foreach}
</ul>
<ul id="temp-list" class="hide">
<li id="">
<div class="col-lg-9"></div>
<div class="col-lg-3">
<button class="btn-edit-fullslider btn btn-info" type="button"><i class="icon-pencil"></i> {l s='Edit' mod='appagebuilder'}</button>
<button class="btn-delete-fullslider btn btn-danger" type="button"><i class="icon-trash"></i> {l s='Delete' mod='appagebuilder'}</button>
</div>
</li>
</ul>

View File

@@ -0,0 +1,34 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<p><input type="text" name="controller_pages" value="{$controller}" class="em_text"/></p>
<p><select size="25" name="controller_pages_select" class="em_list" multiple="multiple">
<option disabled="disabled">{$_core_}</option>
{foreach from=$controllers key=k item=v}
{if in_array($k, $arr_controllers)}
<option value="{$k}" selected="selected">{$k}</option>
{else}
<option value="{$k}">{$k}</option>
{/if}
{/foreach}
{foreach from=$modules_controllers_type key=type item=label}
<option disabled="disabled">________________________________________ {$label} ________________________________________</option>
{assign var=all_modules_controllers value=$controllers_modules.$type}
{foreach $all_modules_controllers key=module item=modules_controllers}
{foreach $modules_controllers item=cont}
{assign var=key value="module-`$module`-`$cont`"}
{if in_array($key, $arr_controllers)}
<option value="module-{$module}-{$cont}" selected="selected">module__{$module}__{$cont}</option>
{else}
<option value="module-{$module}-{$cont}">module__{$module}__{$cont}</option>
{/if}
{/foreach}
{/foreach}
{/foreach}
</select></p>

View File

@@ -0,0 +1,55 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<ul id="list-slider">
{foreach from=$arr item=i}
{if $i}
<li id="{$i}">
{foreach from=$languages item=lang}
{if $default_lang == $lang.id_lang}
<div class="col-lg-9">
{if $config_val.tit.$i.{$lang.id_lang}}
<div class="col-lg-5">{$config_val.tit.$i.{$lang.id_lang}}</div>
{/if}
{if $config_val.img.$i.{$lang.id_lang}}
<img src="{$path}{$config_val.img.$i.{$lang.id_lang}}">
{else}
{if isset($config_val.image_link.$i.{$lang.id_lang}) && $config_val.image_link.$i.{$lang.id_lang}}
<img src="{$config_val.image_link.$i.{$lang.id_lang}}">
{/if}
{/if}
</div>
<div class="col-lg-3">
<button class="btn-edit-fullslider btn btn-info" type="button"><i class="icon-pencil"></i>{l s='Edit' mod='appagebuilder'}</button>
<button class="btn-delete-fullslider btn btn-danger" type="button"><i class="icon-trash"></i>{l s='Delete' mod='appagebuilder'}</button>
</div>
{/if}
{assign var=descript value=$config_val.descript.$i.{$lang.id_lang}}
{assign var=descript value=$descript|htmlspecialchars}
{assign var=descript value=$descript|replace:'\r\n':''}
{assign var=descript value=$descript|stripslashes}
{assign var=temp_name value="{$i}_{$lang.id_lang}"}
<input type="hidden" id="tit_{$temp_name}" value="{$config_val.tit.$i.{$lang.id_lang}|htmlspecialchars}" name="tit_{$temp_name}"/>
<input type="hidden" id="image_link_{$temp_name}" value="{if isset($config_val.image_link.$i.{$lang.id_lang}) && $config_val.image_link.$i.{$lang.id_lang}}{$config_val.image_link.$i.{$lang.id_lang}|htmlspecialchars}{/if}" name="image_link_{$temp_name}"/>
<input type="hidden" id="img_{$temp_name}" value="{$config_val.img.$i.{$lang.id_lang}|htmlspecialchars}" name="img_{$temp_name}"/>
<input type="hidden" id="link_{$temp_name}" value="{$config_val.link.$i.{$lang.id_lang}|htmlspecialchars}" name="link_{$temp_name}"/>
<input type="hidden" id="descript_{$temp_name}" value="{$descript}" name="descript_{$temp_name}"/>
{/foreach}
</li>
{/if}
{/foreach}
</ul>
<ul id="temp-list" class="hide">
<li id="">
<div class="col-lg-9"></div>
<div class="col-lg-3">
<button class="btn-edit-fullslider btn btn-info" type="button"><i class="icon-pencil"></i> {l s='Edit' mod='appagebuilder'}</button>
<button class="btn-delete-fullslider btn btn-danger" type="button"><i class="icon-trash"></i> {l s='Delete' mod='appagebuilder'}</button>
</div>
</li>
</ul>

View File

@@ -0,0 +1,34 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<ul id="list-slider" class="ul-apimage360">
{foreach from=$arr item=i}
{if $i && $config_val.image360.$i}
{assign var=image_name value=$config_val.image360.$i}
{assign var=input_name value="image360_{$i}"}
<li id="{$i}" name="{$image_name}">
<div class="col-lg-9">
<div class="col-lg-5">
<img data-position="" data-name="{$image_name}" class="img-thumbnail" src="
{if $image_name|strstr:"/"}
{$image_name}
{else}
{$image_folder}{$image_name}
{/if}">
<input type="hidden" value="{$image_name}" class="ApImage360" id="{$input_name}" name="{$input_name}">
</div>
<div class="col-lg-4">{if $image_name|strstr:"/"}image360_{$i}{else}{$image_name}{/if}</div>
</div>
<div class="col-lg-3" style="text-align: right;">
<button type="button" class="btn-delete-fullslider btn btn-danger"><i class="icon-trash"></i> {l s='Delete' mod='appagebuilder'}</button>
</div>
</li>
{/if}
{/foreach}
</ul>

View File

@@ -0,0 +1,55 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<div class="ap-info" style="display: none;"></div>
{literal}
<script>
$(document).off("click", ".btn-create-folder");
$(document).on("click", ".btn-create-folder", function(){
var data = "&ajax=1&action=callmethod&type_shortcode=ApImageGallery&method_name=CreateDir&path=" + $("#path").val();
var url = $globalthis.ajaxShortCodeUrl;
var html = '';
$(".ap-info").html("");
$(".ap-info").removeClass("alert-success alert-danger");
$(".ap-info").hide();
$("#ap_loading").show();
$.ajax({
type: "POST",
headers: {"cache-control": "no-cache"},
url: url,
async: true,
cache: false,
data: data,
dataType: "json",
success: function (jsonData) {
$("#ap_loading").hide();
if (jsonData.success) {
if(typeof jsonData.img_dir == "undefined")
jsonData.img_dir = "";
html = jsonData.information + "<p style=\"font-weight: bold;\">" + jsonData.img_dir + "</p>";
$(".ap-info").addClass("alert alert-success").html(html).slideDown();
}
if (jsonData.hasError) {
if(typeof jsonData.img_dir == "undefined")
jsonData.img_dir = "";
html = jsonData.error + "<p style=\"font-weight: bold;\">" + jsonData.img_dir + "</p>";
$(".ap-info").addClass("alert alert-danger").html(html).slideDown();
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$("#ap_loading").hide();
}
});
});
</script>
{/literal}

View File

@@ -0,0 +1,59 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<ul id="list-slider">
{foreach from=$arr item=i}
{if $i}
<li id="{$i}">
{foreach from=$languages item=lang}
{if $default_lang == $lang.id_lang}
<div class="col-lg-9">
{if $config_val.temp_title.$i.{$lang.id_lang}}
<div class="col-lg-5">{$config_val.temp_title.$i.{$lang.id_lang}}</div>
{/if}
{if $config_val.temp_image.$i.{$lang.id_lang}}
<img src="{$path}{$config_val.temp_image.$i.{$lang.id_lang}}">
{else}
{if isset($config_val.temp_image_link.$i.{$lang.id_lang}) && $config_val.temp_image_link.$i.{$lang.id_lang}}
<img src="{$config_val.temp_image_link.$i.{$lang.id_lang}}">
{/if}
{/if}
</div>
<div class="col-lg-3">
<button class="btn-edit-level2 btn btn-info" type="button"><i class="icon-pencil"></i>
{l s='Edit' mod='appagebuilder'}
</button>
<button class="btn-delete-level2 btn btn-danger" type="button"><i class="icon-trash"></i>
{l s='Delete' mod='appagebuilder'}
</button>
</div>
{/if}
{assign var=temp_name value="{$i}_{$lang.id_lang}"}
{foreach from=$inputs_lang item=input}
<input type="hidden" id="{$input}_{$temp_name}" value="{$config_val.$input.$i.{$lang.id_lang}|htmlspecialchars}" name="{$input}_{$temp_name}"/>
{/foreach}
{/foreach}
{foreach from=$inputs item=input}
<input type="hidden" id="{$input}_{$i}" value="{$config_val.$input.$i|htmlspecialchars}" name="{$input}_{$i}"/>
{/foreach}
</li>
{/if}
{/foreach}
</ul>
<ul id="temp-list" class="hide">
<li id="">
<div class="col-lg-9"></div>
<div class="col-lg-3">
<button class="btn-edit-level2 btn btn-info" type="button"><i class="icon-pencil"></i> {l s='Edit' mod='appagebuilder'}</button>
<button class="btn-delete-level2 btn btn-danger" type="button"><i class="icon-trash"></i> {l s='Delete' mod='appagebuilder'}</button>
</div>
</li>

View File

@@ -0,0 +1,34 @@
{*
* @Module Name: AP Page Builder
* @Website: apollotheme.com - prestashop template provider
* @author Apollotheme <apollotheme@gmail.com>
* @copyright Apollotheme
* @description: ApPageBuilder is module help you can build content for your shop
*}
<p><input type="text" name="controller_pages" value="{$controller}" class="em_text"/></p>
<p><select size="25" name="controller_pages_select" class="em_list" multiple="multiple">
<option disabled="disabled">{$_core_}</option>
{foreach from=$controllers key=k item=v}
{if in_array($k, $arr_controllers)}
<option value="{$k}" selected="selected">{$k}</option>
{else}
<option value="{$k}">{$k}</option>
{/if}
{/foreach}
{foreach from=$modules_controllers_type key=type item=label}
<option disabled="disabled">________________________________________ {$label} ________________________________________</option>
{assign var=all_modules_controllers value=$controllers_modules.$type}
{foreach $all_modules_controllers key=module item=modules_controllers}
{foreach $modules_controllers item=cont}
{assign var=key value="module-`$module`-`$cont`"}
{if in_array($key, $arr_controllers)}
<option value="module-{$module}-{$cont}" selected="selected">module__{$module}__{$cont}</option>
{else}
<option value="module-{$module}-{$cont}">module__{$module}__{$cont}</option>
{/if}
{/foreach}
{/foreach}
{/foreach}
</select></p>

View File

@@ -0,0 +1,36 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2019 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../');
exit;

File diff suppressed because one or more lines are too long