Новости Joomla

SW JProjects v.2.6.0 - компонент каталога расширений для Joomla

👩‍💻 SW JProjects v.2.6.0 - компонент каталога расширений для Joomla.Компонент позволяет сделать свой мини-Joomla Extensions Directory - каталог расширений для CMS (не только для Joomla) или файлов. Есть возможность скачивания по лицензионным ключам.👩‍💻 v.2.6.0. Что нового?Этот релиз прежде всего связан с SEO и AI-оптимизацией. - Микроразметка Schema.org.Добавлен плагин микроразметки Schema.org для сущностей компонента. Для списков используется ListItem, для страницы проекта и версии - SoftwareApplication, для страницы документации - TechArticle. Плагин группы schemaorg в отличие от стандартных плагинов заполняет данные автоматически, но встраивает данные в граф сущностей микроразметки Joomla. Также исправляется одна ошибка генерируемой ядром микроразметки в зоне ответственности компонента.- Улучшение поиска по ключам. В панели администратора в списке ключей теперь можно искать по номеру заказа, email, домену, содержимому примечания к ключу.- Список ключей в админке. В списке ключей в панели администратора добавлен вывод домена и примечания- Поиск в списке проектов. Поиск в списке проектов в панели администратора стал более точным. Из полей для поиска убраны лишние поля.Компонент работает на Joomla 6 без включённого плагина обратной совместимости.Страница расширения и скачатьGitHub расширения.Joomla Extensions Directory#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 Гость просматривают эту тему.
  • 4 Ответов
  • 1451 Просмотров
*

kristow

  • Новичок
  • 9
  • 0 / 0
Добрый день.
Подскажите пожалуйста как можно не заходя в панель управления, удаленно создавать новый материал, и создавать меню с привязкой на этот материал?
т.е. я хочу с помощью php скрипта делать выборку из своей базы, и скриптом создавать материал, и публиковать в меню с привязкой к материалу.
Подскажите как это сделать?  ! Чтобы не клацать долго и нудно по админ панели...
Может по SQL запросу? Или может какой-то api есть для Joomla?
Или готового решения нет?
*

Wertos

  • Захожу иногда
  • 489
  • 22 / 0
Re: создание материала удаленно
« Ответ #1 : 20.07.2016, 18:22:25 »
Примерно так, подставляй свои данный и вперёд
Код: php
define( '_JEXEC', 1 );
define('JPATH_BASE', realpath(dirname(__FILE__)));
require_once ( JPATH_BASE .'/includes/defines.php' );
require_once ( JPATH_BASE .'/includes/framework.php' );
$basePath = JPATH_ADMINISTRATOR.'/components/com_content';
require_once $basePath.'/models/article.php';

$img_arr['image_intro'] = '';
$img_arr['float_intro'] = '';
$img_arr['image_intro_alt'] = '';
$img_arr['image_intro_caption'] = '';
$img_arr['image_fulltext'] = '';
$img_arr['float_fulltext'] = '';
$img_arr['image_fulltext_alt'] = '';
$img_arr['image_fulltext_caption'] = '';
     
$articles_arry['catid'] = '';
$articles_arry['created_by'] = 0;
$articles_arry['title'] = '';
$articles_arry['alias'] = JFilterOutput::stringURLSafe(JString::trim(JLanguage::getInstance('ru-RU')->transliterate($title)));
$articles_arry['introtext'] = '';
$articles_arry['fulltext'] = '';
$articles_arry['images'] = json_encode($img_arr);
$articles_arry['state'] = 1;
$articles_arry['urls'] = '{"urla":false,"urlatext":"","targeta":"","urlb":false,"urlbtext":"","targetb":"","urlc":false,"urlctext":"","targetc":""}';
$articles_arry['attribs'] = '{"show_title":"","link_titles":"","show_tags":"","show_intro":"","info_block_position":"","show_category":"","link_category":"","show_parent_category":"","link_parent_category":"","show_author":"","link_author":"","show_create_date":"","show_modify_date":"","show_publish_date":"","show_item_navigation":"","show_icons":"","show_print_icon":"","show_email_icon":"","show_vote":"","show_hits":"","show_noauth":"","urls_position":"","alternative_readmore":"","article_layout":"","show_publishing_options":"","show_article_options":"","show_urls_images_backend":"","show_urls_images_frontend":""}';
$articles_arry['metadata'] = '{"robots":"","author":"","rights":"","xreference":""}';
$articles_arry['language'] = '*';
$articles_arry['created'] = JHTML::Date(time(), 'Y-m-d H:i:s');
$articles_arry['metakey'] = '';

