Новости Joomla

Вышли релизы Joomla 6.1 и Joomla 5.4.5: новые возможности и стабильность

Релиз Joomla 6.1.0

Проект Joomla! объявил о доступности Joomla 6.1 [Nyota] — новой минорной версии шестой серии, а также о выпуске релиза исправлений ошибок Joomla 5.4.5. Релиз 6.1 приносит ряд долгожданных функций, повышающих удобство управления контентом и защиту от спама.

👩‍💻 Компонент "CS Афиши" для Joomla.

👩‍💻 Компонент "CS Афиши" для Joomla.

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

В состав пакета расширений входят:
- Компонент "CS Афиши"
- Модуль "Календарь событий"
- Модуль "Предстоящие события"
- Библиотека "ImgResize"

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

Модуль "Календарь событий" отображает предстоящие и прошедшие мероприятие на календаре, с отображением мероприятий на конкретную дату во всплывающем окне.

Модуль "Предстоящие события" показывает список предстоящий событий по порядку их наступления.

P.S. Расширение платное, но плата символическая, чисто для отработки приема платежей. Ключи без ограничения по времени, купившие сейчас - смогут обновляться без ограничений.

Разработчик - участник нашего сообщества Дмитрий Денисов (@codersite).

Страница расширения
Демо

Яндекс выпустил инструмент Видимость сайта в Алисе AI.

Яндекс выпустил инструмент Видимость сайта в Алисе AI.

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

Долгое время у всех был немой вопрос: "Как же теперь оценивать эффективность сайта?". Теперь этот на этот вопрос отчасти отвечает новый инструмент аналитики.
Процитируем справку Яндекса по инструменту:
На запросы пользователей в Поиске может отвечать Алиса AI. Ответы появляются в поисковой выдаче, в объектных ответах и на отдельной вкладке Поиска. В них чаще всего упоминаются страницы сайтов, на которые Алиса AI опиралась при подготовке ответа.

С помощью инструмента Видимость сайта в Алисе AI в Яндекс Вебмастере вы можете:
- узнать долю упоминаний сайта среди источников в ответах Алисы AI в Поиске и отследить динамику изменений;
- посмотреть примеры запросов, по которым страницы сайта показываются в ответах Алисы AI;
- посмотреть примеры сайтов той же тематики, которые часто упоминаются в генеративной выдаче.
Данные отображаются за последние 3 месяца и обновляются каждую неделю.

Статистика собирается только по тем запросам, по которым ваш сайт уже находится достаточно высоко в поисковой выдаче. Это позволяет анализировать видимость именно в той нише, где вы заинтересованы в продвижении, и избегать «размытия» по малозначимым для вас запросам.

Кроме того, такой подход обусловлен работой Алисы AI: она строит ответ с опорой на самые релевантные, информативные и качественные страницы, которые обычно занимают высокие позиции в Поиске.

Чтобы увидеть статистику вашего сайта в меню Яндекс.Вебмастера перейдите в раздел "Эффективность" и далее в "Показы сайта в Алисе AI".

В начале февраля 2026г. был вебинар с Михаилом Сливинским - амбассадором Поиска Яндекса, и в рамках вебинара была озвучена просьба сделать такой инструмент. Скорее всего разработка на тот момент уже велась, потому что от просьбы до релиза прошло около 2-х месяцев. В любом случае хорошо, что такая статистика появилась.

Показы сайта в Алисе AI в вашем Яндекс,Вебмастере.

@joomlafeed

0 Пользователей и 1 Гость просматривают эту тему.
  • 22 Ответов
  • 3944 Просмотров
*

ChimikSantiaga

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Добрый день.

Столкнулся с такой задачей, заказчик просит сделать расчет стоимости доставки в зависимости от того какой товар лежит в корзине.
У товара будет 2 цены доставки. Для него 1го в корзине и если там есть ещё, то будет 2ая цена. В корзине лежит 3 товара, выбирается наивысшая цена для 1го товара и прибавляется 2ая цена двух других товаров.

Мои размышления были такие....Сначала $cartProducts = VirtueMartCart::getCart(false)->products; получаю массив товаров, в нем нахожу наивысшую цену доставки для 1го товара и т.д. Но не знаю куда определить и как вставить результаты расчета цены.

Сайт делается на Joomla 3.x, VirtueMart 3.x

