Новости Joomla

Компания JetBrains рассказала о своей поддержке Joomla

Компания JetBrains рассказала о своей поддержке Joomla

JetBrains - один из мировых лидеров в разработке программного обеспечения для разработчиков. Её программные продукты - это IDE - профессиональные среды разработки, которые отличаются от простого блокнота/редактора с плагинами набором всевозможных инструментов для разработчиков, глубоким анализом кодовой базы, подсказками по ней и по языку программирования, отладкой ошибок и многим-многим другим. Одним из самых известных продуктов компании является IDE PHP Storm, который можно назвать отраслевым стандартом PHP-разработчика.

В статье How PhpStorm Helps Maintain PHP Open-Source Projects: Interviews and Real-World Examples в блоге компании описываются Open Source проекты, которым JetBrains оказывает поддержку (это могут быть бесплатные лицензии для разработчиков для некоммерческих проектов).

В список попали:

  • PHPUnit - фреймворк для unit-тестирования в PHP
  • Doctrine DBAL - библиотека для PHP, которая предоставляет лёгкий и гибкий слой для коммуникации с базой данных. Она поддерживает различные базы данных через единый и согласованный API.
  • CodeIgniter — популярный MVC-фреймворк для разработки на PHP
  • Joomla! - наша любимая CMS.

Эти названия (кроме "Joomla") чаще всего не слышат вебмастера и разработчики обычных сайтов и интернет-магазинов. Но эти названия хорошо знакомы PHP-разработчикам, которые создают сложные и высоконагруженные проекты и микросервисы. То, что Joomla оказалась в одном ряду с такими программными инструментами - делает ей честь.

🙏 За ссылку спасибо участнику нашего сообщества Ринату Кажетову (@rkazhet).

Подпишитесь на @joomlafeed

Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1

Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1

👩‍💻 Joomla 6 нуждается в вашей помощи с тестированием.Вышел недавно релиз Joomla 6 alpha1. Это релиз, в который включены уже проверенные изменения, но ещё очень многие исправления и улучшения ждут своей очереди. Joomla следит за качеством и безопасностью своего кода и каждое изменение должно быть успешно протестировано как минимум ещё двумя участниками сообщества. Разработка Joomla ведётся на платформе GitHub.Филипп Уолтон (Philip Walton) - один из разработчиков, кто активно вносит свой вклад в ядро Joomla. Он уже несколько месяцев посвящает свои послеполуденные часы пятницы работе с Joomla и предлагает присоединиться к нему. 📆 Пятница, 30 мая 2025, с 15:00 до 17:00 по UTC (Лондон) - с 18:00 до 20:00 по Москве.В чате Google Meet Филипп готов помочь с тестированием тем, кто будет делать это в первый раз. А так же он подготовил список лёгких Pull Request, которые можно протестировать довольно быстро. Чем больше тестов будет проведено сейчас, тем меньше ошибок вылезет потом. На данный момент 148 (уже 147 на момент написания заметки) PR на GitHub Joomla ждут тестирования.👩‍💻 Open to all. All together.Также вам поможет сделать первые шаги это видео.GitHub JoomlaДа, это вечер пятницы. Но тестирование занимает порой минут 15, а доброе дело сделано. Просто убедитесь, что разработчик чего-то не пропустил и всё работает как ожидается.#joomla #joomla6 #community

0 Пользователей и 1 Гость просматривают эту тему.
  • 48 Ответов
  • 12120 Просмотров
*

Toxa33

  • Захожу иногда
  • 81
  • 0 / 0
Была такая же тема для Joomla 2.5 http://joomlaforum.ru/index.php?topic=183528.0

В 3 Joomla ктонито сделал подобное?
*

fbr

  • Завсегдатай
  • 1661
  • 206 / 7
Зачем подобное? этот вариант и работает без проблем в j3

Код: php
echo JHtml::_('string.truncate', ($item->introtext), '100');

цифру ставите свою
*

Toxa33

  • Захожу иногда
  • 81
  • 0 / 0
не подскажите в какой файл вставлять? и куда именно?
*

fbr

  • Завсегдатай
  • 1661
  • 206 / 7
Это зависит от того что и где вы хотите ограничить
Я ж не знаю, где  - в модуле, блоге, на главной ...
*

Toxa33

  • Захожу иногда
  • 81
  • 0 / 0
вывод статей на главной и в блоге категории
статьи выводятся стандартными средствами, без сторонних компонентов
*

fbr

  • Завсегдатай
  • 1661
  • 206 / 7
в блоге категории файл blog_item.php:
Код: php
40 <?php echo $this->item->event->beforeDisplayContent; ?> <?php echo JHtml::_('string.truncate', ($this->item->introtext), '100')?>
аналогично для главной - найти код в соответствующем файле и отредактировать

Лучше это делать не в самом компоненте, а в шаблоне в папке HTML, если нет - то создать
*

Toxa33

  • Захожу иногда
  • 81
  • 0 / 0
*

fbr

  • Завсегдатай
  • 1661
  • 206 / 7
Пожалуйста
Только, на мой взгляд, это не лучший вариант. Может проще "подробнее" вставлять раньше? Естественный ограничитель выводимого текста - лучше чем хак. Другое дело в модуле, где это может диктоваться компактностью
*

Toxa33

  • Захожу иногда
  • 81
  • 0 / 0
подробнее вставляется вручную, но статьи размещают разные пользователи и все делают вводную часть разной длины.
Для красоты хочется чтобы было везде одинаково
*

Ingener

  • Давно я тут
  • 547
  • 10 / 5
Да, но еще бы для красоты к этому решению добавить еще автоочистку HTML ВВОДНОГО ТЕКСТА, а то получится еще хуще чем было, подскажите решение пожалуйста.
*

b2z

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

Ingener

  • Давно я тут
  • 547
  • 10 / 5
Напишите пожалуйста какой будет окончательный вариант указанной выше строки:

Код
40 <?php echo $this->item->event->beforeDisplayContent; ?> <?php echo JHtml::_('string.truncate', ($this->item->introtext), '100')?>

чтобы работало ограничение кол-ва символов и очистка HTML.
*

b2z

  • Глобальный модератор
  • 7284
  • 778 / 0
  • Разраблю понемногу
Хех, разве так сложно заменить одно на другое? :)

Код: php
<?php echo $this->item->event->beforeDisplayContent; ?>
<?php echo JHtml::_('string.truncate', (strip_tags($this->item->introtext)), '100')?>
*

Takohashi

  • Захожу иногда
  • 69
  • 10 / 3
Хех, разве так сложно заменить одно на другое? :)

Код: php
<?php echo $this->item->event->beforeDisplayContent; ?>
<?php echo JHtml::_('string.truncate', (strip_tags($this->item->introtext)), '100')?>

А можно как-то сделать, чтобы при этой обрезке оставался блок с ссылками «Подробнее» и «Комментарии»?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
А можно как-то сделать, чтобы при этой обрезке оставался блок с ссылками «Подробнее» и «Комментарии»?
Этот код обрезает текст материала, а "подробнее" и "комментарии" вставляются плагинами уже за пределами этого кода
Так что одно другому не мешает
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Takohashi

  • Захожу иногда
  • 69
  • 10 / 3
beliyadm, почти так. Не обратил внимание, что «Подробнее» в настройках пункта меню случайно отключил — действительно выводится. А вот ссылка на комментарии — нет. Я использую плагин для DISQUS, и вот он как раз ссылку на комментарии засовывает в introtext, поэтому она и не выводится. Можно это как-то исправить? Вот кусок кода:
Код: php
// Set '$row->text' to '$row->introtext' for J!1.6+
if (version_compare(JVERSION, '1.6.0', 'ge'))
$row->text = $row->introtext;

// Fetch the template
ob_start();
$dsqListingPath = DisqusHelper::getTemplatePath($this->plg_name, 'listing.php');
$dsqListingPath = $dsqListingPath->file;
include ($dsqListingPath);
$getListingTemplate = $this->plg_copyrights_start.ob_get_contents().$this->plg_copyrights_end;
ob_end_clean();

// Output
$row->text = $getListingTemplate;
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
DISQUSне знаю этого плагина, потому не могу ничего сказать
В этом куске кода я не не вижу вставки
Давайте так, по порядку
Версия движка на сайте, что используется из плагинов, что требуется получить и какими средствами
Возможно что есть решение достаточно простое
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Takohashi

  • Захожу иногда
  • 69
  • 10 / 3
beliyadm, у меня сейчас всё на локалхосте. Joomla 3.3.6, плагин Disqus Comments. Плагин вообще простецкий — два с половиной файла и две с половиной настройки. По факту — всего лишь в статью подгружает из сети форму Дискуса и выводит ссылку на комментарии в вводном тексте статьи (в introtext), который обрезается.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
По факту — всего лишь в статью подгружает из сети форму Дискуса и выводит ссылку на комментарии в вводном тексте статьи (в introtext), который обрезается.
То есть по сути это как плагин стандартный движка аля loadmodule?

