VM 2: Как сделать чтобы при нажатии на превью (картинку) открывалась станица с товаров?

Тема в разделе "Управление товарами, атрибутами, свойствами и цена", создана пользователем denisov, 15.03.2012.

  1. Offline

    denisov Недавно здесь

    Регистрация:
    14.03.2012
    Сообщения:
    8
    Симпатии:
    0
    Пол:
    Мужской
    По умолчанию в выводе товаров в категории при нажатии на превью (картинку) товара открывается картинка во всплывающем окошке. Как сделать, чтобы при нажатии на превью открывалась страница с товаром?

    p.s. я забыл, что уже добавлял вчера такойже вопрос на этом форуме, но там всё ещё ничего не ответили
     
  2.  
  3. Offline

    Jasperio Недавно здесь

    Регистрация:
    14.04.2012
    Сообщения:
    38
    Симпатии:
    3
    Пол:
    Мужской
    Вам нужно править файл "components\com_virtuemart\views\category\tmpl\default.php"
    Простите, я уже не помню точно как выглядела старая строчка, вроде вот так:
    Код (PHP):
    1. echo $product->images[0]->displayMediaThumb('class="browseProductImage" border="0" title="'.$product->product_name.'" ',true,'class="modal"');


    но свою я опубликовал так :

    Код (PHP):
    1. echo JHTML::link($product->link, JHTML::image($product->images[0]->file_url, $file_alt, $imageArgs));


    Достаем из массива $product расположение нужной нам фотографии $product->images[0]->file_url

    А вообще, так, для общего развития, попробуйте в этом же файле прописать вот этот код :
    Код (PHP):
    1. echo "<pre style="font-size:22px;">";
    2. print_r($product);
    3. echo "</pre>";
    4. exit();


    Вы увидите всю структуру вашей текущей продукции.
     
    Последнее редактирование: 14.04.2012
  4. Offline

    AndLev Недавно здесь

    Регистрация:
    03.05.2012
    Сообщения:
    6
    Симпатии:
    0
    Пол:
    Мужской
    Jasperio сделал как вы написали - заменил строчку в коде на указанную вами, но ничего не изменилось. Также открывается увеличенная картинка (( (Virtuemart 2.0.4)
     
  5. Offline

    Jasperio Недавно здесь

    Регистрация:
    14.04.2012
    Сообщения:
    38
    Симпатии:
    3
    Пол:
    Мужской
    Попробуйте так :

    Код (PHP):
    1. echo JHTML::link($product->link, JHTML::image($product->images[0]->file_url, NULL));


    Описание функции "image" :

    Код (PHP):
    1. public static function image($file, $alt, $attribs = null, $relative = false, $path_only = false)
    2.     {
    3.         if (is_array($attribs))
    4.         {
    5.             $attribs = JArrayHelper::toString($attribs);
    6.         }
    7.  
    8.         $includes = self::includeRelativeFiles('images', $file, $relative, false, false);
    9.  
    10.         // If only path is required
    11.         if ($path_only)
    12.         {
    13.             if (count($includes))
    14.             {
    15.                 return $includes[0];
    16.             }
    17.             else
    18.             {
    19.                 return null;
    20.             }
    21.         }
    22.         else
    23.         {
    24.             return '<img src="' . (count($includes) ? $includes[0] : '') . '" alt="' . $alt . '" ' . $attribs . ' />';
    25.         }
    26.     }


    Функция "image" принимает два обязательных параметра, это путь к файлу и значение ALT.
    Проследите чтобы третий параметр был пуст или не указан ($attribs). Дело в том, что в этом параметре может присваиваться значение class="modal", яваскрипт определяет его как модальное окно, обязательно очистите третий параметр!

    А вообще вы уверены в том, что мы в нужном месте изменяем код?

    Извините за долгий ответ.
     
    Последнее редактирование: 03.05.2012
    AndLev нравится это.
  6. Offline

    AndLev Недавно здесь

    Регистрация:
    03.05.2012
    Сообщения:
    6
    Симпатии:
    0
    Пол:
    Мужской
    Изменения вношу в файл components\com_virtuemart\views\category\tmpl\default.php

    и вместо 221 (notepad++) строчки
    вставляю ваш код:
    Думаю тут ошибок нет.

    Единственное я не совсем понял что делать с кодом: под "Описание функции "image" :". Я в этом слабоват)
    Не могли бы вы объяснить поподробнее?

    На всякий случай залил файл default.php с изменениями: http://zalil.ru/33179581 =))
     
  7. Offline

    Jasperio Недавно здесь

    Регистрация:
    14.04.2012
    Сообщения:
    38
    Симпатии:
    3
    Пол:
    Мужской
    Да, все верно. Но странно почему у вас не работает. На моей CMS Joomla работает даже ваш код.
    Даже и не знаю что еще вам посоветовать.
    Ничего, читать и вникать в код, снова читать и снова вникать, до тех пор пока не поймете принцип работы кода.
    Если не будете знать принцип очень долго будете продвигаться, учитесь.
     
  8. joomguru
    Offline

    joomguru Модератор

    Регистрация:
    03.12.2010
    Сообщения:
    455
    Симпатии:
    74
    Пол:
    Мужской
    Вот еще вариант, как вывести
    Код (PHP):
    1. echo JHTML::link($product->link, $product->images[0]->displayMediaThumb('class="browseProductImage" border="0" title="'.$product->product_name.'" ',false));
     
  9. Offline

    prosto-chups Недавно здесь

    Регистрация:
    11.09.2009
    Сообщения:
    9
    Симпатии:
    0
    Пол:
    Мужской
    Это рабочий вариант.

    Jasperio, не подскажешь где сама:
    public static function image?


    А то переписать хочу, а искать запарился...
    Joomla 2.5, VirtueMart 2.0.6
     
  10. joomguru
    Offline

    joomguru Модератор

    Регистрация:
    03.12.2010
    Сообщения:
    455
    Симпатии:
    74
    Пол:
    Мужской
    prosto-chups, тут смотри - administrator/components/com_virtuemart/helpers/
     
  11. Offline

    Jasperio Недавно здесь

    Регистрация:
    14.04.2012
    Сообщения:
    38
    Симпатии:
    3
    Пол:
    Мужской
    Код (PHP):
    1. public static function image($src)
    2. // ..\administrator\components\com_users\helpers\html\user.php
    3.  
    4. public static function image($file, $alt, $attribs = null, $relative = false, $path_only = false)
    5. // ..\libraries\joomla\html\html.php
    6.  
    7. public static function images($name, $active = null, $javascript = null, $directory = null, $extensions = "bmp|gif|jpg|png")
    8. // ..\libraries\joomla\html\html\list.php
    9.  
    10. public static function imageResize($width, $height, $target)
    11. // ..\administrator\components\com_media\helpers\media.php


    Кстати, здесь я описываю как пользуюсь поиском, почитайте Вам пригодиться. (5-й пост)
     
    Последнее редактирование модератором: 31.03.2014
  12. Offline

    prosto-chups Недавно здесь

    Регистрация:
    11.09.2009
    Сообщения:
    9
    Симпатии:
    0
    Пол:
    Мужской
    Спасибо, но там как раз не нашел...

    Тоже спасибо...
    Я вообще то именно через поиск этот пост и нашел )

    Просто я хотел сделать так, чтобы при клике на картинке открывался товар, а под картинкой (или на ней) надпись "Нажмите для увеличения" и лупа. При нажатии на лупу открывается увеличенное изображение в модальном окне.

    Для этого мне нужна была эта функция.
    Но я пошел немного по другому пути...
    В файле:
    /components/com_virtuemart/views/category/tmpl/default.php
    Или:
    /templates/ВАШ ШАБЛОН/html/com_virtuemart/category/default.php
    Заменил это:
    Код (CODE):
    1. echo $product->images[0]->displayMediaThumb('class="browseProductImage" border="0" title="'.$product->product_name.'" ',true,'class="modal"');

    На это:
    Код (CODE):
    1. echo JHTML::link($product->link, $product->images[0]->displayMediaThumb('class="browseProductImage" border="0" title="'.$product->product_name.'" ',false));
    2. ?>
    3. <br />
    4. <a class="modal" href="<?php echo $this->baseurl; ?>/<?php echo $product->images[0]->file_url; ?>">
    5. <div class="show_big_photo">
    6. <?php echo JText::_('COM_VIRTUEMART_VENDOR_FORM_FULL_IMAGE') ?>
    7. </div>
    8. </a>

    Потом прописал в файле стилей шаблона .show_big_photo, добавил цвет фона и шрифта, размер, фоновое изображение в виде линзы и при помощи margin-top: -10px поднял на фотографию.

    В общем, как-то так...
     
    Последнее редактирование модератором: 31.03.2014
  13. Offline

    Jasperio Недавно здесь

    Регистрация:
    14.04.2012
    Сообщения:
    38
    Симпатии:
    3
    Пол:
    Мужской
    Хорошее решение, я рад что вам это помогает, пользуйтесь, учитесь. :)
     

Поделиться этой страницей

Загрузка...