Новости 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

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

Nikoz

  • Захожу иногда
  • 115
  • 4 / 0
Давно искал такой скрипт, нигде не нашел, решил сам уже написать.. пример: skateandsnow . ru/catalog/chekhly/chekhol-dakine-womens-pipe-148-cm-detail (если ссылки запрещены - извиняюсь)

Принцип работы: в доп поле (select) есть текст, у доп.картинки есть alt который идентичен тексту в селекте, изменили селект - имитировался клик на доп.изображение.

Приступим:

1) Действия в админке.
В карточке товара выставляете доп.поле (select) к примеру - цвет. Добавляете значения: reg,green,blue - сохраняем, грузим фотки, в загруженных фото прописываем "Alt текст изображения" - red (собственно цвет к каждому фото, после каждого написания альта жмите сохранить)

2) Действия в /productdetails/tmpl/default.php (если у вас доп.картинки выводятся стандартно, то лезем в default_images.php)
Ищем форейч доп.картинок (у меня он уже был немного по выводу изменен
Код
// List all Images
if (count($this->product->images) > 0) {

   foreach ($this->product->images as $image) {
if(count($this->product->images)==++$i){ $last = 'last';}
echo $image->displayMediaThumb('class="product-image"  style="border: 1px solid black;"', true, 'class="cloud-zoom-gallery" rel=" useZoom:\'zoom1\', smallImage:\''.JURI::base().$image->file_url .'\' "', true, true); //'class="modal"'

   }
}


Добавляем наш alt ($image->file_meta)
Код
id="add_img-'.$image->file_meta.'"

Должно получится так
Код
// List all Images
if (count($this->product->images) > 0) {

   foreach ($this->product->images as $image) {
if(count($this->product->images)==++$i){ $last = 'last';}
echo $image->displayMediaThumb('class="product-image" id="add_img-'.$image->file_meta.'" style="border: 1px solid black;"', true, 'class="cloud-zoom-gallery" rel=" useZoom:\'zoom1\', smallImage:\''.JURI::base().$image->file_url .'\' "', true, true); //'class="modal"'

   }
}

Добавляем скрипт
Код
<script type="text/javascript">
$( document ).ready(function() {
$(function(){
$('select').change(function(){
alt_image = $('select option:selected').text();
$('#add_img-'+alt_image+'').click();
})
});
});
</script>


3) Радуемся *DRINK*

p.s.: можно было сделать это по "data-color" чтоб не всплывал текст, хотя это удобно с одной стороны.
       было бы неплохо добавить в админке доп.поле чтоб не мудрить так  :-X
       еще есть скрипт который выводит все товары на одной странице (30 вывел, нажали кнопку - еще 30, нажали еще раз - все), но там дуратский вывод (absolute, height 0, margin -over9000) т.к. не работает opacity если было бы .show() / .hide()... skateandsnow . ru/catalog/velosipedyi/results,1000-9

« Последнее редактирование: 21.09.2013, 02:20:17 от Nikoz »
*

Максим Пишняк

  • Давно я тут
  • 837
  • 35 / 0
Вполне изящно.

Вы для данной задачи не захотели реализовывать тип поля изображение?
*

Nikoz

  • Захожу иногда
  • 115
  • 4 / 0
Вполне изящно.

Вы для данной задачи не захотели реализовывать тип поля изображение?
Думал, но руки не доходят
*

Nikoz

  • Захожу иногда
  • 115
  • 4 / 0
Модифицировал скрипт, теперь добавляет класс на выбранное доп.фото и по нажатию на доп.фото меняется селект
Код
<script type="text/javascript">
$( document ).ready(function() {
$(function(){
$('select').change(function(){
alt_image = $('select option:selected').text();
$('.product-image').removeClass('test');
$('#add_img-'+alt_image+'').click();
});
$('.product-image').click(function(){$('.product-image').removeClass('selected-img');
$(this).addClass('selected-img')});
});
});


$(function(){
$('.product-image').click(function(){
alt_image = $(this).attr("alt");
$('select :contains('+alt_image+')').attr("selected", "selected");
});
});
</script>
*

