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

Stasweb

  • Завсегдатай
  • 1492
  • 24 / 0
Требуется прикрепить к разному товару разный прайс.
Возможно ли допустим в информации о товаре прикреплять файл и выводить его в товаре допустим как pdf или еще какой другой.
Может есть плагин для VirtueMart уже готовой или что то похожее на это.
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Да есть..
1 Создаете обычное текстовое кастомарное поле. в нем пишете price_product_id111.pdf
2 За тем этому полю указываете позицию вывода. К примеру downolad_price
3 В файле шаблона (Скорее всего что это будет /productdetails/default.php ) Выводите эту позицию кастомарного поля.
Это можно сделать следующим способом.
Код: php
 echo shopFunctionsF::renderVmSubLayout('customfields',array('product'=>$this->product,  'position'=>'downolad_price' )); ?>
4 для того что бы это выводилось так как нам нужно не просто текстовой строкой а ссылкой на файл нужно
а) в папке sublayouts сделать копию файла customfields.php и переименовать его в cf_downolad_price.php
б) Верхний код немного изменим заменив макет костомарного поля на копию. Т.е. customfields на => cf_downolad_price
Код: php
 echo shopFunctionsF::renderVmSubLayout('cf_downolad_price',array('product'=>$this->product,  'position'=>'downolad_price' )); ?>
в) Находим в файле cf_downolad_price.php строку
Код: php
<?php echo $field->display ?>
и заменяем ее строкой
Код
<a href="/dir_download_price/<= $field->display ?>">Скачать Прайс.!</a>

Вот вроде и все.. Пользуйтесь ))
PS Есть тут еще один плюс. То что каждый товар может иметь сколько угодно прайсов.. (оптовый розница... и тд...)  
... Не забудьте про переопределения макетов в шаблоне
 
« Последнее редактирование: 24.02.2016, 11:44:14 от gartes »
*

Stasweb

  • Завсегдатай
  • 1492
  • 24 / 0
Такой способ тоже интересен.
Создавал примерно таким же путем только с редактором. В настраиваемые поля создал поле редактор и указал позицию макета price в productdetails/default.php прописал в нужном месте
Код
<?php echo shopFunctionsF::renderVmSubLayout('customfields',array('product'=>$this->product,'position'=>'price','class'=> 'product-price')); ?>
и там ссылки указывал на прайс.
Возможно вывести не ссылку а именно сам файл пусть не pdf а другой формат.
*

Stasweb

  • Завсегдатай
  • 1492
  • 24 / 0
Вот рабочий вариант.
Все что вы описали кроме <a href="/dir_download_price/<= $field->display ?>">Скачать Прайс.!</a> это не надо а в место <?php echo $field->display ?> пишем
Код
<div class="product-field-display">
<object data="<?php echo $field->display ?>" type="application/pdf" width="90%" height="450px"><a href="<?php echo $field->display ?>" >Прайс</a> </object>
</div>
и в поле Область текста указываем путь до прайса /images/price/price.pdf все работает.
Спасибо что ответили
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Тут не много не понятен вопрос
Цитировать
Возможно вывести не ссылку а именно сам файл пусть не pdf а другой формат.

Т.е. прайс скажем это просто скрин в формате .jpg /////  ? или какой другой формат ?

К примеру что бы вытащить pdf на страницу то код из предыдущего моего поста
Код
<a href="/dir_download_price/<= $field->display ?>">Скачать Прайс.!</a>
Нужно немного изменить.
Код
<object data="/dir_download_price/<= $field->display ?>" type="application/pdf" width="90%" height="450px">
alt: <a href="/dir_download_price/<= $field->display ?>">Прайс к товару</a>
</object>
тег "<object>" вроде все понимают IE || Opera 4+

Цитировать
В настраиваемые поля создал поле редактор
Поле редактор не все редакторы будут пропускать код html-я

*

Stasweb

  • Завсегдатай
  • 1492
  • 24 / 0
Вопрос встал теперь как сделать только для зарегистрированных так как Только администратор установлен да но все таки он его отображает.
Ставлю Скрыто да то везде пропадает.
Возможно ли вот эту часть
Код
<?php echo shopFunctionsF::renderVmSubLayout('cf_downolad_price',array('product'=>$this->product, 'position'=>'pdf_price' )); ?>  
Показывать только как для зарегистрированных.
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Конечно!!
Модель пользователя ...
Юзер групп..
и тд.. Понятно или нет ? ))))
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Посмотрите как скрывается или показывается редактирование Joomla для админа на морде сайта ...
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Я бы немного модернизировал Ваш  код...
Код
<object data="<?php echo $field->display ?>" type="application/pdf" width="90%" height="450px"><a href="<?php echo $field->display ?>" >Прайс</a> </object>
так в базу будет писать каждый раз весь путь к файлу. /images/price/ это не рационально .)

Код
<?php $field->display ='price.pdf'; ?>
<object data="/images/price/<?php echo $field->display ?>" type="application/pdf" width="90%" height="450px"><a href="/images/price/<?php echo $field->display ?>" >Прайс</a> </object>
а так в базе будет хранить только price.pdf.
*

Stasweb

  • Завсегдатай
  • 1492
  • 24 / 0
А зачем <?php $field->display ='price.pdf'; ?> можно просто /images/price/<?php echo $field->display ?>
Ведь прайсы будут разные по названию
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Цитировать
А зачем <?php $field->display ='price.pdf'; ?>
Ой да это просто так написал что бы понятно было.. Что там будет в этой переменной.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Дополнительное фото к товару?

Автор warlocksp

Ответов: 2
Просмотров: 416
Последний ответ 01.09.2020, 17:04:16
от warlocksp
Добавление карты к товару VirtueMart 2

Автор Orfei

Ответов: 1
Просмотров: 742
Последний ответ 26.07.2017, 03:33:24
от Orfei
[Решено] Модификация функции "Задать вопрос по товару" в VirtueMart 2.0.10

Автор Afterlife

Ответов: 21
Просмотров: 18635
Последний ответ 30.03.2017, 14:39:03
от Eholov
Задать вопрос по товару

Автор 27NataRUS

Ответов: 8
Просмотров: 1544
Последний ответ 28.01.2017, 19:20:15
от Stasweb
Можно ли сделать перенаправление на Главную страницу сайта после добавления отзыва к товару?

Автор lolitma3

Ответов: 0
Просмотров: 807
Последний ответ 18.06.2016, 00:38:45
от lolitma3