Новости Joomla

Как тестировать Joomla PHP-разработчику? Компонент Patch tester.

👩‍💻 Как тестировать Joomla PHP-разработчику? Компонент Patch tester.Joomla - open source PHP-фреймворк с готовой админкой. Его основная разработка ведётся на GitHub. Для того, чтобы международному сообществу разработчиков было удобнее тестировать Pull Requests был создан компонент Patch Tester, который позволяет "накатить" на текущую установку Joomla именно те изменения, которые необходимо протестировать. На стороне инфраструктуры Joomla для каждого PR собираются готовые пакеты, в которых находится ядро + предложенные изменения. В каждом PR обычно находятся инструкции по тестированию: куда зайти, что нажать, ожидаемый результат. Тестировщики могут предположить дополнительные сценарии, исходя из своего опыта и найти баги, о которых сообщить разработчику. Или не найти, и тогда улучшение или исправление ошибки быстрее войдёт в ядро Joomla. Напомню, что для того, чтобы PR вошёл в ядро Joomla нужны минимум 2 положительных теста от 2 участников сообщества, кроме автора. Видео на YouTubeВидео на VK ВидеоВидео на RuTubeКомпонент на GitHub https://github.com/joomla-extensions/patchtester@joomlafeed#joomla #php #webdev #community

Вышел релиз Revo PageBuilder Toolkit for YOOtheme Pro 1.6

Вышел релиз Revo PageBuilder Toolkit for YOOtheme Pro 1.6.2PageBuilder Toolkit - это специализированный плагин для конструктора страниц Yootheme Pro, содержит набор различных утилит для ускорения процесса работы и отладки макета, множественные улучшения в интерфейсе, включая поддержку dark mode, подсказки, быстрая смена разрешения в окне просмотра и много чего еще.v.1.6.2 Что нового?- Индикатор статусов: теперь не просто показывает состояние запросов, но и делает автоматические попытки их отправки при кратковременных сбоях в сети, а если это не помогло, то переводит конструктор в ручной режим, что позволяет сохранит макет и настройки темы прежде чем вы потеряете все, что было сделано с момента последнего сохранения- Подсветка ошибок в макете: плагин анализирует код страницы и может автоматически подсвечивать data атрибуты с кучей мусора, которые попадают в код страницы при копипасте из Figma в TinyMCE (пригодится для старых макетов, в текущей работе плагин сам очищает код мусора). Также есть подсветка семантических ошибок сборки - дубли h1 тега на странице и вложенных друг в друга заголовков.- Улучшена поддержка будущего релиза Yootheme Pro 5 и редактора CodeMirror 6Плагин для русскоязычных пользователей доступен в каталоге расширений SovMart и распространяется за символическую плату (100р). Разработчики Joomla расширений и партнеры автора могут получить плагин бесплатно.Для работы плагина необходим конструктор страниц Yootheme Pro.Разработчик плагина - участник нашего сообщества Александр Судьбинов (@alexrevo), член официальной группы поддержки Yootheme Pro. Страница расширенияОписание на сайте автора@joomlafeed#joomla #yootheme

0 Пользователей и 1 Гость просматривают эту тему.
  • 10 Ответов
  • 1516 Просмотров
*

txi

  • Захожу иногда
  • 55
  • 0 / 0
Пустое место в hightslide
« : 25.01.2013, 00:11:26 »
Изменил в выводе изображения lightbox на hightslide, но на месте первого изображения пустое место, как исправить?
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Re: Пустое место в hightslide
« Ответ #1 : 25.01.2013, 08:43:29 »
Удалить блок для места первого изображения.
Изучайте с помощью FireBug.
А вообще с проблемами отображения лучше прикладывать ссылку на сайт.
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

txi

  • Захожу иногда
  • 55
  • 0 / 0
