Новости Joomla

Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях

Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях

👩‍💻 Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях. На старте его сайт на Joomla 3 вообще не смог обновиться на Joomla 5. Пришлось делать экспорт/импорт материалов. Проделав всё это он запустил-таки этот объём данных на Joomla 5. Тестовый скрипт грузил 200 материалов из этого объёма всего за 94 секунды ))) А главная страница с категориями грузилась 20 секунд. Добавив индекс для таблицы #__content

CREATE INDEX idx_catid_state ON #__content (catid, state);
он сократил время загрузки категорий до 1 секунды. Затем наш герой решил поковырять SQL-запрос в ArticleModel, который отвечает за выборку материалов. И решил заменить тип JOIN на STRAIGHT_JOIN для категорий.
// ->from($db->quoteName('#__content', 'a'))->from(    $db->quoteName('#__content', 'a')    . ' STRAIGHT_JOIN ' . $db->quoteName('#__categories', 'c')    . ' ON ' . $db->quoteName('c.id') . ' = ' . $db->quoteName('a.catid'))// ->join('LEFT', $db->quoteName('#__categories', 'c'), $db->quoteName('c.id') . ' = ' . $db->quoteName('a.catid'))
Что сократило загрузку 200 материалов из 150к с 94 секунд до 5. К слову сказать, боевой сайт на Joomla 3 крутится на 12CPU 64GB рамы. А все манипуляции с кодом он делает на базовом 1CPU 1GB сервере и замеры скорости даны именно для базового сервера. Но это всё в дискуссии, хотя в идеале должно вылиться в Pull Requests. Мы - Open Source сообщество, где никто никому ничего не должен. Джунгли. Но человек ищет пути оптимизации Joomla и предлагает решения. Если оказать поддержку и предложить помощь хотя бы с тестированием самых разнообразных сценариев, то возможно эти улучшения смогут войти в ядро. Пусть не быстро, пусть через несколько лет, пусть не все, но войдут. Достаточно предложить руку помощи и приложить немного усилий.
Дискуссию на GitHub можно почитать здесь.@joomlafeed#joomla #community #php

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

M.Imperator

  • Захожу иногда
  • 128
  • 0 / 1
  • Чем смогу...
Подскажите пожалуйста, как сделать чтобы после заказа товара приходило уведомление на 2 почтовых ящика (получается как будто два админа магазина).
*

M.Imperator

  • Захожу иногда
  • 128
  • 0 / 1
  • Чем смогу...
в настройках магазина в контактной информации напиши 2 имэйла через запятую.
Не получается, пишет:
Цитировать
Ошибка: Please provide a valide email address for the vendor contact.
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
нужно отключить проверку - в файле ps_vendor.php заремить или удалить строки
Код
if (!vmValidateEmail($d["contact_email"])) {
$vmLogger->err( 'Please provide a valide email address for the vendor contact.' );
return False;
}
проверить не могу- сайт на локальном компе.
*

Виталик

  • Завсегдатай
  • 1244
  • 130 / 0
заведите для этого специальный ящик на mail.ru, который будет пересылать письма на два ваших адреса
*

M.Imperator

  • Захожу иногда
  • 128
  • 0 / 1
  • Чем смогу...
нужно отключить проверку - в файле ps_vendor.php заремить или удалить строки
Код
if (!vmValidateEmail($d["contact_email"])) {
$vmLogger->err( 'Please provide a valide email address for the vendor contact.' );
return False;
}
проверить не могу- сайт на локальном компе.

Убрал 2 строки. Теперь ошибки не выдает и уведомление вообще не приходит.
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
*

ftomivec

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Здравствуйте!

Возможно ли сделать уведомление на e-mail о заказах товаров на сайте?

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

*

kiforov

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
уведомления администратору о новых заказах приходят на почтовый ящик, указанный в настройках магазина (VM -> Магазин -> Информация о магазине -> E-mail)
*

