Новости 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 Гость просматривают эту тему.
  • 4 Ответов
  • 1348 Просмотров
*

fireman

  • Захожу иногда
  • 338
  • 10 / 0
  • в цель...
Здравствуйте. Прошу помочь разобраться в одном вопросе... Имеется ИМ https://mpie.ru/
при добавлении товара в корзину верстка корзины рушится, правый сайтбар съезжает вниз и т.д.

На сайте используется плагин One page checkout (далее - ОРС), подозреваю, что именно он и приводи к подобному непотребству. Хорошо видно разницу в верстке корзины без товара (ОРС - не подключается) и с товаром (когда в верстку внедряется ОРС).

В инспекторе хорошо видно, что в варианте с ОРС смещаются закрывающие теги div-ов, но что приводит к подобному смещению? - сломал всю голову.

вот фрагмент кода файла index.php - который формирует корзину:
ОРС подключается в <div class="tmp-content-area">
Код
			<div id="main-content-handler">
<div class="row-fluid">
<?php if( $this->countModules('top-left-1 or top-left-2 or position-7 or bottom-left-1 or bottom-left-2')) : ?>
<div class="span3 left-pane">
<jdoc:include type="modules" name="top-left-1" style="vmdefault" />
<jdoc:include type="modules" name="top-left-2" style="vmdefault" />
<jdoc:include type="modules" name="position-7" style="vmdefault" />
<jdoc:include type="modules" name="bottom-left-1" style="vmdefault" />
<jdoc:include type="modules" name="bottom-left-2" style="vmdefault" />
</div>
<?php endif; ?>
<div class="<?php echo $mcols; ?>">

<?php if( $this->countModules('top-long')) : ?>
<jdoc:include type="modules" name="top-long" style="vmdefault" />
<div class="clear-sep"></div>
<?php endif; ?>
<?php if( $this->countModules('top-a or top-b or top-c or top-d')) : ?>
<div id="top-content-modules">

<div class="row-fluid">
<?php if( $this->countModules('top-a')) : ?><div class="<?php echo $tpaclass; ?>"><jdoc:include type="modules" name="top-a" style="vmdefault" /></div><?php endif; ?>
<?php if( $this->countModules('top-b')) : ?><div class="<?php echo $tpaclass; ?>"><jdoc:include type="modules" name="top-b" style="vmdefault" /></div><?php endif; ?>
<?php if( $this->countModules('top-c')) : ?><div class="<?php echo $tpaclass; ?>"><jdoc:include type="modules" name="top-c" style="vmdefault" /></div><?php endif; ?>
<?php if( $this->countModules('top-d')) : ?><div class="<?php echo $tpaclass; ?>"><jdoc:include type="modules" name="top-d" style="vmdefault" /></div><?php endif; ?>
</div>
</div>
<?php endif; ?>
<div class="tmp-content-area">

<?php if(JFactory::getApplication()->getMessageQueue()) : ?>
<div class="navbar-fixed-top" id="top-com-handler">
<jdoc:include type="message" />
</div>
<?php endif; ?>
<jdoc:include type="component" />
</div>
<?php if( $this->countModules('bottom-a or bottom-b or bottom-c or bottom-d')) : ?>
<div id="bottom-content-modules">
<div class="row-fluid">
<?php if( $this->countModules('bottom-a')) : ?><div class="<?php echo $bmaclass; ?>"><jdoc:include type="modules" name="bottom-a" style="vmdefault" /></div><?php endif; ?>
<?php if( $this->countModules('bottom-b')) : ?><div class="<?php echo $bmaclass; ?>"><jdoc:include type="modules" name="bottom-b" style="vmdefault" /></div><?php endif; ?>
<?php if( $this->countModules('bottom-c')) : ?><div class="<?php echo $bmaclass; ?>"><jdoc:include type="modules" name="bottom-c" style="vmdefault" /></div><?php endif; ?>
<?php if( $this->countModules('bottom-d')) : ?><div class="<?php echo $bmaclass; ?>"><jdoc:include type="modules" name="bottom-d" style="vmdefault" /></div><?php endif; ?>
</div>
</div>
<?php endif; ?>
</div>
<?php if( $this->countModules('top-right-1 or top-right-2 or position-6 or bottom-right-1 or bottom-right-2')) : ?>
<div class="span3 right-panel">
<jdoc:include type="modules" name="top-right-1" style="vmdefault" />
<jdoc:include type="modules" name="top-right-2" style="vmdefault" />
<jdoc:include type="modules" name="position-6" style="vmdefault" />
<jdoc:include type="modules" name="bottom-right-1" style="vmdefault" />
<jdoc:include type="modules" name="bottom-right-2" style="vmdefault" />
</div>
<?php endif; ?>
</div>
</div>
Вот файл который формирует ОРС:
Код
<?php
/** ------------------------------------------------------------------------
One Page Checkout
author CMSMart Team
copyright: Copyright (c) 2012 http://cmsmart.net. All Rights Reserved.
@license - http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
Websites: http://cmsmart.net
Email: team@cmsmart.net
Technical Support: Forum - http://cmsmart.net/forum
-------------------------------------------------------------------------*/
defined('_JEXEC') or die('Restricted access');
$lang = JFactory::getLanguage();
VmConfig::loadJLang('com_virtuemart_shoppers',TRUE);
$lang->load('plg_system_onestepcheckout',JPATH_SITE.'/plugins/system/onestepcheckout'); // added in ver 3.0.x
$vmlang = JFactory::getLanguage();
$lang->load('com_virtuemart', JPATH_SITE.'/components/com_virtuemart'); 
require_once('plugins/system/onestepcheckout/helpers/translate.php');
//get plugin params
$data_opc = file_get_contents(JPATH_ADMINISTRATOR.'/components/com_vmmanager/helpers/opc.json');
$data_opc = (array) json_decode($data_opc);
$spam = $this->checkSpam();

