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

Алексей Жуков

  • Новичок
  • 3
  • 0 / 0
Тоже столкнулся с данной проблемой. Опишу по порядку.
Я установил Joomla 2.5.4 и VirtueMart 2.0.6

Столкнулся со следующей проблемой. При  обычной регистрации (не через модуль Virtuemart) возникает ошибка "Не удалось

вызвать функцию mail".
После этой ошибки пользователь в Joomla создается (без активации), а письмо не приходит не администратору, не самому

пользователю об регистрации.
Когда регистрацию провожу через VirtueMart, то письма также никуда не приходят, также пользователь в Joomla создается

(без активации), но при все этом на сайте об ошибках ничего не говорится после регистрации, а говорится, что ждите

письма.
В настройках выставлены:
Способ отправки  PHP mail
E-mail сайта название@название_сайта.ru (т.е. адрес почты созданный на моем сайте)
Отправитель письма Бла-бла-бла
Путь к Sendmail /usr/sbin/sendmail
Авторизация на SMTP-сервере НЕТ
Защита SMTP НЕТ
Порт SMTP-сервера 25
Имя пользователя SMTP (здесь имя пользователя для  SMTP, взятое у хостинга в админ панели)
Пароль для SMTP (здесь пароль, взятое у хостинга в админ панели)
SMTP-сервер (здесь имя SMTP-сервера, взятое у хостинга в админ панели)


При все при этом если начинаю проверять, как работет PHP mail, то все ОК.
Проверяю следующим образом это:
создаю в корне сайта, где лежит index.php, фал test.php со следующим содержанием:

<?php
if (mail("моя_почта@mail.ru", "Тест сайта Занимательно", "бла бла...\nбла...бла...."))
  echo 'OK';
else
  echo 'ERROR';
?>


Далее набираю в интернете www.название_своего_сайта/test.php и у меня появляется слово ОК + ко всему на почту (указанную

в теде файла test.php) приходит письмо



Теперь что я предпринимал:
1. Как многие пишут
Привёл запись в файле /libraries/phpmailer/phpmailer.php к виду:
$params = sprintf("-oi -f %s", $this->Sender);
$params = '';

Итог:

При обычной регистрации ошибка "......Не удалось вызвать функцию mail", а вместо нее появилась надпись

"Учетная запись для вас была создана. На указанный при регистрации адрес электронной почты была отправлена ссылка для её активации. Обратите внимание, что необходимо активировать учетную запись, перейдя по содержащейся в письме ссылке. Только после этого вы сможете проходить авторизацию на сайте под вашим логином и паролем."

Но толку от этого никагого, письма как не приходили так и не приходят.

При регистрации через VirtueMart также появилась красивая надпись: "Ваш аккаунт был создан. Письмо со ссылкой для его активации было отправлено на указанный адрес электронной почты"
но писем никаких не пришло пользователю, а вот админу сайта письмо о зарегистрированном пользователе пришло.

После стер  я стер $params = '';

