Handel-shop: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „- Filter horzontal ausrichten - Oh das geht: Gib der box in der DB gm_boxes die Position gm_box_pos_330. dann in der index.html (Template) das rote einfügen(nat…“) |
|||
| (2 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
| Zeile 21: | Zeile 21: | ||
} | } | ||
und hier noch ein Feature das das Teil dann auch auf Contentseiten angezeigt wird | und hier noch ein Feature das das Teil dann auch auf Contentseiten angezeigt wird | ||
| + | |||
| + | |||
| + | - Filterwerte in der Produktbeschreibung - | ||
| + | |||
| + | http://www.gambio-forum.de/threads/11349-Filter-Eigenschaften-in-der-Produktbeschreibung-einblenden?p=86728#post86728 | ||
| + | |||
| + | |||
| + | - Filter als Accordion - | ||
| + | |||
| + | |||
| + | |||
| + | - Filter dynamisch anwenden - | ||
| + | |||
| + | diese habe ich wieder herausgenommen, damit die der Filer als accordion eingebaut werden kann. | ||
| + | |||
| + | |||
| + | |||
| + | Folgenden Code an das Ende von "templates\EyeCandy\boxes\box_filter.html" anfügen. | ||
| + | |||
| + | Dann wird bei jeder Filter-Auswahl die Seite automatisch neu geladen. | ||
| + | |||
| + | <script type="text/javascript" src="gm/javascript/jquery/jquery.js"></script> | ||
| + | <script type="text/javascript"> | ||
| + | {literal} | ||
| + | var filter_form; | ||
| + | |||
| + | function xmit_data() | ||
| + | { | ||
| + | filter_form.submit(); | ||
| + | } | ||
| + | |||
| + | $(document).ready(function(){ | ||
| + | filter_form=$('form[name=search_filter]'); | ||
| + | |||
| + | $('.filter_feature select, #filter_prices input').change(function(){ | ||
| + | xmit_data(); | ||
| + | }); | ||
| + | |||
| + | $('.filter_feature input[type=checkbox]').click(function(){ | ||
| + | xmit_data(); | ||
| + | }); | ||
| + | |||
| + | $('#filter_reset input').click(function(){ | ||
| + | var elements; | ||
| + | |||
| + | elements=filter_form.find('input[type=text]'); | ||
| + | if (elements.length) | ||
| + | { | ||
| + | elements.val(''); | ||
| + | } | ||
| + | elements=filter_form.find('input[type=checkbox]'); | ||
| + | if (elements.length) | ||
| + | { | ||
| + | elements.attr('checked',false); | ||
| + | } | ||
| + | elements=filter_form.find('select option[value=""]'); | ||
| + | if (elements.length) | ||
| + | { | ||
| + | elements.attr('selected',true); | ||
| + | } | ||
| + | xmit_data(); | ||
| + | }); | ||
| + | }); | ||
| + | {/literal} | ||
| + | </script> | ||
| + | |||
| + | |||
| + | Mit Ajax | ||
| + | |||
| + | Die AJAX-Variante hat ja das gleiche Problem wie die normale, wollte erst warten, ob die OK ist.... | ||
| + | |||
| + | An das Ende von "templates\EyeCandy\boxes\box_filter.html" anfügen: | ||
| + | |||
| + | PHP-Code: | ||
| + | <script type="text/javascript" src="gm/javascript/jquery/jquery.js"></script> | ||
| + | <script type="text/javascript"> | ||
| + | {literal} | ||
| + | var filter_form; | ||
| + | |||
| + | function xmit_data() | ||
| + | { | ||
| + | if (true) | ||
| + | { | ||
| + | var form_data=filter_form.serialize()+'&ajax_replace=true'; | ||
| + | |||
| + | $('body').css('cursor','wait'); | ||
| + | filter_form.attr('disabled', 'disabled'); | ||
| + | $.ajax({ | ||
| + | url: filter_form.attr('action'), | ||
| + | cache: false, | ||
| + | data: form_data, | ||
| + | type: 'GET', | ||
| + | async: false, | ||
| + | success: function(html){ | ||
| + | var target_name,target; | ||
| + | |||
| + | target_name="maincol"; | ||
| + | target=$("#"+target_name) | ||
| + | if (!target.length) | ||
| + | { | ||
| + | target_name="main_inside"; | ||
| + | target=$("#"+target_name) | ||
| + | } | ||
| + | if (target.length) | ||
| + | { | ||
| + | target.html(html); | ||
| + | document.getElementById(target_name).scrollIntoView(true); | ||
| + | } | ||
| + | } | ||
| + | }); | ||
| + | filter_form.removeAttr('disabled'); | ||
| + | $('body').css('cursor','default'); | ||
| + | } | ||
| + | else | ||
| + | { | ||
| + | filter_form.submit(); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | $(document).ready(function(){ | ||
| + | filter_form=$('form[name=search_filter]'); | ||
| + | |||
| + | $('.filter_feature select, #filter_prices input').change(function(){ | ||
| + | xmit_data(); | ||
| + | }); | ||
| + | |||
| + | $('.filter_feature input[type=checkbox]').click(function(){ | ||
| + | xmit_data(); | ||
| + | }); | ||
| + | |||
| + | $('#filter_reset input').click(function(){ | ||
| + | var elements; | ||
| + | |||
| + | elements=filter_form.find('input[type=text]'); | ||
| + | if (elements.length) | ||
| + | { | ||
| + | elements.val(''); | ||
| + | } | ||
| + | elements=filter_form.find('input[type=checkbox]'); | ||
| + | if (elements.length) | ||
| + | { | ||
| + | elements.attr('checked',false); | ||
| + | } | ||
| + | elements=filter_form.find('select option[value=""]'); | ||
| + | if (elements.length) | ||
| + | { | ||
| + | elements.attr('selected',true); | ||
| + | } | ||
| + | xmit_data(); | ||
| + | }); | ||
| + | }); | ||
| + | {/literal} | ||
| + | </script> | ||
| + | In "includes\classes\Smarty_2.6.14\Smarty.class.p hp" | ||
| + | |||
| + | PHP-Code: | ||
| + | function display($resource_name, $cache_id = null, $compile_id = null) | ||
| + | { | ||
| + | $this->fetch($resource_name, $cache_id, $compile_id, true); | ||
| + | } | ||
Aktuelle Version vom 26. Februar 2014, 17:47 Uhr
- Filter horzontal ausrichten - Oh das geht:
Gib der box in der DB gm_boxes die Position gm_box_pos_330. dann in der index.html (Template) das rote einfügen(natürlich dort wo du es möchtest, das ist ein Bsp. von mir). Dann den Filter formatieren. fertig. Soll der nur auf bestimmten Seiten erscheinen, gehts mit dem if-Gedöns.
{$IMGSLIDER} {$gm_box_pos_330} {$main_content} {$CATEGORIES_DROPDOWN}
Du musst in deiner css nach folgendem Eintrag suchen und das float: left; einfügen:
div.input.separator-bottom { border-bottom: 0 solid #CCCCCC; padding-bottom: 10px; width: 120px; float: left; } und hier noch ein Feature das das Teil dann auch auf Contentseiten angezeigt wird
- Filterwerte in der Produktbeschreibung -
- Filter als Accordion -
- Filter dynamisch anwenden -
diese habe ich wieder herausgenommen, damit die der Filer als accordion eingebaut werden kann.
Folgenden Code an das Ende von "templates\EyeCandy\boxes\box_filter.html" anfügen.
Dann wird bei jeder Filter-Auswahl die Seite automatisch neu geladen.
<script type="text/javascript" src="gm/javascript/jquery/jquery.js"></script> <script type="text/javascript"> {literal} var filter_form;
function xmit_data() {
filter_form.submit();
}
$(document).ready(function(){
filter_form=$('form[name=search_filter]');
$('.filter_feature select, #filter_prices input').change(function(){
xmit_data();
});
$('.filter_feature input[type=checkbox]').click(function(){
xmit_data();
});
$('#filter_reset input').click(function(){
var elements;
elements=filter_form.find('input[type=text]');
if (elements.length)
{
elements.val();
}
elements=filter_form.find('input[type=checkbox]');
if (elements.length)
{
elements.attr('checked',false);
}
elements=filter_form.find('select option[value=""]');
if (elements.length)
{
elements.attr('selected',true);
}
xmit_data();
});
}); {/literal} </script>
Mit Ajax
Die AJAX-Variante hat ja das gleiche Problem wie die normale, wollte erst warten, ob die OK ist....
An das Ende von "templates\EyeCandy\boxes\box_filter.html" anfügen:
PHP-Code: <script type="text/javascript" src="gm/javascript/jquery/jquery.js"></script> <script type="text/javascript"> {literal} var filter_form;
function xmit_data() {
if (true)
{
var form_data=filter_form.serialize()+'&ajax_replace=true';
$('body').css('cursor','wait');
filter_form.attr('disabled', 'disabled');
$.ajax({
url: filter_form.attr('action'),
cache: false,
data: form_data,
type: 'GET',
async: false,
success: function(html){
var target_name,target;
target_name="maincol";
target=$("#"+target_name)
if (!target.length)
{
target_name="main_inside";
target=$("#"+target_name)
}
if (target.length)
{
target.html(html);
document.getElementById(target_name).scrollIntoView(true);
}
}
});
filter_form.removeAttr('disabled');
$('body').css('cursor','default');
}
else
{
filter_form.submit();
}
}
$(document).ready(function(){
filter_form=$('form[name=search_filter]');
$('.filter_feature select, #filter_prices input').change(function(){
xmit_data();
});
$('.filter_feature input[type=checkbox]').click(function(){
xmit_data();
});
$('#filter_reset input').click(function(){
var elements;
elements=filter_form.find('input[type=text]');
if (elements.length)
{
elements.val();
}
elements=filter_form.find('input[type=checkbox]');
if (elements.length)
{
elements.attr('checked',false);
}
elements=filter_form.find('select option[value=""]');
if (elements.length)
{
elements.attr('selected',true);
}
xmit_data();
});
}); {/literal} </script> In "includes\classes\Smarty_2.6.14\Smarty.class.p hp"
PHP-Code: function display($resource_name, $cache_id = null, $compile_id = null) {
$this->fetch($resource_name, $cache_id, $compile_id, true);
}