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

Shustry

  • Гуру
  • 6434
  • 745 / 3
у вас там <?php if(JURI::current()!== JURI::base()){}> нету перед > вопросительного знака! и не нужны фигурные скобки!
должно быть так:
 <?php if(JURI::current()!== JURI::base()): ?>
вывод всего что не на главной!
<?php endif; ?>
Ну это уже дело вкуса. Вам нравится так:
Код: php
if(JURI::current()!== JURI::base()):
//главная
endif;
Мне так:
Код: php
if (JURI::current()!== JURI::base()) {
//главная
};
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Раз определяем значение $home (на главной = true, на всех остальных = false) ;)
Код: php-brief
<?php $home =(JURI::getInstance()->toString()==JURI::base());?>
И используем где нужно.
Проверка на главную страницу
Код: php-brief
<?php if ($home):?>
   на главной
<?php endif; ?>
Вывод на всех страницах кроме главной
Код: php-brief
<?php if (!$home):?>
на всех кроме главной
<?php endif; ?>
Код: php-brief
<?php if ($home):?>
на главной
<?php else: ?>
на всех кроме главной
<?php endif; ?>
*

Askii

  • Новичок
  • 8
  • 0 / 0
Пробую, вставляю, выдает ошибку Parse error: syntax error, unexpected '>' in /home/sandro2584/3v1.biz/docs/stylage/templates/stylage/index.php on line 38, ребят, как именно нужно прописывать в шаблоне, так?:
Код
<?php if(JURI::current()!== JURI::base()){}>
проверка
<?php endif; ?>

Да нет же.
Просто
Код
 if(JURI::current()!== JURI::base()){}
уже полный код условия, между фигурных скобок исполняемый код пишите,
стало быть:
Код
 if(JURI::current()!== JURI::base()){/*your code is here*/}
если нужен endif, то пишете так:
Код
 if(JURI::current()!== JURI::base()):
/*your code is here*/
endif;

и второе.

у вас не работает:
Код
<?php if (JURI::current()!== JURI::base()) : ?>
<jdoc:include type="modules" name="topblock" style="xhtml" />
<?php endif; ?>
Все просто.
выражение !== - это строгое сравнение. Оно противоположно этому - "===".
А вы используете сравнение только по значению ("=="), которому противоположно это: != .

Думаю, вам уже не актуально. Но если кто пройдет в этот раздел, ему будет полезно.
*

Arkantos

  • Захожу иногда
  • 216
  • 17 / 0
  • Всё о создании сайтов: http://site-on.net
Интересные у вас способы... я считаю нужно делать главную страницу так, чтобы она имела классический адрес:
http://ваш_домен/ и всё:)

Поэтому вот как я делаю проверку на "главную" на своих сайтах:
Код
<?php if ($_SERVER['REQUEST_URI']=='/'): ?>
        ...
<?php endif ?>
Если у вас главная имеет такой же вид, то способ 100%, причём подходит для любой CMS ;)
*

Askii

  • Новичок
  • 8
  • 0 / 0
Интересные у вас способы... я считаю нужно делать главную страницу так, чтобы она имела классический адрес:
http://ваш_домен/ и всё:)

Поэтому вот как я делаю проверку на "главную" на своих сайтах:
Код
<?php if ($_SERVER['REQUEST_URI']=='/'): ?>
        ...
<?php endif ?>
Если у вас главная имеет такой же вид, то способ 100%, причём подходит для любой CMS ;)


Простенький парсер ссылок можно и для index.php написать. И потом, бывают структуры, в которых главных несколько, или они динамически меняются.
Но такой способ хорош, если остальная часть разработки ему соответствует. (:

Лично мне наиболее близок метод Fedor Vlasenko, он и универсален, и производителен. Вычисление проводится только один раз, и это хорошо.
« Последнее редактирование: 05.02.2013, 12:32:06 от Askii »
*

plovets

  • Новичок
  • 9
  • 0 / 0
Код
<?php if (JURI::current()!== JURI::base()) : ?>
<jdoc:include type="modules" name="topblock" style="xhtml" />
<?php endif; ?>
работает только если    site.ru
А если сайт мультиязычный?
 и ссылки на главную вида    /index.php/en
или /index.php/ru

Господа подскажите!
*

Arkantos

  • Захожу иногда
  • 216
  • 17 / 0
  • Всё о создании сайтов: http://site-on.net
Код
<?php if (JURI::current()!== JURI::base()) : ?>
<jdoc:include type="modules" name="topblock" style="xhtml" />
<?php endif; ?>
работает только если    site.ru
А если сайт мультиязычный?
 и ссылки на главную вида    /index.php/en
или /index.php/ru

Господа подскажите!
Как на счёт модификации моего метода пару постами выше?
Код
<?php if ($_SERVER['REQUEST_URI']=='/' or $_SERVER['REQUEST_URI']=='/index.php/en' or $_SERVER['REQUEST_URI']=='/index.php/ru'): ?>
        ...
<?php endif ?>
Подобной проверкой можно вертеть как захочется, я думаю логика довольно наглядна. Не пугайтесь, если строка покажется Вам слишком длинной, эта проверка нисколько не задержит загрузку Ваших страниц (на 0,0000....1 секунды :) ).
*

