Новости Joomla

Вышли релизы безопасности Joomla 6.1.1 и Joomla 5.4.6

Релиз безопасности Joomla 6.1.1 и Joomla 5.4.6

Проект Joomla! рад сообщить о выходе Joomla 6.1.1 и Joomla 5.4.6. Это релизы безопасности и исправления ошибок для серий 5.x и 6.x.

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

m_smirnoff

  • Осваиваюсь на форуме
  • 46
  • 2 / 0
Вводные:
Joomla 2.5.14
JoomShopping 3.15
Шаблон магазина default_div (шаблон на дивах от Nevigen)
Итак, ситуация в следующем:
Редактирую отображение страницы товара (файл product_default.php), а именно вывод превью изображений. Хочу сделать их списком и обрамить каждое изображение в <li></li>.
В исходно коде за вывод превьюшек отвечает код:
Код
<span id='list_product_image_thumb'>
   <?php if ( (count($this->images)>1) || (count($this->videos) && count($this->images)) ) {?>
      <?php foreach($this->images as $k=>$image){?>
         <img class="jshop_img_thumb" src="<?php print $this->image_product_path?>/<?php print $image->image_thumb?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->_title)?>" onclick="showImage(<?php print $image->image_id?>)" />
      <?php }?>
   <?php }?>
</span>

Мой код для вывода списком выглядит так:
Код
<ul class="thumbnails" id="list_product_image_thumb">
   <?php if ( (count($this->images)>1) || (count($this->videos) && count($this->images)) ) {?>
      <?php foreach($this->images as $k=>$image){?>
      <li class="span3">
         <img class="jshop_img_thumb" src="<?php print $this->image_product_path?>/<?php print $image->image_thumb?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->_title)?>" onclick="showImage(<?php print $image->image_id?>)" />
      </li>
      <?php }?>
   <?php }?>
</ul>

Вроде как все нормально работает и после легких манипульций с CSS все выглядит так, как требовалось:

Скриншот: http://redpen.io/r3w5qd

И тут сама проблема. Если я выбираю на странице товара значение какого-либо из атрибутов, то отображение превьюшек ломается. При обзоре исходного кода выясняется что мои теги <li></li> просто исчезают:

Скриншот: http://redpen.io/x2zv4s

После некоторого ковыряния нашел, что если в файле /components/com_jshopping/controllers/product.php закомментировать или убрать строки (примерно 522-526 строка):
Код
$displayimgthumb = intval( (count($images)>1) || (count($videos) && count($images)) );
$rows[] = '"images":['.implode(",", $tmp).'],"displayimgthumb":"'.$displayimgthumb.'"';
то эта проблема исчезает и все прекрасно работает.
Вопрос вот в чем: это какой-то глюк или я просто не там копаю. Хотелось бы выяснить этот вопрос ибо не хочется править файлы магазина, а обходиться только шаблоном.

Надеюсь понятно описал проблему.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
не глюк. просто при обновлении атрибута обновляются в том числе привязанные к нему (атрибуту) картинки. внешний вид их определяется в functions.js функция reloadAttribSelectAndPrice. этим хаком при обновлении атрибута убираете смену картинок. можно изменить так как вам надо в функции. а можно даже плагином, чтобы без хаков.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

m_smirnoff

  • Осваиваюсь на форуме
  • 46
  • 2 / 0
не глюк. просто при обновлении атрибута обновляются в том числе привязанные к нему (атрибуту) картинки. внешний вид их определяется в functions.js функция reloadAttribSelectAndPrice. этим хаком при обновлении атрибута убираете смену картинок. можно изменить так как вам надо в функции. а можно даже плагином, чтобы без хаков.

Спасибо за разъяснение. Получается что в любом случае надо хакать файлы самого магазина, что не есть хорошо для обновления. Ну а написать плагин я пока не силен. Может есть существующие плагины? Да и зачем вообще делать смену картинок?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
ну как зачем? затем что разные атрибуты могут иметь разные изображения.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

m_smirnoff

  • Осваиваюсь на форуме
  • 46
  • 2 / 0