Re: Пустое место в hightslide
« Ответ #2 : 25.01.2013, 14:46:25 »
Удалить блок для места первого изображения.
Изучайте с помощью FireBug.
А вообще с проблемами отображения лучше прикладывать ссылку на сайт.
нашел я этот блок удалил(табличный блок называется image_middle), изображение сдвинулось но с ним пришли проблемы в вкладки создается поверх 1 пустая вкладка
и вот  еще вопрос как раз на этой же странице не нашел решения для нее, кнопки "Назад" и "В корзину" срезаются я сначала думал что это из-за ограничения заданной таблицы но таблицу я увеличил а кнопки не изменились, как это исправить?
http://podarokvsem.com.ua/detskie-tovary/podarok-1.html
*

miheev24

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: Пустое место в hightslide
« Ответ #3 : 25.01.2013, 15:23:45 »
Попробуй мой код может за рабатает

Код
<script type = "text/javascript" src = "<?php print JURI::root(); ?>components/com_jshopping/js/highslide-full.js"></script>
<link rel="stylesheet" href="<?php print JURI::root(); ?>components/com_jshopping/css/highslide.css"/>
<script type='text/javascript'>
hs.graphicsDir = '/components/com_jshopping/css/graphics/';
hs.outlineType = 'rounded-white';
hs.showCredits = false;
hs.dimmingOpacity = 0.75;
hs.wrapperClassName = 'draggable-header';
hs.align = 'center';
hs.headingEval = 'this.thumb.title';
hs.addSlideshow({
interval: 5000,
repeat: false,
useControls: true,
fixedControls: 'fit',
overlayOptions: {
opacity: 0.50,
position: 'bottom center',
offsetX: 0,
offsetY: -10,
hideOnMouseOut: true
}
});
</script> 

<?php $product = $this->product?>
<?php include(dirname(__FILE__)."/load.js.php");?>


<div class="jshop productfull">
<form name="product" method="post" action="<?php print $this->action?>" enctype="multipart/form-data" autocomplete="off">
   
    <h1><?php print $this->product->name?><?php if ($this->config->show_product_code){?> <span class="jshop_code_prod">(<?php print _JSHOP_EAN?>: <span id="product_code"><?php print $this->product->getEan();?></span>)</span><?php }?></h1>
    <?php print $this->_tmp_product_html_start;?>
    <?php if ($this->config->display_button_print) print printContent();?>
   
    <?php include(dirname(__FILE__)."/ratingandhits.php");?>
       
       
    <table class="jshop" >
    <tr>
        <td class="image_middle">
            <?php print $this->_tmp_product_html_before_image;?>
            <?php if ($product->label_id){?>
                <div class="product_label">
                    <?php if ($product->_label_image){?>
                        <img src="<?php print $product->_label_image?>" alt="<?php print htmlspecialchars($product->_label_name)?>" />
                    <?php }else{?>
                        <span class="label_name"><?php print $product->_label_name;?></span>
                    <?php }?>
                </div>
            <?php }?>
            <?php if (count($this->videos)){?>
                <?php foreach($this->videos as $k=>$video){?>
<?php if ($video->video_code){ ?>
<div style="display:none" class="video_full" id="hide_video_<?php print $k?>"><?php echo $video->video_code?></div>
<?php } else { ?>
<a style="display:none" class="video_full" id="hide_video_<?php print $k?>" href=""></a>
<?php } ?>
                <?php } ?>
            <?php }?>
           
           
            <?php print $this->_tmp_product_html_after_image;?>
           
            <?php if ($this->config->product_show_manufacturer_logo && $this->product->manufacturer_info->manufacturer_logo!=""){?>
            <div class="manufacturer_logo">
                <a href="<?php print SEFLink('index.php?option=com_jshopping&controller=manufacturer&task=view&manufacturer_id='.$this->product->product_manufacturer_id, 2);?>">
                    <img src="<?php print $this->config->image_manufs_live_path."/".$this->product->manufacturer_info->manufacturer_logo?>" alt="<?php print htmlspecialchars($this->product->manufacturer_info->name);?>" title="<?php print htmlspecialchars($this->product->manufacturer_info->name);?>" border="0" />
                </a>
            </div>
            <?php }?>
        </td>
        <td class="jshop_img_description">
            <?php print $this->_tmp_product_html_before_image_thumb;?>
            <span id='list_product_image_thumb'>
            <?php if ( (count($this->images)>1) || (count($this->videos) && count($this->images)) ) {?>
                <?php foreach($this->images as $k=>$image){?>
                    <a class="highslide" onclick="return hs.expand(this)" href="<?php print $this->image_product_path?>/<?php print $image->image_full;?>"><img class="jshop_img_thumb" src="<?php print $this->image_product_path?>/<?php print $image->image_thumb?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->_title)?>"/></a>
                <?php }?>
            <?php }?>
            </span>
            <?php print $this->_tmp_product_html_after_image_thumb;?>
            <?php if (count($this->videos)){?>
                <?php foreach($this->videos as $k=>$video){?>
<?php if ($video->video_code) { ?>
<a href="#" id="video_<?php print $k?>" onclick="showVideoCode(this.id);return false;"><img class="jshop_video_thumb" src="<?php print $this->video_image_preview_path."/"; if ($video->video_preview) print $video->video_preview; else print 'video.gif'?>" alt="video" /></a>
<?php } else { ?>
                    <a href="<?php print $this->video_product_path?>/<?php print $video->video_name?>" id="video_<?php print $k?>" onclick="showVideo(this.id, '<?php print $this->config->video_product_width;?>', '<?php print $this->config->video_product_height;?>'); return false;"><img class="jshop_video_thumb" src="<?php print $this->video_image_preview_path."/"; if ($video->video_preview) print $video->video_preview; else print 'video.gif'?>" alt="video" /></a>
<?php } ?>
                <?php } ?>
            <?php }?>
            <?php print $this->_tmp_product_html_after_video;?>
        </td>
    </tr>
    </table>

       
   
    <?php if ($this->product->product_url!=""){?>
    <div class="prod_url">
        <a target="_blank" href="<?php print $this->product->product_url;?>"><?php print _JSHOP_READ_MORE?></a>
    </div>
    <?php }?>

    <?php if ($this->config->product_show_manufacturer && $this->product->manufacturer_info->name!=""){?>
    <div class="manufacturer_name">
        <?php print _JSHOP_MANUFACTURER?>: <span><?php print $this->product->manufacturer_info->name?></span>
    </div>
    <?php }?>
   
    <?php if (count($this->attributes)){?>
    <div class="jshop_prod_attributes">
        <table class="jshop">
        <?php foreach($this->attributes as $attribut){?>
        <tr>
            <td class="attributes_title">
                <span class="attributes_name"><?php print $attribut->attr_name?>:</span><span class="attributes_description"><?php print $attribut->attr_description;?></span>
            </td>
            <td>
                <span id='block_attr_sel_<?php print $attribut->attr_id?>'>
                <?php print $attribut->selects?>
                </span>
            </td>
        </tr>
        <?php }?>
        </table>
    </div>
    <?php }?>
   
    <?php if (count($this->product->freeattributes)){?>
    <div class="prod_free_attribs">
        <table class="jshop" border="0">
        <?php foreach($this->product->freeattributes as $freeattribut){?>
        <tr>
            <td class="name"><span class="freeattribut_name"><?php print $freeattribut->name;?></span> <?php if ($freeattribut->required){?><span>*</span><?php }?><span class="freeattribut_description"><?php print $freeattribut->description;?></span></td>
            <td class="field"><?php print $freeattribut->input_field;?></td>
        </tr>
        <?php }?>
        </table>
        <?php if ($this->product->freeattribrequire) {?>
        <div class="requiredtext">* <?php print _JSHOP_REQUIRED?></div>
        <?php }?>
    </div>
    <?php }?>
   
    <?php if ($this->product->product_is_add_price){?>
    <div class="price_prod_qty_list_head"><?php print _JSHOP_PRICE_FOR_QTY?></div>
    <table class="price_prod_qty_list">
    <?php foreach($this->product->product_add_prices as $k=>$add_price){?>
        <tr>
            <td class="qty_from" <?php if ($add_price->product_quantity_finish==0){?>colspan="3"<?php } ?>>
                <?php if ($add_price->product_quantity_finish==0) print _JSHOP_FROM?>
                <?php print $add_price->product_quantity_start?> <?php print $this->product->product_add_price_unit?>
            </td>
            <?php if ($add_price->product_quantity_finish > 0){?>
            <td class="qty_line"> - </td>
            <?php } ?>
            <?php if ($add_price->product_quantity_finish > 0){?>
            <td class="qty_to">
                <?php print $add_price->product_quantity_finish?> <?php print $this->product->product_add_price_unit?>
            </td>
            <?php } ?>
            <td class="qty_price">           
                <span id="pricelist_from_<?php print $add_price->product_quantity_start?>"><?php print formatprice($add_price->price)?><?php print $add_price->ext_price?></span> <span class="per_piece">/ <?php print $this->product->product_add_price_unit?></span>
            </td>
        </tr>
    <?php }?>
    </table>
    <?php }?>
   
    <?php if ($this->product->product_old_price > 0){?>
    <div class="old_price">
        <?php print _JSHOP_OLD_PRICE?> <span class="old_price" id="old_price"><?php print formatprice($this->product->product_old_price)?></span>
    </div>
    <?php }?>
   
    <?php if ($this->product->product_price_default > 0 && $this->config->product_list_show_price_default){?>
        <div class="default_price"><?php print _JSHOP_DEFAULT_PRICE?>: <span id="pricedefault"><?php print formatprice($this->product->product_price_default)?></span></div>
    <?php }?>       
   
    <?php if ($this->product->_display_price){?>
    <div class="prod_price">
        <?php print _JSHOP_PRICE?>: <span id="block_price"><?php print formatprice($this->product->getPriceCalculate())?><?php print $this->product->_tmp_var_price_ext;?></span>
    </div>
    <?php }?>
    <?php print $this->product->_tmp_var_bottom_price;?>
   
    <?php if ($this->config->show_tax_in_product && $this->product->product_tax > 0){?>
        <span class="taxinfo"><?php print productTaxInfo($this->product->product_tax);?></span>
    <?php }?>
    <?php if ($this->config->show_plus_shipping_in_product){?>
        <span class="plusshippinginfo"><?php print sprintf(_JSHOP_PLUS_SHIPPING, $this->shippinginfo);?></span>
    <?php }?>
    <?php if ($this->product->delivery_time != ''){?>
        <div class="deliverytime"><?php print _JSHOP_DELIVERY_TIME?>: <?php print $this->product->delivery_time?></div>
    <?php }?>
    <?php if ($this->config->product_show_weight && $this->product->product_weight > 0){?>
        <div class="productweight"><?php print _JSHOP_WEIGHT?>: <span id="block_weight"><?php print formatweight($this->product->getWeight())?></span></div>
    <?php }?>
   
    <?php if ($this->product->product_basic_price_show){?>
        <div class="prod_base_price"><?php print _JSHOP_BASIC_PRICE?>: <span id="block_basic_price"><?php print formatprice($this->product->product_basic_price_calculate)?></span> / <?php print $this->product->product_basic_price_unit_name;?></div>
    <?php }?>
   
    <?php if (is_array($this->product->extra_field)){?>
        <div class="extra_fields">
        <?php $extra_field_group = "";
        foreach($this->product->extra_field as $extra_field){
            if ($extra_field_group!=$extra_field['groupname']){
                $extra_field_group = $extra_field['groupname'];
            ?>
            <div class='extra_fields_group'><?php print $extra_field_group?></div>
            <?php }?>
            <div><span class="extra_fields_name"><?php print $extra_field['name'];?></span><?php if ($extra_field['description']) {?> <span class="extra_fields_description"><?php print $extra_field['description'];?></span><?php } ?>: <span class="extra_fields_value"><?php print $extra_field['value'];?></span></div>
        <?php }?>
        </div>
    <?php }?>
   
    <?php if ($this->product->vendor_info){?>
        <div class="vendorinfo">
            <?php print _JSHOP_VENDOR?>: <?php print $this->product->vendor_info->shop_name?> (<?php print $this->product->vendor_info->l_name." ".$this->product->vendor_info->f_name;?>),
            (
            <?php if ($this->config->product_show_vendor_detail){?><a href="<?php print $this->product->vendor_info->urlinfo?>"><?php print _JSHOP_ABOUT_VENDOR?></a>,<?php }?>
            <a href="<?php print $this->product->vendor_info->urllistproducts?>"><?php print _JSHOP_VIEW_OTHER_VENDOR_PRODUCTS?></a> )
        </div>
    <?php }?>
   
    <?php if (!$this->config->hide_text_product_not_available){ ?>
        <div class = "not_available" id="not_available"><?php print $this->available?></div>
    <?php }?>
   
    <?php if ($this->config->product_show_qty_stock){?>
        <div class="qty_in_stock"><?php print _JSHOP_QTY_IN_STOCK?>: <span id="product_qty"><?php print sprintQtyInStock($this->product->qty_in_stock);?></span></div>
    <?php }?>
   
    <?php print $this->_tmp_product_html_before_buttons;?>
    <?php if (!$this->hide_buy){?>                         
        <table class="prod_buttons">
        <tr>
            <td class="prod_qty">
                <?php print _JSHOP_QUANTITY?>:&nbsp;
            </td>
            <td class="prod_qty_input">
           
                 
           
           
            </td>       
            <td class="buttons">           
                <input type="submit" class="button" value="<?php print _JSHOP_ADD_TO_CART?>" onclick="jQuery('#to').val('cart');" />
                <?php if ($this->enable_wishlist){?>
                    <input type="submit" class="button" value="<?php print _JSHOP_ADD_TO_WISHLIST?>" onclick="jQuery('#to').val('wishlist');" />
                <?php }?>
                <?php print $this->_tmp_product_html_buttons;?>
            </td>
            <td id="jshop_image_loading" style="display:none"></td>
        </tr>
        </table>
    <?php }?>
    <?php print $this->_tmp_product_html_after_buttons;?>
   
   
     <div class="jshop_prod_description">
        <?php print $this->product->description; ?>
    </div>   
   
   
 
   
   