createArticle($articles_arry);

function createArticle($data)
{
    global $article_model;

    $data['rules'] = array(
        'core.edit.delete' => array(),
        'core.edit.edit' => array(),
        'core.edit.state' => array(),
    );
    if(!$article_model->save($data))
    {
        $err_msg = $article_model->getError();
        echo JText::_($err_msg)."\n";
        return false;
    }
}
*

kristow

  • Новичок
  • 9
  • 0 / 0
Re: создание материала удаленно
« Ответ #2 : 21.07.2016, 12:45:18 »
Спасибо большое за ответ  Wertos
Вставил скрипт в сайт. При запуске выдает ошибку: PHP Fatal error:  Cannot redeclare class ContentModelArticle in \administrator\components\com_content\models\article.php on line 22
Я так понимаю пример кода не для Joomla 3.5 ?
*

Wertos

  • Захожу иногда
  • 489
  • 22 / 0
Re: создание материала удаленно
« Ответ #3 : 21.07.2016, 15:16:28 »
Спасибо большое за ответ  Wertos
Вставил скрипт в сайт. При запуске выдает ошибку: PHP Fatal error:  Cannot redeclare class ContentModelArticle in \administrator\components\com_content\models\article.php on line 22
Я так понимаю пример кода не для Joomla 3.5 ?
У меня с 3.4 до 3.7 Dev работает !
И зачем его в сайт вставлять, это для отдельного PHP файла !
*

kristow

  • Новичок
  • 9
  • 0 / 0
Re: создание материала удаленно
« Ответ #4 : 25.07.2016, 11:21:29 »
Я проверил пути через print:
Код
define( '_JEXEC', 1 );
define('JPATH_BASE', realpath(dirname(__FILE__)));
require_once ( JPATH_BASE .'/includes/defines.php' );
require_once ( JPATH_BASE .'/includes/framework.php' );
$basePath = JPATH_ADMINISTRATOR.'/components/com_content';
print JPATH_BASE.'<br>';
print JPATH_ADMINISTRATOR.'<br>';
print $basePath.'<br>';
require_once $basePath.'/models/article.php';
Все верно. Но мне все равно выдает ошибку PHP Fatal error:  Call to a member function save() on a non-object in \material_new.php on line 45
У меня 45 строка это: if(!$article_model->save($data))
Сейчас тестил скрипт без вставки в сам код Joomla, как отдельный файл...
У меня кстати php5.5 - может поэтому ваш код у меня не работает?

P.S. нашел ваш пост http://joomlaforum.ru/index.php/topic,321011.msg1601561.html#msg1601561
и понял где ошибка :)
Спасибо.
« Последнее редактирование: 25.07.2016, 11:43:20 от kristow »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Вывод значений из custom fields материала в модуле по имени поля

Автор goga_pgasovav

Ответов: 3
Просмотров: 1500
Последний ответ 30.12.2024, 13:22:11
от goga_pgasovav
Переход на страницу материала после его размещения пользователем

Автор stepan39

Ответов: 0
Просмотров: 855
Последний ответ 22.11.2024, 07:14:15
от stepan39
Вывод даты материала в списке тегов

Автор androv77

Ответов: 2
Просмотров: 2066
Последний ответ 09.11.2023, 16:33:08
от denxio
Вывод дополнительного поля материала в модуле

Автор timofe

Ответов: 10
Просмотров: 2646
Последний ответ 06.10.2023, 14:02:24
от Mitriy
Как сделать отображение времени создания материала?

Автор Pzhigalov

Ответов: 0
Просмотров: 1119
Последний ответ 27.09.2023, 22:45:29
от Pzhigalov