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

Ахмадинеджад

  • Осваиваюсь на форуме
  • 40
  • 0 / 0
Приветствую вас народ трудовой :)
Возникла нужда, продублировать несколько раз: Опцию "Автор".
Добавить ещё пункт (либо Соавтор, либо Фотограф, либо и то и другое).

Вот так мне видится.
Это в статье:
("Фото Татьяны Бардиной" я сейчас просто пишу в теле статьи.)


А это вот в админке:


Превьюшки на главной и в категориях, троагть не хочу, пусть так и остаётся только Автор.


Надо сделать дополнительные пункты лишь в полной новости.
Спасибо всем кто откликнется.  *DRINK*
« Последнее редактирование: 18.09.2010, 18:04:29 от Ахмадинеджад »
*

Ахмадинеджад

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

valagoff

  • Давно я тут
  • 984
  • 110 / 0
а просто внизу/вверху статьи писать фото Ахмадинежада никак?
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
если полей много, то имеет смысл заморочиться сторонним компонентом.
form2content глянь-оно паразитирует на стандартных статьях )
или можно на FLEXIcontent переехать.
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
если полей много, то имеет смысл заморочиться сторонним компонентом.
form2content глянь-оно паразитирует на стандартных статьях )
или можно на FLEXIcontent переехать.
:) из-за одного поля суетиться думаю не стоит.
Вообще в вашем случае если не задействовано поле псевдоним делается все гораздо просто.
Открываем {root}\components\com_content\views\article\tmpl\default.php копируем его в {root}\templates\{ВАШ шаблон}\html\com_content\article\default.php
и заменяем в нем
Код: php
<?php if (($this->params->get('show_author')) && ($this->article->author != "")) : ?>
<tr>
<td valign="top">
<span class="small">
<?php JText::printf( 'Written by', ($this->escape($this->article->created_by_alias)? $this->escape($this->article->created_by_alias) : $this->escape($this->article->author)) ); ?>
</span>
&nbsp;&nbsp;
</td>
</tr>
<?php endif; ?>
на
Код: php
<?php if (($this->params->get('show_author')) && ($this->article->author != "")) : ?>
<tr>
<td valign="top">
<span class="small">
<?php JText::printf( 'Written by', $this->escape($this->article->author)); ?>
</span>
&nbsp;&nbsp;
</td>
</tr>
<?php endif; ?>
<?php if ($this->article->created_by_alias): ?>
<tr>
<td>
<?php echo 'ФОТО: '. $this->escape($this->article->created_by_alias); ?>
</td>
</tr>
<?php endif; ?>
Сохраняем в UTF-8 без DOM.
Теперь если будет заполнено поле псевдоним под автором будет выводиться - ФОТО: То что в псевдониме.
Если нужно выбирать конкретного пользователя из списка, то там уже нужно лезть в код и никакой FLEXI наверное не поможет (хотя могу ошибаться :) ). Как это сделать, думаю, писать не имеет смысла.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
всё зависит от задачи.
списки во флекси как раз таки естью более того, там есть какая-то извратная их форма с выборкой из бд (сам не пробовал :) )
так что, вполне возможно, что и юзеров можно выбирать. но, на крайняк, создаём дополнтельное поле со списком фамилий и вот готовый выпадающий список.
в form2content вроде тоже списки есть. но там надо смотреть-я не помню.

а псевдоним автора не подходит. в задаче уже 2 поля и "etс" :)
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
а псевдоним автора не подходит. в задаче уже 2 поля и "etс" :)
да может быть и подошел, только я забыл про другие шаблоны вывода блога и т.д. :) там то он тоже учитывается.
Поэтому такой вариант не проканает, нужно либо поле дополнительно создавать либо параметр. Ну или твой вариант, я бы его правда поставил на последнее место, т.к. ставить эти монструозы для решения элементарной задачи думаю не имеет смысла :)
Вот чего-то подумал с параметром даже более изящно получается.
{root}\administrator\components\com_content\models\article.xml
меняем
Цитировать
...
<params group="advanced">
...
на
Цитировать
...
<params addpath="/administrator/components/com_content/elements" group="advanced">
   <param name="created_by_2" type="author" default=""  label="Author 2" />
...

И в шаблоне вывода добавляем
Код: php
<?php if (($this->params->get('show_author')) && ($this->article->author != "")) : ?>
<tr>
<td valign="top">
<span class="small">
<?php JText::printf( 'Written by', ($this->escape($this->article->created_by_alias)? $this->escape($this->article->created_by_alias) : $this->escape($this->article->author)) ); ?>
</span>
&nbsp;&nbsp;
</td>
</tr>
<?php endif; ?>