По факту — всего лишь в статью подгружает из сети форму Дискуса и выводит ссылку на комментарии в вводном тексте статьи (в introtext), который обрезается.
Честно не понял, кто у тебя обрезается? Интротекст? В режиме стандартных материалов?

Или может так - подгружает форму дискуса и ссылку на комментарии и обрезает интротекст

Честно - я пока не очень понимаю задачу
Если стукнешь мне завтра в скайп - может и решим быстрей задачу, так испорченный телефон получается
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Takohashi

  • Захожу иногда
  • 69
  • 10 / 3
beliyadm, ну вот смотри: на главной странице выводятся новости в виде вводного текста (интротекст), к каждой новости плагин Дискуса на главной странице отображает ссылку «Х комментариев», но эта ссылка выводится в конце интротекста, а так как мы обрезаем интротекст, как сказано в этом топике, то само-собой эта ссылка тоже обрезается.
Мне нужно, чтобы ссылка «Х комментариев» выводилась не в интротексте, а за его пределами, рядом с «Подробнее».

А форма Дискуса отображается на странице полного текста новости — это я просто суть плагина описал.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Если посмотреть страницу шаблона материала - то там видно что работает afterDisplayContent
Если у этого (не знаю что за дискусс) работает эта логика нашего движка - то все работает

То есть что нам нужно сделать сделать - написать банально плагин, что будет выводить текст за пределами fulltext ну или может я ошибаюсь
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Takohashi

  • Захожу иногда
  • 69
  • 10 / 3
написать банально плагин
Эх, я то думал, там как-то по-простому можно исправить, буквально заменив какую-то переменную...
Но, видимо, так просто не исправить. По тому куску кода, что я привёл выше видно, что первоначальный интротекст отправляется в файл listing.php (в том файле всего лишь к интротексту добавляяется ссылка «Х комментариев»), потом он обрамляется комментариями plg_copyrights_start/plg_copyrights_end и всё это выводится интротекстом.

Можно на гитхабе код глянуть — https://github.com/joomlaworks/disqus-comments-for-joomla Он более чем подробно закомментирован, но всё равно не соображу, так как никогда код в подобном ключе не менял.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Эх, я то думал, там как-то по-простому можно исправить, буквально заменив какую-то переменную...
не, ну можно и так
На уровне шаблона приходит уже весь текст после обработки плагинами
а вот в модели статьи можно делать многое
Но аккуратно, при обновлении все потеряется, потому надежнее плагином (но и чуть сложнее)

Но еще проще, если я правильно понимаю суть
Мне нужно, чтобы ссылка «Х комментариев» выводилась не в интротексте, а за его пределами, рядом с «Подробнее»
На уровне шаблона контента проверить, есть ли комментарии и вывести ссылку
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Takohashi

  • Захожу иногда
  • 69
  • 10 / 3
beliyadm, спасибо за помощь. Сейчас решил проблему, причём решил элементарно. Как я уже говорил, в файле listing.php к интротексту добавляется ссылка на комментарии, вот тамошний код:
Код: php
<a class="jwDisqusListingCounterLink" href="<?php echo $output->itemURL; ?>#disqus_thread" title="<?php echo JText::_("JW_DISQUS_ADD_A_COMMENT"); ?>" data-disqus-identifier="<?php echo $output->disqusIdentifier; ?>">
<?php echo JText::_("JW_DISQUS_ADD_A_COMMENT"); ?>
</a>
Я всего навсего скопировал этот код в нужное место в defaul_item.php, исправив $output->itemURL и $output->disqusIdentifier:
Код: php
<a class="jwDisqusListingCounterLink" href="<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid)); ?>#disqus_thread" title="<?php echo JText::_("JW_DISQUS_ADD_A_COMMENT"); ?>" data-disqus-identifier="<?php echo substr(md5('MY_DISQUS_DOMAIN'), 0, 10).'_id'.$this->item->id; ?>">
<?php echo JText::_("JW_DISQUS_ADD_A_COMMENT"); ?>
</a>
В результате ссылка выводится ровно такого же вида, как и плагином, но как я и хотел — за пределами интротекста. Только есть единственное НО — что в моём варианте, что ссылка из плагина, не всегда корректно отображается кол-во комментариев. Не знаю, то ли где-то кэшируется, то ли из-за того, что на локалхосте работает.
*

bb777

  • Осваиваюсь на форуме
  • 46
  • 0 / 0
А нет ли готового решения в виде плагина?
*

