Новости Joomla

‼️👩‍💻 Релиз безопасности Astroid 3.3.11 - шаблона-конструктора для Joomla.

‼️👩‍💻 Релиз безопасности Astroid 3.3.11 - шаблона-конструктора для Joomla.

14 часов назад (на момент публикации заметки) была обнаружена уязвимость в популярном шаблоне-конструкторе Astroid Framework. При атаке на сайт устанавливается бэкдор — системный плагин под названием plg_system_blpayload. Если вы обнаружили этот плагин на своем веб-сайте, значит, он скомпрометирован, и вам необходимо восстановить чистую резервную копию, созданную до установки плагина.

Уязвимость позволяет загружать файлы на сайт и в дальнейшем получить права администратора Joomla.
В рамках атаки (из-за которой и была обнаружена уязвимость) на сайт устанавливался плагин plg_system_blpayload, который при каждой загрузке страницы снаружи он скрытно связывается с (платформой для SEO, работающей на черном рынке (ссылку помещать не будем, просим поверить на слово). Получает список скрытых спам-ссылок (сайты азартных игр, фишинга, мошенничества), подобранный под ваш домен, затем внедряет эти ссылки в HTML-код вашей страницы непосредственно перед рендером - невидимые для посетителей, но полностью читаемые поисковыми роботами. Это называется "отравление SEO" ("отрпавление поисковой выдачи").

Однако, эта уязвимость может использоваться в других целях. Поэтому необходимо срочно проверить ваши сайты, где стоит Astroid Framework и обновить его до версии не ниже 3.3.11. Релиз безопасности выпущен 4 часа назад (на момент написания заметки).

Скачать релиз безопасности Astroid

@joomlafeed

👩‍💻 Вышел Quantum Manager 3.3.0 - медиа менеджер для Joomla.

👩‍💻 Вышел Quantum Manager 3.3.0 - медиа менеджер для Joomla.

Популярный файловый менеджер для Joomla от отечественных разработчиков.

v.3.3.0. Что нового?
- Joomla 6. Компонент полностью совместим с Joomla 6, плагин обратной совместимости не требуется.
- Рефакторинг. Полностью удалён устаревший код, оставшийся в наследство от версий для Joomla 3.
- Новые настройки для SVG. Новые параметры фильтрации SVG-файлов.
- Улучшена безопасная функция предварительного просмотра SVG-файлов. Благодаря новым механизмам фильтрации восстановлена ​​возможность безопасного предварительного просмотра SVG-изображений.
- Исправления ошибок. Исправлены ошибки с данными EXIF ​​и обновлена ​​библиотека EXIF.

Читать новость
Скачать расширение

Также обновление получил плагин пользовательского поля Radicalmultifield для совместимости с новым Quantum Manager.

Репозиторий GitHub
Релиз на GitHub

@joomlafeed

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

ABTOP

  • Захожу иногда
  • 493
  • 33 / 4
В нормальном функционале при нажатии на одну из кнопок голосования обе кнопки пропадают. Это логично: голосование сделано и надобности в кнопках больше нет. Однако я делаю шаблон в котором кнопки должны обесточиваться, но на виду оставаться. JavaScript конечно срабатывает и прячет мои кнопки. Это происходит довольно быстро и я не успеваю засечь, что именно скрипт делает для изменения верстки. Прочитать скрип я не смог, т.к. я в этом не разбираюсь.

Вопрос: что именно делается с вёрсткой для прятания голосовательных кнопок после голосования?
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
После того, как за комментарий оценили, дергается шаблон tpl_comment, в нем вызывается функция getCommentVoteValue и то, что он возвращает заменяет текущее содержимое элемента. Поэтому если нужно, чтобы кнопки всегда были видны, надо в этой функции поменять проверку:
Код: php
<?php
if ($this->getVar('button-vote', 0) == 1) {
?>
<a href="#" class="vote-good" title="<?php echo JText::_('BUTTON_VOTE_GOOD'); ?>" onclick="jcomments.voteComment(<?php echo $comment->id;?>, 1);return false;"></a><a href="#" class="vote-poor" title="<?php echo JText::_('BUTTON_VOTE_BAD'); ?>" onclick="jcomments.voteComment(<?php echo $comment->id;?>, -1);return false;"></a>
<?php
}
*

ABTOP

  • Захожу иногда
  • 493
  • 33 / 4
Цитировать
...вызывается функция getCommentVoteValue...
Да, но я её не использую.
Числа голосов я вывожу напрямик, как они есть, без подсчёта разницы через
echo intval($comment->isgood); или $comment->ispoor
А изменения CSS-класса на vote-none сделано прямо в шаблоне.

То есть весь этот блок выглядит так:
Код
<span class="comments-vote">
<span id="comment-vote-holder-<?php echo $comment->id; ?>">
<span class="vote-good">
<?php if(intval($comment->isgood)!= 0) {
echo intval($comment->isgood);
}
else {
echo "&nbsp;";
} ?>
</span>

<?php
if ($this->getVar('button-vote', 0) == 1) {
?>
<a href="#" class="vote-good" title="<?php echo JText::_('BUTTON_VOTE_GOOD'); ?>" onclick="jcomments.voteComment(<?php echo $comment->id;?>, 1);return false;"></a>
<a href="#" class="vote-poor" title="<?php echo JText::_('BUTTON_VOTE_BAD'); ?>" onclick="jcomments.voteComment(<?php echo $comment->id;?>, -1);return false;"></a>
<?php
}
else
{
?>
<a href="#"  class="vote-none" title="<?php echo JText::_('ERROR_ALREADY_VOTED'); ?>" onclick="return false"></a>
<a href="#"  class="vote-none" title="<?php echo JText::_('ERROR_ALREADY_VOTED'); ?>" onclick="return false"></a>
<?php
}
?>
<span class="vote-poor">
<?php if(intval($comment->ispoor)!= 0) {
echo intval($comment->ispoor);
}
else {
echo "&nbsp;";
} ?></span>
</span>
</span>

Проблема в том, что кнопки (и цифры тоже) исчезают сразу после нажатия на них.
Иными словами, исчезает всё вутри
<span id="comment-vote-holder-x"></span>
При перезагрузке страницы они, конечно, появляются снова и в правильном виде, но хотелось бы чтобы JavaScript цифры продвигал, но ничего не прятал.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Еще раз, когда нажимают на кнопку голосования уходит запрос, который обрабатывается в jcomments.ajax.php, он после оценки вызывает указанный шаблон с параметром get_comment_vote, а тот в свою очередь дергает указанную функцию:
Код
			if ($this->getVar('get_comment_vote', 0) == 1) {
// return comment vote
$this->getCommentVoteValue( $comment );
Если у тебя обработки этого нет, то в ответ получишь пустоту - все скроется.
*

ABTOP

  • Захожу иногда
  • 493
  • 33 / 4
О! Так понятнее!  ;D
Щас подумаем, как переписать getCommentVoteValue в нужную сторону.
Спасибо.
*

ABTOP

  • Захожу иногда
  • 493
  • 33 / 4
Сергеи, такой вопрос попутно:
в файле /components/com_jcomments/jcomments.php строка 314
Код
	updateVote: function(i,t){this.busy.stop();var c=this.$('comment-vote-holder-'+i);if(c){c.innerHTML=t;}},
Что есть этa "t" и где она задаётся?

Я почему спрашиваю.
Строкой выше
Код
	voteComment: function(i){var v=this.$('comment-vote-holder-'+i);if(v){v.innerHTML='';this.busy.start(v,null);}return this.ajax('JCommentsVoteComment',arguments);},
вы стираете всё внутри comment-vote-holder-х . Затем через updateVote:туда же что-то вставляете из этой "t".
Так вот я думаю, что вы вставляете только выход функции getCommentVoteValue
то есть
<span class="vote-<?php echo $class; ?>"><?php echo $value; ?></span>
и ничего больше.

К условию if ($this->getVar('button-vote', 0) == 1) вы не возвращаетесь и поэтому оно никакой роли для AJAX-а не играет.
Я так думаю ещё и потому, что у меня выводятся числа intval($comment->isgood) за пределами этого условия и они должны были бы по идее отображаться всегда.

Опять же правильное отображение кнопок и цифр восстанавливается только после полной перезагрузки страницы, что вызывает прохождение через это самое условие.
« Последнее редактирование: 22.03.2012, 03:51:46 от ABTOP »
*

МихаилМ

  • Захожу иногда
  • 55
  • 2 / 0
если решили проблему - выложите решение
*

ABTOP

  • Захожу иногда
  • 493
  • 33 / 4
Решение стало частью шаблона.
http://www.joomlatune.com/forum/index.php?topic=5258.0
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться