Новости 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

Перевод и публикация интервью с Joomla евангелистом на греческом портале Joomla

Перевод и публикация интервью на греческом портале Joomla 🇬🇷

Утро, просматриваешь входящие письма и изучаешь новости и внезапно обнаруживаешь, что инициатива, которую ты начал, подхватывается другими людьми. 🎉

Недавно я взял интервью у Билла (Василиса) Коциаса - руководителя студии, читающего лекции в университете и популяризатора Joomla в Греции. Это интервью из журнала NorrNext, в оригинале на английском, теперь доступно на греческом языке и опубликовано на портале joomla.gr. 🎉

До чего же приятно… 😇😊 Работа замечена и с ней посчитали необходимым ознакомить аудиторию страны, в которой Билл читает лекции. И это солнечная Греция - страна, страна, с которой Россию многое связывает. 🇬🇷🇷🇺🕊

Смотрю на греческий алфавит и тут же рисуются картины белоснежных зданий в окружении винограда и амфор, красивых женщин в сандалиях и мужественных воинов, охраняющих покой полисов, в которых ученые мужи работают над трудами, позже вошедшими в века. Красиво! 😇Но вернемся к интервью.

Из него вы узнаете, что в Греции доля Joomla среди CMS занимает порядка 30-40%. По моему мнению это - самый высокий показатель во всем мире. Также чтение лекций о Joomla в университетах позволит привести новых пользователей и к тому же молодое поколение. Ну и огромное кол-во сертификтатов Билла на стене (смотрим фото в статье) свидетельствует о том, что Joomla может применяться как профессиональный инструмент.

🌐 Оригинальное интервью (на английском)
🇬🇷 Интервью на греческом портале (joomla.gr)

Что насчет перевода на русский? Увы, времени всего 24 часа в сутках. Я продолжаю готовить новые интервью. Возможно, после завершения выпуска журнала, рассмотрю перевод некоторых интервью на русский. Но я об этом не говорил. 😊 В блоге @eugenius_blog публикую анонсы интересных событий из мира Joomla, интервью, уроки и полезные советы, а также делюсь мыслями:, связанными с разработкой и веб-дизайном.

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

HawkHunter

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Переносил все файлы с помощью Akeeba BackUp, перенеслось всё без проблем, всё работает, но обнулились все цены. В адмике в товаре и в БД цена есть, а в списке товаров в админке и на самом сайте цена 0. Что могло произойти. Как это поправить?

Переносил с хостинга spiceweb на hts если это важно. Пробовал потом созданный бекап поставить на поддомен старого хоста, цены есть, пробовал поставить на новый, цен нет.
« Последнее редактирование: 29.03.2013, 15:13:50 от HawkHunter »
*

tutub

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Я бы вытащил конкретную таблицу с ценами и попробовал бы засунуть её в базу "ещё раз".
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Посмотрите в таблице #__virtuemart_product_prices, поле virtuemart_shoppergroup_id. Что там стоит?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

HawkHunter

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Посмотрите в таблице #__virtuemart_product_prices, поле virtuemart_shoppergroup_id. Что там стоит?
0, так же как и в изначальной базе
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Поставьте NULL.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

HawkHunter

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
нет, эффекта нет
*

HawkHunter

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Но почему же на одном хостинге работают цены, а на другом нет. Может у них какие-то различия есть в бд или у одного что-то включенно, а другого нет?

Вот к примеру из Информация>Установки PHP
Выключенные функции: exec,passthru,shell_exec,system,proc_open,popen,curl_multi_exec,show_source (здесь не работает)
Выключенные функции: Нет (здесь работает)

Может быть из-за этого?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Добавьте в конце файла components\com_virtuemart\views\productdetails\tmpl\default.php
Код
<?php print_r($this->product->prices); ?>
и посмотрите массив prices.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

HawkHunter

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Я так понимаю эта строка добавила в описание:

Array ( [costPrice] => 6800.00000 [basePrice] => 6800 [basePriceVariant] => 6800 [basePriceWithTax] => [discountedPriceWithoutTax] => [priceBeforeTax] => 6800 [salesPrice] => 6800 [taxAmount] => 0 [salesPriceWithDiscount] => [salesPriceTemp] => 6800 [unitPrice] => 0 [discountAmount] => 0 [priceWithoutTax] => 6800 [variantModification] => 0 [DBTax] => Array ( ) [Tax] => Array ( ) [VatTax] => Array ( ) [DATax] => Array ( ) )


