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

Тема в разделе "EzRealty", создана пользователем brus46, 22 мар 2015.

  1. brus46

    brus46 Постоялец

    Регистр.:
    3 мар 2013
    Сообщения:
    58
    Симпатии:
    8
    Делаю сайт с использованием компонента 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>'
    
    но при изменениях кода все блоки становятся друг под друга
     
    Последнее редактирование: 22 мар 2015
  2. brus46

    brus46 Постоялец

    Регистр.:
    3 мар 2013
    Сообщения:
    58
    Симпатии:
    8
    Отвечу сам себе

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

    код 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>';
    
    может немного топорно, но работает ))
     
  3. janefox

    janefox Создатель

    Регистр.:
    22 дек 2014
    Сообщения:
    25
    Симпатии:
    17
    А где собственно можно скачать EZRealty 7.2.0 ? или же что то посвежее. Раньше мы на этом работали, Австралийская девушка разрабатывала этот компонент и поддерживает по сей день... Хороший компонент очень.
     
  4. brus46

    brus46 Постоялец

    Регистр.:
    3 мар 2013
    Сообщения:
    58
    Симпатии:
    8
    вот здесь
     
  5. amedia

    amedia Создатель

    Регистр.:
    13 май 2015
    Сообщения:
    8
    Симпатии:
    0
    Напишите отзывы о комплненте
     
  6. brus46

    brus46 Постоялец

    Регистр.:
    3 мар 2013
    Сообщения:
    58
    Симпатии:
    8
    нормальный компонент, есть много специфических плюшек, но допиливать руками все равно придется, т.к. заточен он под европейские потребности
     
  7. ZiXy

    ZiXy Создатель

    Регистр.:
    25 янв 2015
    Сообщения:
    10
    Симпатии:
    4
    очень много его переделывать долго и муторно
     
  8. portugalam

    portugalam Создатель

    Регистр.:
    24 фев 2008
    Сообщения:
    30
    Симпатии:
    3
    Пользовался этим движком в далеком 2008 году, еще ранних стадиях, переделывал примерно 70%, ужас. Зато научился многому, переустонавливал раз 50))...
     
  9. brus46

    brus46 Постоялец

    Регистр.:
    3 мар 2013
    Сообщения:
    58
    Симпатии:
    8
    Переработал для этого компонента карусель EXT Roundabout images (устанавливался по желанию клиента). Интересно получилось. Причем переработал бесплатный вариант модуля. Соответственно все ограничения убрал. В карточке объекта теперь включается/выключается отображение этого объекта в карусели. Если кому потребуется - расскажу, как сделал.
     
  10. brus46

    brus46 Постоялец

    Регистр.:
    3 мар 2013
    Сообщения:
    58
    Симпатии:
    8
    В компоненте оказывается не реализовано управление длиной списка через админку. Т.е. количество отображаемых объектов по умолчанию равно настройке списка по умолчанию в админке. Встал в ступор, как добавить функционал выбора количества позиций по умолчанию, отличный от общих настроек?