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

Ishti39

  • Захожу иногда
  • 152
  • 8 / 1
 :D Помогите правильно прикрутить правило AUP для доски в функции продления объявления.
Функция:
Спойлер
[свернуть]
Код правила:
Спойлер
[свернуть]

Суть в том, чтобы когда пользователь продлял объявление с него списывались баллы, но если баллов не достаточно, то функция не выполнялась.

P.S.   +  в репу гарантирую. :)
« Последнее редактирование: 24.12.2015, 02:46:10 от Ishti39 »
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Код
<?php
require_once JPATH_SITE.DS.'components'.DS.'com_alphauserpoints'.DS.'helper.php';
$UserAUP = AlphaUserPointsHelper::getUserInfo( '', JFactory::getUser()->get('id') );
$sum_points = 500;// сумма баллов которые будет списано с пользователя

if($UserAUP->points >= $sum_points)
{
// выполняем метод renewContent();
$this->renewContent();

// и списываем необходимое кол-во баллов
$UserText = 'С Вашего счета было списано <b>'.$sum_points.'</b> баллов!';
AlphaUserPointsHelper::newpoints( 'sysplgaup_renewad', $UserAUP->referreid, "", $UserText, '-'.$sum_points, $UserText);
}
else
{
// выводим сообщение что недостаточно баллов...
}

?>
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

Ishti39

  • Захожу иногда
  • 152
  • 8 / 1
Код
<?php
require_once JPATH_SITE.DS.'components'.DS.'com_alphauserpoints'.DS.'helper.php';
$UserAUP = AlphaUserPointsHelper::getUserInfo( '', JFactory::getUser()->get('id') );
$sum_points = 500;// сумма баллов которые будет списано с пользователя

if($UserAUP->points >= $sum_points)
{
// выполняем метод renewContent();
$this->renewContent();

// и списываем необходимое кол-во баллов
$UserText = 'С Вашего счета было списано <b>'.$sum_points.'</b> баллов!';
AlphaUserPointsHelper::newpoints( 'sysplgaup_renewad', $UserAUP->referreid, "", $UserText, '-'.$sum_points, $UserText);
}
else
{
// выводим сообщение что недостаточно баллов...
}

?>
Подскажи пожалуйста, куда енто вставить?
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Подскажи пожалуйста, куда енто вставить?

там где вызываешь метод renewContent()
Вместо этой строчки которая вызывает этот метод вставляй этот код....

И не забудь заменить
Код
$this->renewContent();
на правильный код который вызывает этот метод...
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

Ishti39

  • Захожу иногда
  • 152
  • 8 / 1
там где вызываешь метод renewContent()
Вместо этой строчки которая вызывает этот метод вставляй этот код....

И не забудь заменить
Код
$this->renewContent();
на правильный код который вызывает этот метод...
У меня в \components\com_adsmanager\views\details\tmpl в default.php есть вывод текстовой кнопки Продлить объявление, как этот код правильно вмонтировать?

$target = TRoute::_("index.php?option=com_adsmanager&task=renew&catid".$this->content->category."&id=".$this->content->id);
                        echo "<a href='".$target."'>".JText::_('ADSMANAGER_RENEW_CONTENT')."</a>";
            echo "&nbsp;";
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Если ты говоришь что это функция продления renewContent, то ее и ищи где она вызывается...
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

Ishti39

  • Захожу иногда
  • 152
  • 8 / 1
Если ты говоришь что это функция продления renewContent, то ее и ищи где она вызывается...
вот в этом default.php и вызывается или может я что то не то понимаю?
*

Ishti39

  • Захожу иногда
  • 152
  • 8 / 1
Если ты говоришь что это функция продления renewContent, то ее и ищи где она вызывается...
есть ещё в файле controller.php:
Спойлер
[свернуть]
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
есть ещё в файле controller.php:

Ну вот, начало нашел, теперь найди файл модель ( Путь тебе уже указан, имя будет content.php )
в этом файле найди эту функцию и допиши код который я тебе дал...

Только для начала определи, какой отрезок кода в этой функции выполняет важную для тебя функцию - Продления
Пробуй методом тыка узнать!
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

Ishti39

  • Захожу иногда
  • 152
  • 8 / 1
