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

waw555

  • Захожу иногда
  • 118
  • 2 / 0
Адаптация шаблона
« : 10.03.2011, 09:50:57 »
В шаблоне для версии 1.5 модули выводятся таким способом
Код
<?php echo loadModule('logo2', 'clean', null, null, false) ; ?>
такой вывод я могу заменить на
<jdoc:include type="modules" name="logo2" class="clean"/>
но при этом не передаются все div, как правильно изменить?

Вот функция, я так понимаю в нее надо вставить jdoc, только как ни пытался, не вышло.
Код
if(!function_exists('loadModule'))
{
function loadModule($moduleName, $chrome = null, $class = null, $classCallback = null, $inner = true, $innerClass = 'modules', $modulesCSS = null, $moduleCSS = null, $raw = false)
{   
$magic =& get_instance();   
    if(!module($moduleName)) return;
$modules = magicModHelper::getModules($moduleName);

$modulesCSS = "style=\"$modulesCSS\"";

    if($raw == false) echo "<div id=\"$moduleName\" class=\"$class\" $modulesCSS >";
if(!$inner == false) echo "<div class=\"$innerClass\">"  ;
if(!$chrome == null) $chrome = 'chrome_' . $chrome;   

if($magic->admin->getCoreConfig('moduleTools') == 'true' AND isAdmin()) 
{
echo '<div class="mod-details">';   
ob_start();
?>
<div class="mod-details-position">[<?php echo $moduleName; ?>]</div> 
<?php
echo ob_get_clean();
}  
 
foreach($modules as $module)   
{   
jimport('joomla.html.parameter');
$params = new JParameter($module->params); 
$moduleClass = $params->get('moduleclass_sfx');

if(!$classCallback == null)
{   $previousID = $module->id - 1;
$currentID = $module->id;     
$nextID = $module->id + 1;     
$classCallbackArgs = array($currentID, $previousID, $nextID);
    $moduleClass .= ' ' . call_user_func_array($classCallback, $classCallbackArgs);


if($module->content == null) 
{
$module->content = magicModHelper::renderModule($module);


$moduleClass = ' ' . $moduleClass;   
                   
$callBackCheck = strrpos($moduleClass, "cfunc_");     
if(!$callBackCheck == null)
{   
$chromeCallBackFunc = explode("cfunc_", $moduleClass);   
$chromeCallBackFunc = explode(" ", $chromeCallBackFunc['1']);
$moduleClass = str_replace('cfunc_', ' ', $moduleClass); 
}

else
{
$chromeCallBackFunc = null;
}     

$chromeArgs = array($module, $params, $moduleClass, $moduleCSS);   

if(!$chromeCallBackFunc == null)
{   
$classFunc = 'chrome_' . $chromeCallBackFunc['0'];   
   
    if(function_exists($classFunc))
{   
if($magic->admin->getCoreConfig('moduleTools') == 'true' and isAdmin())
{
echo $magic->joomla->moduleDetails($classFunc, $module, $params, $moduleClass, $moduleCSS);   
}
echo call_user_func_array($classFunc, $chromeArgs);   
}
else

  if($magic->admin->getCoreConfig('moduleTools') == 'true' and isAdmin())
{
echo $magic->joomla->moduleDetails($chrome, $module, $params, $moduleClass, $moduleCSS);   
}     
    echo $magic->joomla->moduleDefaultRender($module, $params, $moduleClass, $moduleCSS);
}
}

else
{   
if(!$chrome == null)

if($magic->admin->getCoreConfig('moduleTools') == 'true' and isAdmin())
{
echo $magic->joomla->moduleDetails($chrome, $module, $params, $moduleClass, $moduleCSS);   
}     
    echo call_user_func_array($chrome, $chromeArgs);
}   

else
{   
if($magic->admin->getCoreConfig('moduleTools') == 'true' and isAdmin())
{
echo $magic->joomla->moduleDetails($chrome, $module, $params, $moduleClass, $moduleCSS);   
}
echo $magic->joomla->moduleDefaultRender($module, $params, $moduleClass, $moduleCSS);   
}
}

}   

    if($raw == false) echo "</div>";
if(!$inner == false)  echo "</div>"; 
if($magic->admin->getCoreConfig('moduleTools') == 'true' and isAdmin()) 
{
echo '</div>'; 
}   

}


Прошу помощи, с уважением, Алексей.
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: Адаптация шаблона
« Ответ #1 : 10.03.2011, 10:13:28 »
Ну тут явно свои стили модуля, которые по идее находятся в файле вашшаблон/html/modules.php. По идее этот файл надо перетащить в шаблон для 1.6, и потом вот так выводить:

Код
<jdoc:include type="modules" name="logo2" style="clean"/>
*

waw555

  • Захожу иногда
  • 118
  • 2 / 0
Re: Адаптация шаблона
« Ответ #2 : 10.03.2011, 14:53:36 »
Я думал может как то можно в функцию в писать jdoc, типа
echo <jdoc:include type="$moduleName" name="$chrome" style="$class"/>, но что то у меня не вышло.
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: Адаптация шаблона
« Ответ #3 : 10.03.2011, 15:17:12 »
Ну если Вы хотите так, то тогда:
Код
<jdoc:include type="<?php echo $moduleName; ?>" name="<?php echo $chrome; ?>" style="<?php echo $class; ?>" />

Но непонятно, зачем так делать.
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: Адаптация шаблона
« Ответ #4 : 10.03.2011, 15:37:46 »
echo <jdoc:include type="$moduleName" name="$chrome" style="$class"/>, но что то у меня не вышло.
а с чего оно должно выйти?
type - указывается тип для рендеринга, в данном случае это моудли (modules)
name - указывается позиция модулей
style - стиль, стандартный или из modules.php

а в этой строке написана полная охенея.
*

waw555

  • Захожу иногда
  • 118
  • 2 / 0
Re: Адаптация шаблона
« Ответ #5 : 10.03.2011, 15:40:25 »
Ну вот типо того. Смотрите как получается
в body.php, файл отвечающий за вывод главной страницы, все модули выводятся таким образом
Код
<?php echo loadModule('logo2', 'clean', null, null, false) ; ?>
, в моем понятии идет обвязка стилями и выводится сам модуль. Необходимо, чтобы обвязка стилем оставалась и соответственно выводился сам модуль, который в данный момент не выводится. Есть еще один момент, не понимаю его особенности, при ?tp=1 показаны позиции модулей, и все вроде ничего, теоретически - если модули отображаются, то должны и в обычном режиме отображаться, а не хотят ведь.

И еще 1 нюанс почему мне нужно так сделать, так это то, что там есть такие позиции как user1, user2, user3 и т.д., которые имеют свою логику отображение, которая и прописывается в этом loadModule, точнее там функция loadModuleSet, но я бы на примере этой функции попробовал бы и там исправить.
*

waw555

  • Захожу иногда
  • 118
  • 2 / 0
Re: Адаптация шаблона
« Ответ #6 : 10.03.2011, 15:47:34 »
а с чего оно должно выйти?
type - указывается тип для рендеринга, в данном случае это моудли (modules)
name - указывается позиция модулей
style - стиль, стандартный или из modules.php

а в этой строке написана полная охенея.

Я согласен, что тут неправильно, пытался делать правильно и выводить как надо, тут на скорую руку написал, поэтому так получилось.
Вопрос остается актуальным. Я самоучка в php, HTML, CSS и т.д., много чего читал и не мало знаю, но без правильной теории все равно не могу понять часть вещей, хотя они порой элементарны. И достойного учебника по Joomla если честно не нашел. А в учебниках по php как мне повелось встречать расписано про одни массивы, а что такое $this или когда надо и не надо ставить $ или # нифига не написано.
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: Адаптация шаблона
« Ответ #7 : 10.03.2011, 15:52:56 »
а что такое $this или когда надо и не надо ставить $ или # нифига не написано.
Если в учебниках не написано когда нужно и не нужно ставить $, то я инопланетянин.
По поводу $this можно почитать в ОПП для PHP.
*

waw555

  • Захожу иногда
  • 118
  • 2 / 0
Re: Адаптация шаблона
« Ответ #8 : 10.03.2011, 16:20:05 »
Вот один из примеров в котором я немного запутался
Код
			$params = new JParameter($module->params);  
$moduleClass = $params->get('moduleclass_sfx');
Где то пишут что нужно добавлять jimport('joomla.html.parameter');, а просмотрев несколько шаблонов, заметил, что не везде добавляют, смысл не понял.
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: Адаптация шаблона
« Ответ #9 : 10.03.2011, 16:29:54 »
jimport в Joomla это аналог инклуда в PHP (require_once), просто в нем используются директории относительно библиотек Joomla (папка libraries)
*

waw555

  • Захожу иногда
  • 118
  • 2 / 0
Re: Адаптация шаблона
« Ответ #10 : 10.03.2011, 16:34:16 »
Код
if(!function_exists('loadModule'))
Тут я так понимаю идет проверка на наличие функции loadModule в коде, тогда не понятно для чего стоит !, ведь ! это логическое НЕ, получается Если не найдена функция loadModule, то выполняется код.

Тут все понятно
Код
function loadModule($moduleName, $chrome = null, $class = null, $classCallback = null, $inner = true, $innerClass = 'modules', $modulesCSS = null, $moduleCSS = null, $raw = false)
загружаются переменные

Вот по параметру
Код
$magic =& get_instance(); 
(get_instanse();) в интернете вообще ничего понятного не нашел, я так понимаю это из Joomla. Может быть есть файлы include в которых описаны все переменные и их значения.
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: Адаптация шаблона
« Ответ #11 : 10.03.2011, 16:36:29 »
waw555 - зачем начинать изучение PHP с адаптации шаблона? Ещё и шаблон выбрали ну просто жестокий - понаворотили ерунды всякой... Всегда поражался, сколько же ненужной "гадости" можно засунуть в шаблон!
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: Адаптация шаблона
« Ответ #12 : 10.03.2011, 16:40:04 »
я не знаю зачем эту функцию было писать, весь шаблон и так рендерится c помощью Joomla.
шаблон это класс JDocumentHTML, который является расширение класса JDocument отсюда и пляшите.
*

waw555

  • Захожу иногда
  • 118
  • 2 / 0
Re: Адаптация шаблона
« Ответ #13 : 10.03.2011, 16:45:53 »
waw555 - зачем начинать изучение PHP с адаптации шаблона? Ещё и шаблон выбрали ну просто жестокий - понаворотили ерунды всякой... Всегда поражался, сколько же ненужной "гадости" можно засунуть в шаблон!
Дело в том, что я этот шаблон использовал на Joomla 1.5, и он и вправду очень тяжелый, но я его уже переделал для 1.6 без всего, только index.php, CSS и картинки фона. Но отображаться он стал неправильно, точнее главная страница как положено, а все остальные как попало.

На счет изучения - затрудняюсь ответить, не нашел более полезного чем практика.
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: Адаптация шаблона
« Ответ #14 : 10.03.2011, 16:50:26 »
но я его уже переделал для 1.6 без всего, только index.php, CSS и картинки фона. Но отображаться он стал неправильно, точнее главная страница как положено, а все остальные как попало.

На счет изучения - затрудняюсь ответить, не нашел более полезного чем практика.
Возьмите дефолтный шаблон и посомтрите, как там все сделано. Все эти извраты лишние в шаблоне...

Цитировать
не нашел более полезного чем практика.
Здесь конечно соглашусь, но точно не на шаблоне...
*

waw555

  • Захожу иногда
  • 118
  • 2 / 0
Re: Адаптация шаблона
« Ответ #15 : 10.03.2011, 20:32:05 »
bzzik: Я тут по форуму по шарился, ты практически как и я начинал, и задавал похожие вопросы, например про &, нужен или не нужен )))

