Новости Joomla

Загадочный параметр $live_site в configuration.php Joomla

Загадочный параметр $live_site в configuration.php Joomla

👩‍💻 Загадочный параметр $live_site в configuration.php Joomla. Зачем он нужен?Давным-давно, когда Joomla ещё была маленькой, в неё внедрили параметр $live_site. В ней хранился домен текущего сайта на случай, если Joomla не могла его определить из-за неверной настройки сервера. Нужно это было для разных SEO-компонентов, для использования редиректов и т.д.Со временем для работы собственно сайта этот параметр перестал быть нужным. Уже в начале 2010-х стали встречаться рекомендации оставлять этот параметр пустым, дабы оный не привёл к лишним проблемам и путанице. Тем более, в web-админке нет места, где его можно указать или посмотреть его значение. Только в configuration.php, а туда смотрят не часто.Однако, параметр всё же остался в ядре Joomla. Зачем он нужен? А нужен он в 2-х случаях:- для работы класса Joomla\CMS\Uri\Uri, который часто используется в коде Joomla для работы методов

Uri::root() и
Uri::base(), а значит может влиять и на работу в том числе ajax-скриптов.- для работы Joomla в CLI - командной строке сервера. В случае если вы используете в вашем CLI-плагине методы опять-таки класса Uri, то CLI ничего не знает о текущем домене, так как запускается вне web-сервера. Поэтому домен нужно указывать принудительно. Либо с помощью параметра командной строки
--live-site, например,
—live-site=https://site.ru/. Со слешем на конце, иначе в CLI адрес сайта станет
https://site.rujoomla.php.Либо в параметре
$live_site в файле configuration.php, так как
CliApplication берёт настройку оттуда, если параметр команды не указан или пуст.⚠️ Иначе в качестве хоста и url класса Uri будет установлено
https://joomla.invalid/set/by/console/application. В самом же коде команды получить параметр
$live_site можно из объекта приложения

