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

murovoz

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Уважаемые форумчане, подскажите пожалуйста! Работаю с AdsManager 2.9.13 Как бы все устраивало но вот понадобилось добавить функционала. Есть ли возможность добавить функцию снять с публикации по мимо редактировать и удалить в личном кабинете пользователя?  Спасибо!
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Есть ли возможность добавить функцию снять с публикации по мимо редактировать и удалить в личном кабинете пользователя?  Спасибо!

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

murovoz

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

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Что по чем?

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

biper

  • Осваиваюсь на форуме
  • 29
  • 0 / 1
ну и как ? сделали ? а то мне тоже нать такое :)
*

qudrat

  • Новичок
  • 2
  • 0 / 0
А мне он нужен для AdsManager 3.1.5. Дайте любой скрипт при готовности. Потом сам как нибудь переделяю для версии 3.1.5
*

Sabotage

  • Осваиваюсь на форуме
  • 28
  • 0 / 1
Похоже очень сложная функция. Никто не может сделать
*

grinat

  • Захожу иногда
  • 356
  • 34 / 2
Уважаемые форумчане, подскажите пожалуйста! Работаю с AdsManager 2.9.13 Как бы все устраивало но вот понадобилось добавить функционала. Есть ли возможность добавить функцию снять с публикации по мимо редактировать и удалить в личном кабинете пользователя?  Спасибо!
Дак там по моему есть перенос в архив. В настройках задать нужно категорию архив и туда будет сносится. Если нет ее, то по моему в models в файле content находиться код удаления, функция manage expire content или что-то в этом духе, закоментируйте там код удаления и вставьте запрос c update чтобы в бд publihed=1 менялось на published=0
*

biper

  • Осваиваюсь на форуме
  • 29
  • 0 / 1
может просто сделать "Обновить дату публикации" + 30 дней (для примера = количество дней до истечении срока публикации)
как кодом это будет не знаю... в php я полный нуб.. если есть кто в функциях просветленный, оформите в виде строки :)
*

Sabotage

  • Осваиваюсь на форуме
  • 28
  • 0 / 1
Это очень сложная функция, забудьте о ней, никто не сможет сделать.
*

Pavel

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
Это очень сложная функция, забудьте о ней, никто не сможет сделать.
;D
Туточки:  mysite.ru\administrator\components\com_adsmanager\models\content.php 
Добавляем функцию:
Код
function offpublishedContent($contentid)
{
$this->_db->setQuery( "SELECT published FROM #__adsmanager_ads WHERE id = ".(int)$contentid);
$published = $this->_db->loadResult();
if ($published != 1){
exit();
}
$this->_db->setQuery( "UPDATE #__adsmanager_ads SET expiration_date = 'NULL', recall_mail_sent = 0, published = 0  WHERE id=".(int)$contentid."");
$this->_db->query();
}

а туточки: mysite.ru\components\com_adsmanager\controller.php
вот такую:
Код
function offpubl() {
$app = JFactory::getApplication();

$contentid = JRequest::getInt('id', 0);

$this->addModelPath(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_adsmanager'.DS.'models');
$contentmodel =$this->getModel( "content" );

$confmodel =$this->getModel( "configuration" );
$conf = $confmodel->getConfiguration();

$c = $contentmodel->getContent($contentid,false);
if ($c == null)
exit();

if ($c->published == 0) {
exit();
}

$contentmodel->offpublishedContent($contentid);
$cache = JFactory::getCache( 'com_adsmanager');
$cache->clean();

$app->redirect(TLink::getMyAdsLink(), JText::_('ADSMANAGER_CONTENT_OFF'),'message');
}

В файле шаблона
такой код:   обставляем его нужными нам условиями и соответственно выводим

Код
$target = TRoute::_("index.php?option=com_adsmanager&task=offpubl&id=$content->id");
echo "<a href='".$target."'><i class='icon-unpublish'></i>".JText::_('ADSMANAGER_OFF_PUBL')."</a>";


и еще очень рекомендую сделать поднятие объявления в топ
это тут : Кнопка "Поднять объявление"

у меня это выглядит так, каждые 4 часа можно поднять объявление:

Код
function renewContent($contentid,$ad_duration)
{
$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);
$newdate = date("Y-m-d H:i:s",$time);

$this->_db->setQuery( "UPDATE #__adsmanager_ads SET expiration_date = '$newdate',date_created = NOW(), publication_date = NOW(), recall_mail_sent=0,published=1 WHERE id=".(int)$contentid."");
$this->_db->query();
}

там еще в паре файлов цифры поправить надо - но кто захочет думаю сообразит ^-^
*

Pavel

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
У кого есть вопросы, пишите, просто регистрируйтесь на сайте, и Вы уже ЧЛЕН общества, и не надо стесняться своей компетенции, мы все когда то ходили в подгузники, НО ВРЕМЯ ИДЕТ!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено]Дублирования ссылки "объвления" в breadcrumb, в компоненте AdsManager

Автор nicklas

Ответов: 4
Просмотров: 3379
Последний ответ 25.04.2024, 23:13:18
от Rinat abzyi
AdsManager вывод нужных полей по отдельности

Автор klekovkinandrey

Ответов: 2
Просмотров: 13881
Последний ответ 06.04.2024, 09:54:15
от Rinat abzyi
Редактировать все объявления

Автор den_ko

Ответов: 32
Просмотров: 11773
Последний ответ 25.11.2021, 10:43:38
от FlexNL
AdsManager загрузка файлов

Автор FlexNL

Ответов: 1
Просмотров: 2623
Последний ответ 21.10.2021, 17:20:09
от khan-alex
Два компонента AdsManager в одном движке

Автор kaman62

Ответов: 12
Просмотров: 28057
Последний ответ 27.03.2020, 22:32:04
от Pavel