Новости Joomla

👩‍💻 Joomla включена в программу Google Summer of Code 2026.

👩‍💻 Joomla включена в программу Google Summer of Code 2026.

Google Summer of Code (GSoC) - программа компании Google, которая позволяет участникам программы под руководством опытных наставников писать код для организаций, занимающейся открытым исходным кодом. Joomla принимает участие в этой программе не в первый раз и в 2026 году снова включена в список GSoC. Для программы утверждается список "идей", воплотить которые должны участники под руководством наставников.

Проекты Joomla в рамках программы GSoC 2026.

Проект I: Ajax-бэкенд.
- Действия в административной панели без необходимости обновлять страницу.
- Автоматическое сохранение содержимого во время редактирования.
- Расширенный фильтр - поиск и фильтрация по пользовательским полям.

Проект II: Автоматизация рабочих процессов (workflow + task scheduler).
Joomla имеет функцию процессов и планировщика задач. Теперь эти две функции следует объединить, чтобы пользователь мог настраивать назначенные рабочие процессы таким образом, чтобы переходы выполнялись автоматически, с возможностью точного определения времени. Должна быть возможность создавать циклы или прямые запланированные рабочие процессы. Предполагается, что интерфейс должен учитывать хороший пользовательский опыт, удобство использования и современные стандарты доступности. Ожидается, что будет добавлен интерфейс для управления процессами и их расписанием на страницах категорий и материалов. Так же ожидается, что сторонние компоненты также смогут воспользоваться этим функционалом.

Проект III: Мультикатегории.
В настоящее время Joomla! не позволяет назначать один элемент нескольким категориям. Хотя система тегов часто используется в качестве замены, существует острая потребность в нативной поддержке нескольких категорий, чтобы привести Joomla! в соответствие с другими современными системами управления контентом.

Проект IV: Обучение с подкреплением на основе отзывов переводчиков.
Joomla собирается использовать автоматический перевод документации. В каждом языке есть свои специфические слова, характерные для Joomla. Предполагается обучать языковые модели, используя обратную связь от переводчиков, чтобы постоянно улучшать качество переводов и учитывать специфические языковые особенности Joomla.

Принять участие GSoC 2026
Подробнее о проектах Joomla GSoC 2026
Чат GSoC в Mattermost (международное сообщество Joomla)

Вышли релизы Joomla 6.0.3 и Joomla 5.4.3

Релиз Joomla 6.0.3 и Joomla 5.4.3

Проект Joomla рад сообщить о выпуске Joomla 6.0.3 и Joomla 5.4.3. Это релиз исправлений ошибок и улучшений для серии Joomla 6.0 и Joomla 5.4.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

В процессе работы с Joomla бывает необходимо работать с пользовательским интерфейсом более тонко, чем обычно. Все формы Joomla состоят из стандартных полей, содержанием, стилем отображения, состоянием (включено/выключено, доступно для редактирования или нет и т.д.) можно управлять с помощью плагинов. Да и для нестандартных проектов хорошей практикой является создание одного системного или нескольких плагинов групп "под проект", в которых храниться весь "нестандарт".

В этой статье описаны все триггеры, которые вызываются через Event Dispatcher из administrator/components/com_fields/src/Helper/FieldsHelper.php, с привязкой к жизненному циклу (порядку этапов работы запроса), аргументам, изменяемым данным и дальнейшему распространению по Joomla. Это поможет вам работать с Joomla свободнее и не опасаясь при этом потерять изменения при очередном обновлении движка.

Подходы, описанные в статье, полезны в тех случаях, когда вы работаете с данными в com_fields - механизме создания и редактирования пользовательских полей ядра Joomla и при использовании FieldsHelper. Многие сторонние компоненты не используют эту возможность, поэтому данная статья будет полезна лишь частично.

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

xxx87

  • Захожу иногда
  • 130
  • 4 / 0
  • прошу любить и жаловать
Всем привет! Маюсь несколько дней этим вопросом.
Осваиваю инет-магазин. Установила плагин от нашего, всеми любимого, nevigen - список атрибутов. Добавила атрибуты. И здесь меня ждал подвох... Вывод большого кол-ва атрибутов ( 12 ) таблицей "наградил" карточку товара длинным хвостом.
пытаюсь немного скрасить всю картину путем правки CSS. Перенесла название товара влево над фото. "Хвост" из атрибутов немного поднялся вверх.
Еще хочу перенести описание товара вверх под фотографию товара, что бы хоть как-то скрасить эту пустоту. но мои попытки перенести код description непосредственно под image_middle не приносят плодов и только смещают плагин "список атрибутов" ниже. Можно ли всетаки как-нибудь реализовать перенос описания под фото? У меня что-то идей уже совсем не осталось :((
Ссылка на карточку товара http://akvagrunt.ru/shop/standart
Код файла product_default.php
Код
[spoiler]<?php
/**
 * @version      4.3.1 13.08.2013
 * @author       MAXXmarketing GmbH
 * @package      Jshopping
 * @copyright    Copyright (C) 2010 webdesigner-profi.de. All rights reserved.
 * @license      GNU/GPL
 */
defined('_JEXEC') or die('Restricted access');
$numberlimit = 3;
?>
<?php
$product = $this->product;
?>
<?php include(dirname(__FILE__)."/load.js.php");?>
<div class="zt_jshop">
<form name="product" method="post" action="<?php print $this->action?>" enctype="multipart/form-data" autocomplete="off">

<div class="zt_jshop_information_detail row">
    <div class="zt_jshop_image col-sm-5">
<h1><?php print $this->product->name?><?php if ($this->config->show_product_code){?> <?php }?></h1>
            <?php include(dirname(__FILE__)."/ratingandhits.php");?>
            <?php print $this->_tmp_product_html_start;?>

        <div class="image_middle">
            <?php print $this->_tmp_product_html_before_image;?>
            <?php if ($product->label_id){?>
                <div class="product_label <?php print $product->_label_name;?>"><?php print $product->_label_name;?></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 }?>


            <div 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="lightbox" id="main_image_full_<?php print $image->image_id?>" href="<?php print $this->image_product_path?>/<?php print $image->image_full;?>" <?php if ($k!=0){?>style="display:none"<?php }?>>
                        <img id = "main_image_<?php print $image->image_id?>" src = "<?php print $this->image_product_path?>/<?php print $image->image_name;?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->_title)?>" />
                    </a>
                <?php }?>
            </div>
            <?php print $this->_tmp_product_html_after_image;?>
        </div>
        <div class="jshop_img_description">

            <div class="zt-carousel">
                <div class="jCarouselLite">
                    <ul>
                        <?php print $this->_tmp_product_html_before_image_thumb;?>
                        <?php if ( (count($this->images)>1) || (count($this->videos) && count($this->images)) ) {?>
                            <?php foreach($this->images as $k=>$image){?>
                                <li  style="border: 1px solid #E5E5E5;"><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)?>" onclick="showImage(<?php print $image->image_id?>)" /></li>
                            <?php }?>
                        <?php }?>
                    </ul>
                </div>

                <?php if(count($this->images) > $numberlimit){?>
                    <div class="nav_button">
                        <div class="prev"><i class="fa fa-angle-left"></i></div>
                        <div class="next"><i class="fa fa-angle-right"></i></div>
                    </div>
                <?php }?>
            </div>
            <script type="text/javascript">
                jQuery(document).ready(function($) {
                    <?php if( (count($this->images))){ ?>
                    $(".jCarouselLite").jCarouselLite({
                        btnPrev: ".zt-carousel .prev",
                        btnNext: ".zt-carousel .next",
                        slideWidth: 80,
                        visible: <?php echo $numberlimit;?>
                    });
                    <?php } ?>
                });
            </script>
            <?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;?>
        </div>
    </div>

    <div class="zt_jshop_short_description col-sm-7 col-xs-12">
        <div class="clearfix">
            <?php if ($this->config->display_button_print) print printContent();?>
        </div>
        <div class="zt_price_detail">
            <?php if($this->product->product_old_price > 0 || $this->product->_display_price ): ?>
                <div class="zt_price_detail_inner">
                    <?php if ($this->product->product_old_price > 0){?>
                        <span class="old_price" id="old_price"><?php print formatprice($this->product->product_old_price)?></span>
                    <?php }?>
                    <?php if ($this->product->_display_price){?>
                        <span id="block_price"><?php print formatprice($this->product->getPriceCalculate())?><?php print $this->product->_tmp_var_price_ext;?></span>
                    <?php } ?>
                </div>
            <?php endif;  ?>

            <?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 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->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 if (!$this->config->hide_text_product_not_available && $this->available != null ){ ?>
                <div class = "not_available" id="not_available"><?php print $this->available?></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 }?>

           
        </div>

       
       
        <?php if (count($this->attributes)){?>
            <div class="jshop_prod_attributes">
                <?php foreach($this->attributes as $attribut){?>
                    <div class="attributes">
                        <span class="attributes_title">
                            <span class="attributes_name"><?php print $attribut->attr_name?>:</span><span class="attributes_description"><?php print $attribut->attr_description;?></span>
                        </span>
                        <span class="attributes_description">
                            <span id='block_attr_sel_<?php print $attribut->attr_id?>'>
                            <?php print $attribut->selects?>
                            </span>
                        </span>
                    </div>
                <?php }?>
            </div>
        <?php }?>
        <?php print $this->_tmp_product_html_before_buttons;?>
        <?php if (!$this->hide_buy){?>
            <div class="prod_buttons" >
                <div class="zt_buttons clearfix">
                    <span class="prod_qty">Quantily:
                        <input type="text" name="quantity" id="quantity" onkeyup="reloadPrices();" class="inputbox" value="<?php print $this->default_count_product?>" /><?php print $this->_tmp_qty_unit;?>
                    </span>
                    <?php print $this->_tmp_product_html_buttons;?>
                    <button title="Add to cart" type="submit" class="button_buy buy_detail" onclick="jQuery('#to').val('cart');" >
                        <i class="fa fa-shopping-cart"></i><?php print _JSHOP_ADD_TO_CART?>
                    </button>
                    <button title="Add to wishlist" type="submit" class="button_wishlist" onclick="jQuery('#to').val('wishlist');"><i class="fa fa-heart"></i></button>
                   
                </div>
               
            </div>
        <?php }?>
        <?php print $this->_tmp_product_html_after_buttons;?>

        <div class="short_description">
            <p><?php print $this->product->short_description; ?></p>
        </div>

        <?php if ($this->config->product_show_manufacturer && $this->product->manufacturer_info->name!=""){?>
            <div class="manufacturer_name">
                <span class="bold"><?php print _JSHOP_MANUFACTURER?>:</span> <span><?php print $this->product->manufacturer_info->name?></span>
            </div>
        <?php }?>

        <?php if (count($this->product->freeattributes)){?>
            <div class="prod_free_attribs">
                <table class="jshop">
                    <?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 }?>
    </div>