<input type="hidden" name="to" id='to' value="cart" />
<input type="hidden" name="product_id" id="product_id" value="<?php print $this->product->product_id?>" />
<input type="hidden" name="category_id" id="category_id" value="<?php print $this->category_id?>" />
</form>

<?php print $this->_tmp_product_html_before_demofiles; ?>
<div id="list_product_demofiles"><?php include(dirname(__FILE__)."/demofiles.php");?></div>
<?php
if ($this->config->product_show_button_back){?>
<div class="button_back">
<input type="button" class="button" value="<?php print _JSHOP_BACK;?>" onclick="<?php print $this->product->button_back_js_click;?>" />
</div>
<?php }?>
<?php
    print $this->_tmp_product_html_before_related;
    include(dirname(__FILE__)."/related.php");
    print $this->_tmp_product_html_before_review;
    include(dirname(__FILE__)."/review.php");
?>
<?php print $this->_tmp_product_html_end;?>
</div>
*

txi

  • Захожу иногда
  • 55
  • 0 / 0
Re: Пустое место в hightslide
« Ответ #4 : 25.01.2013, 16:11:05 »
miheev24, все равно пустое место но спасибо за помощь
*

miheev24

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: Пустое место в hightslide
« Ответ #5 : 25.01.2013, 16:32:06 »
а попробуй hightslide заново скачать и установить
*