2.Кто-то писал следующее(http://nikita-sp.com.ua/blog/2012/03/не-отправляются-письма-virtuemart-2-0-x-подтвержде/), но мне не помогло:


что в файле administrator/components/com_virtuemart/models/orders.php

нужно в коде:

if(empty($data['invoice_number'])) {
 
//$variable_fixed=sprintf("%05s",$num_rows);
 
$data['invoice_number'] = str_replace('-', '', substr(JFactory::getDate(),2,8)).substr(md5($orderDetails['order_number'].$orderDetails['order_status']),0,3).'0'.$count;
 
}


строку

$data['invoice_number'] = str_replace('-', '', substr(JFactory::getDate(),2,8)).substr(md5($orderDetails['order_number'].$orderDetails['order_status']),0,3).'0'.$count;

сделать такой

$data['invoice_number'] = substr(md5($orderDetails['order_number'].$orderDetails['order_status']),0,3).'0'.$count;

*

Алексей Жуков

  • Новичок
  • 3
  • 0 / 0


3. Следующим шагом стало изменение в настройках Joomla почтовых настроек, в итоге были выбраны:

Теперь в  настройках стали выставлены:
Способ отправки  SMTP
E-mail сайта название@название_сайта.ru (т.е. адрес почты созданный на моем сайте)
Отправитель письма Бла-бла-бла
Путь к Sendmail /usr/sbin/sendmail
Авторизация на SMTP-сервере ДА
Защита SMTP НЕТ
Порт SMTP-сервера 25
Имя пользователя SMTP (здесь имя пользователя для  SMTP, взятое у хостинга в админ панели)
Пароль для SMTP (здесь пароль, взятое у хостинга в админ панели)
SMTP-сервер (здесь имя SMTP-сервера, взятое у хостинга в админ панели)


Итог при обычной регистрации красивая надпись:
"Учетная запись для вас была создана. На указанный при регистрации адрес электронной почты была отправлена ссылка для её активации. Обратите внимание, что необходимо активировать учетную запись, перейдя по содержащейся в письме ссылке. Только после этого вы сможете проходить авторизацию на сайте под вашим логином и паролем."

Урра казалось бы, пришло письмо пользователю  орегистрации, которое никогда не приходило.А в теле письма текст: "Чтобы активировать учётную запись, перейдите по ссылке ниже, или скопируйте её в адресную строку браузера:"

И когда я попытался пройти по этй ссылке, действительно УРРА: "Ваша учетная запись была успешно активирована. Теперь вы можете войти, используя логин и пароль, указанные при регистрации."

Но к сожалению админу сайта письмо не пришло (

И все равно нужно сделать через Vitruemart, и когда я попробовал через Vitruemart, то сперва появилась после регистрации надпись: "Ваш аккаунт был создан. Письмо со ссылкой для его активации было отправлено на указанный адрес электронной почты."

Затем мгновенно пришло письму админу сайта о новом зарегестрированном пользователе, с Е-mail, указанномц в настройказ Joomla SMTP

И также письмо пришло пользователю о регистрации: УРРРРАА.... (((((((( Но появилась новая проблема....

После того как я прохожу по ссылке из письма пользователю, чтобы активировать учетку, то сообщение: "Не удалось зарегистрировать пользователя: Код подтверждения не найден."
« Последнее редактирование: 09.06.2012, 08:57:00 от Алексей Жуков »
*

Алексей Жуков

  • Новичок
  • 3
  • 0 / 0
4. Следующим шагом стало изменение в настройках Joomla почтовых настроек, в итоге были выбраны:

Теперь в  настройках стали выставлены:
Способ отправки  Sendmail
E-mail сайта название@название_сайта.ru (т.е. адрес почты созданный на моем сайте)
Отправитель письма Бла-бла-бла
Путь к Sendmail /usr/sbin/sendmail
Авторизация на SMTP-сервере ДА
Защита SMTP НЕТ
Порт SMTP-сервера 25
Имя пользователя SMTP (здесь имя пользователя для  SMTP, взятое у хостинга в админ панели)
Пароль для SMTP (здесь пароль, взятое у хостинга в админ панели)
SMTP-сервер (здесь имя SMTP-сервера, взятое у хостинга в админ панели)

Итог при обычной регистрации красивая надпись:
"Учетная запись для вас была создана. На указанный при регистрации адрес электронной почты была отправлена ссылка для её активации. Обратите внимание, что необходимо активировать учетную запись, перейдя по содержащейся в письме ссылке. Только после этого вы сможете проходить авторизацию на сайте под вашим логином и паролем."

Письмо приходит только пользователю, администратору не приходит. Активация учетной записи происходит успешно.

Попробовал через VirtueMart зарегистрироваться, итоги:
появилась обнадеживающая надпись "Ваш аккаунт был создан. Письмо со ссылкой для его активации было отправлено на указанный адрес электронной почты"
письмо на администратора сайта пришло, в отличие от 1 случая. Но вот пользователю не пришло (

*

Olof

  • Новичок
  • 7
  • 0 / 0
Получилось ли решить проблему? У меня таже проблема "Не удалось вызвать функцию mail". Перепробовал множество вариантов, результата нет, нормальной доставки писем нет, то сработает один вариант, то другой, потом не работает ни один.
*

plat_on

  • Осваиваюсь на форуме
  • 39
  • 0 / 0
проблема сверх сложная видимо) у самого тоже самое.
еще пишут, что скорость у хостинга не пропускает письмо. virtuemart  отправляет сразу два письма, и если скорость хоста слабая, то проходит только одно из писем, только покупателю. не знаю так ли это. но проблема имеет место
*

Darkman

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
*

swyatoslaw.ivanovich

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Действительно, кто нашел решение проблемы??
*

antfrolov

  • Захожу иногда
  • 83
  • 2 / 2
Присоединяюсь к актуальности задачи.
*

bixitron

  • Осваиваюсь на форуме
  • 34
  • 1 / 0
Тоже уже какой день бьюсь - VirtueMart 2.0.24 не отсылает письма о заказе ни админу, ни покупателю... На хостинге (Бегет) ответили так:
Цитировать
При отправке почты через функцию mail() происходит отправка с адреса вашего текущего сервера. Так как сервер разделен с другими пользователями, не исключена вероятность попадания этого сервера в серые списки, когда требуется подверждение отправки письма, что при автоматической отправке невозможно. В данном случае лучше всего настроить отправку корреспонденции через протокол smtp с нашего или стороннего почтового сервера, большиство современных CMS позволят это сделать "из коробки" или при помощи сторонних расширений. Стоит учитывать, что использовать надо альтернативный от 25 порт(у нас это 2525)

Что только не пробовал - результата нет. Перед этим на последнем шаге оформления заказа вылетала белая страница, писал хостеру - эту проблему решили, но после этого письма отправляться перестали.
*

Kazakh

  • Новичок
  • 2
  • 0 / 0
Если при регистрации нового пользователя Joomla сайт выдает ошибку и/или письмо активации со ссылкой приходит не пользователю, а админстратору сайта (наверно вы указали почту типа @mail.ru), надо поступит так:
1) В панели управления хостера создать почтовый ящик: имя_почты@сайт.kz(ru)!
2) В панели управления "WWW домены" указать эту же почту!
3) В Административной панели сайта Joomla везде указать эту же почту!
*

sonics

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
 у меня пишет "ОК" после запуска test.php, однако на почту ничего не приходит!? в чем может быть проблема?
*

EndVal

  • Захожу иногда
  • 54
  • 10 / 0
Если появляется "Не удалось вызвать функцию mail" и другие типа этого, даже при смене способа отправки: PHP mail, sendmail, SMTP по адресу общие настройки ->сервер-> настройки почты, обращайтесь к хостингу. Это у них не идет отправка почты. 99,9% что автоматом заблокирован ящик из-за отправки большого количества спама с вашего аккаунта
(вы даже не будете сами знать этого, возможно что и сам хостинг тоже).
Это означает, что у вас на сайте вирус. И он рассылает спам, пользуясь вашей почтой. Проблема серьезная, помогут только на хостинге или специалисты.
Вспомните, не приходили ли письма с gif файлом.  Не открывайте такой файл, он полон php, который и вызывает рассылку спама.
Где-то на сайте сидит зловредный скрипт, посмотрите логи.
*

EndVal

  • Захожу иногда
  • 54
  • 10 / 0
Напрмер, у меня была такая проблема.
Результат работы с хостингом (спасибо им, привожу ответ):
Была заблокирована почта из-за рассылки спама.
Логи отправок сообщений за последние 3 дней:
.-------+-------------------------------------------------------------------------------------------.
| Count | File name |
+-------+-------------------------------------------------------------------------------------------+
| 124 | /home/e/?/public_html/images/joomgallery/details/.plugin96.php(1505) |
| 21 | /home/e/?/public_html/libraries/phpmailer/phpmailer.php |
| 6 | /home/e/?/public_html/libraries/phpmailer/phpmailer.php |
| 3 | /home/e/?/public_html/libraries/phpmailer/phpmailer.php |
| 3 | /home/e/?/public_html/libraries/phpmailer/phpmailer.php |
| 2 | /home/e/?/public_html/a.php |
| 1 | /home/e/?/public_html/libraries/phpmailer/phpmailer.php |
'-------+-------------------------------------------------------------------------------------------'

Файл: /home/e/?/public_html/images/joomgallery/details/.plugin96.php

Я почистил учётную запись от вирусов. Разблокировал phpmail(). В тоже время рекомендую вам обратиться к фирме, которая оказывает услуги по поиску уязвимостей на сайте, устранению оных, а так же по поиску и устранению вредоносов.
*

mansa

  • Новичок
  • 1
  • 0 / 0
В таких вариантах можно использовать отправку писем с помощью сокетов через SMTP сервера gmail или Яндекс. Подробно прочитать можно тут http://fakir.name/mail-php-ssl/
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

VirtueMart -- создание заказа

Автор mindguru

Ответов: 3
Просмотров: 1716
Последний ответ 02.11.2023, 13:59:05
от mindguru
Скачать - Плагин заказа на 1 странице

Автор gartes

Ответов: 171
Просмотров: 28385
Последний ответ 17.05.2023, 15:06:22
от mansonfaust
Отключить подтверждение заказа

Автор Nikoz

Ответов: 13
Просмотров: 11309
Последний ответ 20.01.2023, 13:48:07
от smls
Валидация дополнительного поля при оформлении заказа

Автор Helikonst

Ответов: 2
Просмотров: 2246
Последний ответ 04.12.2022, 14:21:41
от Helikonst
При регистрации в VirtueMart поле Password перестало быть обязательным

Автор Slava77

Ответов: 10
Просмотров: 2715
Последний ответ 31.05.2021, 15:23:32
от Slava77