</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>
<div id="zt_tabs" class="col-sm-5 col-xs-12">

            <ul class="tabs">
                <li class="first"><a href="#tabs-1" title="tab-1" class="active tab"><?php echo _JSHOP_DESCRIPTION ;?></a></li>
                <li><a href="#tabs-2" title="tab-2" class="tab"><?php echo JText::_("JSHOP_REVIEW"); ?></a></li>
            </ul>

            <div id="tab-1" class="content">
                <div class="zt_tab_inner">
                    <?php print $this->product->description; ?>
                    <?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->product->delivery_time != ''){?>
                        <div class="deliverytime"><?php print _JSHOP_DELIVERY_TIME?>: <?php print $this->product->delivery_time?></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 }?>
                </div>
            </div>

            <div id="tab-2" class="content" style="display:none">
                <div class="zt_tab_inner">
                    <?php
                    print $this->_tmp_product_html_before_review;
                    include(dirname(__FILE__)."/review.php");
                    ?>
                </div>
            </div>

           
    </div><!--/zt_tabs-->
<!------------------------------  short_description   - ------------------------------->





<?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");
?>
<?php print $this->_tmp_product_html_end;?>
</div>

<script type="text/javascript">
    jQuery(document).ready(function($) {
        $('a.tab').click(function(){
            $('.active').removeClass('active');
            $(this).addClass('active');
            $('.content').slideUp();
            var content_show = $(this).attr('title');
            $('#'+ content_show).slideDown();
        });
        jQuery('#quantity').keyup(function () {
            this.value = this.value.replace(/[^0-9\.]/g,'');
        });
    });
