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

kik84

  • Завсегдатай
  • 1350
  • 64 / 4
Open graph без плагина
« : 08.11.2015, 14:34:07 »
Хочу без использования сторонних плагинов вывести Open Graph protocol, чтобы данные генерировались в файле шаблона.
<meta property="og:title" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="" />
<meta property="og:description" content=""/>
<meta property="og:image" content="" />

Подскажите как правильно заполнить  ^-^
И как сделать, чтобы выбиралось либо имеющееся изображение из материала, либо лого, если оно отсутствует?
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Open graph без плагина
« Ответ #1 : 08.11.2015, 14:58:47 »
Первые 4 тега можно вывести через шаблон. С изображением сложнее, но можно тоже через шаблон: название изображения привязать к Id, например img_115
« Последнее редактирование: 08.11.2015, 15:10:34 от Филипп Сорокин »
*

kik84

  • Завсегдатай
  • 1350
  • 64 / 4
Re: Open graph без плагина
« Ответ #2 : 08.11.2015, 15:57:51 »
Нашел только такой вариант http://joomlaforum.ru/index.php/topic,275868.msg1545495.html#msg1545495
head.php ведь может быть заменен при обновлении?
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Open graph без плагина
« Ответ #3 : 08.11.2015, 17:08:25 »
Нашел только такой вариант http://joomlaforum.ru/index.php/topic,275868.msg1545495.html#msg1545495
head.php ведь может быть заменен при обновлении?
Обязательно будет заменён.
*

kik84

  • Завсегдатай
  • 1350
  • 64 / 4
Re: Open graph без плагина
« Ответ #4 : 08.11.2015, 17:27:15 »
Обязательно будет заменён.
Подскажите, как правильно прописать переменные в шаблоне?
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Open graph без плагина
« Ответ #5 : 08.11.2015, 17:38:29 »
Подскажите, как правильно прописать переменные в шаблоне?
Вы с изображением определились? Вам подходит вариант с привязкой к имени изображения ID материала?
*

kik84

  • Завсегдатай
  • 1350
  • 64 / 4
Re: Open graph без плагина
« Ответ #6 : 08.11.2015, 18:17:30 »
Вы с изображением определились? Вам подходит вариант с привязкой к имени изображения ID материала?
Да http://joxi.ru/12Mp9EOIpl99mJ. А если изображений нет, то подставить логотип.
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Open graph без плагина
« Ответ #7 : 08.11.2015, 19:38:55 »
Да http://joxi.ru/12Mp9EOIpl99mJ. А если изображений нет, то подставить логотип.
Что именно да? Привязать имя файла изображения к ID?
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Open graph без плагина
« Ответ #8 : 08.11.2015, 20:41:14 »
Код: php
$app = JFactory::getApplication();
$doc = JFactory::getDocument();
$page_title = $doc->getTitle();
$page_uri = JURI::current();
$page_description = $doc->getDescription();
$article_id = $app->input->getInt('id', '');
$img_source = "images/img_{$article_id}.jpg";
$logo_source = "images/logo.jpg";

// Получаем компонент и его представление
$option = $app->input->getString('option', '');
$view = $app->input->getString('view', '');

// Проверяем, если изображение существует, и что текущая страница является именно материалом com_content
if ($option === "com_content" && $view === "article" && file_exists(JPATH_ROOT . DIRECTORY_SEPARATOR . $img_source)) {
    $meta_source = JURI::root(). $img_source;
} else {
    $meta_source = JURI::root(). $logo_source;
}
« Последнее редактирование: 07.03.2016, 12:45:25 от Филипп Сорокин »
*

kik84

  • Завсегдатай
  • 1350
  • 64 / 4
Re: Open graph без плагина
« Ответ #9 : 09.11.2015, 10:04:51 »
Спс, работает, но с изображением не получается, как в выводе добавить две переменные: либо лого, либо изображение из материала?
<meta property="og:image" content="<?php echo $logo_source ?>" />
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Open graph без плагина
« Ответ #10 : 09.11.2015, 10:37:16 »
Код
$meta_source
Перед этим определите $logo_source и img_source
*

kik84

  • Завсегдатай
  • 1350
  • 64 / 4