miheev24

  • Осваиваюсь на форуме
  • 10
  • 0 / 0
Re: Пустое место в hightslide
« Ответ #6 : 25.01.2013, 16:37:30 »
*

txi

  • Захожу иногда
  • 55
  • 0 / 0
Re: Пустое место в hightslide
« Ответ #7 : 25.01.2013, 17:39:44 »
попробовал все варианты, ничего не вышло(
*

txi

  • Захожу иногда
  • 55
  • 0 / 0
Re: Пустое место в hightslide
« Ответ #8 : 27.01.2013, 15:48:42 »
У кого-то есть другие варианты?
*

Linfuby

  • Завсегдатай
  • 1242
  • 176 / 0
  • Всё просто...
Re: Пустое место в hightslide
« Ответ #9 : 27.01.2013, 17:53:41 »
Могли бы быть, если бы была понятна проблема.
Кнопки срезаются? Это о чём? О том, что они размером как текст?
Табы были в порядке в последний раз когда смотрел. А сейчас сайт закрыт, так что даже посмотреть нечего...
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

txi

  • Захожу иногда
  • 55
  • 0 / 0
Re: Пустое место в hightslide
« Ответ #10 : 28.01.2013, 19:59:02 »
Могли бы быть, если бы была понятна проблема.
Кнопки срезаются? Это о чём? О том, что они размером как текст?
Табы были в порядке в последний раз когда смотрел. А сейчас сайт закрыт, так что даже посмотреть нечего...
с кнопками разобрался, а вот проблему с отображением картинок через hightslide не нашел
в общем смотрите в чем дело:
здесь находится товар к которому было прикреплено 1 изображение http://podarokvsem.com.ua/mebel/tovar-s-1-izobrazheniem.html
в списке товаров изображение отображается но в самом товаре (Подробнее) нет изображения, такое впечатление что его либо что-то закрывает или оно не подгружается
НО
во ссылка на товар с 2 фотками http://podarokvsem.com.ua/mebel/tovar-s-2-izobrazheniyami.html тут все прекрасно отображается
итог такой если 1 изображение его не видно если 2 то все идеально
до этого изображения были сдвинуты в центр, как видно в 1 моем посте я нашел блок отвечающий за это место и удалил его в итоге картинки сдвинулись влево к краю как и желал, но проблема 1й картинки осталась.
вот код который я вырезал (чтобы изображения сдвинулись влево)
в чем может быть проблема, товарищи? ^-^
Код
<tr>
        <td class="image_middle">
            <?php print $this->_tmp_product_html_before_image;?>
            <?php if ($product->label_id){?>
                <div class="product_label">
                    <?php if ($product->_label_image){?>
                        <img src="<?php print $product->_label_image?>" alt="<?php print htmlspecialchars($product->_label_name)?>" />
                    <?php }else{?>
                        <span class="label_name"><?php print $product->_label_name;?></span>
                    <?php }?>
                </div>
            <?php }?>
            <?php if (count($this->videos)){?>
                <?php foreach($this->videos as $k=>$video){?>
<?php if ($video->video_code){ ?>
<div style="display:none" class="video_full" id="hide_video_<?php print $k?>"><?php echo $video->video_code?></div>
<?php } else { ?>
<a style="display:none" class="video_full" id="hide_video_<?php print $k?>" href=""></a>
<?php } ?>
                <?php } ?>
            <?php }?>
            
            <span id='list_product_image_middle'>
            <?php if(!count($this->images)){?>
                <img id = "main_image" src = "<?php print $this->image_product_path?>/<?php print $this->noimage?>" alt = "<?php print htmlspecialchars($this->product->name)?>" />
            <?php }?>
            <?php foreach($this->images as $k=>$image){?>
            <a class="highslide" onclick="return hs.expand(this)"</a>
            <?php }?>
            </span>
            <?php print $this->_tmp_product_html_after_image;?>
            
            <?php if ($this->config->product_show_manufacturer_logo && $this->product->manufacturer_info->manufacturer_logo!=""){?>
            <div class="manufacturer_logo">
                <a href="<?php print SEFLink('index.php?option=com_jshopping&controller=manufacturer&task=view&manufacturer_id='.$this->product->product_manufacturer_id, 2);?>">
                    <img src="<?php print $this->config->image_manufs_live_path."/".$this->product->manufacturer_info->manufacturer_logo?>" alt="<?php print htmlspecialchars($this->product->manufacturer_info->name);?>" title="<?php print htmlspecialchars($this->product->manufacturer_info->name);?>" border="0" />
                </a>
            </div>
            <?php }?>
        </td>
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться