Перейти к содержанию
Форум поддержки пользователей VamShop

Всплывающие доп. поля


Александр

Рекомендуемые сообщения

Кто сталкивался, подскажите.

Хочу сделать всплывающее окно со значением доп. поля.

в product_info_v1.html :


{if $extra_fields_data}
{foreach name=aussen item=extra_fields from=$extra_fields_data}
{$extra_fields.NAME}: {$extra_fields.VALUE}<br />
{/foreach}
{/if}
[/CODE] меняю на :
[CODE]
{if $extra_fields_data}
{foreach name=aussen item=extra_fields from=$extra_fields_data}
< a class="iframe" href="extrafield.php?products_id={$PRODUCTS_ID}">{$extra_fields.NAME}</a>
{/foreach}
{/if}
extrafield.php кладу в корень. надо поправить код ентого файла:

<?php
require('includes/application_top.php');
echo {$extra_fields.VALUE};?>
[/code]

Ссылка на сообщение
Поделиться на другие сайты

Пока решил так:

в шапку:


<link rel="stylesheet" href="popup.css" type="text/css" media="screen" />
<script type="text/javascript" src="js/popup.js"></script>
<script type="text/javascript">
$(document).ready(function(){
PopUp($('#obj'), $('#trigg'));
});
</script>
[/CODE] [b]popup.js[/b]:
[CODE]
/**
* @version 0.0.1 16.05.2011 $
* @package POP-UP jQuery
* @copyright Copyright (C) 2011 - 2012 Open Source Matters. All rights reserved.
* @license GNU/GPL
* project page http://www.cleverscript.ru
* support support@cleverscript.ru
* author cleverscript
*/
function PopUp(obj,trig){
var html = obj.html();
obj.remove();
var body = $('body')[0];

var HTML="<div id='popup'><span id='cancel'></span>"+html+"</div>";
var win = $('<div id="win">'+HTML+'</div>');
win.appendTo(body);

function showWin(){
$('#win').css({display: 'block'});
$('#popup').css({
display:'block',
opacity:0,
top: $(window).height()/2-$('#popup').height()/2+'px',
left: $(window).width()/2-$('#popup').width()/2+'px'
});
$('#popup').css('opacity', 1);
}

if($(trig)){
$(trig).click(function(){
showWin();
});
}

if($('#cancel')){
$('#cancel').click(function(){
$('#win').css('display', 'none');
});
}

}
popup.css:

.cb {
clear:both !important;
height:0 !important;
margin:0 !important;
padding:0 !important;
overflow:hidden !important;
line-height:0 !important;
font-size:0 !important;
}
#win{
position:absolute;
z-index:2000;
top:0;
left:0;
background:url(img/win.png);
display:none;
height:100%;
width:100%;
}
#popup{
padding:0;
background:#FFFFFF;
position:fixed;
width:400px;
height:300px;
text-align:center;
z-index:3000;
}
#cancel{
display:block;
float:right;
width:15px;
height:15px;
background:url(img/close.gif) no-repeat;
cursor:pointer;
position:absolute;
top:4px;
right:4px;
}
#obj{display:none;}
.sample{padding:20px;}
[/code]

Ну и сам [b]product_info_v1.html:[/b]

[color=#008000][i][b]{if $extra_fields_data}

{foreach name=aussen item=extra_fields from=$extra_fields_data}

<a id="trigg" href="javascript:void(0);">{$extra_fields.NAME}</a><div id="obj"><div class="sample"> {$extra_fields.VALUE}</div></div>

{/foreach}

{/if}[/b][/i][/color]

Ссылка на сообщение
Поделиться на другие сайты

Хотя первый вариант был бы интересен. Но у меня в базе в таблице extra_fields \ extra_fields_info пусто.

Ссылка на сообщение
Поделиться на другие сайты

Чего-то я тупанул.

В шапку к фэнсибоксу крепим :


$("a#inline").fancybox({
"hideOnContentClick": true
});
[/CODE] а в product_info_v1.html :
[CODE]
{if $extra_fields_data}
{foreach name=aussen item=extra_fields from=$extra_fields_data}
<a id="inline" href="#{$extra_fields.ID}">{$extra_fields.NAME}</a><div style="display: none;"><div id="{$extra_fields.ID}"> {$extra_fields.VALUE}</div></div>
{/foreach}
{/if}

... только $extra_fields.ID не работает :(

Ссылка на сообщение
Поделиться на другие сайты

Так а посмотрите в /includes/modules/product_info.php

Есть ли там в массиве $extra_fields_data ID

Наверное нужно добавить.

Ссылка на сообщение
Поделиться на другие сайты

ну вообще то Вы в корне не правы с фанси боксом.

jQuery("a[rel=example_group]").fancybox({ 'transitionIn' : 'elastic', 'transitionOut' : 'elastic', 'titlePosition' : 'inside', 'titleFormat' : function(title, currentArray, currentIndex, currentOpts) { return '<span id="fancybox-title-inside">Image ' + (currentIndex + 1) + ' / ' + currentArray.length + (title.length ? ' ' + title : '') + '</span>'; } }), jQuery("#fancyform").fancybox({ 'titlePosition' : 'inside', 'transitionIn' : 'elastic', 'transitionOut' : 'elastic', 'hideOnContentClick' : false, "frameWidth" : 300, // ширина окна, px (425px - по умолчанию) "frameHeight" : 200, // высота окна, px(355px - по умолчанию) })

<a id="fancyform" href="#fancyform" title="лалала">лала</a> <div style="display: none;"> <div id="fancyform"style="width:200px;height:80px;overflow:auto;" > содержимое </div> </div>

это если выводить контент который уже выводится на странице

а если ВАм нужно открыть в всплыхивающем окне содержимо, то вот

jQuery("a.gallery2, a.iframe").fancybox( { "padding" : 20, // отступ контента от краев окна "imageScale" : true, // Принимает значение true - контент(изображения) масштабируется по размеру окна, или false - окно вытягивается по размеру контента. По умолчанию - TRUE "zoomOpacity" : true, // изменение прозрачности контента во время анимации (по умолчанию false) "zoomSpeedIn" : 700, // скорость анимации в мс при увеличении фото (по умолчанию 0) "zoomSpeedOut" : 500, // скорость анимации в мс при уменьшении фото (по умолчанию 0) "zoomSpeedChange" : 500, // скорость анимации в мс при смене фото (по умолчанию 0) "frameWidth" : 1000, // ширина окна, px (425px - по умолчанию) "frameHeight" : 600, // высота окна, px(355px - по умолчанию) "frameScale" : true, // Принимает значение true - контент(изображения) масштабируется по размеру окна, или false - окно вытягивается по размеру контента. По умолчанию - TRUE "overlayShow" : true, // если true затеняят страницу под всплывающим окном. (по умолчанию true). Цвет задается в jquery.fancybox.css - div#fancy_overlay "overlayOpacity" : 0.8, // Прозрачность затенения (0.3 по умолчанию) "centerOnScroll" : false,// Если TRUE окно центрируется на экране, когда пользователь прокручивает страницу "hideOnContentClick" :true // Если TRUE закрывает окно по клику по любой его точке (кроме элементов навигации). Поумолчанию TRUE }), jQuery("a[rel=example_group]").fancybox({ 'transitionIn' : 'elastic', 'transitionOut' : 'elastic', 'titlePosition' : 'inside', 'titleFormat' : function(title, currentArray, currentIndex, currentOpts) { return '<span id="fancybox-title-inside">Image ' + (currentIndex + 1) + ' / ' + currentArray.length + (title.length ? ' ' + title : '') + '</span>'; } })

<a title="лалалала" class="iframe" target="_blank" href="ссылка">текст</a>

Ссылка на сообщение
Поделиться на другие сайты

Честно говоря KoVaLsKy, я не понял о чём речь.

Решение выложил здесь .

а если ВАм нужно открыть в всплыхивающем окне содержимо, то вот

а это может пригодиться, спасиб.

всплывающие доп. поля fancybox.txt

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...