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

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия

Представляю Вашему внимания достаточно универсальный модуль для VirtueMart, версия mod_VirtueMart_universal для Joomla 1.5.


Версия модуля 2.1.1 (теперь в общем доступе)
Скачать


[spoiler title=Новые возможности модуля версии 2.1]
  • кнопка "добавить в корзину" на ajax
  • визуальный выбор категорий и возможность включать вложенные подкатегории
  • различные варианты вывода цены (с учетом налога и скидки)
  • многоязычность (в текущем виде только рус\англ), константы вынесены в языковые файлы language\ru-RU\ru-RU.mod_virtuemart_universal.ini
  • различные варианты вывода изображения в модуле с эффектами lightbox и\или zoom
   
[/spoiler]

Почему этот модуль, а не родной от разработчика VirtueMart Soeren - родной модуль на 6 товаров генерит от 40 запросов в БД, мой же только один SQL запрос

Возможности
 - показать последние добавленные товары
 - показать наиболее продаваемые товары
 - показать товары, отмеченные как featured
 - показывать случайные товары
 - задать количество показываемых товаров
 - задать категории для выборки (ID через запятую)
 - возможно включения JS подсказок для ссылок в модуле, с использованием либо встроенной библиотеки Mootools либо Jquery. Внимание - Jquery не включена в модуль, подключение библиотеки в код контролируйте самостоятельно. Если на сайте одновременно подключены обе библиотеки - JS эффект подсказок отрабатывать не будет, покажется стандартный title для ссылки. JS эффекты отрабатываются для элемента title для .mod_vm_universal a, для полноценного управления изучите CSS. Оформление заложено в файле modules\mod_VirtueMart_universal\files\mod_virtuemart_universal.css (см. комментарии)

Дополнительно:
 - код максимально документирован, смотрите файл modules\mod_VirtueMart_universal\tmpl\default.php для создания собственного шаблона (внимание - класс mod_vm_universal используется для работы JS tooltip)
[spoiler title=справка по шаблону]
   Справка по использованию шаблона:
Код: php
$item->pname - заголовок (название) товара
$item->link - ссылка на полную карточку товара
$item->pimage - картинка товара, не забываем про полный путь до нее
$item->price - цена товара
$item->currency - валюта (денежная единица)
$item->intro - краткое описание товара, очищенное от HTML тегов, по умолчанию выводится как TITLE для картинки и ссылки  "подробнее"
[/spoiler]
 - для достижения валидности и уменьшения нагрузки на сервер перед публикацией сайта на production рекомендуется все JS и CSS файлы компоновать в один файл и применять сжатие (работа соответствующих инструментов и азы создания сайтов находятся вне данной темы)
 - для достижения валидности необходимо подключить скрипт Jquery и  Mootools до вызова скриптов тултипов (всплывающих подсказок), смотри комментарии в helper.php) в блоке HEAD, по умолчанию они выводятся в BODY для работы на 99% хостов без конфликтов
 - по умолчанию HTML структура модуля для каждого элемента такова:
[spoiler title=html вывод элементов модуля]
Код: php-brief
<div class="mod_vm_universal">
 <span class="mod_vm_title">Название товара</strong><br />
 <a href="link" title="Название товара - краткое описание" class="mod_vm_link">
    <img src="linkImg" alt="Название товара - краткое описание" />
  </a>
  <br />
  <a href="link" title="Название товара - краткое описание" class="mod_vm_readmore">Подробнее</a>
  <br />
  <span class="mod_vm_price">Цена: 1000 рублей</span>
</div>
[/spoiler]
 - если у вас VirtueMart используется в качестве каталога (и соответственно нет цен) - решение ниже

[spoiler title=скриншот модуля]

[/spoiler]

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

Тестировал на Joomla 1.5.10-12 и VirtueMart 1.1.3, огромная благоданость Sulpher за тестирование и общие рекомендации

[spoiler title=Версия модуля 1.2.3]
  • Если для товара не назначено изображение выводится картинка по умолчанию components/com_virtuemart/themes/default/images/noimage.gif (спасибо Sulpher)
[/spoiler]

[spoiler title=Версия модуля 1.2.2]
  • Добавлена возможность показа иконки для товаров с скидкой
  • Добавлена возможность либо автоматически определять ItemID ссылки в меню, ведущей на магазин, либо руками задавать в настройках модуля. Для чего - чтобы при переходе по ссылкам модуля корректно работала активность пункта меню, хлебные крошки и прочие привязки
[/spoiler]

UPD
[spoiler title=Версия модуля 1.2.1]
  • Добавлена возможность обрезания цены до точки (пример: 48.12000 -> 48)
  • Добавлена случайная сортировка товаров (если при кол-ве записей в БД более 10 000 будут проблемы с производительностью - пишите, будут менять алгоритм)
[/spoiler]

[вложение удалено Администратором]
« Последнее редактирование: 24.05.2015, 11:33:11 от beliyadm »
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

morph

  • Давно я тут
  • 924
  • 105 / 0
+1 однозначно!первый модуль для VirtueMart  со структурой и использованием всего функционала 1.5.
*

Sulpher

  • Живу я здесь
  • 2126
  • 402 / 16
  • Шаблоны и расширения Joomla
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Пётр, у тебя так быстро и хорошо получилось, может ты нам и vm перепишешь? :) +1
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
может ты нам и vm перепишешь?
чур меня чур :)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

sova

  • Захожу иногда
  • 135
  • 22 / 1
Модуль супер.
А для универсальности есть ли возможность добавить:
1. Возможность вывода случайных товаров.
2. Выбор вывода товаров -  (горизонтально/вертикально).?

Поживу - увижу, доживу - узнаю, выживу - учту
*

Sulpher

  • Живу я здесь
  • 2126
  • 402 / 16
  • Шаблоны и расширения Joomla
2. Выбор вывода товаров -  (горизонтально/вертикально).?
Это можно сделать с помощью CSS. Модуль специально написан на div'ах, дабы не засорять сайт таблицами.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Модуль супер.
А для универсальности есть ли возможность добавить:
1. Возможность вывода случайных товаров.
2. Выбор вывода товаров -  (горизонтально/вертикально).?
спасибо :)
1 - можно, заложил на будущее, на днях добавлю (сделано в версии 1.2.1)
2 - настраивается в CSS, по умолчанию для mod_vm_universal прописаны стили float: left, убрать и будут выстраиваться друг под другом
« Последнее редактирование: 13.07.2009, 17:13:58 от beliyadm »
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Модуль обновлен до 1.2.1
  • Добавлена возможность обрезания цены до точки (пример: 48.12000 -> 48)
  • Добавлена случайная сортировка товаров (если при кол-ве записей в БД более 10 000 будут проблемы с производительностью - пишите, будут менять алгоритм)
« Последнее редактирование: 13.07.2009, 17:10:26 от beliyadm »
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

dmon47

  • Новичок
  • 3
  • 0 / 0
У меня почему то модуль ничего не отображает. Опубликовал его, вывел в позицию left. Название модуля появилось, но больше ничего не отображается. В VirtueMart забито 2 товара в одну категорию, остальные 5 категорий пустые. В модуле даже выставлял Id категории, в которой есть товары.

Я использую Joomla 1.5.12 и VirtueMart 1.1.3.

Не подскажите, что может быть не так?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
dmon47 - товары опубликованы? У них есть цена (в текущей версии модуля если у товара нет цены - он не выводится)?
Других условий как бы нет..
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

dmon47

  • Новичок
  • 3
  • 0 / 0