Ну вот, начало нашел, теперь найди файл модель ( Путь тебе уже указан, имя будет content.php )
в этом файле найди эту функцию и допиши код который я тебе дал...

Только для начала определи, какой отрезок кода в этой функции выполняет важную для тебя функцию - Продления
Пробуй методом тыка узнать!
яж в самом первом посте и прописал эту функцию из этого content.php, надо в неё код правильно прописать AUP, у меня уже само правило создано в админке, там и сумма указана и сообщения указаны
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Какая переменная содержим суммы списанных баллов?
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

Ishti39

  • Захожу иногда
  • 152
  • 8 / 1
Какая переменная содержим суммы списанных баллов?
поставил -40 баллов
*

Ishti39

  • Захожу иногда
  • 152
  • 8 / 1
Какая переменная содержим суммы списанных баллов?
смысл то какой, что когда начинает вызываться функция renewContent сначала проверяется код правила AUP, есть ли средства на счету у пользователя, если есть, то они списываются и продолжается дальше выполнятся функция renewContent, если не достаточно средств, то функция не выполняеться и выводиться сообщение
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
смысл то какой, что когда начинает вызываться функция renewContent сначала проверяется код правила AUP, есть ли средства на счету у пользователя, если есть, то они списываются и продолжается дальше выполнятся функция renewContent, если не достаточно средств, то функция не выполняеться и выводиться сообщение

попробуй вот так...
Код: php
<?php
   function renewContent($contentid, $ad_duration)
   {
   require_once JPATH_SITE.DS.'components'.DS.'com_alphauserpoints'.DS.'helper.php';
   $UserAUP = AlphaUserPointsHelper::getUserInfo( '', JFactory::getUser()->get('id') );
   $sum_points = 500;// сумма баллов которые будет списано с пользователя
   
   if($UserAUP->points >= $sum_points)
   {
   $UserText = 'С Вашего счета было списано <b>'.$sum_points.'</b> баллов!';
   $iser_points = AlphaUserPointsHelper::newpoints( 'sysplgaup_renewad', $UserAUP->referreid, "", $UserText, '-'.$sum_points, $UserText);
   
   if($iser_points)
   {
   $this->_db->setQuery( "SELECT expiration_date FROM #__adsmanager_ads WHERE id = ".(int)$contentid);
   $expiration_date = $this->_db->loadResult();
   $time = strtotime($expiration_date);
   if ($time < time())
   {
   $time = time();
   }
   $time = $time + ( $ad_duration * 3600 *24);
   $newdate = date("Y-m-d H:i:s",$time);
   
   $this->_db->setQuery( "UPDATE #__adsmanager_ads SET expiration_date = '$newdate', date_created = NOW(),recall_mail_sent=0,published=1 WHERE id=".(int)$contentid."");//TODO and recall_mail_sent = 1
   $this->_db->query();
   }
   }
   else
   {
   echo 'не хватает баллов!';
   }
   }
?>
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

Ishti39

  • Захожу иногда
  • 152
  • 8 / 1
попробуй вот так...
Код: php
<?php
   function renewContent($contentid, $ad_duration)
   {
   require_once JPATH_SITE.DS.'components'.DS.'com_alphauserpoints'.DS.'helper.php';
   $UserAUP = AlphaUserPointsHelper::getUserInfo( '', JFactory::getUser()->get('id') );
   $sum_points = 500;// сумма баллов которые будет списано с пользователя
   
   if($UserAUP->points >= $sum_points)
   {
   $UserText = 'С Вашего счета было списано <b>'.$sum_points.'</b> баллов!';
   $iser_points = AlphaUserPointsHelper::newpoints( 'sysplgaup_renewad', $UserAUP->referreid, "", $UserText, '-'.$sum_points, $UserText);
   
   if($iser_points)
   {
   $this->_db->setQuery( "SELECT expiration_date FROM #__adsmanager_ads WHERE id = ".(int)$contentid);
   $expiration_date = $this->_db->loadResult();
   $time = strtotime($expiration_date);
   if ($time < time())
   {
   $time = time();
   }
   $time = $time + ( $ad_duration * 3600 *24);
   $newdate = date("Y-m-d H:i:s",$time);
   
   $this->_db->setQuery( "UPDATE #__adsmanager_ads SET expiration_date = '$newdate', date_created = NOW(),recall_mail_sent=0,published=1 WHERE id=".(int)$contentid."");//TODO and recall_mail_sent = 1
   $this->_db->query();
   }
   }
   else
   {
   echo 'не хватает баллов!';
   }
   }