verstalshik

  • Завсегдатай
  • 1754
  • 95 / 1
а вот так?
Код
$menu = $app->getMenu();
if ($menu->getActive() == $menu->getDefault()) {блок-для-главной} else {блок-для-внутренних};
❶ НЕ СПРАВЛЯЕШЬСЯ САМ???  Поможем тут...  ❷ Калькулятор доставки - ЗАКАЖИ!!!...  ❸ Каталог компаний - ЖМИ!!!...  ❹ НОВИЧКИ! ВСЕ сюда! Первая консультация БЕСПЛАТНО!!
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
а вот так?
Код
$menu = $app->getMenu();
if ($menu->getActive() == $menu->getDefault()) {блок-для-главной} else {блок-для-внутренних};
Там вроде бы это не сработает, если перейти по ссылке, у которой нет пункта меню. $menu->getActive() останецо тем же, что и $menu->getDefault()
*

verstalshik

  • Завсегдатай
  • 1754
  • 95 / 1
хм.. может быть.. как вариант, не делать такие ссылки?)))
❶ НЕ СПРАВЛЯЕШЬСЯ САМ???  Поможем тут...  ❷ Калькулятор доставки - ЗАКАЖИ!!!...  ❸ Каталог компаний - ЖМИ!!!...  ❹ НОВИЧКИ! ВСЕ сюда! Первая консультация БЕСПЛАТНО!!
*

Hishchnik

  • Захожу иногда
  • 253
  • 19 / 1
  • ©
Мне помог данный метод:
Код
<?php
$app = JFactory::getApplication();
$menu = $app->getMenu();
if ($menu->getActive() == $menu->getDefault()) {
        echo 'Главная';
}
else{
echo 'Внутренняя';
}
?>

И как писал angpyxa, тоже работает не плохо, заменяется только номер id==24 при проверке на свой
1. Помог? Благодарность выражается кнопочкой "+" ;)
2. Остановите землю я сойду!
3.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Мне помог данный метод:
Код
<?php
$app = JFactory::getApplication();
$menu = $app->getMenu();
if ($menu->getActive() == $menu->getDefault()) {
        echo 'Главная';
}
else{
echo 'Внутренняя';
}
?>

Вот только данный метод катит если у вас на главке один материал, а если на главке будет например блог категории, или категории какого нить магазина то у вас и при переходе в статью/товар будет показываться что вы на главной
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Мои 5 копеек. Не далее как вчера решал проблему проверки на главной и вышел на такой интересный способ:

Сначала обрабатываем языки:
Код: php
<?php
$lang = JFactory::getLanguage()->getTag();

switch ($lang)
{
case 'en-GB':
$base = JUri::base(). 'en/';
break;

case 'lv-LV':
$base = JUri::base(). 'lv/';
break;

case 'de-DE':
$base = JUri::base(). 'de/';
break;

case 'ru-RU':
$base = JUri::base(). 'ru/';
break;

default:
$base = JUri::base();
}
?>

Потом в нужном месте проверка:
Код: php
<?php if (JUri::current()!== JUri::base() AND JUri::current()!== $base) : ?>
<jdoc:include type="message" />
<jdoc:include type="component" />
<?php else : ?>
<div id="company-about">
<jdoc:include type="modules" name="<?php $this->_p('keynotes')?>" style="xhtml" />
<jdoc:include type="modules" name="<?php $this->_p('about')?>" style="xhtml" />
</div>
<?php endif; ?>

Но это работает только при включенном SEF.
*

sept

  • Захожу иногда
  • 60
  • 5 / 1
  • J2.5.6+VM2.0.6
А как запретить вывод модуля во всех категориях VM2, кроме главной страницы?
*

sept

  • Захожу иногда
  • 60
  • 5 / 1
  • J2.5.6+VM2.0.6
Различные условия в шаблонах Joomla 3.0 и 2.5

Автор указанной вами темы отправил меня сюда: http://joomlaforum.ru/index.php/topic,257803.msg1415850.html#msg1415850

Куда стрелять-то, ваше благородие?
*

sept

  • Захожу иногда
  • 60
  • 5 / 1
  • J2.5.6+VM2.0.6
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Если подразумевается вывод ТОЛЬКО на главной странице, то всевозможные решения выше, в этой теме.
Если вы хотите запретить вывод ТОЛЬКО в категориях VM, а везде кроме них разрешить, то см. тему по-ссылке, про различные условия.
*

