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

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Как можно в модуле прописать, чтобы он брал сумму написанную в контенте.
В большинстве плагинов и модулей есть такое, когда можно а контенте выделять.
Код
[сумма]2000[/сумма]
В итоге эта сумма видна в контенте и в модуле, единственное выделение сумма в контенте не видна.
Помогите с решением?

 *DRINK*
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Не понятно вопрос Задали...
Как он должен ее брать
обрабатывать тоже как? на стороне сервера или на стороне клиента..
Ссылку на сайт дайте ...
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Судя по всему, это должно обрабатываться плагином шорткодов, для этого в модуле на закладке доп.параметров необходимо включить обработку плагинами.
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Был такой сайт и тема была, но сайт не работает по той ссылке, тему наверно давно в архиве.
Не надо через базу ничего пихать, надо чтобы он мог найти в контенте число.
Что-то простое, пускай не видно в контенте, но мод находясь на этой странице мог прочесть.

Код
{сумма}2000{/сумма}
*

Aleks.Denezh

  • Живу я здесь
  • 3404
  • 428 / 4
Что-то простое, пускай не видно в контенте, но мод находясь на этой странице мог прочесть.
Код
{сумма}2000{/сумма}
и что он должен с этим сделать?
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Istaan
Перенести из контента в модуль. В статье контента 2000, в модуле код поиска и вывода 2000.
Не каких других действий, просто разные статьи контента с 100, 2000...
« Последнее редактирование: 27.07.2015, 12:52:49 от leo78 »
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
leo, предлагаю начать тему заново, сделать скриншоты у показать что куда нужно перенести, всем сразу станет всё понятно. Я немного догадываюсь о каком модуле идёт речь, но честно говоря не знаю ответ. Ты работаешь с этим модулем, поэтому тебе кажется это очевидным, но не думаю, что всем так-же всё понятно.
Предполагаю, что нужно в модуле получать информацию из материала размеченную каким-то особым образом и в модуле её показать.

Нужен плагин контента, который будет обрабатывать контент, в поисках какой-то размеченной информации, в данном случае сумма. Модуль должен обращаться к этому плагину только на этой-же странице (или нет?) и получать эту информацию, затем отображать её. Так?
« Последнее редактирование: 27.07.2015, 22:33:59 от ChaosHead »
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
сделать скриншоты у показать что куда нужно перенести, всем сразу станет всё понятно. Я немного догадываюсь о каком модуле идёт речь, но честно говоря не знаю ответ. Ты работаешь с этим модулем, поэтому тебе кажется это очевидным, но не думаю, что всем так-же всё понятно.
Предполагаю, что нужно в модуле получать информацию из материала размеченную каким-то особым образом и в модуле её показать.

Нужен плагин контента, который будет обрабатывать контент, в поисках какой-то размеченной информации, в данном случае сумма. Модуль должен обращаться к этому плагину только на этой-же странице (или нет?) и получать эту информацию, затем отображать её. Так?


*

orsy

  • Захожу иногда
  • 400
  • 23 / 1
  • Web-Factor Ukraine
leo, предлагаю начать тему заново, сделать скриншоты у показать что куда нужно перенести, всем сразу станет всё понятно. Я немного догадываюсь о каком модуле идёт речь, но честно говоря не знаю ответ. Ты работаешь с этим модулем, поэтому тебе кажется это очевидным, но не думаю, что всем так-же всё понятно.
Предполагаю, что нужно в модуле получать информацию из материала размеченную каким-то особым образом и в модуле её показать.

Нужен плагин контента, который будет обрабатывать контент, в поисках какой-то размеченной информации, в данном случае сумма. Модуль должен обращаться к этому плагину только на этой-же странице (или нет?) и получать эту информацию, затем отображать её. Так?


Мне кажется вы все усложняете.

Если автор поста сможет в тексте нужный участок (к примеру та же сумма) взять в тег span с определенным классом, например: <span class="chislo">2000</span>, то потом простым jQuery можно это число вытащить и поместить в нужное поле в модуле (на скриншоте в модуле явно видно что это обычный input).
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
orsy
А пример не подскажете где посмотрет
.val()
Спойлер
[свернуть]
вы правы input
« Последнее редактирование: 29.07.2015, 02:23:49 от leo78 »
*

orsy

  • Захожу иногда
  • 400
  • 23 / 1
  • Web-Factor Ukraine
ну вроде как-то так должно быть:

Код
var chislo = $("span.chislo").html(); /*получаем содержимое тега span*/
alert(chislo);/*проверяем что попадает в переменную? если все нормально, удаляем эту строку*/
$("input#obox-pay-1").val(chislo);/*закидываем значение в input*/

единственное но, я не помню кушает ли jQuery значения ID с тире и подчеркиваниями, но вроде должен.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
единственное но, я не помню кушает ли jQuery значения ID с тире и подчеркиваниями, но вроде должен.
кушает, главное, чтобы в кавычках было.
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
orsy, AlekVolsk
Спасибо!
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Не работает
демо
*

orsy

  • Захожу иногда
  • 400
  • 23 / 1
  • Web-Factor Ukraine
Не работает
демо

может потому что отсутствует input? или отсутствует текст в нужном спане?
*

orsy

  • Захожу иногда
  • 400
  • 23 / 1
  • Web-Factor Ukraine
я в вашем демо не нашел поля input с ID "obox-pay-1" но нашел "robox-pay-1" может в этом все дело? )

я когда писал пример, допустил ошибку в значении ID. Замените ID на верный.
« Последнее редактирование: 29.07.2015, 12:38:33 от orsy »
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Спасибо, там wm-pay-1, rupay-pay-1, robox-pay-1
Спойлер
[свернуть]

Работает
демо

только у меня на сайте в таком виде не работает
Код
var chislo = $("span.chislo").html();
$("input#wm-pay-1").val(chislo);
$("input#rupay-pay-1").val(chislo);
$("input#robox-pay-1").val(chislo);
Uncaught TypeError: $ is not a function
« Последнее редактирование: 29.07.2015, 12:58:30 от leo78 »
*

orsy

  • Захожу иногда
  • 400
  • 23 / 1
  • Web-Factor Ukraine
замените в коде $ на jQuery и все заработает

Код
var chislo = jQuery("span.chislo").html();
jQuery("input#wm-pay-1").val(chislo);
jQuery("input#rupay-pay-1").val(chislo);
jQuery("input#robox-pay-1").val(chislo);
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
прости виноват все заработало
Код
jQuery(function($){
var chislo = $('span.chislo').html();
$('input#wm-pay-1, input#rupay-pay-1, input#robox-pay-1').val(chislo);
    });
« Последнее редактирование: 29.07.2015, 14:33:30 от leo78 »
*

orsy

  • Захожу иногда
  • 400
  • 23 / 1
  • Web-Factor Ukraine
Код
jQuery(function($)
var chislo = $("span.chislo").text();
$('input#wm-pay-1, input#rupay-pay-1, input#robox-pay-1').val(chislo);
    });

по аналогии с приведущим блоком
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
orsy
Все работает спасибо!

Еще вопрос, внешне отобразить, а код не изменился...
Спойлер
[свернуть]

Возможно сделать, чтобы код менялся?

« Последнее редактирование: 29.07.2015, 14:35:38 от leo78 »
*

orsy

  • Захожу иногда
  • 400
  • 23 / 1
  • Web-Factor Ukraine
orsy
Все работает спасибо!

Еще вопрос, внешне отобразить, а код не изменился?
Спойлер
[свернуть]

Возможно сделать, чтобы код менялся?


ты имеешь ввиду сумму?
не изменился исходный код страницы или при просмотре в фаербаге?
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Средствами PHP это можно через буфер Joomla сделать.
Получаете буфер. Далее посредством DOM или регулярки (на свой вкус) получаете нужный кусок данных и выводите.
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
orsy
сумма видна это получилось, а в самом коде не происходит замена суммы.
Только такое не со всеми плате системами работает надо, чтобы и в коде были изменения
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Shustry
Спасибо. Попробую почитать, не совсем понимаю, как это работает.
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Код: php
$document = JFactory::getDocument();
$buffer=$document->getBuffer(component);
$pattern = 'регулярное выражение';
preg_match($pattern, $buffer, $matches);
echo $matches;
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
Код
$document = JFactory::getDocument();
$buffer=$document->getBuffer(component);
$pattern = 'span.chislo';
preg_match($pattern, $buffer, $matches);
echo $matches;

примерно понял, попробую, спасибо!
*

leo78

  • Завсегдатай
  • 1018
  • 62 / 8
  • I left from paradise!?...
не работает

Код
$document = JFactory::getDocument();
$buffer=$document->getBuffer(component);
$pattern = 'span.chislo';
preg_match($pattern, $buffer, $matches);
echo $matches;
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
О_О
Кто ж так регулярки составляет. И, потом, в $matches возможно массив вовзращается.
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Так попробуйте

Код: php
$document = JFactory::getDocument();
$buffer=$document->getBuffer(component);
$pattern = '|<span class="chislo">(.*)</span>|isU';
preg_match($pattern, $buffer, $matches);
echo $matches[0][1];
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модернизировать модуль

Автор kurz

Ответов: 4
Просмотров: 535
Последний ответ 13.09.2022, 15:35:31
от kurz
[SP Page Builder] Модуль ajax contact в модальном окне

Автор TW-WEB

Ответов: 2
Просмотров: 3013
Последний ответ 24.02.2018, 17:34:50
от TW-WEB
Модуль авторизации OpenId

Автор greytm

Ответов: 7
Просмотров: 3225
Последний ответ 04.11.2016, 00:04:31
от KypuHa9_Hora
Как вставить модуль в контент компонента

Автор sava36

Ответов: 21
Просмотров: 18411
Последний ответ 15.06.2016, 09:55:51
от Ilja93
Как вставить модуль в код нужной страницы php?

Автор zvi

Ответов: 7
Просмотров: 3664
Последний ответ 12.04.2016, 19:36:55
от AlekVolsk