Товары опубликованы, но цены нет. VirtueMart работает в режиме каталога.
А где копать, чтобы выводилось даже если цен нет? В модуле или шаблоне?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Товары опубликованы, но цены нет. VirtueMart работает в режиме каталога.
А где копать, чтобы выводилось даже если цен нет? В модуле или шаблоне?
В модуле.
1 - в файле helper.php модуля найти запрос
Код: php
$query = 'SELECT p.product_id AS pid, p.product_sku AS psku, p.product_thumb_image AS pimage, p.product_name AS pname, ' .
' cx.category_id AS catid, '.$ceil_price.', p.product_s_desc AS pintro, pp.product_currency AS currency '.
' FROM #__vm_product p ' .
' RIGHT JOIN #__vm_product_category_xref AS cx ON p.product_id = cx.product_id'.
' RIGHT JOIN #__vm_product_price as pp ON pp.product_id = p.product_id ' .
' WHERE p.product_publish= "Y" '.$where.' GROUP BY pid  ORDER BY '.$ordering.' LIMIT '.$max_items.'';
и заменить на
Код: php
$query = 'SELECT p.product_id AS pid, p.product_sku AS psku, p.product_thumb_image AS pimage, p.product_name AS pname, ' .
' cx.category_id AS catid, p.product_s_desc AS pintro '.
' FROM #__vm_product p ' .
' RIGHT JOIN #__vm_product_category_xref AS cx ON p.product_id = cx.product_id'.
' WHERE p.product_publish= "Y" '.$where.' GROUP BY pid  ORDER BY '.$ordering.' LIMIT '.$max_items.'';
Ниже в этом же файле удалить строки
Код: php
$lists[$i]->price = $row->pprice;
$lists[$i]->currency = $row->currency;
И из tmpl\default.php убрать строку
Код
<span class="mod_vm_price">Цена: <?php echo $item->price; ?> <?php echo $item->currency; ?></span>

После этого по идее должно работать
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

dmon47

  • Новичок
  • 3
  • 0 / 0
ОГРОМНОЕ СПАСИБО!!! Все заработало!
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
ОГРОМНОЕ СПАСИБО!!! Все заработало!
и вам спасибо, не подумал про эту фишку, пока обновил первый пост в виде хака, позже надо будет внести в функционал модуля для следующей версии
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Sulpher

  • Живу я здесь
  • 2126
  • 402 / 16
  • Шаблоны и расширения Joomla
Петь, а по поводу константы "цена" - забыли вынести в настройки модуля, чтобы можно было это слово на др. язык прямо из админки перевести, не лазя в исходник модуля (что, в принципе, тоже не сложно, но ради универсальности можно сделать то, о чем говорили ранее)
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Жень - в следующей версии в настройки будет вынесено слово ЦЕНА и ПОДРОБНЕЕ, вместе с парой правок самого модуля, суть позже
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Akirad

  • Новичок
  • 4
  • 0 / 0
Модуль супер!!!
но есть перу нюансов: 1) Картинка выходит за облать модуля
                                 2) Валюта выводиться из списка валют, но не преобразовываеться в "Символ валюты:"
Если только у меня, то где это исправить?
СпС. !!!???!!!      
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
1 - это верстка, HTML вывод модуля я описал в первом посте (по умолчанию в стилях размеры одного блока заданы жестко, если у вас в настройках магазина картинка больше чем у меня при тестировании - будет выходить, поправить легко)
2 - я не закладывал преобразование валюты в символ, если надо поменять - открываем файл modules\mod_VirtueMart_universal\tmpl\default.php и заменяем <?php echo $item->currency; ?> на нужный нам символ валюты
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Akirad

  • Новичок
  • 4
  • 0 / 0
1 - это верстка, HTML вывод модуля я описал в первом посте (по умолчанию в стилях размеры одного блока заданы жестко, если у вас в настройках магазина картинка больше чем у меня при тестировании - будет выходить, поправить легко)
2 - я не закладывал преобразование валюты в символ, если надо поменять - открываем файл modules\mod_VirtueMart_universal\tmpl\default.php и заменяем <?php echo $item->currency; ?> на нужный нам символ валюты
Спс за быстрый ответ)
Если не сложно, ответить более широко.
Что нужно написать для вывода уменьшиного изображения?
на, что нужно заменить <?php echo $item->currency; ?> чтоб получить символ?
Зарание благодарен)
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Что нужно написать для вывода уменьшиного изображения?
в файле стилей modules\mod_VirtueMart_universal\files\mod_VirtueMart_universal.css изменить ширину\высоту блока
Код: css
.mod_vm_universal {
float: left; width: 200px; height: 200px; border: 1px solid #ccc; margin: 5px; padding: 5px;
text-align: center !important;
}
на, что нужно заменить <?php echo $item->currency; ?> чтоб получить символ?
на символ валюты, к примеру $
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Akirad

  • Новичок
  • 4
  • 0 / 0
