Новости 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 можно из объекта приложения

<?php protected function doExecute(InputInterface $input, OutputInterface $output): int { //... $live_site = $this->getApplication()->get('live_site'); //... }

и исходя из этого строить дальнейшую логику.

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

fbr

  • Завсегдатай
  • 1663
  • 206 / 7
Здравствуйте!

Есть модуль выводящий таблицу
В каждой строке таблицы кнопка
По нажатию на кнопку, значение ее атрибута data-groupcode передается в определенное поле формы
Форма генерируется из js-скрипта Битрикс24
При отправке формы - значение поля не передается ...
Если заполнить поле вручную - значение передается

Код
<a data-groupcode="<?php echo $value->group_num; ?>"
 onclick="jQuery('#form_footer textarea').val(jQuery(this).attr('data-groupcode'));"
 href="#form-footer">

    Записаться

</a>

Подскажите, как решить проблему
Спасибо)
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Код
onclick="jQuery('#form_footer textarea').text(jQuery(this).attr('data-groupcode'));"
Есть значение в <?php echo $value->group_num; ?> ?
Но думаю все таки думаю трабл в val
*

fbr

  • Завсегдатай
  • 1663
  • 206 / 7
Значение в поле textarea нормально передается.
Проблема в том, что при отправке формы все поля приходят в битрикс, а это пустое
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
А в консоли видно что отправляется ? Может на стороне Битрикс фильтруется .
А, точно, это я упустил что в textarea  .
*

fbr

  • Завсегдатай
  • 1663
  • 206 / 7
В форме несколько полей
По нажатию кнопки Отправить, все отправляются кроме этого
И это тоже отправляется, если заполнить его не скриптом, а вручную
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
привет
вроде как для textarea через
Код
.text()
надо передавать
это имеет значение и не то же самое, что val
у меня так ловец лидов работает и все ок
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
А вынести код JavaScript в файл, чтобы уже тестить нормально .
А форма с полем сразу грузится или аякс ?
*

fbr

  • Завсегдатай
  • 1663
  • 206 / 7
Там еще такая фигня обнаружилась:
при ручном вводе первой же буквы к textarea добавляется класс ...
при добавлении скриптом - нет

добавил класс скриптом, буду тестить
не прокатило ...

с .text() тоже не прокатило
« Последнее редактирование: 17.11.2021, 20:52:47 от fbr »
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
при ручном вводе первой же буквы к textarea добавляется класс ...
при добавлении скриптом - нет
вынести код JavaScript в файл,
ajaxStop в помощь
« Последнее редактирование: 18.11.2021, 13:28:19 от draff »
*

fsv

  • Живу я здесь
  • 2781
  • 410 / 2
А если в конец onclick добавить  jQuery('#form_footer textarea').trigger('input'); ?
На чем форма битрикса? Нативный js или vue/react/etc.? Вообще, гадать долго можно, ссылка могла бы что-то прояснить.
Веб-разработка: заказ. Только новая разработка.
*

fbr

  • Завсегдатай
  • 1663
  • 206 / 7
А если в конец onclick добавить  jQuery('#form_footer textarea').trigger('input'); ?
На чем форма битрикса? Нативный js или vue/react/etc.? Вообще, гадать долго можно, ссылка могла бы что-то прояснить.
Не помогло...

Код скрипта формы (чуть изменил, чтобы в битрикс24, случайно не отправили ничего)
Код
<script data-b24-form="inline/2/ххххх" data-skip-moving="true" type="text/javascript">
        (function(w,d,u){
                var s=d.createElement('script');s.async=true;s.src=u+'?'+(Date.now()/180000|0);
                var h=d.getElementsByTagName('script')[0];h.parentNode.insertBefore(s,h);
        })(window,document,'https://cdn-ru.bitrix24.ru/b18018656/crm/form/loader_2.js');
</script>
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Код
jQuery(function($){
$('a[href="#form-footer"').on('click', function() {
var groupcode = jQuery(this).attr('data-groupcode');
console.log('groupcode_1 => ' + groupcode);
});
$(document).ajaxStop( function() {
jQuery('#form_footer textarea').val(groupcode);
console.log('groupcode_2 => ' + jQuery('#form_footer textarea').val());
});
});
« Последнее редактирование: 18.11.2021, 13:27:40 от draff »
*

fbr

  • Завсегдатай
  • 1663
  • 206 / 7
В консоли ошибка

Uncaught TypeError: $(...).ajaxstop is not a function
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
*

fbr

  • Завсегдатай
  • 1663
  • 206 / 7
Ошибка пропала, но в консоли ничего не вывело. Пусто