$shopfront_link = JRoute::_('index.php?option=com_virtuemart&view=virtuemart');

if(count($spam) >= 8 && $data_opc['blockspam']){
?>
<div class="cart-view" id="cart-view-3cols" data-layout="">
    <div class="cart-title">
        <h1><?php echo JText::_('OPC_SYSTEM_SPAM_MSG');?></h1>
    </div>
</div>
<?php
}else{
?>
<?php if(!$this->cart->products):?>

<div class="cart-view" id="cart-view-3cols" data-layout="">
<div class="cart-title">
    <h1><?php echo JText::_('SYSTEM_ONESTEPCHECKOUT_CART_TITLE_EMPTY');?></h1>
</div>
<div class="cart-empty">
        <?php echo JText::sprintf('SYSTEM_ONESTEPCHECKOUT_CART_TITLE_EMPTY_DESC',$shopfront_link);?>
    </div>
</div>
<?php else:?>
<?php
JHtml::_('behavior.formvalidation');
$layouts = json_decode($data_opc['opc-design']);
//Function
function compare_layout($a, $b){
    $retval = strnatcmp($a->y, $b->y);
    if(!$retval) $retval = strnatcmp($a->x, $b->x);
    return $retval;
}
usort($layouts, 'compare_layout');
vmJsApi::jPrice();
JHtml::_('jquery.framework');

?>
<?php if(!empty($this->cart->cartProductsData)) : ?>
<script id="keepAliveTime_js" type="text/javascript">
//<![CDATA[
    var sessMin = 30;
    var vmAliveUrl = "index.php?option=com_virtuemart&view=virtuemart&task=keepalive";
    var maxlps = "4";
    var minlps = "1";
//]]>
</script>
<?php endif; ?>

<!--Render Layout-->
<div id="header-OPC">
    <h1><?php echo JText::_('OPC_SHOPPING_CART')?></h1>
    <p><a href="<?php echo $shopfront_link ?>"><span><?php echo JText::_('OPC_CONTINUE_SHOPPING')?></span><i class="opc-iconright-circled"></i></a></p>
</div>
<div class="text-opc"><p><?php echo JText::_('SYSTEM_ONESTEPCHECKOUT_TEXT_CART')?></p></div>
<div id="opc-wapper" class="loader render_">
    <?php foreach($layouts as $key=>$layout): ?>
        <div class="opc-module" id="<?php echo'opc-'.$layout->element;  ?>"
            data-x="<?php echo $layout->x ?>"
            data-y="<?php echo $layout->y ?>"
            data-width="<?php echo $layout->width ?>">
            <div class="opc-module-content">
                <?php echo $this->loadTemplate(strtolower($layout->element)); ?>
            </div>
        </div>
    <?php endforeach; ?>
</div>
<?php
endif;
}
*

lexxbry

  • Живу я здесь
  • 2387
  • 68 / 8
Ну так все правильно
ОРС вам и надо верстать под свой шаблон
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
ОРС вам и надо верстать под свой шаблон
Лучше сначала попробовать варианты из предлагаемых самим ОРС с коробки .
*

lexxbry

  • Живу я здесь
  • 2387
  • 68 / 8
Лучше сначала попробовать варианты из предлагаемых самим ОРС с коробки .
Кстати да. Там стилей кучка небольшая
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

fireman

  • Захожу иногда
  • 338
  • 10 / 0
  • в цель...
Там всех настроек самого компонента, только то что на фото:


Плюс, отдельно для каждого модуля цветовые настройки и настройки шрифтов.

По сути, ОРС уже сверстан и его верстка подключается в определенное место index.php. Осталось найти, что дает ошибку. Я просмотрел файл ОРС, лишних, либо недостающих div-ов не обнаружил, может что-то в PHP части не так?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

При сохранении товара слетает категория

Автор klara7

Ответов: 7
Просмотров: 3178
Последний ответ 23.12.2021, 08:45:40
от klara7
Сообщения в компоненте One Page Checkout

Автор flashlight

Ответов: 1
Просмотров: 1445
Последний ответ 17.06.2019, 00:52:07
от flashlight
One Page Checkout не сохраняет в профиль пользователя измененные данные

Автор hels

Ответов: 1
Просмотров: 944
Последний ответ 01.06.2018, 11:56:19
от hels
Слетает карточка товара при выборе мультиварианта

Автор ЖенDos

Ответов: 1
Просмотров: 1147
Последний ответ 13.04.2018, 23:48:51
от Mikon
Ошибка корзины VirtueMart

Автор poltora1

Ответов: 1
Просмотров: 1026
Последний ответ 10.12.2017, 11:40:13
от draff