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

mila_serdnaya

  • Захожу иногда
  • 432
  • 3 / 0
Здравствуйте, уважаемые веб-программисты!

Нужно, чтобы у зарегистрированного пользователя сайта была своя страничка, на которой отображались бы все произведения, опубликованные этим пользователем.

Подскажите, пожалуйста, как это можно осуществить?
*

Ilhom666

  • Завсегдатай
  • 1384
  • 184 / 0
Создайте Контакт, привяжите к нему вашего пользователя и в настройках Контактов включите "Показывать материалы пользователя"
*

mila_serdnaya

  • Захожу иногда
  • 432
  • 3 / 0
Страничка у пользователя уже есть (если быть точнее, то у него есть свой личный кабинет, сделанный по подобию личного кабинета автора сайта stihi.ru). Так вот, нужно, чтобы на одной из страниц этого личного кабинета (под словами "Произведения, не вошедшие в сборники" - см. ссылку ниже), автоматически выводился список всех произведений, опубликованный данным автором.
http://vk.com/photo304500865_374189006

Задачу, насколько я поняла, можно решить созданием специального модуля и вставкой этого модуля в нужное место в тексте.
Как вставить модуль в текст я разобралась: назначить модулю позицию, например "position-100", а в нужное место в тексте вставить формулу: {loadposition position-100}
Осталось разобраться с самим модулем.
На одном из форумов мне посоветовали установить flexi custom code, создать модуль с типом " flexi custom code" и поместить в него такой код:
 <?php $user = & JFactory::getUser();
    if (!$user->guest) {
        $db = JFactory::getDBO();
        $userID = $user->id;
        $catID = 10; // категория произведений пользователя
        $query = "select * from #__content where created_by = '".$userID."' and state = '1' and access = '1' and catid='".$catID."' order by ordering asc";
        $db->setQuery($query);
        $result = $db->loadObjectList();
    
        //print_r($result);
        if(count($result)){
            foreach($result as $key=>$item):?>
            <div id="val"><?php echo $item->title; ?></div>
            <?php endforeach;  
        
        }
    
    }
?>

Модуль я создала: http://vk.com/photo304500865_374468784, назначила ему позицию "position-101". В тексте статьи под словами "Произведения, не вошедшие в сборники" вставила конструкцию: {loadposition position-101}. Никакого списка не отобразилось. В чём может быть ошибка, подскажите, пожалуйста!

Или, может быть, задачу можно решить как-то иначе? Подскажите, пожалуйста!
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
$user = & JFactory::getUser();
Это текущий пользователь.
  $query = "select * from #__content where created_by = '".$userID."' and state = '1' and access = '1' and catid='".$catID."' order by ordering asc";
Надо чтобы:
1.У пользователя под которым вы вошли были статьи.
2. Статьи пользователя были в категории с id = 10
3. Статьи опубликованы и у пользователя есть к ним доступ.
*

mila_serdnaya

  • Захожу иногда
  • 432
  • 3 / 0
http://extensions.joomla.org/extension/author-list
Shustry, прошла по ссылке. Установочные файлы скачала, но устанавливать не стала - испугал английский язык. Может быть, есть ещё какой-то вариант решения задачи?
*

mila_serdnaya

  • Захожу иногда
  • 432
  • 3 / 0
passer, вы пишите: "надо чтобы ....статьи пользователя были в категории с id = 10". Я правильно поняла, что id статей для каждого нового пользователя нужно набирать вручную?

На сайте будут регистрироваться сотни пользователей, поэтому нужно, чтобы на одной из страниц личного кабинета (под словами "Произведения, не вошедшие в сборники"), автоматически выводился список всех произведений, опубликованный данным автором.
Подскажите, пожалуйста, как это можно осуществить?

На данный момент я смогла только вывести в нужное место модуль с типом "Материалы-последние новости": http://vk.com/photo304500865_374266319 - это для примерного понимания картины.
 
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
Код: php
$query = "select * from #__content where created_by = '".$userID."' and state = '1' and access = '1' and catid='".$catID."' order by ordering asc";
заменить на
Код: php
$query = "select * from #__content where created_by = '".$userID."' and state = '1' and access = '1' order by ordering asc";
*

mila_serdnaya

  • Захожу иногда
  • 432
  • 3 / 0
passer, спасибо, код поменяла. Это решило вопрос, (правда, как выяснилось, частично) получилась такая картина: http://vk.com/photo304500865_374490079
Сразу возник вопрос другой:
Как сделать ссылки на опубликованные произведения кликабельными, чтобы они вели на опубликованное произведение?
 
Вот пример: при нажатии на стихотворение "Украине" http://vk.com/irinkapelsinka?z=photo304500865_374492747%2Fphotos304500865 открывается страница с самим стихотворением: http://vk.com/irinkapelsinka?z=photo304500865_374492754%2Fphotos304500865

« Последнее редактирование: 16.07.2015, 00:41:37 от mila_serdnaya »
*

Shustry

  • Moderator
  • 6434
  • 745 / 3
Shustry, прошла по ссылке. Установочные файлы скачала, но устанавливать не стала - испугал английский язык. Может быть, есть ещё какой-то вариант решения задачи?
Ну я использовал этот компонент успешно. Английский в админке не смущает. Несколько фраз на фронте перевёл, дело минутное.
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
Как сделать ссылки на опубликованные произведения кликабельными, чтобы они вели на опубликованное произведение?
Как-то так.
Код: php
if(count($result)){
     foreach($result as $key=>$item):
        $link = JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catid, $item->language));
     ?>
        <div id="val"><a href="<?php echo $link; ?>"><?php echo $item->title; ?></a></div>
        <?php endforeach;  
        
  }
Но может не найти какие-то классы типа Fatal error: Class ... not found
Это уж надо конкретно смотреть какие и подключать по мере необходимости.
Может кто-то и с ходу подскажет. Я в Jooml-е не великий спец.
*

mila_serdnaya

  • Захожу иногда
  • 432
  • 3 / 0
passer, вопрос со списком произведений, которые автор опубликовал на сайте, в итоге решён проще: с помощью функции {loadposition position-100} в нужное место в тексте страницы вставляется модуль с названием "Список опубликованных произведений" (Тип модуля выбрала - "Материалы-последние новости"), назначила модулю позицию - position-100.
Важно: в основных параметрах создаваемого модуля в пункте авторы указать "добавлены или изменены мной", вместо "кто угодно".
http://vk.com/irinkapelsinka?z=photo304500865_374834090/photos304500865
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться