EZ Realty 7.2.0 Нужна помощь с отображением карусели объектов

brus46

Постоялец
Регистрация
3 Мар 2013
Сообщения
93
Реакции
17
Делаю сайт с использованием компонента EZ Realty 7.2.0, ничего не нулил, все работает без этого. Причем на официальном сайте есть возможность компонент скачать бесплатно.
Не получается отредактировать модуль "Карусель объектов". Используется javascript, причем разметка прописана внутри кода и при добавлении чего-либо (кроме <span>) все ломается.
Код:
<div class="moduletable<?php echo $params->get('moduleclass_sfx'); ?>">
    <div class="carousel-container" style="padding-right: 25px;">
        <div class="carousel_item">

<script type="text/javascript">

var sliderwidth="100%"
var sliderheight="<?php echo $otherheight;?>px"
//Specify the slider's slide speed (larger is faster 1-10)
var slidespeed=<?php echo $slidespeed;?>
//configure background color:
slidebgcolor=""

//Specify the slider's images
var leftrightslide=new Array()
var finalslide=''

            <?php
            $k = 0;
            $count = 0;
            for ($i=0, $n=count( $items ); $i < $n; $i++) {

                $item = $items[$i];

                $link = JRoute::_(EzrealtyHelperRoute::getEzrealtyRoute($item->slug, $item->catslug, '', ''));

                if(!EZRealtyFHelper::getTheImage($item->id) ){
                    $image = JURI::root()."components/com_ezrealty/assets/images/nothumb.png";
                } else {
                    $image = EZRealtyFHelper::convertModuleImage ($item->id);
                }

                ?>

                leftrightslide[<?php echo $i;?>]='<a href="<?php echo $link;?>"><img src="<?php echo $image;?>" style="height:<?php echo $otherheight;?>px;" title="" alt="" /></a>'

            <?php } ?>


//Specify gap between each image (use HTML):
var imagegap=" "

//Specify pixels gap between each slideshow rotation (use integer):
var slideshowgap=<?php echo $rowgap;?>


////NO NEED TO EDIT BELOW THIS LINE////////////

var copyspeed=slidespeed
leftrightslide='<nobr>'+leftrightslide.join(imagegap)+'</nobr>'
var iedom=document.all||document.getElementById
if (iedom)
document.write('<span id="temp" style="visibility:hidden; position:absolute; top:-100px; left:-9000px; padding-bottom: 20px;">'+leftrightslide+'</span>')
var actualwidth=''
var cross_slide, ns_slide

function fillup(){
if (iedom){
cross_slide=document.getElementById? document.getElementById("test2") : document.all.test2
cross_slide2=document.getElementById? document.getElementById("test3") : document.all.test3
cross_slide.innerHTML=cross_slide2.innerHTML=leftrightslide
actualwidth=document.all? cross_slide.offsetWidth : document.getElementById("temp").offsetWidth
cross_slide2.style.left=actualwidth+slideshowgap+"px"
}
else if (document.layers){
ns_slide=document.ns_slidemenu.document.ns_slidemenu2
ns_slide2=document.ns_slidemenu.document.ns_slidemenu3
ns_slide.document.write(leftrightslide)
ns_slide.document.close()
actualwidth=ns_slide.document.width
ns_slide2.left=actualwidth+slideshowgap
ns_slide2.document.write(leftrightslide)
ns_slide2.document.close()
}
lefttime=setInterval("slideleft()",30)
}

function slideleft(){
if (iedom){
if (parseInt(cross_slide.style.left)>(actualwidth*(-1)+8))
cross_slide.style.left=parseInt(cross_slide.style.left)-copyspeed+"px"
else
cross_slide.style.left=parseInt(cross_slide2.style.left)+actualwidth+slideshowgap+"px"

if (parseInt(cross_slide2.style.left)>(actualwidth*(-1)+8))
cross_slide2.style.left=parseInt(cross_slide2.style.left)-copyspeed+"px"
else
cross_slide2.style.left=parseInt(cross_slide.style.left)+actualwidth+slideshowgap+"px"

}
else if (document.layers){
if (ns_slide.left>(actualwidth*(-1)+8))
ns_slide.left-=copyspeed
else
ns_slide.left=ns_slide2.left+actualwidth+slideshowgap

if (ns_slide2.left>(actualwidth*(-1)+8))
ns_slide2.left-=copyspeed
else
ns_slide2.left=ns_slide.left+actualwidth+slideshowgap
}
}


if (iedom||document.layers){
with (document){
document.write('<table style="width: 100%; padding: 0px; border-width: 1px #39b44a;"><tr><td>')
if (iedom){
write('<div style="position:relative;width:'+sliderwidth+';height:'+sliderheight+';overflow:hidden">')
write('<div style="position:absolute;width:'+sliderwidth+';height:'+sliderheight+';background-color:'+slidebgcolor+';margin-top: 20px;" onMouseover="copyspeed=0" onMouseout="copyspeed=slidespeed">')
write('<div id="test2" style="position:absolute;left:0px;top:-20px"></div>')
write('<div id="test3" style="position:absolute;left:-1000px;top:-20px"></div>')
write('</div></div>')
}
else if (document.layers){
write('<ilayer width='+sliderwidth+' height='+sliderheight+' name="ns_slidemenu" bgColor='+slidebgcolor+'>')
write('<layer name="ns_slidemenu2" left=0 top=0 onMouseover="copyspeed=0" onMouseout="copyspeed=slidespeed"></layer>')
write('<layer name="ns_slidemenu3" left=0 top=0 onMouseover="copyspeed=0" onMouseout="copyspeed=slidespeed"></layer>')
write('</ilayer>')
}
document.write('</td></tr></table>')
}
}
// ]]>

</script>

        </div>
    </div>
</div>
Необходимо, чтобы при наведении мыши на фото объекта карусель не только останавливалась, но и появлялся лайтбокс с краткими данными об объекте.

Разметку пытаюсь менять в этой строке:
Код:
leftrightslide[<?php echo $i;?>]='<a href="<?php echo $link;?>"><img src="<?php echo $image;?>" style="height:<?php echo $otherheight;?>px;" title="" alt="" /></a>'

но при изменениях кода все блоки становятся друг под друга
 
Последнее редактирование:
Отвечу сам себе

в итоге сделал так:

код CSS
Код:
.tooltip {
    position: relative;
    background: #eaeaea;
    cursor: pointer;
    display: inline-block;
    text-decoration: none;
    color: #222;
    outline: none;
    opacity: 1;
}

.tooltip .tt_win {
    visibility: hidden;
    position: absolute;
    bottom: 2px;
    left: 50%;
    z-index: 10;
    width: 200px;
    margin-left: -101px;
    padding: 0 0 48px;
    text-shadow: 0 1px 0 rgba(255,255,255,.4);
    background: url("../images/hsinfo.png") no-repeat;
  
}

.tooltip:hover {
    border: 0; /* IE6 fix */
}

.tooltip:hover .tt_win {
    visibility: visible;
}
.area {
    display: block;
    position: absolute;
    left: 27px;
    font-size: 9px;
    color: #fff;
    bottom: 29px;
    text-align: center;
    width: 35px;
}
.tt_sum {
    display: block;
    position: absolute;
    color: #fff;
    bottom: 10px;
    font-size: 10px;
    left: 5px;
    text-align: center;
    width: 55px;
}
.tt_name {
    color: #000;
    display: block;
    font-size: 10px;
    left: 65px;
    position: absolute;
    top: 3px;
    white-space: normal;
    line-height: 12px;
}

код php

Код:
$wintitle_2 = EZRealtyFHelper::formatDisplayPrice ($item->showprice, $item->price, $item->currency_format, $item->currency, $item->currency_position, $item->priceview, $item->freq);
$tt_sum = preg_replace('/[^0-9]/', '', $wintitle_2);

    if (!empty($item->custom2)){
        $LandArea = $item->custom2;
    }elseif(!empty($item->squarefeet))   {
        $LandArea = $item->squarefeet;
    }elseif (!empty($item->LandAreaSqFt)){
        $LandArea = $item->LandAreaSqFt;
    }else{
        $LandArea = '';
    }
  
  
                ?>
              
              
                leftrightslide[<?php echo $i;?>]='<a class="tooltip" title="" href="<?php echo $link;?>"><img src="<?php echo $image;?>" style="height:<?php echo $otherheight;?>px;" alt="" /><span class="tt_win"><span class="area"><?php echo $LandArea;?></span><span class="tt_name"><?php echo $item->adline;?></span><span class="tt_sum"><?php echo number_format($tt_sum, 0, '', ' ');?></span></span></a>';

может немного топорно, но работает ))
 
А где собственно можно скачать EZRealty 7.2.0 ? или же что то посвежее. Раньше мы на этом работали, Австралийская девушка разрабатывала этот компонент и поддерживает по сей день... Хороший компонент очень.
 
вот здесь
Скрытое содержимое доступно для зарегистрированных пользователей!
 
Напишите отзывы о комплненте
 
нормальный компонент, есть много специфических плюшек, но допиливать руками все равно придется, т.к. заточен он под европейские потребности
 
нормальный компонент, есть много специфических плюшек, но допиливать руками все равно придется, т.к. заточен он под европейские потребности
очень много его переделывать долго и муторно
 
Пользовался этим движком в далеком 2008 году, еще ранних стадиях, переделывал примерно 70%, ужас. Зато научился многому, переустонавливал раз 50))...
 
Переработал для этого компонента карусель EXT Roundabout images (устанавливался по желанию клиента). Интересно получилось. Причем переработал бесплатный вариант модуля. Соответственно все ограничения убрал. В карточке объекта теперь включается/выключается отображение этого объекта в карусели. Если кому потребуется - расскажу, как сделал.
 
В компоненте оказывается не реализовано управление длиной списка через админку. Т.е. количество отображаемых объектов по умолчанию равно настройке списка по умолчанию в админке. Встал в ступор, как добавить функционал выбора количества позиций по умолчанию, отличный от общих настроек?
 
Назад
Сверху