Новости Joomla

Astroid обновился до версии 3.3.7!

Astroid обновился до версии 3.3.7!

Astroid — это мощный фреймворк для дизайнеров и разработчиков, позволяющий создавать адаптивные, быстрые и надежные веб-сайты и шаблоны на базе Joomla.

Главное в новой версии:

-   Исправлена загрузка файлов макетов

В предыдущем крупном релизе Astroid 3.3.6 были сделаны важные улучшения:

Основные моменты:

  • Улучшенный UI/UX в ключевых областях конфигурации
  • Повышенная стабильность и согласованность в Layout Builder и Form Builder
  • Исправления ошибок на основе отзывов сообщества
  • Улучшенная обработка визуальных эффектов, границ и шрифтов

Улучшения:

  • Обновленный UX Layout Builder
  • Улучшенный эффект предзагрузчика
  • Улучшенный стиль границ
  • Улучшенный UI/UX вкладки «Layout» в Template Options

Исправления ошибок:

  • Решены проблемы с некорректными динамическими значениями
  • Исправлен Color Transform при прокрутке
  • Устранены проблемы с работой Form Builder в Article Layout и Module Layout Builder
  • Исправлена проблема с созданием ненужных временных файлов при обработке шрифтов

Скачать: https://github.com/templaza/astroid-framework/releases/tag/v3.3.7

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

lomrm

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Как сделать проверку
« : 29.04.2012, 17:04:25 »
Вопрос кто знает как сделать такую вещь


у странице есть 3 Блока

Левой блок(ширина 30%) / Центральный блок (ширина 40%) / Правый блок (ширина 30%)

нужно сделать так что ели нету Левого блока то Центральный увеличивается (ширина 70%) при этом если есть Правый блок
а если нету Правого блока то Центральный тоже (ширина 70%) при этом если есть Левый блок

ну а если нету не Левого блока не Правого блока то Центральный блок становится (ширина 100%)

вот ниже приведу пример я нашёл как сделать если нужно обрабатывать только Правый блок

Этот код я ставлю вокруг Центрального блока
----------------------------------------------
<div id="<?php echo $showRightColumn ? 'content2' : 'content'; ?>">
<jdoc:include type="component" />
</div>

Этот код я ставлю вокруг Правого блока
----------------------------------------------
<?php if ($showRightColumn) : ?>
<jdoc:include type="modules" name="position-righrt" style="none" />
</div>


теперь если Правый блок есть то у Центрального блока будет вот так id="content" если Правого блока нет то будет так id="content2"

==================================

но тут пример только на 1 блок
а как сделать так же на проверку и вывод и Левого и Правого блока? подскажите пожалуйста
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: Как сделать проверку
« Ответ #1 : 29.04.2012, 18:53:58 »
Код: php
<?php

// No direct access.
defined('_JEXEC') or die;


$left = $this->countModules('left');
$right = $this->countModules('right');

$pageClass = ($left && $right)? 'two-sidebars' : ($left || $right)? 'one-sidebar' : 'no-sidebar';

?>
...
<body class="<?php echo $pageClass ?>">
...
</body>
...

Код: css
.one-sidebar #content{
    width: 70%;
}
.two-sidebars #content{
    width: 50%;
}
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

lomrm

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Как сделать проверку
« Ответ #2 : 29.04.2012, 19:08:57 »
Код: php
<?php

// No direct access.
defined('_JEXEC') or die;


$left = $this->countModules('left');
$right = $this->countModules('right');

$pageClass = ($left && $right)? 'two-sidebars' : ($left || $right)? 'one-sidebar' : 'no-sidebar';

?>
...
<body class="<?php echo $pageClass ?>">
...
</body>
...

Код: css
.one-sidebar #content{
    width: 70%;
}
.two-sidebars #content{
    width: 50%;
}

вопрос, а что тут должно получится?? не могу разобратся. подскажи пожалуйста
*

lomrm

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Как сделать проверку
« Ответ #3 : 29.04.2012, 19:11:15 »
как я понял что тут получается так. если нету Блока left и right то сонтент во всю ширину. а если есть то нет или??
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: Как сделать проверку
« Ответ #4 : 29.04.2012, 19:44:45 »
А что тут понимать?
класс = оба_блока ? 'один_сайдбар' ИНАЧЕ один_из_блоков ? 'один_сайдбар' ИНАЧЕ 'без_сайдбаров';

если один блок - то width 70%
если оба - то width 50%
если ни одного - то width auto

Я вот только не уверен что в php цепочка условий будет проверяться в таком порядке в котором задумано. По крайней мере в javascript класс получится верный.
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