ajaxStop не отрабатывет. Вставил в тело alert - не выскакивает.
« Последнее редактирование: 18.11.2021, 13:41:13 от fbr »
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
А до события клик ?
Код
jQuery(function($){
console.log('groupcode_0' + $('a[href="#form-footer"]').attr('data-groupcode'));
$('a[href="#form-footer"]').on('click', function() {
var groupcode = $(this).attr('data-groupcode');
console.log('groupcode_1 => ' + groupcode);
$(document).ajaxstop( function() {
jQuery('#form_footer textarea').val(groupcode);
console.log('groupcode_2 => ' + jQuery('#form_footer textarea').val());
});
});
});
Может лучше назначить класс ссылке, чтобы не ошибиться с селектором .
« Последнее редактирование: 18.11.2021, 13:57:33 от draff »
*

fbr

  • Завсегдатай
  • 1663
  • 206 / 7
тоже нет
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
 А если в консоли браузера
Код
console.log('groupcode_0' + jQuery('a[href="#form-footer"]').attr('data-groupcode'));
У меня ошибка в селекторе, пропустил ] Исправил на
Код
$('a[href="#form-footer"]').on('click', function() {
« Последнее редактирование: 18.11.2021, 13:59:12 от draff »
*

fbr

  • Завсегдатай
  • 1663
  • 206 / 7
Поправил не много код
на клик отрабатывает
в консоли
groupcode_1 => Almeria B1-201A
*

fbr

  • Завсегдатай
  • 1663
  • 206 / 7
У меня ошибка в селекторе, пропустил ] Исправил на
Код
$('a[href="#form-footer"]').on('click', function() {
У вас куча ошибок ))) Я их исправляю по ходу )
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Поправил не много код
на клик отрабатывает
в консоли
groupcode_1 => Almeria B1-201A
Значит убирайте ajaxstop , раз в нем не выводит в консоль
Код
jQuery(function($){
console.log('groupcode_0' + $('a[href="#form-footer"]').attr('data-groupcode'));
$('a[href="#form-footer"]').on('click', function() {
var groupcode = $(this).attr('data-groupcode');
console.log('groupcode_1 => ' + groupcode);

jQuery('#form_footer textarea').val(groupcode);
console.log('groupcode_2 => ' + jQuery('#form_footer textarea').val());

});
});
*

fbr

  • Завсегдатай
  • 1663
  • 206 / 7
Я не совсем понимаю что мы делаем ...
Значение и до этого записывалось в textarea
Вот этот кусок
Код
jQuery('#form_footer textarea').val(groupcode);
я уже давно дописал в код
С этим проблем не было.

Проблема с отправкой формы. Значение из textarea не отправляется
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Я не совсем понимаю что мы делаем ...
Значение и до этого записывалось в textarea
Ну без ajaxstop, смысла нет.
Если добавляется класс к textarea, меняется объект DOM , и я думал проверить .
*

fbr

  • Завсегдатай
  • 1663
  • 206 / 7
Сделал поле textarea обязательным
Заполняю скриптом - не отправляет, не видит.
Говорит что поле обязательно для заполнения ...
*

ProtectYourSite

  • Живу я здесь
  • 2364
  • 137 / 4
  • Безопасность вебсайтов
Надо смотреть в отладке как реагирует скрипт Битрикса на заполнение и отправку.
Возможно меняет классы или ещё что-то, либо как-то хитро собирает форму.
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Или задать вопрос поддержке формы, или кто вам дал. Может есть обработчик события на изменение поля, а когда яваскриптом, событие не срабатывает .
*

fbr

  • Завсегдатай
  • 1663
  • 206 / 7
пытался триггером change запустить, не помогло
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
*

fbr

  • Завсегдатай
  • 1663
  • 206 / 7
тоже нет
*

ProtectYourSite

  • Живу я здесь
  • 2364
  • 137 / 4
  • Безопасность вебсайтов
А есть по какой ссылке пример?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Валидация формы с загрузкой файлов на сервер

Автор kuliev

Ответов: 4
Просмотров: 777
Последний ответ 17.01.2025, 14:38:44
от kuliev
Блок особенностей, как добавить в поле с информацией кнопку или ссылку Подробнее

Автор Alex from SPb

Ответов: 5
Просмотров: 656
Последний ответ 28.11.2022, 19:54:42
от marksetter
[Решено] Отключить Mootols, Jquery и Bootstrap в Joomla 3

Автор Pazys

Ответов: 126
Просмотров: 98841
Последний ответ 21.10.2022, 22:25:23
от Alex Kop
Тип поля формы Select sql, как заполнить его через функцию php?

Автор GuDeVic

Ответов: 13
Просмотров: 1395
Последний ответ 07.10.2022, 12:25:45
от fsv
Как вывести в категории VirtueMart кастомное поле с редактором?

Автор dc_web

Ответов: 4
Просмотров: 619
Последний ответ 05.10.2022, 11:07:00
от sivers