VM 2.x Прайс лист для Virtuaemart 2.0

Здравствуйте.
Как, и какой, переписать файл скрипта, чтобы можно было разместить скрипт в отдельной папке, а не в корне сайта?
 
Здравствуйте!
Все супер работает, спасибо автору. Только хотелось, чтоб ссылка на товар была в виде - сайт/avto-tovary/avto-tovar.html (на сайте выглядит так), а в прайс листе ссылка - сайт/index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=57.
Подскажите с решением проблемы.
 
Для просмотра ссылки Войди или Зарегистрируйся, проверенно на vm 2.6.x (большое спасибо Автору). Переработана под себя, не судите строго. Первый опыт с php и ... . Выгрузка в формате 'xls', все в одном файле, удобоваримые ссылки. Переделана на примере модуля прайса, Автору - респект.
 
Для просмотра ссылки Войди или Зарегистрируйся, проверенно на vm 2.6.x (большое спасибо Автору). Переработана под себя, не судите строго. Первый опыт с php и ... . Выгрузка в формате 'xls', все в одном файле, удобоваримые ссылки. Переделана на примере модуля прайса, Автору - респект.
Добрый день! БОльшое спасибо за доработку, но объясните почему в наименование ???????????????????, однако все остальное (ПРАЙС ЛИСТ, АДРЕС пишет русская раскладка) Кодировку уже меняла на UTF без BOM все то же самое
 
Добрый день! БОльшое спасибо за доработку, но объясните почему в наименование ???????????????????, однако все остальное (ПРАЙС ЛИСТ, АДРЕС пишет русская раскладка) Кодировку уже меняла на UTF без BOM все то же самое
Судя, по всему, у Вас, база данных сайта в кодировке отличной от UTF.
 
Попробуйте

1) задавать кодировку в html
HTML:
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
2) перед sql запросом выполнить
Код:
SET NAMES utf8
3) в начале генерации страницы прописать
PHP:
header('Content-type: text/html; charset=utf-8');
4) в месте вывода конвертировать саму строку через iconv
PHP:
<?php
echo iconv("KOI8-U", "UTF-8", $stroka); //начальную попробовать кодировку подобрать (win-1251 и т.п.)
?>
 
Попробуйте

1) задавать кодировку в html
HTML:
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
2) перед sql запросом выполнить
Код:
SET NAMES utf8
3) в начале генерации страницы прописать
PHP:
header('Content-type: text/html; charset=utf-8');
4) в месте вывода конвертировать саму строку через iconv
PHP:
<?php
echo iconv("KOI8-U", "UTF-8", $stroka); //начальную попробовать кодировку подобрать (win-1251 и т.п.)
?>
Я извиняюсь, но пункт 3) и 4) так и не поняла куда вставлять. Можете посмотреть на мой код и точнее указать куда это вписать.

<?php /* Created on: 03.12.2012 */
// автор Dark Wizard (Для просмотра ссылки Войди или Зарегистрируйся), доработал под себя и переделал выгрузку в MSExcel 2003 (формат 'xls') Alexsm62
?>
<!-- Прайс лист для Virtualmart 2.0
автор: Dark Wizard (Для просмотра ссылки Войди или Зарегистрируйся), доработал под себя и переделал выгрузку в MSExcel 2003 (формат 'xls') Alexsm62
скачать можно тут: Для просмотра ссылки Войди или Зарегистрируйся (оригинальную версию Dark Wizard)
встроить в страницу можно так:

<p><iframe src="/pricelist.php" width="100%" height="12000px" border="0" frameborder="0" style="border: 0;"></iframe></p>

Alexsm62: Для 'Joomla 2.6.X' создаем меню тип - 'Wrapper', Url - '/pricelist.php', задаем размер отображения и ... (устанавливаем согластно инструкции Dark Wizard)

-->
<?
//заполняем путь до каталога магазина, например: "/index.php/catalog/" (Alexsm62)
$url_path = '/index.php/catalog/';
//пишем НТМЛ-ку, можно под себя (Alexsm62)
$html = '';
$html .= '<html xmlns:eek:="urn:schemas-microsoft-com:eek:ffice:eek:ffice"';
$html .= 'xmlns:w="urn:schemas-microsoft-com:eek:ffice:excel"';
$html .= 'xmlns="Для просмотра ссылки Войди или Зарегистрируйся">';
$html .= '<head>';
$html .= '<meta http-equiv="content-type" content="text/html; charset=utf-8" />';

