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

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Господа,
Доброй ночи :)

Допиливаю компонент - написал router.php, но как только ставлю на "живой" сайт, то в URL упорно добавляется слово component и получается вот так:
http://www.mysite.lv/component/mycomponent/myview.html

В инете пишут, что для решения проблемы необходимо создать пункт меню компонента и все будет пучком, но не помогло :( Все равно слово component подставляется в URL. Самое интересное, что на локальной тестовой среде все пашет нормально - в URL слово component отсутствует! Выходит, с router.php все ок. С не-моими компонентами такой проблемы нет.

Вот сижу и думаю - откуда оно берется и как его убрать?
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
да, странно, проверь что-бы все выдаваемые им ссылки проходили через JRoute
JRoute есть - уже по 100 раз проверил... Чую, мелочь какая-то, но никак обаружить не могу. И еще неясно - почему на тестовой среде все ок, а на живом сайте лажа...

UPDATE:
Вообще весело - если не залогинен, то ссылки без слова component. А вот если залогинен - слово component появляется  :dry: :dry: :dry: На тестовой среде по прежнему все ок.
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
думаю потому что у тебя на живом сайте в меню два пункта меню с твоим компонентом, а на тестовом - только один. В ссылку ты добавляешь Itemid ?
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
думаю потому что у тебя на живом сайте в меню два пункта меню с твоим компонентом, а на тестовом - только один. В ссылку ты добавляешь Itemid ?
Не, пункт меню один.
Почему же при если не залогинен, то ссылки без слова component, а вот если залогинен - слово component появляется?

Имеешь ввиду Itemid в ссылках внутри компонента?
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
ну да, т.е. вместо "option=com_moicomponent&view=show" попробуй сделать "option=com_moicomponent&view=show&Itemid=45"
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
ну да, т.е. вместо "option=com_moicomponent&view=show" попробуй сделать "option=com_moicomponent&view=show&Itemid=45"
Уху, сработало. Но блин, почему на тестовом этого не нужно делать, все само схватывается без Itemid? ^^ Писать надстройку для JRoute теперь чтоли? :)
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Стандартный SEF если нет пункта меню, формирует ссылку с /component, так как ему неоткуда взять алиас. Как только появляется пункт меню, ссылающийся на компонент, ссылки будут формироваться с учетом алиаса этого пункта меню, и /component не будет фигурировать в ссылке. Но для этого, стандартный SEF должен знать, о каком пункте меню сейчас идет речь, а за это отвечает параметр Itemid. С другой стороны, можно сделать роутер, который будет формировать правильные ссылки даже если в ссылке нет Itemid - можно искать подходящий пункт меню по компонентам ссылки (ну грубо говоря если Itemid не задан, искать пункт меню, ссылающийся на этот компонент и имеющий такое же значение поля view). В общем стоит внимательно посмотреть существующие роутеры и их хелперные классы стандартных компонентов Joomla (например, /components/com_content/helpers/route.php).
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Спасибо за ответы. Я просто никак не могу понять - я вроде создал пункт меню как полагается и на тестовом (локальном) сайте и на живом. Никаких изменений в саму Joomla! на живом сайте не вносил, но URL различаются. И еще этот странный глюк, что для залогиненого пользователя слово component отображается, а незалогиненого нет. Смущает меня это...
*

ELesnikov

  • Захожу иногда
  • 119
  • 8 / 0
Господа,
Доброй ночи :)

Допиливаю компонент - написал router.php, но как только ставлю на "живой" сайт, то в URL упорно добавляется слово component и получается вот так:
http://www.mysite.lv/component/mycomponent/myview.html

В инете пишут, что для решения проблемы необходимо создать пункт меню компонента и все будет пучком, но не помогло :( Все равно слово component подставляется в URL. Самое интересное, что на локальной тестовой среде все пашет нормально - в URL слово component отсутствует! Выходит, с router.php все ок. С не-моими компонентами такой проблемы нет.

Вот сижу и думаю - откуда оно берется и как его убрать?
Доброго времени суток! Подскажите лит-ру по созданию routera. пожалуйста (в иделе русскоязычную)
« Последнее редактирование: 28.02.2010, 18:54:51 от ELesnikov »
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Вот эту:
Стандартный SEF если нет пункта меню, формирует ссылку с /component, так как ему неоткуда взять алиас. Как только появляется пункт меню, ссылающийся на компонент, ссылки будут формироваться с учетом алиаса этого пункта меню, и /component не будет фигурировать в ссылке. Но для этого, стандартный SEF должен знать, о каком пункте меню сейчас идет речь, а за это отвечает параметр Itemid. С другой стороны, можно сделать роутер, который будет формировать правильные ссылки даже если в ссылке нет Itemid - можно искать подходящий пункт меню по компонентам ссылки (ну грубо говоря если Itemid не задан, искать пункт меню, ссылающийся на этот компонент и имеющий такое же значение поля view). В общем стоит внимательно посмотреть существующие роутеры и их хелперные классы стандартных компонентов Joomla (например, /components/com_content/helpers/route.php).
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
bzzik, подскажу выход (на мой взгляд) такой - в твоём router.php пропиши код для получения идентификатора меню:
Код
	$menu 		= &JSite::getMenu();
$itemscat= $menu->getItems('link', 'index.php?option=com_mycomponent&view=my_view');
if(isset($itemscat[0])) {
$link_itemid = '&Itemid='.$itemscat[0]->id;
}
$link_itemid - это ссылка твоя, сформированная, без Itemid - К ней дописывается Itemid.

"index.php?option=com_mycomponent&view=my_view" - это поле посмотри в базе, поле link. Посмотри какая ссылка у тебя формируется при привязки к меню. В массив $itemscat загрузятся все пункты меню с заданной ссылкой.
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
era спасибо, буду разбираться. Обязательно отпишусь о результатах.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

как правильно убрать /component/... из SEF?

Автор kontrast

Ответов: 0
Просмотров: 1322
Последний ответ 28.01.2016, 23:09:58
от kontrast
Как из ссылки убрать component/content/article/

Автор caitleen

Ответов: 11
Просмотров: 17930
Последний ответ 18.02.2015, 23:03:19
от Tim_Livingbook
SEF Joomla или как удалить component из url

Автор GooG2e

Ответов: 0
Просмотров: 1094
Последний ответ 14.09.2013, 13:47:56
от GooG2e
Приведение ссылок вида сайт/component/content/article/2-uncategorised/статья к виду сайт/статья

Автор Almiol

Ответов: 6
Просмотров: 4119
Последний ответ 21.06.2012, 11:35:08
от Almiol
Никак не получается подружить sh404SEF и adsmanadger 2.6.5

Автор sattan

Ответов: 2
Просмотров: 1605
Последний ответ 20.06.2012, 19:09:10
от sattan