Re: Open graph без плагина
« Ответ #11 : 09.11.2015, 14:22:06 »
Можно еще глупый вопрос, $img_source = "images/stati/img_{$article_id}.jpg"; Т.е. мне в эту папку надо помещать изображения с названием img_idматериала.jpg?
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Open graph без плагина
« Ответ #12 : 09.11.2015, 14:43:27 »
Ну да! По крайней мере так задумано :)
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Open graph без плагина
« Ответ #13 : 10.11.2015, 16:37:41 »
удалено
« Последнее редактирование: 07.03.2016, 12:29:44 от Филипп Сорокин »
*

kik84

  • Завсегдатай
  • 1350
  • 64 / 4
Re: Open graph без плагина
« Ответ #14 : 06.03.2016, 20:18:19 »
Нужна ваша помощь, хочу добавить проверку на наличие "Изображение полного текста материала", т.е. если оно есть, то подставляем его для OG, если нет, то $logo_source = "images/logo.jpg";
Спасибо  ^-^
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Open graph без плагина
« Ответ #15 : 07.03.2016, 12:31:10 »
Код: php
$app = JFactory::getApplication();
$doc = JFactory::getDocument();
$option = $app->input->getCmd('option');
$view = $app->input->getCmd('view');

if($option === "com_content" && $view === "article")
{
    $id = $app->input->getCmd('id');
    $article = JTable::getInstance("content");
    $article->load($id);
    $images = json_decode($article->get('images'));
    
    if (!empty(images->image_fulltext)) {
        // раз
    } else {
        // два
    }
}
« Последнее редактирование: 07.03.2016, 12:45:09 от Филипп Сорокин »
*

kik84

  • Завсегдатай
  • 1350
  • 64 / 4
Re: Open graph без плагина
« Ответ #16 : 07.03.2016, 13:15:44 »
Пробую совместить ваш код с кодом от effrit из этой темы http://joomlaforum.ru/index.php/topic,322786.msg1614553.html#msg1614553, но пока лишь ошибка 500 на последнее условие проверки image_fulltext

Код
$article_id = (JRequest::getVar('option')==='com_content' && JRequest::getVar('view')==='article')? JRequest::getInt('id') : 0;
if($article_id){
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select($db->quoteName('images'))
->from($db->quoteName('#__content'))
->where('id = '. $db->Quote($article_id));

$db->setQuery($query);
$data = $db->loadResult();
$pics = json_decode($data);
echo $pics->image_fulltext;
}

$option = $app->input->getCmd('option');
$view = $app->input->getCmd('view');
if($option === "com_content" && $view === "article")
{
    $id = $app->input->getCmd('id');
    $article = JTable::getInstance("content");
    $article->load($id);
    $images = json_decode($article->get('images'));
    if (!empty(images->image_fulltext)) {
$logo_source = "images/sn.png";
    } else {
$images->image_fulltext;
    }
}
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Open graph без плагина
« Ответ #17 : 07.03.2016, 13:23:30 »
Ничего не понял. Что нужно сделать-то?
*

kik84

  • Завсегдатай
  • 1350
  • 64 / 4
Re: Open graph без плагина
« Ответ #18 : 07.03.2016, 13:50:59 »
Ничего не понял. Что нужно сделать-то?

Вытянуть изображение из fulltext материала и, если оно существует, подставить вместо $img_source = "images/img_{$article_id}.jpg";, если нет, то $logo_source.
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Open graph без плагина
« Ответ #19 : 07.03.2016, 14:34:01 »
Решение я написал выше.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

При обновлении плагина helix3 слетает сендвич в мобильном шаблоне

Автор gorbi_U

Ответов: 0
Просмотров: 1611
Последний ответ 25.01.2023, 10:55:44
от gorbi_U
Helix 3 : Open Graph - не та подпись к ссылке на сайт в FB и не отражается картинка и в ВК, и в FB

Автор lesovik

Ответов: 1
Просмотров: 1760
Последний ответ 23.01.2021, 18:46:15
от gorbi_U
Facebook игнорирует Open Graph

Автор Chez

Ответов: 4
Просмотров: 1327
Последний ответ 28.06.2016, 16:18:34
от kik84
Разметка Open Graph

Автор Mnojitell

Ответов: 6
Просмотров: 7638
Последний ответ 08.05.2016, 09:14:28
от Viktop
Не работает код плагина в Custom module

Автор marynel1548

Ответов: 3
Просмотров: 1018
Последний ответ 02.04.2016, 14:33:55
от zikkuratvk