//$html .= '<html>';
//$html .= '<head>';
//$html .= '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">';
$html .= '<title>Прайс лист</title>';
$html .= '<meta name="author" content="Dark Wizard, revision Alexsm62">';
$html .= '<meta name=ProgId content=Excel.Document>';
$html .= '<meta name=Generator content="Microsoft Excel 11">';
$html .= '<meta name=Originator content="Microsoft Excel 11">';
$html .= '<STYLE><!-- BODY,DIV,TABLE,THEAD,TBODY,TFOOT,TR,TH,TD,P { font-family:"Verdana"; font-size:x-small } --></STYLE>';
//$html .= '<style>';
//$html .= 'body, table{font-family:Arial;font-size:12px;cursor:pointer;}';
//$html .= 'table.tablesorter thead tr .headerSortDown, table.tablesorter thead tr .headerSortUp {background-color: #A6E0FF;}';
//$html .= 'table.tablesorter thead tr .header {';
//$html .= 'padding-right:20px;';
//$html .= 'background-repeat: no-repeat;';
//$html .= 'background-position: center right;';
//$html .= 'cursor: pointer;';
//$html .= '}';
//$html .= '.hoverRow { background-color: yellow; }';
//$html .= '.clickedRow { background-color: orange; }';
//$html .= '</style>';
$html .= '</head>';
$html .= '<body TEXT="#000000">';
$html .= '<table FRAME=VOID CELLSPACING=0 COLS=2 RULES=NONE BORDER=1>';
$html .= '<COLGROUP><COL WIDTH=511><COL WIDTH=118></COLGROUP>';
//$html .= '<body>';

