Основной курс по Joomla

HTML прайс на основе vm2_market

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

likrion

  • Завсегдатай
  • *****
  • 753
  • 126
HTML прайс на основе vm2_market
« : 05.10.2012, 15:07:25 »
не знаю но вдруг кому пригодится

сделан на основе http://joomlaforum.ru/index.php/topic,198852.0.html

[spoiler title=код скрипта]
Код
<?php
mb_internal_encoding("UTF-8");
define('NAME', 'OOO '); // название организации (не должно превышать 20 символов)
define('DESC', 'Компания '); // описание организации
define('CURRENCY', 'RUB'); // валюта магазина (RUB, USD, EUR, UAH, KZT)
define('EXCLUDE_CAT', '0'); // id категорий которые нужно исключить из выгрузки, перечислить через запятую, например define('EXCLUDE_CAT', '2,8,54,5')
define('EXCLUDE_PROD', '0'); // id товаров которые нужно исключить из выгрузки, перечислить через запятую, например define('EXCLUDE_PROD', '2,8,54,5')
define('_JEXEC', 1);
define('DS', DIRECTORY_SEPARATOR);
define('JPATH_BASE', str_replace('market', '', dirname(__FILE__)));
require_once(JPATH_BASE.DS.'includes'.DS.'defines.php');
require_once(JPATH_BASE.DS.'includes'.DS.'framework.php');
$app = JFactory::getApplication('site');
$app->initialise();
require(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_virtuemart'.DS.'helpers'.DS.'config.php');
VmConfig::loadConfig();
$db = JFactory::getDBO();
$live_site = str_replace(array('market/', 'http://'), '', JURI::base());
$lang = VmConfig::get('vmlang', 'ru_ru');


header('Content-Type: text/html; charset=UTF-8');
$excel = '
<!DOCTYPE html>
<head>
<link rel="stylesheet" href="http://twitter.github.com/bootstrap/assets/css/bootstrap.css" type="text/css" />
</head>
<body>';

$excel .= '<div width="90%"> <table class="table table-bordered table-striped table-hover table-condensed"><thead><tr>';
$excel .= '<th> # </th>';
$excel .= '<th>Артикул</th>';
$excel .= '<th>Наименование</th>';
$excel .= '<th>Категория</th>';
$excel .= '<th>Цена </th>';
//$excel .= '<th>Скидка </th>';
//$excel .= '<th>Производитель</th>';
$excel .= '<th>Краткое описание</th>';
$excel .= '<th>Детали</th>';
$excel .= '</tr></thead><tr>';

$query = 'SELECT a.virtuemart_product_id, a.product_sku, b.product_name, b.slug, c.file_url, b.product_desc, d.product_price, #__virtuemart_categories_'.$lang.'.category_name , d.product_override_price, d.product_currency, e.mf_name, f.virtuemart_manufacturer_id, g.virtuemart_category_id, k.currency_code_3 FROM (#__virtuemart_product_categories g LEFT JOIN (#__virtuemart_product_prices d RIGHT JOIN ((#__virtuemart_product_manufacturers f RIGHT JOIN #__virtuemart_products a ON f.virtuemart_product_id = a.virtuemart_product_id) LEFT JOIN #__virtuemart_manufacturers_'.$lang.' e ON f.virtuemart_manufacturer_id = e.virtuemart_manufacturer_id LEFT JOIN #__virtuemart_products_'.$lang.' b ON b.virtuemart_product_id = a.virtuemart_product_id LEFT JOIN #__virtuemart_product_medias h ON h.virtuemart_product_id = a.virtuemart_product_id LEFT JOIN #__virtuemart_medias c ON c.virtuemart_media_id = h.virtuemart_media_id) ON d.virtuemart_product_id = a.virtuemart_product_id) ON g.virtuemart_product_id = a.virtuemart_product_id) RIGHT JOIN #__virtuemart_currencies k ON k.virtuemart_currency_id = d.product_currency, #__virtuemart_categories_'.$lang.' WHERE g.virtuemart_category_id = #__virtuemart_categories_'.$lang.'.virtuemart_category_id  AND a.published = 1 AND d.product_price > 0 AND b.product_name <> \'\' AND g.virtuemart_category_id NOT IN ('.EXCLUDE_CAT.') AND a.virtuemart_product_id NOT IN ('.EXCLUDE_PROD.')';
$db->setQuery($query);
$rows = $db->loadObjectList();

$product_log = array();

foreach ($rows as $row) {

if (!in_array($row->virtuemart_product_id, $product_log)) {

$product_name = htmlspecialchars(trim(strip_tags($row->product_name)));

if ($product_name == '')
continue;

$product_log[]    = $product_id = $row->virtuemart_product_id;
$product_cat_id   = $row->virtuemart_category_id;
                $product_sku  = $row->product_sku;
                $product_category = $row->category_name;
                $override_price   = $row->product_override_price;
                $mf_name   = $row->mf_name;
                $product_price = sprintf('%.2f', $row->product_price);
$type = $row->mf_name ? ' type="vendor.model"' : '';
$url = 'http://'.str_replace(array('/market/', '//'), array('', '/'), $live_site.JRoute::_('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id='.$product_id.'&virtuemart_category_id='.$product_cat_id));
$excel .= '<td style = "vertical-align: middle;">'.$product_id.'</td>';
$excel .= '<td width = "80px" style = "vertical-align: middle;">'.$product_sku.'</td>';
                $excel .= '<td width = "160px" style = "vertical-align: middle;"><a href ="'.$url.'" title ="'.$product_name.'" target="_parent">'.$product_name.'</a></td>';
$excel .= '<td width = "auto" style = "vertical-align: middle;white-space:nowrap;">'.$product_category.'</td>';
                $excel .= '<td width = "100px" style = "vertical-align: middle;"><span class="label label-success">'.$product_price.' '.CURRENCY.'</span></td>';
                //$excel .= '<td width = "auto" style = "vertical-align: middle;white-space:nowrap;">'.$override_price.'</td>';
                //$excel .= '<td width = "auto" style = "vertical-align: middle;white-space:nowrap;">'.$mf_name.'</td>';
//$excel .= '<td style = "vertical-align: middle;"><a href ="'.$url.'" title ="'.$product_name.'" target="_parent"><img src="http://'.$live_site.str_replace(' ', '%20', $row->file_url).'" width="40" class="img-polaroid"/></a></td>';
                $excel .= '<td><small>'.mb_substr(htmlspecialchars(strip_tags($row->product_desc)), 0, 50).'…</small></td>';
                $excel .= '<td width = "80px" style = "vertical-align: middle;"><a href ="'.$url.'" title ="'.$product_name.'" target="_parent" class="btn btn-mini">Подробнее</a></td>';
$excel .= '</tr>';
}
}

$excel .= '<td></td></table></div></body></html>';

echo $excel;
?>

[/spoiler]


[spoiler title=скрин]

[/spoiler]


инструкция кидаем в папку market  и вызываем через wrapper

[spoiler title=скрин]

[/spoiler]

ps Делал под свой сайт -поэтому  врятли буду поддерживать. скрипт простой разобраться не сложно, скрипт можно распространять , переделывать, и вообще все что угодно

[вложение удалено Администратором]
« Последнее редактирование: 05.10.2012, 15:11:02 от likrion »
R331474010295

*

siao

  • Давно я тут
  • ****
  • 211
  • 3
  • http://www.svetreiki.ru
Re: HTML прайс на основе vm2_market
« Ответ #1 : 11.03.2013, 17:47:32 »
выглядит красиво
а загрузит на одну страницу весь прайс лист, т.е. все-все товары?
если vm2-market у меня работает, XML делает, то Ваш скрипт не стал -
Cannot redeclare vmInfo() (previously declared in /administrator/components/com_virtuemart/helpers/config.php:69) in /administrator/components/com_virtuemart/helpers/config.php on line 96
Joomla 2.5.17

*

gangstarcj

  • Осваиваюсь на форуме
  • ***
  • 189
  • 8
Re: HTML прайс на основе vm2_market
« Ответ #2 : 05.11.2013, 17:23:17 »
Выводит пустую страницу

*

Nibiru

  • Осваиваюсь на форуме
  • ***
  • 157
  • 0
  • lepnina.info
Re: HTML прайс на основе vm2_market
« Ответ #3 : 23.11.2013, 14:23:05 »
Выводит Цену ( product_price ), а, что прописать, чтоб выводил Окончательную цену?

*

sef15

  • Новичок
  • *
  • 3
  • 0
Re: HTML прайс на основе vm2_market
« Ответ #4 : 22.03.2014, 15:31:39 »
а как можно сделать что бы выводил те категории которые я задам? а не все подряд(методом убирания не очень удобно, и что то не получилось)

*

homw

  • Новичок
  • *
  • 9
  • 0
Re: HTML прайс на основе vm2_market
« Ответ #5 : 26.10.2014, 12:02:53 »
Кто-нибудь сохранил скрипт? Вложение удалено администрацией, тема прикреплена, а по факту не воспользоваться

*

Nibiru

  • Осваиваюсь на форуме
  • ***
  • 157
  • 0
  • lepnina.info
Re: HTML прайс на основе vm2_market
« Ответ #6 : 06.10.2015, 05:55:42 »
Да, есть

*

amstroganov

  • Новичок
  • *
  • 3
  • 0
Re: HTML прайс на основе vm2_market
« Ответ #7 : 11.01.2017, 12:41:25 »
Скрипт замечательный, решил проблему с выводом товара в форме прайс листа.
Но есть пара вопросов, так как я профан в этом деле )
Как сделать так, что бы товар выстраивался не по ID в магазине, а к примеру по алфавиту. Пытался добавить в запрос ORDER BY, но каждый раз скрипт переставал работать.
Возможно ли сделать так, что бы в выводе товара шло разделение на категории прям в списке. Т.е строка название категории, потом весь товар от туда, потом следующая категория и так далее.