ну как зачем? затем что разные атрибуты могут иметь разные изображения.
Ну хорошо, с этим понятно. И с functions.js разобрался — такое решение гораздо правильней, чем мое. Но это не выход.
Плохо что элементарное изменение разметки нельзя провести без хаков или написания дополнительного плагина. Задача-то простая — обернуть превьюшку или в <div> или в <li>, кому как удобнее для задания стилей. И тут приходится писать дополнительные расширения или хакать файлы. Как-то не совсем правильно на мой взгляд. Сама-то структура шаблонов весьма удобна для редактирования.
Может все-таки есть какие-то пути. Или никто не сталкивался?
« Последнее редактирование: 09.09.2013, 17:57:56 от m_smirnoff »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Цитировать
элементарное изменение разметки нельзя провести без хаков или написания дополнительного плагина
ну... что сказать :) особо не поспоришь. но почему то разработчики пошли таким путем (формируют разметку в js). напишите в хотелки, может доработают. а пока - хак functions.js либо плагин
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

victorantoniak

  • Moderator
  • 1579
  • 185 / 2
  • JoomShopping Team
1. Configuration / Shop function
Extended parameters for attributes: Отключть
 
или

2.
Свой стиль для images
нужно добавить javascript
Код
<script type="text/javascript">
reloadAttribEvents[reloadAttribEvents.length] = function(json){
     var html_thumb_img = "";
     if (json.images && json.images.length>0){
      for(var j=0;j<count_prod_img;j++){
                    html_thumb_img+='<img class="jshop_img_thumb" src="'+liveproductimgpath+'/thumb_'+json.images[j]+'" onclick = "showImage('+j+')" /> ';
                    tmp = 'style="display:none"';
                    if (j==0) tmp = '';
                    html_middle_img+='<a class="lightbox" id="main_image_full_'+j+'" href="'+liveproductimgpath+'/full_'+json.images[j]+'" '+tmp+'><img id="main_image_'+j+'" src="'+liveproductimgpath+'/'+json.images[j]+'" />'+html_zoom_img+'</a>';
                }
                if (json.displayimgthumb=="1")
                    jQuery("#list_product_image_thumb").html(html_thumb_img);
                else
                    jQuery("#list_product_image_thumb").html("");        
     }
</script>
« Последнее редактирование: 09.09.2013, 18:43:24 от victorantoniak »
*

m_smirnoff

  • Осваиваюсь на форуме
  • 46
  • 2 / 0
Всем спасибо за ответы. В чем-то помогло. Наверное действительно надо добавить в хотелки разработчикам, чтоб по-умолчанию вывод превьюшек формировался списком. Это даст больше возможностей для стилизации.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Код
надо добавить в хотелки разработчикам, чтоб по-умолчанию вывод превьюшек формировался списком
нет. в хотелки надо добавить, чтобы вывод формировался в php, и передавался в js в готовом виде. тогда можно использовать шаблон, в котором каждый как ему надо, так и будет выводить изображения.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

m_smirnoff

  • Осваиваюсь на форуме
  • 46
  • 2 / 0
Код
надо добавить в хотелки разработчикам, чтоб по-умолчанию вывод превьюшек формировался списком
нет. в хотелки надо добавить, чтобы вывод формировался в php, и передавался в js в готовом виде. тогда можно использовать шаблон, в котором каждый как ему надо, так и будет выводить изображения.
В принципе именно это я и хотел сказать :)
*

alikxus

  • Новичок
  • 7
  • 0 / 0
Подскажите, пожалуйста, такую вещь. Я добавил в атрибуты в файле product.php возможность увеличения картинки атрибутов. Все хорошо работает. Но появилась проблема. Так как у меня неаколько видов атрибутов, то при выборе одного (типа селект), происходит обновление всех остальных. Вот логическим путем сначала дошел до reloadAttribSelectAndPrice(), потом до if (json.images && json.images.length>0){ ну а потом с помощью Google и до этой темы. В программировании не силен, не пойму где нужно подправить, чтобы картинки атрибутов не теряли свои свойства
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

500 ошибка при попытке зайти в настрйоки магазина

Автор Ragivort

Ответов: 1
Просмотров: 1256
Последний ответ 25.12.2025, 17:09:41
от kit2m2
Уведомление о превышении доступного количества товара

Автор goga_pgasovav

Ответов: 1
Просмотров: 2235
Последний ответ 03.02.2025, 18:48:10
от kit2m2
Артикул или код товара?

Автор goga_pgasovav

Ответов: 3
Просмотров: 2377
Последний ответ 28.11.2024, 19:03:59
от goga_pgasovav
Странная задача: получить псевдоним товара по его ID в шаблоне статьи

Автор goga_pgasovav

Ответов: 4
Просмотров: 2830
Последний ответ 04.07.2024, 13:06:45
от goga_pgasovav
Ошибка при изменении статуса товара

Автор itbc

Ответов: 4
Просмотров: 2252
Последний ответ 08.05.2024, 10:31:16
от itbc