Спасибо большое за помощь. 
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Цену доставки можно забивать в кастомарное поле (обычное текстовое не являющимся атрибутом корзины. )
т.е. для каждого товара 2 поля . 1. Ship-max 2. Ship-normal

результаты расчета цены -- это можно поправить  стандартный плагин доставки.
где то в этой function plgVmConfirmedOrder строка 105 наверное. ))

и сохранить вот так $values['shipment_cost'] = {ВАША ЦЕНА.}

Теория есть .. Осталось только написать ))
 :(
PS ... Я же правильно понимаю что у каждого товара 1. Ship-max 2. Ship-normal будет отличаться...?

« Последнее редактирование: 27.02.2016, 21:11:11 от gartes »
*

ChimikSantiaga

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Спасибо большое за помощь, уважаемый gartes.

"PS ... Я же правильно понимаю что у каждого товара 1. Ship-max 2. Ship-normal будет отличаться...?"

Да, они будут отличаться. Вопрос ещё один возник. Вчера для интереса подставил в конструкцию

"$values['shipment_cost'] = "

значение 50, к примеру, но значение доставки не поменялось. В чем может быть причина, не могли бы Вы подсказать?

Спасибо за ответ.
« Последнее редактирование: 28.02.2016, 14:19:05 от ChimikSantiaga »
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
А куда именно указывали? :o

Попробуйте в 128 строку подставить
Код: php
$values['shipment_cost'] = 50; 

И потом в таблице плагина #__virtuemart_shipment_plg_weight_countries столбец shipment_cost найти ваше значение.
« Последнее редактирование: 28.02.2016, 14:57:57 от gartes »
*

ChimikSantiaga

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
К сожалению, не вышло(

Код: php
$costs = $this->getCosts($cart,$method,$cart->cartPrices);
if(empty($costs)){
$values['shipment_cost'] = 0;
$values['shipment_package_fee'] = 0;
} else {
$values['shipment_cost'] = $method->shipment_cost;
$values['shipment_package_fee'] = $method->package_fee;
}

$values['shipment_cost'] = 55;
*

ChimikSantiaga

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Он стоимость не переопределяет.....Если в админке задано значение 0, то стоимость доставки - 0, а если значение отличное от 0, то задается это значение.....
*

ChimikSantiaga

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
А изначально пробовал так:

Код: php
if(empty($costs)){
$values['shipment_cost'] = 0;
$values['shipment_package_fee'] = 0;
} else {
$values['shipment_cost'] = 55;
$values['shipment_package_fee'] = $method->package_fee;
}

Спасибо за ответ.
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Цитировать
Он стоимость не переопределяет
Так а в таблицу БД Сохраняет или нет ?
Цитировать
#__virtuemart_shipment_plg_weight_countries столбец shipment_cost

Просто скорее всего что и при выводе он тоже будет проверять правила для стоимости доставки а это уже совсем другой метод (функция)
*

ChimikSantiaga

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Да, в таблицу заносит)

Спасибо большое!Заносит после того, как я нажал подтвердить заказ.

Теперь, я так понимаю, я используя код

Код: php
$cartProducts = VirtueMartCart::getCart(false)->products;
foreach($cartProducts as $cartProduct){
$db = JFactory::getDbo();
$sql = 'SELECT `product_price_shipment_1` FROM `tjb76_virtuemart_product_prices`';
$db->setQuery($sql);
$price_shipment = $db->loadRow();
$max_prices = max($price_shipment);

Нахожу максимальное значение, цены доставки_1 и могу подставить в $values['shipment_cost']

таким образом

Код: php
$values['shipment_cost'] = $this->max_prices;


Надеюсь получится.
С выводом и пересчетом буду искать.
Спасибо за помощь.
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Метод который выводит инфо про доставку в адменке на странице заказа
Код: php
function getOrderShipmentHtml ($virtuemart_order_id) {...}
строка 160.
*

ChimikSantiaga

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Что-то мне подсказывает, что я буду делать это до посинения((((
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Цитировать
Что-то мне подсказывает, что я буду делать это до посинения((((
Может быть и такое..
Зато разберетесь ... ;D
Там на самом деле не чего сложного нет..
1. Вы уже понимаете где прилепить цену. Пусть пока это будет фиксирована цена
Цитировать
$values['shipment_cost'] = 55;

2. Теперь нужно ее получить при выводе..
Это можно получить либо через плагин доставки либо прямо из шаблона заказа написать MySQL запрос к таблице плагина доставки получить данные по ID заказа.

3. Останется только написать алгоритм выбора цен доставок и их правильного сложения но это скорее всего уже другой вопрос.

ps// Что Вы паникуете? Вам же помогают.. так что в перед.
 
*

ChimikSantiaga

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Прошу прощения за долгое отсутствие....

В общем вернулся к данному вопросу.

Написал такой код:

Код: php
if(!class_exists('VirtueMartCart')) {
require(JPATH_VM_SITE.DS.'helpers'.DS.'cart.php');
}
$cartProducts = VirtueMartCart::getCart(false)->products;
foreach($cartProducts as $cartProduct){
$db = JFactory::getDbo();
$sql = 'SELECT `product_price_shipment_1` FROM `tjb76_virtuemart_product_prices`';
$db->setQuery($sql);
$price_shipment = $db->loadRow();
$max_prices = max($price_shipment);
}
return $max_prices;

Добавляю его в файл calculation.php, запускаю и не работает.

Пишет - Notice: Undefined variable: max_prices. Как определить?

P.S. плюсик обязательно будет.Ещё не могу ставить...Я так понял надо написать 10 сообщений...
Спасибо.
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Цитировать
Добавляю его в файл calculation.php, запускаю и не работает.
А при чем тут этот файл..
Мы же говорили о плагине доставки.

Цитировать
$sql = 'SELECT `product_price_shipment_1` FROM `tjb76_virtuemart_product_prices`';
А разве такое поле product_price_shipment_1 есть в этой таблице ?

Ни и даже если есть то в запросе не хватает условия WHERE

Не однозначно => Решение неправильное ..




Чуть позже напишу что нибудь )
*

ChimikSantiaga

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Цитировать
Добавляю его в файл calculation.php, запускаю и не работает.
А при чем тут этот файл..
Мы же говорили о плагине доставки.

Это да, но вывод окончательной цены идет в calculation.php.

Цитировать
А разве такое поле product_price_shipment_1 есть в этой таблице ?

Ни и даже если есть то в запросе не хватает условия WHERE

Такое поле просто добавил в таблицу, решение конечно не очень, но пока что сделал так.

Спасибо за ответ. Буду переделывать.
*

ChimikSantiaga

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Протестил  код...Когда вывожу из массива $price_shipment значения, то получается, вне зависимости от количества товаров в корзине,
  • =>10.00 и всё в чем может быть проблема?
Код: php
foreach($cartProducts as $cartProduct){
$db = JFactory::getDbo();
$sql = 'SELECT `product_price_shipment_1` FROM `tjb76_virtuemart_product_prices`';
$db->setQuery($sql);
$price_shipment = $db->loadRow();
}
print_r ($price_shipment);
}

Спасибо за ответ.
*

ChimikSantiaga

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Я дописал)))

Вышло так:

Код: php
if(!class_exists('VirtueMartCart')) {
require(JPATH_VM_SITE.DS.'helpers'.DS.'cart.php');
}
$cartProducts = VirtueMartCart::getCart(false)->products;
$a = json_decode(json_encode($cartProducts), True);
$r = count($a);
$ps = array();
$psn = array();
for ($x=0; $x<=$r-1; $x++){
foreach($a as $n){
$ps[$x] = ($a[$x][allPrices][0][product_price_shipment_1]);
$psn[$x] = ($a[$x][allPrices][0][product_price_shipment_n]);
}
}
$maxp = max($ps);
$minpr = array_sum($psn);
$final_price = $maxp + $minpr;

Осталось только занести $final_price в
Код: php
$this->_cart->cartPrices['billTotal'] = $this->_cart->cartPrices['salesPricePayment'] + $this->_cart->cartPrices['withTax'] + $this->_cart->cartPrices['salesPriceCoupon'];

Вроде работает.
Буду ещё тестить.Если получится улучшить - напишу.
Спасибо всем за помощь.
*

SolopoV

  • Давно я тут
  • 577
  • 16 / 0
  • зеленею...
Появилась несколько иная задача, но похожая. Уверен, будет полезна форумчанам.

Идея переписать weight_countries на предмет включения\выключения способа доставки на производителя товара. Тем магазинам, кто торгует, например не со своего склада, а со склада производителей - реальный выход.

В плагине weight_countries уще существует привязка по категориям:

Код
$cat_cond = true;
if($method->categories or $method->blocking_categories){
if($method->categories)$cat_cond = false;
if(!is_array($method->categories)) $method->categories = array($method->categories);
if(!is_array($method->blocking_categories)) $method->blocking_categories = array($method->blocking_categories);
foreach($cart->products as $product){
if(array_intersect($product->categories,$method->categories)){
$cat_cond = true;
}
if(array_intersect($product->categories,$method->blocking_categories)){
$cat_cond = false;
break;
}
}
}

Попытался сделать  по образу и подобию:
Код
//start manufacturer
$man_cond = true;
if($method->manufacturer or $method->blocking_manufacturer){
if($method->manufacturer)$man_cond = false;
if(!is_array($method->manufacturer)) $method->manufacturer = array($method->manufacturer);
if(!is_array($method->blocking_manufacturer)) $method->blocking_manufacturer = array($method->blocking_manufacturer);
foreach($cart->products as $product){
if(array_intersect($product->virtuemart_manufacturer_id,$method->manufacturer)){
$man_cond = true;
}
if(array_intersect($product->virtuemart_manufacturer_id,$method->blocking_manufacturer)){
$man_cond = false;
break;
}
}
}
//stop manufacturer

$allconditions = (int) $weight_cond + (int)$zip_cond + (int)$nbproducts_cond + (int)$orderamount_cond + (int)$country_cond + (int)$cat_cond + (int)$man_cond;
if($allconditions === 7){
//end hack
Ну и соответственно  в XML плагина:
Код
				 <field name="manufacturer" value_field="mf_name" type="manufacturer" multiple="true" size="10" default="" label="bla-bla"
                       description=""/>
                <field name="blocking_manufacturer" value_field="mf_name" type="manufacturer" multiple="true" size="10" default="bla-bla" label="bla-bla"
                       description=""/>
Теперь, в таблицу БД #__virtuemart_shipmentmethods
 записывает нужного нам производителя:
Код
shipment_logos=""|show_on_pdetails="1"|categories=[
]|blocking_categories=""|manufacturer=[
    "7"
]|blocking_manufacturer=[
    ""
]|countries=""

Осталось две беды:
1. В админке можно выбрать только одного производителя на данный вид доставки, а хочется поставить несколько, как и категории.
(решено чуть позже, не знаю правильно или нет: добавим multiple="multiple" в  /fields/manufacturer.php)
и
2.:

Если в корзине 2 товара разных производителей, то получаем два вида доставки.

Можно ли сделать так, что на весь такой заказ выводился способ доставки с наибольшей стоимостью (shipment_cost=max)?

Заранее благодарен за совет.
« Последнее редактирование: 08.04.2016, 09:35:29 от SolopoV »
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Цитировать
В админке можно выбрать только одного производителя на данный вид доставки, а хочется поставить несколько, как и категории
Ну наверно для такой цели все же придется свой тип полей создать..
тут написано как ))
*

SolopoV

  • Давно я тут
  • 577
  • 16 / 0
  • зеленею...
Ну наверно для такой цели все же придется свой тип полей создать..
тут написано как ))
А какой смысл в полях? Когда осталось выбрать из массива, насколько я понимаю, вариант доставки с наибольшей стоимостью и показать только его?
*

SolopoV

  • Давно я тут
  • 577
  • 16 / 0
  • зеленею...
Может быть кто нибудь подскажет решение?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль доставки: СДЭК, Boxberry, Ozon, 5post, Почта, пэк, gtd, iml, Байкал и др

Автор eshoplogistic

Ответов: 0
Просмотров: 3269
Последний ответ 06.04.2022, 16:43:13
от eshoplogistic
Добавить выбор города в плагин доставки?

Автор warlocksp

Ответов: 3
Просмотров: 4030
Последний ответ 13.02.2022, 15:48:14
от Evgen Kulibin
Пропали способы доставки и оплаты

Автор Orfei

Ответов: 3
Просмотров: 3444
Последний ответ 01.10.2020, 21:00:44
от AlexB
Возможность доставки/оформления заказа в определённое время

Автор PavelK

Ответов: 3
Просмотров: 3421
Последний ответ 18.08.2020, 16:13:53
от rsn
Сортировка способов доставки

Автор stardel

Ответов: 9
Просмотров: 5973
Последний ответ 21.10.2019, 09:05:27
от rsn