?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Прайс лист</title>
<meta name="author" content="Dark Wizard, revision Alexsm62">
<style>
body, table{font-family:Arial;font-size:12px;cursor:pointer;}
table.tablesorter thead tr .headerSortDown, table.tablesorter thead tr .headerSortUp {background-color: #A6E0FF;}
table.tablesorter thead tr .header {
padding-right:20px;
background-repeat: no-repeat;
background-position: center right;
cursor: pointer;
}
.hoverRow { background-color: yellow; }
.clickedRow { background-color: orange; }
</style>
<script type="text/javascript" src="js/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="js/hltable.js"></script>
<script type="text/javascript" src="js/tablesorter.min.js"></script>
</head>
<body>

<p>
<script LANGUAGE="JavaScript" TYPE="text/javascript">
$(document).ready(function()
{
$("#pricetable").tablesorter();
}
);
</script>
<?php
include('configuration.php');
$dostup = new JConfig;

$db_host = $dostup->host;
$db_user = $dostup->user;
$db_password = $dostup->password;
$db_name = $dostup->db;
$pref = $dostup->dbprefix;

$_DB = new mysqli($db_host, $db_user, $db_password, $db_name);
$_DB->query('SET NAMES utf8, lc_time_names = "ru_RU"');
if (mysqli_connect_errno()) {
exit();
}

//дополняем путь до каталога магазина именем сайта (Alexsm62)
$url_path = 'Для просмотра ссылки Войди или Зарегистрируйся


?></p>
<!-- Пишем название компании и адрес и ... и аналогично далее (Alexsm62)-->
<p><b>Компания</b><br>
<br>
Для просмотра ссылки Войди или Зарегистрируйся
<a href="pricelist.xls">Скачать в формате MS Excel</a></p>

<blockquote><blockquote><blockquote><blockquote><blockquote><blockquote><blockquote><blockquote>
<h1>Прайс лист</h1>
</blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote>



<?
//mysqli_query($_DB,'SET NAMES utf-8;');

/*
// вывод полей
$query = mysqli_query($_DB,"SHOW COLUMNS FROM ".$pref."virtuemart_products");
if (mysqli_num_rows($query)>0){
while($res=mysqli_fetch_row($query))
{
echo $res[0]."<br>";
}
}
*/

$i=1;
$html .= '<p><b>Компания "XXXXXXXXX"</b><br>';
$html .= 'Казахстан, г.Караганда, Гоголя XX<br>';
$html .= '+7(7212)XXXXXX<br>';
$html .= '+7(7212)XXXXXX<br>';
$html .= 'Для просмотра ссылки Войди или Зарегистрируйся
$html .= '<blockquote><blockquote><blockquote><blockquote><blockquote><blockquote><blockquote><blockquote>';
$html .= '<h1>Прайс лист</h1>';
$html .= '</blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></blockquote>';
$html .= 'от '.date('d.m.Y').'<br>';
$html .= '<b><font color="red">Внимание!</font></b> Точную стоимость и наличие товара уточняйте по телефону!';
$html .= '<table border=1 cellpadding=4 style="border-collapse:collapse;" class="datatable" id="pricetable">';
$html .= '<thead>';
$html .= '<th>n.</th>';
$html .= '<th>id</th>';
$html .= '<th>Артикул</th>';
$html .= '<th>Название</th>';
$html .= '<th>Цена, тг.</th>';
$html .= '<th>Категория товара</th>';
$html .= '</tr>';
$html .= '</thead>';
$html .= '<tbody>';
?>

от <?=date('d.m.Y');?><br>
<b><font color="red">Внимание!</font></b> Точную стоимость и наличие товара уточняйте по телефону!<br>
<table border=1 cellpadding=4 style="border-collapse:collapse;" class="datatable" id="pricetable">
<thead>
<tr class=datatablecap>
<th>n.</th>
<th>id</th>
<th>Артикул</th>
<th>Название</th>
<th>Цена, тг.</th>
<th>Категория товара</th>
</tr>
</thead>
<tbody>

<?
//название и id (Alexsm62)
$query = mysqli_query($_DB,"SELECT t1.virtuemart_product_id, t1.product_name, t1.slug, t2.product_sku, t2.product_availability, t2.product_in_stock
FROM ".$pref."virtuemart_products_ru_ru AS t1, ".$pref."virtuemart_products AS t2
WHERE t2.virtuemart_product_id=t1.virtuemart_product_id AND t2.published = '1'
ORDER BY t1.product_name");
while($res=mysqli_fetch_assoc($query))
{

//собираем ссылку для товара (Alexsm62)
//категория продукта (Alexsm62)
$id = $res['virtuemart_product_id'];
$query3 = mysqli_query($_DB,"SELECT virtuemart_category_id
FROM ".$pref."virtuemart_product_categories
WHERE virtuemart_product_id = ".$id." LIMIT 1");
while($res3=mysqli_fetch_assoc($query3)){$idcat = $res3['virtuemart_category_id'];}

$query4 = mysqli_query($_DB,"SELECT category_name, slug
FROM ".$pref."virtuemart_categories_ru_ru
WHERE virtuemart_category_id = ".$idcat." LIMIT 1");
while($res4=mysqli_fetch_assoc($query4)){$name_cat = iconv("utf-8", "utf-8", $res4['category_name']);
$url_product = $url_path.$res4['slug'].'/'.$res['slug'].'-detail/';
$url_cat = $url_path.$res4['slug'].'/';}

echo "<tr>\n<td>".$i."</td>\n<td>".$res['virtuemart_product_id']."</td>\n<td>".$res['product_sku']."</td>\n<td><a target=\"_BLANK\" href=".$url_product.">";
echo $res['product_name']."</td>\n<td>";
//href=\"index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=".$res['virtuemart_product_id']."\">";

$html .= "<tr>\n<td>".$i."</td>\n<td>".$res['virtuemart_product_id']."</td>\n<td>".$res['product_sku']."</td>\n<td>";
//$url_product = 'Для просмотра ссылки Войди или Зарегистрируйся
$html .= '<a href="'.$url_product.'">'.iconv($res['product_name'])."</td>\n<td>";

//стоимость продукта (Alexsm62)
//$id = $res['virtuemart_product_id'];
$query2 = mysqli_query($_DB,"SELECT product_price
FROM ".$pref."virtuemart_product_prices
WHERE virtuemart_product_id = ".$id." LIMIT 1");
while($res2=mysqli_fetch_assoc($query2)){echo intval($res2['product_price'])."</td>\n<td>";
$html .= intval($res2['product_price']);
$html .= "</td>\n<td>";}

//категория продукта продолжение (Alexsm62)
echo "<a target=\"_BLANK\" href=".$url_cat.">";
echo $name_cat;
//$url_cat = 'Для просмотра ссылки Войди или Зарегистрируйся
$html .= '<a href= "'.$url_cat.'">'.$name_cat;

$i++;
}

$html .= '</tbody>';
$html .= '</table>';
$html .= '</table>';
$html .= "Всего позиций: ".mysqli_num_rows(mysqli_query($_DB,"SELECT virtuemart_product_id
FROM ".$pref."virtuemart_product_prices"));
$html .= '<br><br>';
$html .= 'Примечание.<br>';
$html .= 'В прайсе есть детальный просмотр выбранной позиции';
$html .= '</body>';
$html .= '</html>';
?></tbody>
</table>
Всего позиций:<?
echo " ".mysqli_num_rows(mysqli_query($_DB,"SELECT virtuemart_product_id
FROM ".$pref."virtuemart_products
WHERE published = '1'"));

?><br><br>

<script type="text/javascript">highlightTableRows("pricetable","hoverRow","clickedRow");</script>

Примечание.<br>
В прайсе есть сортировка и детальный просмотр выбранной позиции.

</body>
</html>
<?
//echo $html;
$fd = fopen("pricelist.xls", "wr");
fwrite ($fd, $html);
fclose($fd);
?>
 
Назад
Сверху