lomrm

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Как сделать проверку
« Ответ #5 : 29.04.2012, 19:57:23 »
А что тут понимать?
класс = оба_блока ? 'один_сайдбар' ИНАЧЕ один_из_блоков ? 'один_сайдбар' ИНАЧЕ 'без_сайдбаров';

если один блок - то width 70%
если оба - то width 50%
если ни одного - то width auto

Я вот только не уверен что в php цепочка условий будет проверяться в таком порядке в котором задумано. По крайней мере в javascript класс получится верный.

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

вот что я сделал
-----------------

<div id="box-content">
      <?php if($this->countModules('left')) : ?>
      <div id="left">
        <jdoc:include type="modules" name="left" style="xhtml" />
      </div>
      <?php endif; ?>
     
      <?php if($this->countModules('left and right')) : ?>
      <div id="content">
        <jdoc:include type="component" />
      </div>
      <?php else : ?>
      <?php if($this->countModules('left')) : ?>
      <div id="content_no_right">
        <jdoc:include type="component" />
      </div>
      <?php else : ?>
      <?php if($this->countModules('right')) : ?>
      <div id="content_no_left">
        <jdoc:include type="component" />
      </div>
      <?php else : ?>
      <div id="content_no_modules">
        <jdoc:include type="component" />
      </div>
      <?php endif; ?>
      <?php endif; ?>
      <?php endif; ?>
     
      <?php if($this->countModules('right')) : ?>
      <div id="right">
        <jdoc:include type="modules" name="right" style="xhtml" />
      </div>
      <?php endif; ?>
     
      <div class="clr"></div>
    </div>
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: Как сделать проверку
« Ответ #6 : 29.04.2012, 20:18:23 »
Вместо того чтобы тыщу раз вызывать $this->counModules, достаточно один раз в начале файла завести переменные:

$leftSidebar = $this->countModules('left');
$rightSidebar = $this->countModules('right');

А уже по ходу писать условия:

if ($leftSidebar) {
    ...
}

И конечно же куча нерациональных условий: ведь погляди - при любом раскладе у тебя выведется

<div id="какойто_ид">
        <jdoc:include type="component" />
</div>

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

Код: php
if ($leftSidebar && $rightSidebar) {
    $contentId = 'content';
} else if (!$leftSidebar && $rightSidebar) {
    $contentId = 'content_no_left';
} else if ($leftSidebar && !$rightSidebar) {
    $contentId = 'content_no_right';
} else {
    $contentId = 'content_no_modules;
}

Ведь так же проще и понятней, разве нет?
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

lomrm

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Как сделать проверку
« Ответ #7 : 01.05.2012, 13:34:22 »
Вместо того чтобы тыщу раз вызывать $this->counModules, достаточно один раз в начале файла завести переменные:

$leftSidebar = $this->countModules('left');
$rightSidebar = $this->countModules('right');

А уже по ходу писать условия:

if ($leftSidebar) {
    ...
}

И конечно же куча нерациональных условий: ведь погляди - при любом раскладе у тебя выведется

<div id="какойто_ид">
        <jdoc:include type="component" />
</div>

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

Код: php
if ($leftSidebar && $rightSidebar) {
    $contentId = 'content';
} else if (!$leftSidebar && $rightSidebar) {
    $contentId = 'content_no_left';
} else if ($leftSidebar && !$rightSidebar) {
    $contentId = 'content_no_right';
} else {
    $contentId = 'content_no_modules;
}

Ведь так же проще и понятней, разве нет?

с тем что выше код вы дали я разобрался, а вот со вторым что не как не пойму, я не силен в php по этому мне не много тяжело

в первом случая я сделала так как вы описали

во втором случая так же сделал так

там где блок с контентов
<div id="<?php
if ($leftSidebar && $rightSidebar) {
    $contentId = 'content';
} else if (!$leftSidebar && $rightSidebar) {
    $contentId = 'content_no_left';
} else if ($leftSidebar && !$rightSidebar) {
    $contentId = 'content_no_right';
} else {
    $contentId = 'content_no_modules';
}
?>">
<jdoc:include type="component" />     
</div>

 
*

lomrm

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Как сделать проверку
« Ответ #8 : 01.05.2012, 13:35:44 »
но во 2 случаи не заработала id="" быд пустой
*

lomrm

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Как сделать проверку
« Ответ #9 : 01.05.2012, 13:54:00 »

1 вопрос вот как  я понимаю этот код