<?php /* это добавляем */ ?>
<?php if ($this->params->get('created_by_2', null)) :
$user2 = JFactory::getUser($this->params->get('created_by_2')); ?>
<?php if ($user2->name !== $this->article->author) : ?>
<tr>
<td>
Блаблабла: <?php echo $user2->name; ?>
</td>
</tr>
<?php endif ?>
<?php endif ?>

Получается вроде нормально. Если автор и второй автор не совпадают то будет выводиться 2 автора :) Правда будет один лишний запрос, но думаю от него никто не умрет.
*

Ахмадинеджад

  • Осваиваюсь на форуме
  • 40
  • 0 / 0
спасибо друзья.
Я попробовал по последнему мануалу SmookerMan-a... Вышло как-то неправильно. Возможно в этом виноват шаблон. (Ja-Newsy)


Поясняю:
1. Поля "Автор" и "Блаблабла" - меняются значениями.
2. Поле в котором выводится "Автор" из списка, (в данном случае Блаблабла) - выводит первого пользователя из списка (В данном случае это Александра Светлова), какого бы пользователя  я не выбрал.
Думаю сперва надо научить этот код: не меняться значениями.

article.xml
Код
<params addpath="/administrator/components/com_content/elements" group="advanced">
   <param name="created_by_2" type="author" default=""  label="Author 2" />
        <param name="show_title" type="list" default="" label="Show Title" description="Show/Hide the items title">
            <option value="">Use Global</option>
            <option value="0">No</option>
            <option value="1">Yes</option>
        </param>... .etc

www\templates\news\html\com_content\article\default.php
Код
<?php if (($this->params->get('show_author') && ($this->article->author != "")) || ($this->params->get('show_page_title'))) : ?>
<p class="noticebottom clearfix">
    <?php if (($this->params->get('show_author')) && ($this->article->author != "")) : ?>
    <span class="createdby">
        <?php JText::printf('Written by', ($this->article->created_by_alias ? $this->article->created_by_alias : $this->article->author)); ?>
    </span>
    <?php endif; ?>
   
</p>
<?php endif; ?>

<?php /* это добавляем */ ?>
<?php if ($this->params->get('created_by_2', null)) :
    $user2 = JFactory::getUser($this->params->get('created_by_2')); ?>
    <p class="noticebottom clearfix">
    <?php if ($user2->name !== $this->article->author) : ?>
    <span class="createdby">
            Блаблабла: <?php echo $user2->name; ?>
    </span>
    <?php endif ?>
    </p>
<?php endif ?>
 
 
<?php echo $this->article->event->afterDisplayContent; ?>
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Думаю сперва надо научить этот код: не меняться значениями.
:) второй вариант псевдоним как раз не задействует, а добавляется просто дополнительный параметр. Потому что первый не совсем правильный.
В "Параметры - Расширенные" у вас появляется дополнительный параметр - список пользователей группы автор и выше, вот в нем и нужно выбирать пользователя.
*

Ахмадинеджад

  • Осваиваюсь на форуме
  • 40
  • 0 / 0
Опс ) Сорри, действительно.
Спасибо большое. А можно этот список переместить в блок повыше?
Чтобы был под псевдонимом автора?
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Чтобы был под псевдонимом автора?
нет. Вернее можно все, но придется делать больше манипуляций
*

Ахмадинеджад

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

Ахмадинеджад

  • Осваиваюсь на форуме
  • 40
  • 0 / 0
а можно сделать так,  что-бы по умолчанию ничего в графе блаблабла не было? То есть, если не выбираю ничего (вообще не трогаю), то она и не отображается на сайте.
А то сейчас во второй графе по умолчанию стоит первый пользователь в списке...
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Проблема с авторизацией Invalid Token

Автор treX

Ответов: 100
Просмотров: 97132
Последний ответ 06.10.2019, 16:55:45
от PaLyCH
Как добавить статью в созданный новый раздел (меню)

Автор Lzrv

Ответов: 1
Просмотров: 1639
Последний ответ 16.11.2017, 09:00:15
от Lzrv
Как проверить форму обратной связи [Решено]

Автор mafiozzzza

Ответов: 8
Просмотров: 6854
Последний ответ 30.05.2017, 11:34:11
от darkghost
[Решено] Проблемка с якорями

Автор yarikk

Ответов: 6
Просмотров: 2014
Последний ответ 25.11.2016, 02:02:57
от yarikk
Как добавить новый модуль?

Автор kirill-juk

Ответов: 1
Просмотров: 1525
Последний ответ 02.02.2016, 22:11:41
от vipiusss