</script>[/spoiler]
Может быть кто-то поможет с советом как еще сгладить эту всю "красоту" с хвостом из атрибутов. Другие товары с меньшим кол-м атрибутов, но этот основной хотелось бы тоже довести до ума.
*

Cerber

  • Захожу иногда
  • 266
  • 34 / 0
  • Богиня Иштар и ее пес Пи..ц
Здесь не разбирают вопросы индивидуальной верстки
Единственное если Вы не знаете через что выводится плагин то:
Код: php
$this->_tmp_product_html_after_buttons

Описание выводится:
Код: php
$this->$this->product->description

//Это все
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Здесь не разбирают вопросы индивидуальной верстки

Это еще почему?

xxx87, во-первых, картинки атрибутов лучше сделать поменьше
Код: css
.td_attr img {
max-width: 50px;
height: auto;
}

Сейчас компоновку посмотрю
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Попробуйте так... не гарантирую, что нигде не напортачила) Ужасно непривычно без доступа править  ^-^

Спойлер
[свернуть]
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

xxx87

  • Захожу иногда
  • 130
  • 4 / 0
  • прошу любить и жаловать
Попробуйте так... не гарантирую, что нигде не напортачила) Ужасно непривычно без доступа править  ^-^
Аааввв ((( ничего не изменилось :(((( Я уже и сама не знаю что делать - куда только не пробовала этот description запихнуть - не получается :( плакаю  :'( >:(
может таблицей пробовать сделать? воткнуть всякие <tr> <td> :o !
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Э... погодите. Я Вам перенесла под картинку все то, что у Вас не заполнено сейчас. Вы хотите под картинку табы запихать? Тогда так

Спойлер
[свернуть]
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

xxx87

  • Захожу иногда
  • 130
  • 4 / 0
  • прошу любить и жаловать
Э... погодите. Я Вам перенесла под картинку все то, что у Вас не заполнено сейчас. Вы хотите под картинку табы запихать? Тогда так
И тоже табы как на месте стояли так и стоят. ((
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Вы где все это меняете? Я никаких изменений в коде страницы не вижу.
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

xxx87

  • Захожу иногда
  • 130
  • 4 / 0
  • прошу любить и жаловать
Вы где все это меняете? Я никаких изменений в коде страницы не вижу.
вот здесь меняю product_default.php путь:/public_html/components/com_jshopping/templates/default/product/
*

nevigen

  • Moderator
  • 10451
  • 863 / 25
  • http://n*****n.com
/templates/zo2_colias/html/com_jshopping
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
девушка уже забыла, что у нее шаблон переопределен :) видимо необходимо повторить втык :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Дмитрий, не ругайся - я вон забыла, что php на свете существует  ;)
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

xxx87

  • Захожу иногда
  • 130
  • 4 / 0
  • прошу любить и жаловать
девушка уже забыла, что у нее шаблон переопределен :) видимо необходимо повторить втык :)
:) Дмитрий, упс. Спутала пути. Каюсь  :o
Дмитрий, не ругайся - я вон забыла, что php на свете существует  ;)
И тем не менее на сайте после замены кода ваабдже полная абракадабра. :o Это уже наверное не судьба ((((

*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Это я чукча)) счас поправим

строка 5

Код: html4strict
<div class="zt_jshop_image col-sm-5">

меняем на

Код: html4strict
<div class="zt_jshop_image col-sm-12">

Потом лезем а в админку и заполняем все данные, которые будут в карточке товара. Править, не понимая, что именно там будет, мне надоело  ^-^

И  не надо для демо текста использовать неразрывные километровые слова - проставьте пробелы.
« Последнее редактирование: 30.04.2015, 12:27:07 от Taatshi »
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

xxx87

  • Захожу иногда
  • 130
  • 4 / 0
  • прошу любить и жаловать
Это я чукча)) счас поправим

И  не надо для демо текста использовать неразрывные километровые слова - проставьте пробелы.
Ооооооооооо :))))))) сколько счастььььяяяяяя!! Все стало на место :))))))) спасибо большое - Вы просто гений !  :-* :-* :-* :-* :-* :-* :-* :-* :-*
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться