Dodaj nowe obrazy i szablony do modułu AP Page Builder

This commit is contained in:
2025-03-25 20:10:54 +01:00
parent 338ce2b7ce
commit 6a18bcfe20
557 changed files with 135520 additions and 4 deletions

View File

@@ -0,0 +1,148 @@
{*
* @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="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,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-2014 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}