Новости 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

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

awd777

  • Новичок
  • 7
  • 0 / 0
День добрый! Ситуация такая:
Joomla 1.5. Установлен плагин J2Top (кнопка наверх).
Затем нужен был модуль рандомно выводящий картинки с ссылками на статьи.

Воспользовался следующим кодом, вставленным в обычный mod_php:
Код
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>    
<script type="text/javascript" src="http://paint.3dn.ru/Files/web_design/InnerFade/jquery.innerfade.js"></script>

<script type="text/javascript">
       $(document).ready(
       function(){
        $('#news').innerfade({
         animationtype: 'slide',
         speed: 750,
         timeout: 2000,
         type: 'random',
         containerheight: '1em'
        });
           
        $('ul#portfolio').innerfade({
         speed: 1000,
         timeout: 5000,
         type: 'sequence',
         containerheight: '220px'
        });
           
        $('.fade').innerfade({
         speed: 1000,
         timeout: 6000,
         type: 'random_start',
         containerheight: '1.5em'
        });
           

      });
      </script>
<ul id="portfolio">       
     <li><a href="http://paint.3dn.ru/forum/4-441-1"><img src="1.jpg" alt="Ржавый текст" /></a></li>
     <li><a href="http://paint.3dn.ru/forum/4-290-1"><img src="2.jpg" alt="Фотография в стиле Pop Art" /></a></li>
     <li><a href="http://paint.3dn.ru/forum/4-257-1"><img src="3.jpg" alt="Эффект слоистого светящегося текста" /></a></li>       
</ul>

В итоге, на страницах где включен этот модуль не работает кнопка. Где модуля нет - работает. Я так понимаю - какой конфликт между ними. Не подскажете как исправить?


P.S. И еще второй небольшой вопрос - я сделал этот модуль, картинки появляются, ссылки работают, но - изображения выходят за рамки модуля. Т.е. по ширине я подогнал, а по высоте - наезжает на нижний. Пришлось его вставить вниз в колонке. Как это можно исправить?
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Re: jQuery - проблема с модулем и плагином
« Ответ #1 : 11.12.2010, 19:30:07 »
Вы очень удивитесь, НО можно убрать J2Top, заменив его якорем. Почитайте о ссылках на http://htmlbook.ru/.
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

awd777

  • Новичок
  • 7
  • 0 / 0
Re: jQuery - проблема с модулем и плагином
« Ответ #2 : 11.12.2010, 21:12:37 »
Не удивлюсь. На ресурсе более тысячи страниц контента. В каждую добавлять якорь?
Да и не смотрибельно это. Хотелось бы разобраться как это исправить, а не уйти от проблемы. Оба элемента используют jQuery и проблема, думаю в этом. Тем более, что даже если поставить  2 массива с меняющимеся таким образом изображениями - работать второй не будет.

Кстати, пробовал ставить модуль кнопки без использования jQuery - ScrollToTop, кажется. Там есть выбор - простой якорь или использовать jQuery. Но в простом режиме модуль работал почему то только в родительских элементах главного меню, хотя в настройках - включен для всех. Аналогов больше не нашёл.
Остальные кнопки работают аналогично J2Top.
« Последнее редактирование: 11.12.2010, 21:16:42 от awd777 »
*

Olg

  • Завсегдатай
  • 1183
  • 91 / 2
Re: jQuery - проблема с модулем и плагином
« Ответ #3 : 11.12.2010, 21:15:43 »
Не надо в каждую страницу. Надо 1 раз в шаблон.
*

awd777

  • Новичок
  • 7
  • 0 / 0
Re: jQuery - проблема с модулем и плагином
« Ответ #4 : 11.12.2010, 21:21:49 »
+_+
Причём тут анкоры. А если мне понадобится еще 1 модуль сделать с jQuery или еще какой то плагин? 1 раз только можно использовать? Какой то последний патрон получается..
Суть не в том, как это организовать, а как решить проблему совместимости.
*

awd777

  • Новичок
  • 7
  • 0 / 0
Re: jQuery - проблема с модулем и плагином
« Ответ #5 : 11.12.2010, 21:46:48 »
Кстати, говоря, мб по какой то причине, похожей на эту у меня не получилось вставить 2 кнопки статистики, которые выводились тоже с помощью яваскриптов - openstat и liveinternet.
*

NightGuard

  • Живу я здесь
  • 2927
  • 378 / 7
  • вжжж-вжжж
Re: jQuery - проблема с модулем и плагином
« Ответ #6 : 11.12.2010, 22:12:10 »
Правильно указали - один раз в шаблоне ставите и всё, зачем грузить лишние скрипты, если решается всё проще и быстрее? А вообще посмотрите noConflict() в Google. Но кнопку меняйте на обычный якорь.
Идеология сверхпотребления более опасна для человечества, чем идеология гитлеровского тоталитаризма
*

awd777

  • Новичок
  • 7
  • 0 / 0
Re: jQuery - проблема с модулем и плагином
« Ответ #7 : 15.12.2010, 17:41:30 »
Всё уже перепробовал, но заказчик просит эту плавающую кнопку.
К тому же появилась еще проблема с отображением feedback модуля на ajax(кнопка слева сворачивается/разворачивается для отправки сообщений фирме) - постоянно развернут.

По поводу кнопки FireBug выдает:
$("gototop").getStyle is not a function
[Прерывать на этой ошибке] if ($('gototop').getStyle('opacity','1') == 1){Change.start(0);Hide();}
$("gototop").getStyle is not a function
[Прерывать на этой ошибке] if ($('gototop').getStyle('opacity','0') == 0){Show();Change.start(1);}
По поводу обратной связи ошибок не выдает вообще.

С noconflict возился 3 дня, результата нет. (
*

yuri-it

  • Давно я тут
  • 994
  • 44 / 3
  • Быстрый хостинг https://jehost.ru
Re: jQuery - проблема с модулем и плагином
« Ответ #8 : 15.12.2010, 17:52:34 »
Ну вообще сделать вызов 1 Jquery и не будет конфликтов, у меня 3-4 расширения юзают Jquery, но грузится 1 и никаких конфликтов.
По-настоящему быстрый хостинг для Joomla : https://jehost.ru
Отзывы: http://joomlaforum.ru/index.php/topic,109288.0.html
Отзывы по хостингу http://hosting101.ru/jehost.ru
*

awd777

  • Новичок
  • 7
  • 0 / 0
Re: jQuery - проблема с модулем и плагином
« Ответ #9 : 15.12.2010, 18:11:46 »
Забыл написать...
В скриптах этого J2Top я так и не нашёл, где бы он вызывал jQuery, наверное всё-таки не в ней дело..
А ошибка возникает при выполнении этого скрипта в последних строках:
Код
  <script type="text/javascript">if( MooTools.version >= '1.2' ) { 
window.addEvent('domready',function() {
new SmoothScroll({ duration: 250 }, window);
var gototop = $('gototop');
gototop.setStyle('opacity','0').setStyle('display','block');
});
window.addEvent('scroll',function(e) {
var gototop = $('gototop');
if(Browser.Engine.trident4) {
gototop.setStyles({
'position': 'absolute',
'bottom': window.getPosition().y + 10,
'width': 100
});
}
gototop.fade((window.getScroll().y > 200)? 'in' : 'out')
});
} else {
window.addEvent('domready',function() {
$('gototop').setStyle('opacity','0');
new SmoothScroll();
var Change = new Fx.Style('gototop', 'opacity', {duration:250});
var scroll = window.getScrollTop();
if (scroll > 200){
if ($('gototop').getStyle('opacity','0') == 0){Change.start(1);$('gototop').setStyle('display','');}
}
});
window.addEvent('scroll',function(e) {
var scroll = window.getScrollTop();
var Change = new Fx.Style('gototop', 'opacity', {duration:250});
function Show(){ $('gototop').setStyle('display','');}
function Hide(){ setTimeout("$('gototop').setStyle('display','none')",250);}
if (scroll > 200){
if ($('gototop').getStyle('opacity','0') == 0){Show();Change.start(1);}
} else {
if ($('gototop').getStyle('opacity','1') == 1){Change.start(0);Hide();}
}
});
}
</script>

Если бы не этот feedback, то еще можно было бы ставить якорную ссылку обычную. Но теперь 2 vs 1 и в будущем наверняка проблемы будут.
Или другой вопрос - у кого-нибудь мб есть нормальный модуль динамической смены "кликабельных" изображений?... Буду очень признателен.


Upd. Собственно в приведённом ниже скрипте вывода картинок я добавлял в начало следующую строку:
$jqn=jQuery.noConflict();
и после заменял все $ на $jqn.

Код
(function($) {

    $.fn.innerfade = function(options) {
        return this.each(function() {   
            $.innerfade(this, options);
        });
    };

    $.innerfade = function(container, options) {
        var settings = {
        'animationtype':    'fade',
            'speed':            'normal',
            'type':             'sequence',
            'timeout':          2000,
            'containerheight':  'auto',
            'runningclass':     'innerfade',
            'children':         null
        };
        if (options)
            $.extend(settings, options);
        if (settings.children === null)
            var elements = $(container).children();
        else
            var elements = $(container).children(settings.children);
        if (elements.length > 1) {
            $(container).css('position', 'relative').css('height', settings.containerheight).addClass(settings.runningclass);
            for (var i = 0; i < elements.length; i++) {
                $(elements[i]).css('z-index', String(elements.length-i)).css('position', 'absolute').hide();
            };
            if (settings.type == "sequence") {
                setTimeout(function() {
                    $.innerfade.next(elements, settings, 1, 0);
                }, settings.timeout);
                $(elements[0]).show();
            } else if (settings.type == "random") {
            var last = Math.floor ( Math.random () * ( elements.length ) );
                setTimeout(function() {
                    do {
current = Math.floor ( Math.random ( ) * ( elements.length ) );
} while (last == current );             
$.innerfade.next(elements, settings, current, last);
                }, settings.timeout);
                $(elements[last]).show();
} else if ( settings.type == 'random_start' ) {
settings.type = 'sequence';
var current = Math.floor ( Math.random () * ( elements.length ) );
setTimeout(function(){
$.innerfade.next(elements, settings, (current + 1) %  elements.length, current);
}, settings.timeout);
$(elements[current]).show();
} else {
alert('Innerfade-Type must either be \'sequence\', \'random\' or \'random_start\'');
}
}
    };

    $.innerfade.next = function(elements, settings, current, last) {
        if (settings.animationtype == 'slide') {
            $(elements[last]).slideUp(settings.speed);
            $(elements[current]).slideDown(settings.speed);
        } else if (settings.animationtype == 'fade') {
            $(elements[last]).fadeOut(settings.speed);
            $(elements[current]).fadeIn(settings.speed, function() {
removeFilter($(this)[0]);
});
        } else
            alert('Innerfade-animationtype must either be \'slide\' or \'fade\'');
        if (settings.type == "sequence") {
            if ((current + 1) < elements.length) {
                current = current + 1;
                last = current - 1;
            } else {
                current = 0;
                last = elements.length - 1;
            }
        } else if (settings.type == "random") {
            last = current;
            while (current == last)
                current = Math.floor(Math.random() * elements.length);
        } else
            alert('Innerfade-Type must either be \'sequence\', \'random\' or \'random_start\'');
        setTimeout((function() {
            $.innerfade.next(elements, settings, current, last);
        }), settings.timeout);
    };

})(jQuery);

// **** remove Opacity-Filter in ie ****
function removeFilter(element) {
if(element.style.removeAttribute){
element.style.removeAttribute('filter');
}
}
« Последнее редактирование: 15.12.2010, 18:34:18 от awd777 »
*

awd777

  • Новичок
  • 7
  • 0 / 0
Re: jQuery - проблема с модулем и плагином
« Ответ #10 : 15.12.2010, 23:44:04 »
Решено.. можно закрыть.
*

bodi_90

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Re: jQuery - проблема с модулем и плагином
« Ответ #11 : 06.01.2011, 10:18:57 »
Так как решил проблему с feedback?
А то модуль не желает работать после установки JR-irmenu 1.0 вот эта прога
Обратная связь постоянно в открытом состоянии находится. Как только отключаю jr-menu. Работает.
Как решить проблему?
« Последнее редактирование: 09.01.2011, 18:17:54 от bodi_90 »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблема с Akeeba Backup

Автор Lemonez

Ответов: 6
Просмотров: 3329
Последний ответ 29.03.2025, 13:06:45
от sivers
Проблема Slideshow

Автор annetkas

Ответов: 14
Просмотров: 1927
Последний ответ 06.04.2022, 16:34:53
от sivers
Проблема с отображением фона в сафари

Автор Leo1986

Ответов: 1
Просмотров: 1168
Последний ответ 13.02.2022, 12:53:48
от Leo1986
SP Page Builder Pro проблема с плагином обратной связи

Автор abisa

Ответов: 3
Просмотров: 1504
Последний ответ 01.12.2020, 10:24:11
от AlexB
Проблема с плагином интеграции SP Page Builder Pro

Автор zeus07

Ответов: 12
Просмотров: 1482
Последний ответ 23.11.2020, 00:24:53
от zeus07