Вот возник еще вопрос, в шаблоне на главной компонент не выводится, только модули, а перейдя по любой ссылке в центре выводится компонент, не важно есть модули или нет. Как реализовать?

Вот код отвечающий за вывод компонента.
Код
if(!function_exists('component'))
{
function component()
{   
$magic =& get_instance();

ob_start();
?>
<div id="component-<?php echo $magic->joomla->currentComponent;?>">
<jdoc:include type="component" />
</div>   
<?php
    return ob_get_clean();
}   
}
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: Адаптация шаблона
« Ответ #16 : 10.03.2011, 21:00:33 »
вот код в шаблоне, который выводит тело компонента
Цитировать
<jdoc:include type="component" />
и не надо городить непонятно чего, если тем более не знаете что делаете.
Читайте доки по созданию шаблона и не изобретайте велосипед.
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Re: Адаптация шаблона
« Ответ #17 : 11.03.2011, 10:28:09 »
bzzik: Я тут по форуму по шарился, ты практически как и я начинал, и задавал похожие вопросы, например про &, нужен или не нужен )))
Ну все - подловил...  >:( Я кстати кроме форума, ещё и литературу покупал. Если хотите, то посоветую хорошие книжки.

Но мое мнение остается тем же - начали изучение не с того материала... SmokerMan Вам тоже мягко намекает на это ;)
*