?>
никакой реакции, только сообщение вылезло, что объявление продлено и всё, дата не обновилась и сумма не списалась :(
*

Ishti39

  • Захожу иногда
  • 152
  • 8 / 1
системные сообщения вообще можно не прописывать, они уже прописаны
*

Ishti39

  • Захожу иногда
  • 152
  • 8 / 1
функция renewContent без правила AUP работает, я его проверял
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
никакой реакции, только сообщение вылезло, что объявление продлено и всё, дата не обновилась и сумма не списалась :(

тогда добавь к условию if($iser_points) если...
Код: php
<?php else
  {
  echo 'проблемы с выполнением правила AUP';
  } ?>
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
никакой реакции, только сообщение вылезло, что объявление продлено и всё, дата не обновилась и сумма не списалась :(

покажи какой код у тебя получился?
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

Ishti39

  • Захожу иногда
  • 152
  • 8 / 1
покажи какой код у тебя получился?
не получается по этому коду, я сейчас вот так вставил:
Спойлер
[свернуть]

объявление продлилось, хотя баллов на счету не хватало, вылезло сообщение:

Системное сообщение

У вас не хватает Баллов!Ваше объявление продлено
*

Ishti39

  • Захожу иногда
  • 152
  • 8 / 1
покажи какой код у тебя получился?
Что надо ещё дописать? :(
« Последнее редактирование: 24.12.2015, 11:43:07 от Ishti39 »
*

Ishti39

  • Захожу иногда
  • 152
  • 8 / 1
покажи какой код у тебя получился?
:D NewUsers посмотри, что у меня не так получилось  :o
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
:D NewUsers посмотри, что у меня не так получилось  :o

Я тебе дал готовый код. Ты знаешь куда его надо вставить...
Посмотри внимательно на свой и мой код...
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

Ishti39

  • Захожу иногда
  • 152
  • 8 / 1
Я тебе дал готовый код. Ты знаешь куда его надо вставить...
Посмотри внимательно на свой и мой код...
NewUsers я не знаю как правильно вставить:
<?php else
         {
            echo 'проблемы с выполнением правила AUP';
         } ?>
я в рнр неособо понимаю и у меня там в content.php с этими знаками <?php....?> не вставляется, можешь полностью с доработками и без этих <?php....?> знаков написать?
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Попробуй!
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

Ishti39

  • Захожу иногда
  • 152
  • 8 / 1
Попробуй!
Написало:Ваше объявление продлено!Дата не изменилась никак, а про баллы вообще тишина  :(
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Создай новое правило для AUP
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

Ishti39

  • Захожу иногда
  • 152
  • 8 / 1
Создай новое правило для AUP
с таким же Уникальным именем функции sysplgaup_renewad?
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
с таким же Уникальным именем функции sysplgaup_renewad?

А смысл его тогда создавать, если создашь с таким же именем. Конечно новое пропиши!
Не забудь изменить имя плагина в файле....
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

Ishti39

  • Захожу иногда
  • 152
  • 8 / 1
А смысл его тогда создавать, если создашь с таким же именем. Конечно новое пропиши!
Не забудь изменить имя плагина в файле....

тоже самое  :( ничего не изменилось :'(
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

AlphaUserPoints - Ошибка

Автор Alexander_Fyodorov

Ответов: 0
Просмотров: 2938
Последний ответ 25.11.2019, 13:55:17
от Alexander_Fyodorov
AlphaUserPoints проблемы настройки

Автор Lada

Ответов: 0
Просмотров: 3332
Последний ответ 04.06.2018, 13:13:19
от Lada
Конец эры AlphaUserPoints?

Автор b2z

Ответов: 43
Просмотров: 11855
Последний ответ 24.03.2018, 01:42:04
от ovclub
Интеграция AlphaUserPoints и CommunityBuilder

Автор DamianTrash

Ответов: 2
Просмотров: 5366
Последний ответ 08.02.2017, 20:28:29
от boriska
JoomShopping + AlphaUserPoints

Автор TyT

Ответов: 8
Просмотров: 7343
Последний ответ 04.01.2017, 01:21:01
от axel030392