G-Nome

  • Осваиваюсь на форуме
  • 46
  • 5 / 0
Доброго времени суток. Попробовал. Заработала, к сожалению, только модификация. А именно:

Цитировать
...добавляет класс на выбранное доп.фото и по нажатию на доп.фото меняется селект

А вот из селекта изменить главную картинку в карточке товара? Никак.

Понимаю смысл, что в скрипте имитируется "клик по миниатюре (по доп.фото)" и далее меняется сама главная картинка товара после того как в селекте выбирается определенный цвет (идет сравнение по мета тегам alt).

Теги и в селекте и в описании мини-фотографий - прописаны/указаны.

Класс class="product-image" в миниатюрах меняется на class="product-image selected-img" и обратно, когда через селект выбираю цвета (отслеживаю это через FireBug)...

...но вот события click() на мини-фото? Не происходит.

В представленном примере, по ссылке из первого поста, уже сравнивал и код и классы, но правильного результата пока так сам и не добился. Прошу помощи. Куда копать? На что обратить внимание еще?

P.S.: в карму ставлю жирный плюсище и за саму идею (сравнивания по мета-тегам) и за реализацию.

Да, и коротко "о себе":
Joomla 2.5.11;
VirtueMart 2.0.22;
По счастливой случайности так совпало, что вывожу фотографию товара так же, как и в примере, на сайте, через модуль Flexible VirtueMart Zoom Effect on Product Page
*

Aleks_El_Dia

  • Живу я здесь
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
А где подобных хак реализован, можно взглянуть?
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Здравствуйте. Может подскажете, а как на JS после этого самого клика по select вывести изображение скажем из папки images? Интересует только строка кода js по вставке <img> после тега с определённым классом
*

fsv

  • Moderator
  • 2787
  • 413 / 2
