Новости Joomla

Joomla 6: Автоматические обновления ядра в Joomla

Joomla 6: Автоматические обновления ядра в Joomla

👩‍💻 Joomla 6: Автоматические обновления ядра в Joomla. В октябрьском номере официального журнала Joomla - Joomla Community Magazine вышла статья David Jardin, где рассказывается о внедрении функционала автоматического обновления ядра Joomla.❓Почему сейчас? Joomla же жила как-то 20 лет без автоматических обновлений?Это оказалась самая востребованная за последнее время от пользователей Joomla функция. Но, основная причина внедрения - проблемы безопасности. Всякий раз, когда в новой версии Joomla устраняется уязвимость, злоумышленники начинают анализировать код, чтобы выяснить, какая именно уязвимость была исправлена. И как только они это выясняют - начинается разработка автоматизированных скриптов для взлома как можно большего количества сайтов. Затем доступы к автоматически взломанным сайтам продаются в профильных чатах и ресурсах "пачками" по несколько сотен тысяч или миллионов сайтов. Ваш сайт могли взломать несколько лет назад, но воспользоваться уязвимостью могут не сразу, а тогда, когда у злоумышленников возникнет необходимость. И только после этого вы может быть узнаете об этом.Анализ патча, понимание проблемы и разработка скрипта требуют времени. И если владелец сайта не обновит его до истечения этого срока, сайт может быть взломан. А хакеры действуют быстро! Для критических, легко эксплуатируемых уязвимостей речь идёт о временном окне в 10–12 часов — и этого времени явно недостаточно, чтобы все успели обновить свои сайты.Здесь выходят на первый план автоматизированные обновления: проект Joomla теперь может активно устанавливать обновления (и, следовательно, исправления безопасности) на сайты, чтобы гарантировать, что сайты действительно обновляются вовремя.🕘 От первых идей до реализации прошло 5 лет. И здесь можно вспомнить, как в Joomla 5.1 внедрили TUF - The Update Framework, позволяющий устанавливать защищённое соединение между сайтом и сервером обновлений и исключает возможность supply chain attack (атаки на цепочку поставок).Об особенностях реализации и требованиях к сайту читаем подробнее в статье на JCM.@joomlafeed#joomla #secutiry #jcm

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™. Интервью с волонтёрами 🎈Ну что, друзья, вот и настал этот долгожданный момент. Мы выпустили первое издание собственного журнала под эгидой NorrNext, который включает в себя интервью с видными деятелями сообщества из разных стран и континентов.Общий нарратив: показать, что нас объединяет (Joomla) и узнать больше о людях, которые вносят свой вклад в развитие платформы в своих сообществах. 20 лет — это много. Давайте же узнаем о коллегах 🎁 Первый цикл включает такие страны, как Австрия, Испания, Латвия, Россия, Румыния, Тайланд, Черногория, Чехия.⚙️ С кем интервью: ✔️ Владимир Елисеев 🇷🇺✔️ Дмитрий Рекун 🇱🇻✔️ Дмитрий Цымбал 🇷🇺✔️ Евгений Сивоконь 🇷🇺 ✔️ Сергей Толкачёв 🇷🇺✔️ Dénes Székely 🇷🇴✔️ Jan Pavelka 🇨🇿✔️ Miljan Vujosevic 🇲🇪✔️ Sergio Iglesias 🇪🇸✔️ Sigrid Gramlinger 🇦🇹✔️ Pisan Chueatchatchai 🇹🇭‼️ Новые интервью будут добавляться до конца декабря 2025. Заходите по ссылке время от времени💡👉 Читать далее

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

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
1. Открываем файл /components/com_tpdugg/tpdugg.php и заменяем в нем код:

Код: php
" (select count(c.id) FROM #__tpdugg_comments c  WHERE c.duggid=a.id AND c.published=1) as comments," .
на
Код: php
" (select count(c.id) FROM #__jcomments c  WHERE c.object_group = 'com_tpdugg' AND c.object_id=a.id AND c.published=1) as comments," .
(таких строчек в файле несколько, нужно заменить все)

Затем находим код:
Код: php
		$query = "SELECT COUNT(*) FROM #__tpdugg_comments a" .
" INNER JOIN #__users b" .
" ON a.userid=b.id" .
" WHERE" .
" duggid=" . $id .
" AND" .
" published=1" .
" AND" .
" b.block=0";
$db->setQuery($query);
$comments = $db->loadResult();
и меняем на
Код: php
		$query = "SELECT COUNT(*) FROM #__jcomments a" .
" INNER JOIN #__users b" .
" ON a.userid=b.id" .
" WHERE a.object_group='com_tpdugg'" .
" AND a.object_id=" . $id .
" AND published=1" .
" AND b.block=0";
$db->setQuery($query);
$comments = $db->loadResult();

Заменяем
Код: php
	// Load Comment Start
$query = "SELECT a.*, b.name FROM #__tpdugg_comments a" .
" INNER JOIN #__users b" .
" ON a.userid=b.id" .
" WHERE" .
" duggid=" . $id .
" AND" .
" published=1" .
" AND" .
" b.block=0" .
" ORDER BY id ASC";
$db->setQuery($query);
$acomments = $db->loadObjectList();

$comments = array();
$i=0;
if(count($acomments))
{
foreach ($acomments as $comment)
{
$comments[$i] = $comment;
$i++;
}
}
// Load Comment End
на
Код: php
	// Load Comment Start
$comments = array();
// Load Comment End

2. Открываем файл /components/com_tpdugg/tpdugg.html.php и заменяем в нем код:
Код: php
$link_comments = JRoute::_( 'index.php?option=com_tpdugg&task=detail&id='.$item->id.'&show=comments#tpdugg_comments' );
на
Код: php
$link_comments = JRoute::_( 'index.php?option=com_tpdugg&task=detail&id='.$item->id.'&show=comments#comments' );

Найдите код:
Код: php
				if(count($comments))
{
?>
<div class="tpduggs-com-body">
<?php
$n=2;
foreach($comments as $comment)
{
$n = ($n>=2)? 1 : 2;
?>
<dl class="tpduggs-com-main<?php echo $n; ?>">
<dt class="tpduggs-cahd">by <?php echo tpDuggLinkedUser($config, $comment->userid, $comment->name, 'tpduggs-ca'); ?>
<span><?php echo TPDuggHelper::getTime($comment->created); ?></span>
</dt>
<dd><?php echo $comment->comment; ?></dd>
</dl>
<?
}
?>
</div>
<?php
}

if(!$user->id)
{
?>
<div class="tpduggs-com-add">
<div id="tpduggs-com-form">
<?php echo JText::_('COMMENTING HAS EITHER BEEN DISABLED ON THIS ITEM OR YOU ARE NOT LOGGEN IN'); ?>
<?php echo JText::sprintf('CLICK HERE TO TO LOGIN OR REGISTER ITS FREE', JRoute::_('index.php?option=com_user&amp;view=login'), JRoute::_('index.php?option=com_user&amp;task=register')); ?>
<br><br>
<b><?php echo JText::_('NOTE'); ?>:</b> <?php echo JText::_('ANONYMOUS COMMENTING IS DISABLED IN ORDER TO KEEP THE QUALITY OF RESPONSES TO A HIGH STANDARD'); ?>
</div>
</div>
<?php
}
else
{
?>
 <div class="tpduggs-com-add">
 <div id="tpduggs-com-form">
<script language="javascript" type="text/javascript">
function comment_submit()
{
var form = document.commentForm;
if (form.comments.value == "")
{
alert( "<?php echo JText::_('PLEASE ENTER A COMMENT FIRST'); ?>" );
}
else
{
form.submit();
}
}
</script>

<div id="tpduggs-caf">by <?php echo tpDuggLinkedUser($config, $user->id, $user->name); ?></div>
<form action="index.php" method="post" name="commentForm" id="commentForm">
 <textarea cols="40" rows="5" style="width: 98%;" class="inputbox" id="comments" name="comments"></textarea>
<br>
 <input value="Submit Comment" class="button" onclick="comment_submit()" type="button">
 <input name="option" value="com_tpdugg" type="hidden">
<input name="task" value="save-comment" type="hidden">
 <input name="duggid" value="<?php echo $item->id; ?>" type="hidden">
 <?php echo JHTML::_( 'form.token' ); ?>
 </form>
</div>
</div>
<?php
}
и замените на:
Код: php
				global $mainframe;
$comments = $mainframe->getCfg('absolute_path'). '/components/com_jcomments/jcomments.php';
if (file_exists($comments)) {
require_once($comments);
echo JComments::showComments($item->id, 'com_tpdugg', $item->title);
}

Найдите строчку:
Код: php
<a href="<?php echo $link_comments; ?>"><?php echo JText::_('COMMENTS'); ?> (<?php echo count($comments); ?>)</a>
и замените ее на:
Код: php
<?php
global $mainframe;
$commentsCount = 0;
$commentsFile = $mainframe->getCfg('absolute_path'). '/components/com_jcomments/jcomments.php';
if (file_exists($commentsFile)) {
require_once($commentsFile);
$commentsCount = JComments::getCommentsCount($item->id, 'com_tpdugg');
}
?>
<a href="<?php echo $link_comments; ?>"><?php echo JText::_('COMMENTS'); ?> (<?php echo $commentsCount; ?>)</a>

3. Скачайте приаттаченный архив, распакуйте и поместите файл com_tpdugg.plugin.php в директорию /components/com_jcomments/plugins/


[вложение удалено Администратором]
« Последнее редактирование: 02.05.2010, 20:34:13 от smart »
*

loba

  • Осваиваюсь на форуме
  • 31
  • 1 / 0
Re: Интеграция JComments в компонент TPDugg
« Ответ #1 : 02.05.2010, 23:17:22 »
 yes! Всё отлично работает! +1000
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Jcomments на странице категории?

Автор romagromov

Ответов: 5
Просмотров: 4578
Последний ответ 12.12.2022, 17:01:38
от sivers
Интеграция с Community Builder

Автор Opposite

Ответов: 77
Просмотров: 69272
Последний ответ 20.09.2022, 11:22:26
от Vlad1
Отображение аватаров из JomSocial в JComments

Автор smart

Ответов: 33
Просмотров: 19576
Последний ответ 20.07.2020, 21:31:50
от darkknight
jComments + AlptaUserPoints Добавить текст в Подробности

Автор Nabla

Ответов: 3
Просмотров: 7480
Последний ответ 22.06.2020, 14:14:08
от Nabla
Интеграция JComments с SP Page Builder

Автор Proaqua

Ответов: 5
Просмотров: 6146
Последний ответ 14.06.2020, 11:53:38
от xpank