а это массив с хоста где работают цены:
Array ( [costPrice] => 6800.00000 [basePrice] => 6800 [basePriceVariant] => 6800 [basePriceWithTax] => 0 [discountedPriceWithoutTax] => 0 [priceBeforeTax] => 6800 [salesPrice] => 6800 [taxAmount] => 0 [salesPriceWithDiscount] => 0 [salesPriceTemp] => 6800 [unitPrice] => 0 [discountAmount] => 0 [priceWithoutTax] => 6800 [variantModification] => 0 [DBTax] => Array ( ) [Tax] => Array ( ) [VatTax] => Array ( ) [DATax] => Array ( ) )
« Последнее редактирование: 30.03.2013, 23:28:56 от HawkHunter »
*

HawkHunter

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Провёл ещё один эксперимент:
Другой магазин на Joomla 2.5(проблемный на 1.5), расположенный на том хосте где цены после переноса не работали (hts Версия PHP:5.3.21) перенёс на (spiceweb Версия PHP: 5.2.14), всё работает.
Перенёс с hts на поддомен, цены тоже работают. Не знаю что даже и делать.
« Последнее редактирование: 30.03.2013, 21:43:41 от HawkHunter »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Не знаю, что и думать.
У вас только basePriceWithTax, discountedPriceWithoutTax и salesPriceWithDiscount имеют значение null.
А вы какую цену показываете? salesPrice?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

HawkHunter

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
где я показываю?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
В админке.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

HawkHunter

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

robert

  • Живу я здесь
  • 4974
  • 457 / 20
А у меня так выглядит: Configuration->Pricing->Show Following Prices->Весь массив, который вы выше вывели.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

HawkHunter

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Я не знаю как это понять.
Я так понимаю выход из ситуации найти нельзя? Может обновить Joomla с 1.5 до 2.5?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
да, либо перейти на J!2.5, либо использовать младшую версию PHP.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

HawkHunter

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
да, либо перейти на J!2.5, либо использовать младшую версию PHP.
Не подскажите где прочитать что делать если слетел virtuemart2 после обновления до Joomla 2.5?
*

HawkHunter

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Попросил хостера обновить версию php с 5.2 на 5.3. Получилось теперь что я переносил с 5.3.20-pl0-gentoo на 5.3.21. Не помогло.
*

HawkHunter

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
К чему это?:

 Warning: round() expects parameter 2 to be long, string given in /home/u791647989/public_html/templates/kometa/html/com_virtuemart/category/default.php on line 547  Warning: round() expects parameter 2 to be long, string given in /home/u791647989/public_html/templates/kometa/html/com_virtuemart/category/default.php on line 553 Warning: round() expects parameter 2 to be long, string given in /home/u791647989/public_html/administrator/components/com_virtuemart/helpers/currencydisplay.php on line 305

Поможет решить проблему это?
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
Вы когда сайт с VM переносите с помощью Akeeba на другой хост, меняете конфиг VM вручную?
*

HawkHunter

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
VM? т.е в авдмике?  нет, всё уже настроенно.
*

HawkHunter

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Это ошибка появилась в товаре у которого есть цена.
Записи по строкам:

/home/u791647989/public_html/templates/kometa/html/com_virtuemart/category/default.php on line 547
if (round($product->prices['basePriceWithTax'],$this->currency->_priceConfig['salesPrice'][1])!= $product->prices['salesPrice'])

/home/u791647989/public_html/templates/kometa/html/com_virtuemart/category/default.php on line 553
if (round($product->prices['salesPriceWithDiscount'],$this->currency->_priceConfig['salesPrice'][1])!= $product->prices['salesPrice'])

/home/u791647989/public_html/administrator/components/com_virtuemart/helpers/currencydisplay.php on line 305
$price = round((float)$price,$nb) * (float)$quantity;

Что к чему? Помогите пожалуйста!
« Последнее редактирование: 02.04.2013, 22:53:19 от HawkHunter »
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
Если создать тестовый новый товар с ценой, работает?
*

HawkHunter

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Если создать тестовый новый товар с ценой, работает?
нет
*

HawkHunter

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Это в админке и на сайте под шапков в начале страницы.
Ещё такая надпись появилась:
Warning: round() expects parameter 2 to be long, string given in /home/u791647989/public_html/administrator/components/com_virtuemart/helpers/calculationh.php on line 1446 Warning: round() expects parameter 2 to be long, string given in /home/u791647989/public_html/administrator/components/com_virtuemart/helpers/calculationh.php on line 1446 Warning: round() expects parameter 2 to be long, string given in /home/u791647989/public_html/administrator/components/com_virtuemart/helpers/calculationh.php on line 1446 Warning: round() expects parameter 2 to be long, string given in /home/u791647989/public_html/administrator/components/com_virtuemart/helpers/calculationh.php on line 1446 Warning: round() expects parameter 2 to be long, string given in /home/u791647989/public_html/administrator/components/com_virtuemart/helpers/calculationh.php on line 1446 Warning: round() expects parameter 2 to be long, string given in /home/u791647989/public_html/administrator/components/com_virtuemart/helpers/calculationh.php on line 1446 Warning: round() expects parameter 2 to be long, string given in /home/u791647989/public_html/administrator/components/com_virtuemart/helpers/calculationh.php on line 1446

/home/u791647989/public_html/administrator/components/com_virtuemart/helpers/calculationh.php on line 1446
return round($value,$this->_currencyDisplay->_priceConfig[$name][1]);

« Последнее редактирование: 02.04.2013, 22:55:56 от HawkHunter »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
У вас неправильный тип данных: ожидается целочисленный (long), а дан текст (string). Может быть, дело в доминирующих файлах шаблона сайта. Попробуйте убрать всю папку templates/kometa/html/com_virtuemart и посмотрите, что будет.

P.S. Еще попробуйте все вторые переменные функции round в прмведенных выше заменить на 0. Например
Код
if (round($product->prices['basePriceWithTax'],$this->currency->_priceConfig['salesPrice'][1])!= $product->prices['salesPrice'])
на
Код
if (round($product->prices['basePriceWithTax'],0)!= $product->prices['salesPrice'])
« Последнее редактирование: 02.04.2013, 23:04:07 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

HawkHunter

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
Это у товара у которого нет цены в районе краткого описания
Warning: round() expects parameter 2 to be long, string given in /home/u791647989/public_html/templates/kometa/html/com_virtuemart/category/default.php on line 547 Warning: round() expects parameter 2 to be long, string given in /home/u791647989/public_html/templates/kometa/html/com_virtuemart/category/default.php on line 553

Это у товара у которого нет цены в районе кнопки "добавить в корзину"
Warning: round() expects parameter 2 to be long, string given in /home/u791647989/public_html/components/com_virtuemart/views/productdetails/tmpl/default_showprices.php on line 40 Warning: round() expects parameter 2 to be long, string given in /home/u791647989/public_html/components/com_virtuemart/views/productdetails/tmpl/default_showprices.php on line 43

/u791647989/public_html/components/com_virtuemart/views/productdetails/tmpl/default_showprices.php on line 40
if (round($this->product->prices['basePriceWithTax'],$this->currency->_priceConfig['salesPrice'][1])!= $this->product->prices['salesPrice'])

/home/u791647989/public_html/components/com_virtuemart/views/productdetails/tmpl/default_showprices.php on line 43
if (round($this->product->prices['salesPriceWithDiscount'],$this->currency->_priceConfig['salesPrice'][1])!= $this->product->prices['salesPrice'])
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
Для уточнения. У вас VM2 и Joomla 1.5, вы переносили работающий сайт с помощью Akeeba на новый хост, на котором после переноса вместо цены отображается 0, как в отдельных разделах админки, так и на фронт-энде? Это происходит также на стандартном шаблоне сайта?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Смотрите редактирование поста выше.
Не будь паразитом, сделай что-нибудь самостоятельно!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как сделать разделение цены по 3 разряда? Решено

Автор varella

Ответов: 13
Просмотров: 3105
Последний ответ 28.10.2022, 19:32:37
от marksetter
"Позвонить для запроса цены" не выводится

Автор Akeksandr

Ответов: 13
Просмотров: 3076
Последний ответ 10.01.2022, 16:54:33
от draff
Изменить шрифт копее у цены

Автор DrShepard

Ответов: 5
Просмотров: 2883
Последний ответ 27.08.2021, 11:12:11
от DrShepard
Удалить сложение основной цены и цены дополнительного поля [Решено]

Автор Eholov

Ответов: 2
Просмотров: 1598
Последний ответ 22.01.2020, 10:17:36
от Eholov
VirtueMart b facebookpixel формат цены

Автор Dolphin4ik_1

Ответов: 0
Просмотров: 911
Последний ответ 18.06.2019, 17:33:51
от Dolphin4ik_1