ftomivec

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
все равно не работает (
помогите плз
*

ftomivec

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
нашел в чем проблема, оказывается на некоторых хостингах нужно указывать е-маил соответствующий вашему домену
*

Laita

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
А как сделать так, что бы уведомление о поступлении нового заказа приходило на несколько е-мейлов?
*

Laita

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Энибади?

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

loginbox

  • Захожу иногда
  • 72
  • 15 / 0
Это надо подправить файлик ps_checkout, находиться он в administrator/components/com_virtuemart/classes/
меняем строку $vendor_email = ..... на
$vendor_email = array($from_email,'здесь указываем доп адрес');
и тогда будет отправляться на адрес указанный в админ панели и на указаный здесь доп адрес
История пишется царями, переписывается мошенниками, а изучается неудачниками...
*

Laita

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

adjuster

  • Давно я тут
  • 786
  • 55 / 2
и от меня спс.
*

terr

  • Давно я тут
  • 824
  • 14 / 6
  • Ученик html-я
там дето, блин непомню файл есть что еще 1 мыло вписать можно
*

adjuster

  • Давно я тут
  • 786
  • 55 / 2
*

fl-rost

  • Осваиваюсь на форуме
  • 17
  • 1 / 0
Спасибо! все получилось! жаль плюсануть не могу пока что
*

yarafilm

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
У нас сделано немного проще, есть почта магазина, например - menager@shop.com, куда приходят все заказы и письма, а с нее уже пере адресация на несколько е-маилов.
*

Dtravex

  • Осваиваюсь на форуме
  • 30
  • 2 / 0
А что теперь менять в новой версии? Там нет такой строки! VirtueMart 1.1.6
*

saynez

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
В 1.6 нужно поменять строку $vendor_email = $from_email;
У меня вышло так:
$vendor_email = array($from_email,'ваше_имя@gmail.com','ваше_имя@yandex.ru','ваше_имя@mail.ru');
*

Minstrel

  • Новичок
  • 7
  • 3 / 0
  • Minstrel
В 1.6 нужно поменять строку $vendor_email = $from_email;
У меня вышло так:
$vendor_email = array($from_email,'ваше_имя@gmail.com','ваше_имя@yandex.ru','ваше_имя@mail.ru');
А можно сделать более менее хардкодный и более универсальный вариант
и позволить пользователям из админки добавлять несколько емэйлов через точку с запятой.

Надо в Administrator\components\com_virtuemart\classes\ps_main.php найти функцию
function vmValidateEmail( $email ) (в 1.1.8 строка 79)
и изменить рег. выражение на

Код: php
$valid = preg_match( '/^([\w\.\-]+@\w+[\w\.\-]*?\.\w{1,4}[\;])*/', $email );

Способ отправки сообщений в настройках Joomla (Сайт->Общие настройки->Сервер->Способ отправки почты)
должен быть PHP mail function
*

smls

  • Захожу иногда
  • 137
  • 8 / 1
А как отправлять на два мыла вопросы по товару, пробовал тем же способом отредактировать файл ps_communication.php, мне письма приходят, но вместо сообщения об отправке письма появляется:
Warning: preg_match() expects parameter 2 to be string, array given in /administrator/components/com_virtuemart/classes/ps_main.php on line 77
И подтверждение на адрес отправителя не приходит.
« Последнее редактирование: 12.10.2011, 16:49:00 от beagler »
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
Warning: preg_match() expects parameter 2 to be string, array given in /administrator/components/com_virtuemart/classes/ps_main.php on line 77
2 параметр должен быть строкой а не массивом.
Смотрите preg_match в  ps_main.php строка 77 - если это массив - то нужно прокручивать его в цикле вызывая preg_match

PS Сорри - случайно отредактировал Ваше сообщение
*

smls

  • Захожу иногда
  • 137
  • 8 / 1
Строка 77:
Код
	$valid = preg_match( '/^[\w\.\-]+@\w+[\w\.\-]*?\.\w{1,4}$/', $email );
*

frog123

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Доброе время суток. У меня проблема не много другого характера. Есть ли такой модуль или возможность в самой VirtueMart отправлять поставщикам инфо о заказе. Тоесть, есть несколько поставщиков, допустим 10. Ко мне приходит на почту инфо о заказе. А как сделать чтобы поставщикам приходила запись об их товарах? Каждому поставщику заказы только на поставляемые им товары. Скорее всего это должно указываться при добавлении нового товара, где будет указан поставщик. Сколько искал, ничего не смог найти. Может кто то знает другой вариант решения проблемы. Спасибо заранее. ^-^
*

frog123

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Спасибо за ответ. Дело в том, что этот интернет магазин будет продавать продукты питания и бытовую химию. Ассортимент широкий и соответственно поставщиков тоже много. Но неужели это не распространено в интернет магазинах? Смотрел в тестовом магазине битрикс. Тоже ничего похожего не нашел. Заказчик хочет такую фичу. Быть может я не до конца понимаю. Но как же люди это организовывают? Не у всех же свои склады? Значит сидят и вручную отправляют заказы? Может кто нибудь подскажет как мне выкрутиться? И как сказать что это совсем не нужная фишка. Спасибо.
*

beagler

  • Moderator
  • 3276
  • 392 / 4
  • https://alorisman.ru/
это фича называется "мультивендорность" и в вирте её уже года 3 обещают написать - и все никак.
Насколько знаю, в открытых цмс она реализована только в престашоп и маженто.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

При заказе не отправляются письма на электронную почту

Автор vsokol

Ответов: 5
Просмотров: 4214
Последний ответ 29.05.2016, 07:17:31
от vsokol
Прикрепить файлы в письмо с уведомлением о заказе

Автор sashgera

Ответов: 0
Просмотров: 3762
Последний ответ 16.05.2016, 14:18:32
от sashgera
[Решено] Изображение и ссылка на товар в теле письма о заказе

Автор zmancer

Ответов: 18
Просмотров: 11558
Последний ответ 11.03.2016, 22:28:28
от Pustota
Добавить категорию товара в уведомлении о заказе. Решено

Автор niggatub

Ответов: 7
Просмотров: 4847
Последний ответ 14.07.2015, 11:30:29
от FlahsAxel
Пакетное управление товарными позициями в заказе

Автор sleshiy

Ответов: 0
Просмотров: 3814
Последний ответ 21.10.2014, 15:37:37
от sleshiy