protected function doExecute(InputInterface $input, OutputInterface $output): int    {         //...              $live_site = $this->getApplication()->get('live_site');         //...    }
и исходя из этого строить дальнейшую логику.@joomlafeed#joomla #разработка #php #cli

Вышел плагин AllVideos v.7.0 от JoomlaWorks

Вышел плагин AllVideos v.7.0 от JoomlaWorks

Вышел плагин AllVideos v.7.0 от JoomlaWorks.Этот контент-плагин - одно из старейших расширений для Joomla. Его задача - преобразовывать шорт-коды вида

{YOUTUBE}...{/YOUTUBE},
{MP3}parth/to/file.mp3{/MP3} и подобные во встроенные видео или аудио.👩‍💻 v.7.0.0. Что нового?- Добавлена поддержка Youtube Shorts. Просто скопируйте полный url видео и вставьте его внутри тегов
{YOUTUBE}...{/YOUTUBE}.- Поддержка Joomla 5.x без плагина обратной совместимости. PHP 5, PHP 7, PHP 8. - Индексация умным поиском в CLI. В Joomla 5 плагин перестал вызывать ошибку при индексации контента умным поиском через CLI,Заметьте, что этот один и тот же пакет для всех версий Joomla, начиная с 1.5.x и заканчивая 5.x. Технически "под капотом" код плагина по сути не менялся, а для поддержки следующих версий Joomla авторы вставляют "заплатки". Плагин всё ещё использует старую архитектуру файлов и классов Joomla, что, к сожалению, заставляет прибавлять к его описанию слова "пока ещё" - "пока ещё работает".
Страница расширенияGitHub расширенияJoomla Extensions Directory👩‍💻 За ссылку спасибо самому внимательному участнику нашего сообщества - Ринату Кажетову (@rkazhet).@joomlafeed#joomla #расширения

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

Dominus

  • Осваиваюсь на форуме
  • 18
  • 4 / 0
Здравствуйте! Задача в следующем:

Имеется форма состоящая из 4х страниц, на первой странице размещены 3 радио-кнопки и кнопка Далее.
Каждая радио-кнопка имеет своё значение при выборе которого и нажатии на кнопку Далее, пользователя перекидывает на соответствующую страницу формы 2, 3 или 4.

Вопрос:
Как это дело можно организовать, какое событие прописать кнопке Далее? Как инициализировать радиокнопку и её переменную в действии кнопки Далее?

Заранее спасибо!
*

shmakatuha

  • Захожу иногда
  • 131
  • 3 / 0
Можно попробовать так. Создаем три секции на второй странице с необходимыми элементами и скрываем их. Затем просто прописываем условия видимости в зависимости от положения переключателя.
Код
turn on section секция_1 if переключатель is положение_1
и т.д. Должно работать.
*

Dominus

  • Осваиваюсь на форуме
  • 18
  • 4 / 0
Такой метод работает при создании формы в Быстром режиме. А если поставить кнопку Назад на вторую страницу и выбрать другую радиокнопку и снова нажать Далее, то выводится ещё и предыдущий результат. Такая ситуация происходит пока не перезагрузиш страницу.

А есть варианты при создании формы в Классическом режиме? Он наиболее гибкий.
*

shmakatuha

  • Захожу иногда
  • 131
  • 3 / 0
Так не должно быть. Я, правда, не пробовал. Но, кроме условия видимости нужно прописать и условия скрытия, т.е. скрывать две оставшиеся секции при выборе первой...
По поводу классического режима ни чем помочь не могу.
*

Dominus

  • Осваиваюсь на форуме
  • 18
  • 4 / 0
Код условия видимости, как я понял прописывается в самой форме на вкладке Расширеные настройки в поле Правила видимости, для каждой радио-кнопки с новой строки. А как можно прописать условие скрытия?
*

shmakatuha

  • Захожу иногда
  • 131
  • 3 / 0
Например:
Код
turn on section c1 if buttion is var1
turn off section c1 if buttion  is var2
turn off section c1 if buttion  is var3
здесь c1 это одна секция (или страница), а buttion твоя "радио" кнопка с тремя вариантами.
т.е. итого строк должно быть девять. По три на каждую секцию.

Все условия видимости прописываются в расширенных настройках - условия видимости.
*

Dominus

  • Осваиваюсь на форуме
  • 18
  • 4 / 0
Разобрался как решить данную задачу в Классическом режиме.
Если кому надо, вот решение:

Создаём радио-кнопоки, у меня их 3, даём им имена , пусть будут rb. У всех трёх кнопок имена должны быть одинаковыми.
В каждой радио-кнопке пишем какое либо значение, например: в Кнопке1 next_page1, в Кнопке2 next_page2, в Кнопке3 next_page3.

Идём в настройки Кнопки1 на вкладку Скрипты, Скрипт действие, выбираем Тип: Пользовательский, Действие: Нажатие и пишем код:
Код
function ff_rb_action(element, action)
{
    switch (action) {
        case 'click':
             for (var i = 0; i < ff_elements.length; i++)
              if (ff_elements[i][2]== 'rb')
                if (ff_getElementByIndex(i).checked) rb_value = ff_getElementByIndex(i).value;
            break;
        default:;
    } // switch
} // ff_rb_action
Код пишется только в первой кнопке, в остальных нужно просто выбрать Тип: Пользовательский,  Действие: Нажатие.

Создаём кнопку Next для перехода на следующую страницу, в зависимости от выбора радио-кнопки.
В настройках кнопки Next переходим на вкладку Скрипты, выбираем Тип: Пользовательский, Действие: Нажатие.
Пишем код :
Код
function ff_Next_action(element, action)
{
    switch (action) {
        case 'click':
              if (rb_value == 'next_page1') ff_switchpage(ff_getPageByName('page1'));
      if (rb_value == 'next_page2') ff_switchpage(ff_getPageByName('page2'));
              if (rb_value == 'next_page3') ff_switchpage(ff_getPageByName('page3'));
            break;
        default:;
    } // switch
} // ff_Next_action

Готово! Всё работает как надо. Буду рад если кому то это пригодится.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Обработка Radio group в многостраничной форме

Автор karpiy

Ответов: 0
Просмотров: 2253
Последний ответ 04.04.2013, 12:50:31
от karpiy