Код
$leftSidebar = $this->countModules('position-left');
$rightSidebar = $this->countModules('position-right');

$pageClass = ($leftSidebar && $rightSidebar)? 'content-two-sidebars' : ($leftSidebar || $rightSidebar)? 'content-one-sidebar' : 'content-no-sidebar';

1) идет если есть оба блока  'content-two-sidebars'
2) если нету 1 блока            'content-one-sidebar'
3) если нету обоих               'content-no-sidebar'


у меня 2 и 3 класс отображаются, а когда обо блока  есть то в классе стоит 'content-one-sidebar'

что нужно подкорректировать не подскажешь?



*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: Как сделать проверку
« Ответ #10 : 01.05.2012, 14:08:49 »
Попробуй поменять местами первое и второе условия.
Я думаю что в php подобная цепочка условий проверяется с конца, и потому, даже когда блока два, сначала выполнится условие ($left || $right), и следовательно ($left && $right) даже проверяться не станет.

По пред. вопросу. Ты немного не понимаешь принцип работы.
Ты можешь написать так:
<div id="<?php echo $contentId ?>"> результатом чего будет, например <div id="content-one-block"> .
echo - это команда "вывода" значения в поток. Ну типа "вывести на печать".
А ты пишешь так(упрощенно)
<div id="<?php $contentId = 'some-id' ?>"> - в этом случае получаем <div id="">
Ведь в php коде мы просто записываем в переменную $contentId некое значение, но на печать мы переменную не выводим, поэтому получаем пустоту.

Поэтому размести блок условий в самом верху файла - там мы всего лишь определим значение переменной.
А уже там где нужно вывести это значение, просто напиши
<div id="<?php echo $contentId ?>">

Надеюсь доступно объяснил
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

lomrm

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Как сделать проверку
« Ответ #11 : 01.05.2012, 14:30:09 »
Попробуй поменять местами первое и второе условия.
Я думаю что в php подобная цепочка условий проверяется с конца, и потому, даже когда блока два, сначала выполнится условие ($left || $right), и следовательно ($left && $right) даже проверяться не станет.

По пред. вопросу. Ты немного не понимаешь принцип работы.
Ты можешь написать так:
<div id="<?php echo $contentId ?>"> результатом чего будет, например <div id="content-one-block"> .
echo - это команда "вывода" значения в поток. Ну типа "вывести на печать".
А ты пишешь так(упрощенно)
<div id="<?php $contentId = 'some-id' ?>"> - в этом случае получаем <div id="">
Ведь в php коде мы просто записываем в переменную $contentId некое значение, но на печать мы переменную не выводим, поэтому получаем пустоту.

Поэтому размести блок условий в самом верху файла - там мы всего лишь определим значение переменной.
А уже там где нужно вывести это значение, просто напиши
<div id="<?php echo $contentId ?>">

Надеюсь доступно объяснил

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

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Re: Как сделать проверку
« Ответ #12 : 01.05.2012, 14:54:33 »
В общем, рабочий такой вариант:
Код: php
$pageClass = 'content-' . (($leftSidebar && $rightSidebar)? 'two-sidebars' : (($leftSidebar || $rightSidebar)? 'one-sidebar' : 'no-sidebar'));
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

lomrm

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Как сделать проверку
« Ответ #13 : 01.05.2012, 16:06:27 »
В общем, рабочий такой вариант:
Код: php
$pageClass = 'content-' . (($leftSidebar && $rightSidebar)? 'two-sidebars' : (($leftSidebar || $rightSidebar)? 'one-sidebar' : 'no-sidebar'));

ага все заработала Большущее пасибо вам!! за помощь


а вопрос такой ещё не по теме.

есть како нибудь кусок кода с которым можно сделать чтобы на главной странице не отображался <jdoc:include type="component" />
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как сделать свой шаблон в Joomla 2.5

Автор ShaolinMaster

Ответов: 18
Просмотров: 33943
Последний ответ 26.05.2013, 11:16:48
от verstalshik
Как правильно сделать "выпадающее" меню?

Автор MirkaVesele

Ответов: 7
Просмотров: 12535
Последний ответ 20.03.2013, 02:08:33
от gevill
Как сделать на сайте два шаблона?

Автор Sergey2

Ответов: 1
Просмотров: 2082
Последний ответ 04.12.2012, 10:00:31
от Leva27
Как можно сделать такое портфолио? Выбор события в области прокрутки справа откывает фото и видео

Автор borro

Ответов: 4
Просмотров: 2837
Последний ответ 12.03.2012, 17:19:01
от Fedor Vlasenko