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

Stasweb

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

gartes

  • Живу я здесь
  • ******
  • 951
  • 71
  • Е = 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, 13:44:14 от gartes »
*

Stasweb

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

Stasweb

  • Живу я здесь
  • ******
  • 1066
  • 17
Вот рабочий вариант.
Все что вы описали кроме <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

  • Живу я здесь
  • ******
  • 951
  • 71
  • Е = 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

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

gartes

  • Живу я здесь
  • ******
  • 951
  • 71
  • Е = mс²
Конечно!!
Модель пользователя ...
Юзер групп..
и тд.. Понятно или нет ? ))))
*

gartes

  • Живу я здесь
  • ******
  • 951
  • 71
  • Е = mс²
Посмотрите как скрывается или показывается редактирование Joomla для админа на морде сайта ...
*

gartes

  • Живу я здесь
  • ******
  • 951
  • 71
  • Е = 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

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

gartes

  • Живу я здесь
  • ******
  • 951
  • 71
  • Е = mс²
Цитировать
А зачем <?php $field->display ='price.pdf'; ?>
Ой да это просто так написал что бы понятно было.. Что там будет в этой переменной.