Леон

  • Захожу иногда
  • 332
  • 4 / 0
Не знаю по какой причине, но у меня многоточие добавлялось почему-то на новой строке. Оно почему-то после последнего </p> вставлялось и получалось новая строка с '...'

Решил проблему так, также в файле шаблона, в нужном месте вставил:

Код
// Получаю id текущей категории
$input = JFactory::getApplication()->input;
$categoryid = ($input->getCmd('view', '')=='article')?  $input->getCmd('catid', ''): $input->getCmd('id', '');

//Если id категории от 8 до 16 (это нужные мне категории где нужно сокращать текст), тогда выводим первые 470 символов текста и многоточие, иначе в других категориях выводим все как обычно, без обрезок.
if ($categoryid >= 8 && $categoryid <= 16) {
echo mb_substr($this->item->introtext,0,470). '...';
} else {
echo JHtml::_('content.prepare', $this->item->introtext);
}
*

autokaif

  • Захожу иногда
  • 81
  • 0 / 0
Зачем подобное? этот вариант и работает без проблем в j3

Код: php
echo JHtml::_('string.truncate', ($item->introtext), '100');

цифру ставите свою

Доброго времени суток. Выручите пожалуйста, надо ограничить текст до знака -
В файле \plugins\content\pagenavigation\tmpl\default.php
Не получается использовать Ваш пример с записью, которая выводит ссылку текстом на след и предыдущий материал

<ul class="pager pagenav">
<?php if ($row->prev) :
   $direction = $lang->isRtl()? 'right' : 'left'; ?>
   <li class="previous">
      <a class="hasTooltip" title="<?php echo htmlspecialchars($rows[$location-1]->title); ?>" aria-label="<?php echo JText::sprintf('JPREVIOUS_TITLE', htmlspecialchars($rows[$location-1]->title)); ?>" href="<?php echo $row->prev; ?>" rel="prev">
         <?php echo '<span class="icon-chevron-' . $direction . '" aria-hidden="true"></span> <span aria-hidden="true">' . $row->prev_label . '</span>'; ?>
         <?php echo htmlspecialchars($rows[$location-1]->title); ?>
      </a>
   </li>
<?php endif; ?>
<?php if ($row->next) :
   $direction = $lang->isRtl()? 'left' : 'right'; ?>
   <li class="next">
      <a class="hasTooltip" title="<?php echo htmlspecialchars($rows[$location+1]->title); ?>" aria-label="<?php echo JText::sprintf('JNEXT_TITLE', htmlspecialchars($rows[$location+1]->title)); ?>" href="<?php echo $row->next; ?>" rel="next">
         <?php echo htmlspecialchars($rows[$location+1]->title); ?><?php echo '<span aria-hidden="true">' . $row->next_label . '</span> <span class="icon-chevron-' . $direction . '" aria-hidden="true"></span>'; ?>
      </a>
   </li>
<?php endif; ?>
</ul>
Заранее Благодарю
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
А какой текст ты хочешь ограничивать?
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
*

autokaif

  • Захожу иногда
  • 81
  • 0 / 0
А какой текст ты хочешь ограничивать?
Благодарю за внимание!
Стрелки на предыдущий и следующий материал в самой статье, дооборудовал словами, как видно из титла (вставил echo htmlspecialchars($rows[$location-1]->title); ?> в <a href=""). Вот их и не получается обрезать до знака -
*

NewUsers

  • Живу я здесь
  • 2310
  • 216 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Код: php
echo htmlspecialchars(substr($rows[$location-1]->title, 0, stristr($rows[$location-1]->title, '-'));
Занимаюсь создание расширений для Joomla 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как сделать картинку ссылкой на материал без Вводного изображения?

Автор OZlaim

Ответов: 0
Просмотров: 781
Последний ответ 30.05.2024, 01:28:37
от OZlaim
Ограничить описание определенным кол-ом символов

Автор DamaVbubi

Ответов: 5
Просмотров: 1151
Последний ответ 13.02.2024, 20:44:36
от sivers
Добовление текста

Автор Мира

Ответов: 1
Просмотров: 628
Последний ответ 03.08.2023, 10:30:35
от darkghost
Ограничить число выводимых символов

Автор SuschnosT

Ответов: 19
Просмотров: 2283
Последний ответ 25.07.2022, 12:09:18
от Akeksandr
Снять ограничение на кол-во символов в модуле html

Автор lgmax

Ответов: 1
Просмотров: 619
Последний ответ 05.01.2022, 12:19:53
от draff