в файле стилей modules\mod_VirtueMart_universal\files\mod_VirtueMart_universal.css изменить ширину\высоту блока
Код: css
.mod_vm_universal {
float: left; width: 200px; height: 200px; border: 1px solid #ccc; margin: 5px; padding: 5px;
text-align: center !important;
}
на символ валюты, к примеру $
С символом все гуд.Спс.
А вот картинка, стоит на месте(
 изменяя ширину\высоту блока - не изменяеться размер картинки, думал вставить кусок кода вывода картинки с flypage-страницы ну что-то не выходить.
Может у Вас получиться прикруть ??

*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
я совершенно не понимаю вашей проблемы, показали бы скриншот, сказали бы каких размеров превьюшка из товара выводится
Можете еще задать размеры картинки в html
Код
<img src="<?php echo JURI::base(); ?>components/com_VirtueMart/shop_image/product/<?php echo $item->pimage; ?>" alt="<?php echo $item->pname; ?> - <?php echo $item->intro; ?>" />
заменить на
Код
<img width="150" src="<?php echo JURI::base(); ?>components/com_VirtueMart/shop_image/product/<?php echo $item->pimage; ?>" alt="<?php echo $item->pname; ?> - <?php echo $item->intro; ?>" />
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Akirad

  • Новичок
  • 4
  • 0 / 0
:) Все было так просто!!!
Спасибо
*

Romarios

  • Новичок
  • 3
  • 0 / 0
 !!!???!!! Выручайте! Поставил модуль и сайт мой рухнул.
После длительного ожидания того, что страничка загрузится выпадает ошибка "CGI script error  Ошибка исполнения CGI приложения"
Админка работает, модуль удалял но ничего не изменилось!
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Модуль (как и сам движок) к CGI приложениям не имеет никакого отношения и физически не может давать такую ошибку.
Значит причина не в этом, почитайте error.log сервера на предмет каких-либо ошибок
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Romarios

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

Можешь в аську выйти пообщаться?
ICQ 6947262

Спасибо!
Классный модуль!
Все настроил как надо вот только вопрос один...
Как можно сделать так что б модуль выводился только на одной странице (на главной, для которой я назначил отдельный шаблон с юзерблоком1, в котором и отображается этот модуль)? Просто если кликнуть на "подробнее" инфа грузится в томже шаблоне, который назначен для главной страницы...
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
FenderQ - есть такое дело, причина в том что модуль отдает информацию по ItemID текущей страницы, вот привязка шаблона и остается старой. Для решения внесем изменение в файл helper.php модуля
найдем строку
Код: php
$Itemid = JRequest::getInt( 'Itemid', 1, 'get' );
и заменим на
Код: php
$Itemid = '10';
где 10 это ItemID пункта меню, который собственно и ссылается на VirtueMart, а сам модуль в настройках привяжем только к главной странице

Наверно надо добавить в модуль дополнительный запрос, чтобы автоматом вытягивал ItemID из меню, что ссылается на магазин, но тут есть подводные камни (если ссылок несколько и так далее), надо будет подумать над решением
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm

Сорри, уже сам нашел... проблема была в ИДшниках
Включил режим дружелюбных ссылок SEO и все норм
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

VirtueMart не может создать мини-изображение из .jpeg-файла

Автор Nick IntegraLL

Ответов: 12
Просмотров: 8205
Последний ответ 03.04.2019, 03:28:34
от Roki37
Как реализовать на VirtueMart такую карточку товара?

Автор AdmbVlad

Ответов: 0
Просмотров: 1715
Последний ответ 14.10.2015, 17:01:55
от AdmbVlad
mod VirtueMart featureprod редактирование

Автор vsokol

Ответов: 1
Просмотров: 1768
Последний ответ 10.04.2015, 08:07:41
от vsokol
Редактирование главной страницы VirtueMart

Автор cheni

Ответов: 13
Просмотров: 12221
Последний ответ 02.04.2015, 08:41:09
от flyingspook
Альтернативный модуль вывода категорий товаров (mod_kdz_vm_categories)

Автор kordima

Ответов: 89
Просмотров: 28277
Последний ответ 19.02.2015, 22:02:14
от kordima