Festival

  • Осваиваюсь на форуме
  • 34
  • 1 / 0
Приведите пожалуйста пример отключьки любого плагина с главной страницы? В php очень слабые знания, хотелось бы наглядно увидеть процесс.

Что бы элементарно понять что куда прописать. Мучаюсь уже вторые сутки с данной проблемой.
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Ну тут речь скорее об отключении модулей, а не плагинов. Если с php не очень, то вам проще поставить Advanced Modules Manager. Там встроена проверка на главную.
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Вот к какому варианту я в итоге пришел. Учитывает многоязычность. Работает, если включен SEF.

Код: php
<?php
if (JLanguageMultilang::isEnabled())
{

        $uris = array();

foreach (JLanguageHelper::getLanguages() as $lang)
{
$uris[$lang->lang_code] = JUri::base(). $lang->sef . '/';
}

$baseUri = $uris[JFactory::getLanguage()->getTag()];
}
else
{
$baseUri = JUri::base();
}
?>

<?php if (JUri::current() == JUri::base() OR JUri::current() == $baseUri) : ?>
// здесь выводим все, что должно быть на главной странице
<?php endif; ?>
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Дима, $uris = ?
и почему не через JDocument ты определяешь
в шаблоне // Язык сайта
Код: php
$lang = $this->getLanguage();
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Дима, $uris = ?
Да, забыл $uris = array(); - исправил свой пост

и почему не через JDocument ты определяешь
в шаблоне // Язык сайта
Код: php
$lang = $this->getLanguage();

Потому что через JDocument ты не получишь SEF значение.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Потому что через JDocument ты не получишь SEF значение.
Код: php-brief
$lng = substr(JFactory::getDocument()->getLanguage(), 0, 2);
//в шаблоне так
$lng = substr($this->getLanguage(), 0, 2);
все то же самое и соответствует наименованием языков
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Код: php-brief
$lng = substr(JFactory::getDocument()->getLanguage(), 0, 2);
//в шаблоне так
$lng = substr($this->getLanguage(), 0, 2);
все то же самое и соответствует наименованием языков
Ну так в адресной строке может быть что угодно, так как в неё попадает то, что указывает пользователь в менеджере языков. Ты не можешь операться на $this->getLanguage().
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
опять ничего я не понял если тебе из адресной строки нужно брать
 $uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
а далее смотреть  с помощью strpos, strripos
Цитировать
ты не можешь операться на $this->getLanguage().
это как? это язык документа.
На что мне опираться?
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
опять ничего я не понял если тебе из адресной строки нужно брать
 $uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
а далее смотреть  с помощью strpos, strripos
Что убирать? Приведи пример, как с помощью этого ты вычислишь код языка в адресной строке. Не забывай, что пользователь добавляет его вручную.

это как? это язык документа.
На что мне опираться?
Язык документа не всегда равен тому, что проставляет пользователь ручками в параметре "Код языка для URL".
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Цитировать
Приведи пример, как с помощью этого ты вычислишь код языка в адресной строке.
Покажи примеры ссылок, я напишу пример
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Покажи примеры ссылок, я напишу пример
Да любой домен и его главная страница:
http://www.example.com/
http://www.example.com/en/
http://www.example.com/ru/

Только учти, что en/ и ru/ не у всех такие. Это может быть и eng/ и rus/.
Суть в том, что нужен  универсальный код, который подойдет любым вариантам.
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Код: php-brief
<?php
$link1 = 'http://www.example.com/';
$link2 = 'http://www.example.com/en/a';
$link3 = 'http://www.example.com/ru/';

function get_lng($link){
$lng = explode('/', parse_url($link, PHP_URL_PATH), 3)[1];
return $lng ? $lng: 'ru'; // ru - default
}
echo get_lng($link1), '<br>', get_lng($link2), '<br>', get_lng($link3), '<br>';
к примеру так можно
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как редактировать отдельную страницу Joomla 2.5?

Автор mrporter

Ответов: 0
Просмотров: 14161
Последний ответ 14.09.2023, 22:16:47
от mrporter
Joomla 2.5.28, Safari под маком и сессии session

Автор beliyadm

Ответов: 19
Просмотров: 16963
Последний ответ 29.03.2023, 12:17:19
от Sawell
Joomla 2.5.28 как скачать все файлы через панель управления

Автор Sergei41984

Ответов: 7
Просмотров: 14700
Последний ответ 27.12.2022, 23:30:38
от Sergei41984
Расширения для Joomla! 1.6 (коллекция полезных ссылок)

Автор Sulpher

Ответов: 124
Просмотров: 146002
Последний ответ 03.12.2022, 16:15:19
от besttechoff
Почему в админке Joomla 2.58 - у меня 16 админов показывает?

Автор dyalex

Ответов: 7
Просмотров: 15560
Последний ответ 27.10.2022, 19:03:45
от marksetter