как на JS после этого самого клика по select вывести изображение скажем из папки images? Интересует только строка кода js по вставке <img> после тега с определённым классом
В код выше не вникал, абстрактный ответ только на ваш вопрос:
Код
<select id="myselect">
<option value="0">Выбор</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<div class="myClass1">11111</div>
<div class="myClass2">222222</div>
<div class="myClass3">333333</div>
<div class="myClass4">444444</div>
<script type="text/javascript">
jQuery(function($) {
$('#myselect').on('change', function(){
$('.myImg').remove();
if( $( '.myClass' + $(this).val() ).length ) {
$( '.myClass' + $(this).val() ).after( '<img class="myImg" src="/images/banners/osmbanner1.png" alt="My Image" title="My Image" />' );
}
});
});
</script>
Веб-разработка: заказ. Только новая разработка.
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Благодарю. А что проверяется этим условием:
Код
		if( $( '.myClass' + $(this).val() ).length ) {
?
Если существует такой myClass, у которого индекс выбран в select'е?

Вот что получилось у меня. Вот подопытная страница, упражняюсь над выбором значения поля "Тип багета"

Что я делал:
0. Мои библиотека jquery оказалась древнее метода on, поэтому пришлось залить версию 1.7.2 на сайт и подключить.
1. создал файл /templates/вашшаблон/вашаjsпапка/вашфайлскрипта.js следующего содержания:
Код
jQuery(function($) {
$('#baget_select').on('change', function(){
$('.myImg').remove();
if($(':selected',$(this)).text()=="темный"){
$( '.addtocart-area .product-field-type-S').after( '<img class="myImg" src="/images/banners/dark_baget.jpg" alt="Тёмный багет" title="Тёмный багет" />' );
}
else{
$( '.addtocart-area .product-field-type-S').after( '<img class="myImg" src="/images/banners/light_baget.jpg" alt="Светлый багет" title="Светлый багет" />' );
}
});
});
где baget_select - значение атрибута id интересуемого select'а
2. Прописал в index.php шаблона подключение .js файла:
Код
<script type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/вашаjsпапка/вашфайлскрипта.js"> </script>
3. Выложил картинки dark_beget.jpg, light_baget.jpg в /images/banners
« Последнее редактирование: 26.01.2014, 11:47:27 от borro »
*

fsv

  • Moderator
  • 2787
  • 413 / 2
А что проверяется этим условием:?
Здесь это не надо. Думал об одном, написал другое.
Вообще так проверяю на существование селектора, с которым работает скрипт. Это, если скрипт подключать не на одной конкретной рабочей странице, а в шаблоне. На страницах, где нет селектора, notice выскакивать будут.

Вот что получилось у меня. Вот подопытная страница, упражняюсь над выбором значения поля "Тип багета"
Не работает.
Так работает:
Код
jQuery(function($) {
$('#baget_select').on('change', function(){
$('.myImg').remove();
if($(this).val() == 5788){
$( '.product-field-type-S').after( '<img class="myImg" src="/images/banners/dark_baget.jpg" alt="Тёмный багет" title="Тёмный багет" />' );
}
else{
$( '.product-field-type-S').after( '<img class="myImg" src="/images/banners/light_baget.jpg" alt="Светлый багет" title="Светлый багет" />' );
}
});
});
Веб-разработка: заказ. Только новая разработка.
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Не работает.
Так работает:
Благодарю, подправил. В моем случае у разных товаров различаются значения value у option'ов, хотя цвета всегда остаются одинаковыми, поэтому использовал проверку по $(':selected',$(this)).text()
Осталось доработать пару моментов:
1. Как сделать, чтобы картинки выводились не по изменению значения select, а по значению, что в нем установлено? А то если возвращаться на страницу товара с другой страницы( например из корзины), значение select'a проставлено, но картинки багета нет.
2. как лучше сделать, чтобы при пустом значении select кнопка "Добавить в корзину" не работала?
« Последнее редактирование: 26.01.2014, 11:53:59 от borro »
*

fsv

  • Moderator
  • 2787
  • 413 / 2
Пустому присвойте val=0
Код
jQuery(function($) {
function imageBagetSelect(){
   if( $('.myImg').length ) {
       $('.myImg').remove();
   }
   if($("#baget_select option:selected").text()=="темный"){
       $( '.addtocart-area .product-field-type-S').after( '<img class="myImg" src="/images/banners/dark_baget.jpg" alt="Тёмный багет" title="Тёмный багет" />' );
  } else if ($("#baget_select option:selected").text()=="светлый"){ {
       $( '.addtocart-area .product-field-type-S').after( '<img class="myImg" src="/images/banners/light_baget.jpg" alt="Светлый багет" title="Светлый багет" />' );
  }
            if($("#baget_select").val()==0){
              $( '.addtocart-button').prop("disabled", true);
            } else {
                $( '.addtocart-button').prop("disabled", false);
            }
}
imageBagetSelect();
$('#baget_select').on('change', function(){
                  imageBagetSelect();
});
});
Не проверял.
Веб-разработка: заказ. Только новая разработка.
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Не проверял.
Благодарю. Немного подправил и добавил вывод сообщения о необходимости заполнить поле:
Спойлер
[свернуть]
« Последнее редактирование: 27.01.2014, 15:37:16 от borro »
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Подправил код так, чтобы картинки не показывались, если багет выбирается на странице категории товаров(если кнопка добавить в корзину выводится в категориях вместе с возможностью выбора настраиваемого поля там же)
Спойлер
[свернуть]
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как вывести категории с фото и подкатегориями?

Автор sergspb

Ответов: 0
Просмотров: 3413
Последний ответ 18.05.2022, 15:01:55
от sergspb
Эффект добавления товара в корзину VM3

Автор bassez

Ответов: 0
Просмотров: 3826
Последний ответ 05.06.2020, 12:28:26
от bassez
Вывод краткого описания товара в корзине

Автор PavelK

Ответов: 2
Просмотров: 4195
Последний ответ 04.04.2020, 16:34:10
от PavelK
Редактирование карточки товара VirtueMart

Автор muserun

Ответов: 2
Просмотров: 6195
Последний ответ 31.10.2019, 12:53:51
от Sandruk1
Изменение количества товара в корзине

Автор 1AZ1

Ответов: 18
Просмотров: 4688
Последний ответ 23.09.2019, 15:41:49
от draff