waw555

  • Захожу иногда
  • 118
  • 2 / 0
Re: Адаптация шаблона
« Ответ #18 : 14.03.2011, 13:20:22 »
Цитировать
Ну тут явно свои стили модуля, которые по идее находятся в файле вашшаблон/html/modules.php. По идее этот файл надо перетащить в шаблон для 1.6, и потом вот так выводить:

Вот теперь разобрался, спасибо!
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
*

free_lancer

  • Захожу иногда
  • 114
  • 1 / 0
  • скоро, скоро!..
Re: Адаптация шаблона
« Ответ #20 : 14.03.2011, 20:58:01 »
jimport в Joomla это аналог инклуда в PHP (require_once), просто в нем используются директории относительно библиотек Joomla (папка libraries)

слегка оффтоп - а jimport  может перейти, скажем, на подпапку из components?..
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Re: Адаптация шаблона
« Ответ #21 : 14.03.2011, 21:02:49 »
jimport в Joomla это аналог инклуда в PHP (require_once), просто в нем используются директории относительно библиотек Joomla (папка libraries)
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

waw555

  • Захожу иногда
  • 118
  • 2 / 0
Re: Адаптация шаблона
« Ответ #22 : 15.03.2011, 14:34:36 »
Можно закрывать.

Всем спасибо за участие, помогло!

С уважением, Алексей!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

На локал сервере страницы сайта без шаблона, CSS и картинок

Автор Fati

Ответов: 0
Просмотров: 848
Последний ответ 15.06.2025, 11:57:45
от Fati
Адаптация картинок и logoheader

Автор saks1959

Ответов: 1
Просмотров: 3305
Последний ответ 24.10.2023, 22:55:03
от beliyadm
Изменение шаблона Joomla! 2.5.24

Автор SecondPC

Ответов: 0
Просмотров: 4426
Последний ответ 26.03.2021, 18:09:33
от SecondPC
Руководство - создание шаблона для Joomla 2.5

Автор dynamit

Ответов: 6
Просмотров: 31264
Последний ответ 02.02.2020, 22:28:15
от AlinaBut
Ошибка при установке шаблона - Fatal error: Call to a member function setDebug() on a non-object in

Автор Mirotvoretz

Ответов: 33
Просмотров: 69381
Последний ответ 11.11.2018, 13:22:26
от vik38