Крупнейшая биржа рекламы в Телеграм
0 Пользователей и 1 Гость просматривают эту тему.
  • 25 Ответов
  • 2094 Просмотров
*

dema8912

  • Захожу иногда
  • 72
  • 4 / 0
Добрый день, уважаемые знатоки.
Встал передо мной такой вопрос. Нужно изменить модуль mod_virtuemart_latestprod.
Нужно, чтобы в этом модуле отображались только товары с ценой, товары без цены, чтобы не публиковались в нем.
Думаю объяснил понятно...
Заранее всем спасибо.
*

beagler

  • Moderator
  • 3276
  • 391 / 4
  • https://alorisman.ru/
*

dema8912

  • Захожу иногда
  • 72
  • 4 / 0
Re: Изменить модуль mod_virtuemart_latestprod
« Ответ #2 : 26.11.2011, 22:03:27 »
Не совсем.... Просто не очень дружу с этими всеми запросами и т.д.
Вот код такой у PHP файла модуля
Код
<?php
if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' );
/* Latest Products Module
*
* @version $Id: mod_virtuemart_latestprod.php 1159 2008-01-14 20:30:30Z soeren_nb $
* @package VirtueMart
* @subpackage modules
*
* @copyright (C) 2000 - 2004 Mr PHP
// W: www.mrphp.com.au
// E: info@mrphp.com.au
// P: +61 418 436 690
* Conversion to Mambo and the rest:
* @copyright (C) 2004-2005 Soeren Eberhardt
*
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
* VirtueMart is Free Software.
* VirtueMart comes with absolute no warranty.
*
* www.virtuemart.net
*/

global $mosConfig_absolute_path;
// Load the VirtueMart main parse code
if( file_exists(dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' )) {
require_once( dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' );
} else {
require_once( dirname(__FILE__).'/../components/com_virtuemart/virtuemart_parser.php' );
}

$max_items = $params->get( 'max_items', 2 ); //maximum number of items to display
$category_id = $params->get( 'category_id', null ); // Display products from this category only
$display_style = $params->get( 'display_style', "vertical" ); // Display Style
$products_per_row = $params->get( 'products_per_row', 4 ); // Display X products per Row
$show_price = (bool)$params->get( 'show_price', 1 ); // Display the Product Price?
$show_addtocart = (bool)$params->get( 'show_addtocart', 1 ); // Display the "Add-to-Cart" Link?

require_once( CLASSPATH . 'ps_product.php');
$ps_product = new ps_product;


$db =& new ps_DB;
$q  = "SELECT DISTINCT product_sku FROM #__{vm}_product, #__{vm}_product_category_xref, #__{vm}_category WHERE ";
$q .= "product_parent_id=''";
$q .= "AND #__{vm}_product.product_id=#__{vm}_product_category_xref.product_id ";
$q .= "AND #__{vm}_category.category_id=#__{vm}_product_category_xref.category_id ";
if( !empty( $category_id ) ) {
$q .= "AND #__{vm}_category.category_id='$category_id' ";
}
if( CHECK_STOCK && PSHOP_SHOW_OUT_OF_STOCK_PRODUCTS != "1") {
$q .= " AND product_in_stock > 0 ";
}
$q .= "AND #__{vm}_product.product_publish='Y' ";
$q .= "ORDER BY #__{vm}_product.product_id DESC ";
$q .= "LIMIT 0, $max_items ";
$db->query($q);

if( $db->num_rows() > 0 ){ ?>
      <table border="0" cellpadding="0" cellspacing="4" width="100%" >       
        <?php
        $i = 0;
        while($db->next_record() ){
if ($i%2)
$sectioncolor = "sectiontableentry2";
else
$sectioncolor = "sectiontableentry1";
             
if( $display_style == "vertical" ) {
?>
<tr align="center" class="<?php echo $sectioncolor ?>" >
<td valign="top"><?php echo $ps_product->product_snapshot_desc($db->f("product_sku"), $show_price, $show_addtocart); ?><br /></td>
</tr>
<?php
}
elseif( $display_style== "horizontal" ) {
if( $i == 0 )
echo "<tr>\n";
echo "<td align=\"center\" valign=\"top\">";
echo $ps_product->product_snapshot_desc($db->f("product_sku"), $show_price, $show_addtocart);
echo "</td>\n";
if( ($i+1) == $max_items )
echo "</tr>\n";
}
elseif( $display_style== "table" ) {
if( $i == 0 )
echo "<tr>\n";
echo "<td align=\"center\" class='colorden' valign=\"top\">";
echo $ps_product->product_snapshot_desc($db->f("product_sku"), $show_price, $show_addtocart);
echo "</td>\n";
if ( ($i+1) % $products_per_row == 0)
echo "</tr><tr>\n";
if( ($i+1) == $max_items )
echo "</tr>\n";
}
$i++;
        }
?>
</table>
<?php
}
?>
Можете подсказать, пожалуйста, что и где прописать?
*

softman_xp

  • Захожу иногда
  • 318
  • 32 / 0
  • Разработка для Joomla
Re: Изменить модуль mod_virtuemart_latestprod
« Ответ #3 : 27.11.2011, 00:09:18 »
После вот этого
Код: php
 $q .= "AND #__{vm}_category.category_id=#__{vm}_product_category_xref.category_id ";
добавить строку
Код: php
$q .= "AND #__{vm}_product_price.product_price > 0";
как-то так
Компоненты/модули/плагины для Joomla
(skype: navipoint)(mail: softman(собака)inbox(точка)ru)
*

dema8912

  • Захожу иногда
  • 72
  • 4 / 0
Re: Изменить модуль mod_virtuemart_latestprod
« Ответ #4 : 27.11.2011, 02:10:04 »
Так вообще все товары пропали (((
*

dema8912

  • Захожу иногда
  • 72
  • 4 / 0
Re: Изменить модуль mod_virtuemart_latestprod
« Ответ #5 : 27.11.2011, 17:38:25 »
Подскажите, пожалуйста, где и что вставить, чтобы работало вот по такому принципу, как описано выше... Очень нужно...
*

beagler

  • Moderator
  • 3276
  • 391 / 4
  • https://alorisman.ru/
Re: Изменить модуль mod_virtuemart_latestprod
« Ответ #6 : 27.11.2011, 22:02:49 »
вместо
Код
$q  = "SELECT DISTINCT product_sku FROM #__{vm}_product, #__{vm}_product_category_xref, #__{vm}_category WHERE ";
$q .= "product_parent_id=''";
$q .= "AND #__{vm}_product.product_id=#__{vm}_product_category_xref.product_id ";
$q .= "AND #__{vm}_category.category_id=#__{vm}_product_category_xref.category_id ";
пишем
Код
$q  = "SELECT DISTINCT product_sku FROM #__{vm}_product, #__{vm}_product_category_xref, #__{vm}_category ";
$q .= "LEFT JOIN #__{vm}_product_price ON #__{vm}_product.product_id = #__{vm}_product_price.product_id ";
$q .= "WHERE ";
$q .= "product_parent_id='' ";
$q .= "AND #__{vm}_product.product_id=#__{vm}_product_category_xref.product_id ";
$q .= "AND #__{vm}_category.category_id=#__{vm}_product_category_xref.category_id ";
$q .= "AND #__{vm}_product_price.product_price > 0 ";
Не проверял.
*

dema8912

  • Захожу иногда
  • 72
  • 4 / 0
Re: Изменить модуль mod_virtuemart_latestprod
« Ответ #7 : 27.11.2011, 22:37:33 »
Так же - ничего не отображается...((
*

dema8912

  • Захожу иногда
  • 72
  • 4 / 0
Re: Изменить модуль mod_virtuemart_latestprod
« Ответ #9 : 27.11.2011, 23:58:43 »
А что означает погонять в PHP май админ? Это то есть выполнить этот запрос?
*

softman_xp

  • Захожу иногда
  • 318
  • 32 / 0
  • Разработка для Joomla
Re: Изменить модуль mod_virtuemart_latestprod
« Ответ #11 : 28.11.2011, 13:00:04 »
Оу, и я не прав и beagler тоже перемудрил)

вместо
Код: php
$q  = "SELECT DISTINCT product_sku FROM #__{vm}_product, #__{vm}_product_category_xref, #__{vm}_category WHERE ";
$q .= "product_parent_id=''";
$q .= "AND #__{vm}_product.product_id=#__{vm}_product_category_xref.product_id ";
$q .= "AND #__{vm}_category.category_id=#__{vm}_product_category_xref.category_id ";
пишем
Код: php
$q  = "SELECT DISTINCT product_sku FROM #__{vm}_product, #__{vm}_product_category_xref, #__{vm}_category, #__{vm}_product_price WHERE ";
$q .= "product_parent_id=''";
$q .= "AND #__{vm}_product.product_id=#__{vm}_product_category_xref.product_id ";
$q .= "AND #__{vm}_category.category_id=#__{vm}_product_category_xref.category_id ";
$q .= "AND #__{vm}_product_price.product_price > 0 ";

проверил даже)
Компоненты/модули/плагины для Joomla
(skype: navipoint)(mail: softman(собака)inbox(точка)ru)
*

dema8912

  • Захожу иногда
  • 72
  • 4 / 0
Re: Изменить модуль mod_virtuemart_latestprod
« Ответ #12 : 28.11.2011, 13:53:16 »
У меня не работает почему-то ((( Ставил вместо 0 разные значения - ничего не происходит
*

dema8912

  • Захожу иногда
  • 72
  • 4 / 0
Re: Изменить модуль mod_virtuemart_latestprod
« Ответ #13 : 28.11.2011, 13:53:45 »
У меня не работает почему-то ((( Ставил вместо 0 разные значения - ничего не происходит
Отображаются все товары
*

dema8912

  • Захожу иногда
  • 72
  • 4 / 0
Re: Изменить модуль mod_virtuemart_latestprod
« Ответ #14 : 28.11.2011, 13:57:09 »
вместо
Код
$q  = "SELECT DISTINCT product_sku FROM #__{vm}_product, #__{vm}_product_category_xref, #__{vm}_category WHERE ";
$q .= "product_parent_id=''";
$q .= "AND #__{vm}_product.product_id=#__{vm}_product_category_xref.product_id ";
$q .= "AND #__{vm}_category.category_id=#__{vm}_product_category_xref.category_id ";
пишем
Код
$q  = "SELECT DISTINCT product_sku FROM #__{vm}_product, #__{vm}_product_category_xref, #__{vm}_category ";
$q .= "LEFT JOIN #__{vm}_product_price ON #__{vm}_product.product_id = #__{vm}_product_price.product_id ";
$q .= "WHERE ";
$q .= "product_parent_id='' ";
$q .= "AND #__{vm}_product.product_id=#__{vm}_product_category_xref.product_id ";
$q .= "AND #__{vm}_category.category_id=#__{vm}_product_category_xref.category_id ";
$q .= "AND #__{vm}_product_price.product_price > 0 ";
Не проверял.
Ответ MySQL:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$q  = "SELECT DISTINCT product_sku FROM jos_vm_product, jos_vm_product_category_' at line 1
*

beagler

  • Moderator
  • 3276
  • 391 / 4
  • https://alorisman.ru/
Re: Изменить модуль mod_virtuemart_latestprod
« Ответ #15 : 28.11.2011, 14:19:31 »
Оу, и я не прав и beagler тоже перемудрил)

вместо
Код: php
$q  = "SELECT DISTINCT product_sku FROM #__{vm}_product, #__{vm}_product_category_xref, #__{vm}_category WHERE ";
$q .= "product_parent_id=''";
$q .= "AND #__{vm}_product.product_id=#__{vm}_product_category_xref.product_id ";
$q .= "AND #__{vm}_category.category_id=#__{vm}_product_category_xref.category_id ";
пишем
Код: php
$q  = "SELECT DISTINCT product_sku FROM #__{vm}_product, #__{vm}_product_category_xref, #__{vm}_category, #__{vm}_product_price WHERE ";
$q .= "product_parent_id=''";
$q .= "AND #__{vm}_product.product_id=#__{vm}_product_category_xref.product_id ";
$q .= "AND #__{vm}_category.category_id=#__{vm}_product_category_xref.category_id ";
$q .= "AND #__{vm}_product_price.product_price > 0 ";

проверил даже)
ага, перемудрил, какже. А связь между vm_product и vm_product_price где у Вас?
*

dema8912

  • Захожу иногда
  • 72
  • 4 / 0
Re: Изменить модуль mod_virtuemart_latestprod
« Ответ #16 : 29.11.2011, 10:15:26 »
Вопрос актуален
*

softman_xp

  • Захожу иногда
  • 318
  • 32 / 0
  • Разработка для Joomla
Re: Изменить модуль mod_virtuemart_latestprod
« Ответ #17 : 29.11.2011, 13:15:18 »
Цитата: beagler
ага, перемудрил, какже. А связь между vm_product и vm_product_price где у Вас?
А зачем она нужна ? Нужно ж просто товары с ненулевой ценой выгрузить.
Запрос работает!

dema8912,
вот этот должен работать по-любому
http://joomlaforum.ru/index.php/topic,190079.msg1004105.html#msg1004105
если вдруг нет попробуй так, чтоб наверняка (если у таблиц префикс jos_vm)
Код: php
$q = "SELECT DISTINCT product_sku FROM jos_vm_product, jos_vm_product_category_xref, jos_vm_category, jos_vm_product_price WHERE product_parent_id='' AND jos_vm_product.product_id=jos_vm_product_category_xref.product_id AND jos_vm_category.category_id=jos_vm_product_category_xref.category_id AND jos_vm_product_price.product_price > 0"
« Последнее редактирование: 29.11.2011, 13:18:37 от softman_xp »
Компоненты/модули/плагины для Joomla
(skype: navipoint)(mail: softman(собака)inbox(точка)ru)
*

beagler

  • Moderator
  • 3276
  • 391 / 4
  • https://alorisman.ru/
Re: Изменить модуль mod_virtuemart_latestprod
« Ответ #18 : 29.11.2011, 13:23:23 »
А зачем она нужна ? Нужно ж просто товары с ненулевой ценой выгрузить.
Запрос работает!
Не наблюдаю в таблице jos_vm_product_price поля product_price.
*

softman_xp

  • Захожу иногда
  • 318
  • 32 / 0
  • Разработка для Joomla
Re: Изменить модуль mod_virtuemart_latestprod
« Ответ #19 : 29.11.2011, 14:23:20 »
3-е :)
Код: sql
CREATE TABLE IF NOT EXISTS `jos_vm_product_price` (
  `product_price_id` int(11) NOT NULL AUTO_INCREMENT,
  `product_id` int(11) NOT NULL DEFAULT '0',
  `product_price` decimal(12,5) DEFAULT NULL,
Компоненты/модули/плагины для Joomla
(skype: navipoint)(mail: softman(собака)inbox(точка)ru)
*

ELLE

  • Глобальный модератор
  • 4513
  • 890 / 0
Re: Изменить модуль mod_virtuemart_latestprod
« Ответ #20 : 29.11.2011, 14:28:45 »
игра в догадайку :)

может ну его этот mod_virtuemart_latestprod?
есть решение (пример если угодно) для mod_VirtueMart_universal - здесь ->>
*

dema8912

  • Захожу иногда
  • 72
  • 4 / 0
Re: Изменить модуль mod_virtuemart_latestprod
« Ответ #21 : 29.11.2011, 15:03:29 »
3-е :)
Код: sql
CREATE TABLE IF NOT EXISTS `jos_vm_product_price` (
  `product_price_id` int(11) NOT NULL AUTO_INCREMENT,
  `product_id` int(11) NOT NULL DEFAULT '0',
  `product_price` decimal(12,5) DEFAULT NULL,
Спасибо за ответ. Это куда его нужно вставить?
*

dema8912

  • Захожу иногда
  • 72
  • 4 / 0
Re: Изменить модуль mod_virtuemart_latestprod
« Ответ #22 : 29.11.2011, 15:06:09 »
игра в догадайку :)

может ну его этот mod_virtuemart_latestprod?
есть решение (пример если угодно) для mod_VirtueMart_universal - здесь ->>
И в нем можно реализовать задуманное? )
*

ELLE

  • Глобальный модератор
  • 4513
  • 890 / 0
Re: Изменить модуль mod_virtuemart_latestprod
« Ответ #23 : 29.11.2011, 15:07:38 »
И в нем можно реализовать задуманное? )
там есть возможность вывода последних товаров (читайте в теме) + решение с нулевой ценой я вам дала
*

icom

  • Давно я тут
  • 822
  • 199 / 4
Re: Изменить модуль mod_virtuemart_latestprod
« Ответ #24 : 29.11.2011, 16:17:57 »
Цитировать
$q  = "SELECT DISTINCT product_sku FROM #__{vm}_product, #__{vm}_product_category_xref, #__{vm}_category, #__{vm}_product_price WHERE ";
$q .= "product_parent_id=''";
$q .= "AND #__{vm}_product.product_id=#__{vm}_product_category_xref.product_id ";
$q .= "AND #__{vm}_category.category_id=#__{vm}_product_category_xref.category_id ";
$q .= "AND #__{vm}_product_price.product_price > 0 ";
почти правильно но работать не будет

нужно так
Код
$q  = "SELECT DISTINCT product_sku FROM #__{vm}_product, #__{vm}_product_category_xref, #__{vm}_category, #__{vm}_product_price WHERE ";
$q .= "product_parent_id=''";
$q .= "AND #__{vm}_product.product_id=#__{vm}_product_category_xref.product_id ";
$q .= "AND #__{vm}_category.category_id=#__{vm}_product_category_xref.category_id ";
$q .= "AND #__{vm}_product_price.product_id=#__{vm}_product.product_id ";
$q .= "AND #__{vm}_product_price.shopper_group_id=5 ";
$q .= "AND #__{vm}_product_price.product_price > 0 ";

shopper_group_id - в зависимости для какой группы покупателей делается выборка (обычно с id = 5)
*

dema8912

  • Захожу иногда
  • 72
  • 4 / 0
Re: Изменить модуль mod_virtuemart_latestprod
« Ответ #25 : 29.11.2011, 16:51:57 »
почти правильно но работать не будет

нужно так
Код
$q  = "SELECT DISTINCT product_sku FROM #__{vm}_product, #__{vm}_product_category_xref, #__{vm}_category, #__{vm}_product_price WHERE ";
$q .= "product_parent_id=''";
$q .= "AND #__{vm}_product.product_id=#__{vm}_product_category_xref.product_id ";
$q .= "AND #__{vm}_category.category_id=#__{vm}_product_category_xref.category_id ";
$q .= "AND #__{vm}_product_price.product_id=#__{vm}_product.product_id ";
$q .= "AND #__{vm}_product_price.shopper_group_id=5 ";
$q .= "AND #__{vm}_product_price.product_price > 0 ";

shopper_group_id - в зависимости для какой группы покупателей делается выборка (обычно с id = 5)
Работает!!)) Уряяяяя....Спс Вам огромное
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль авторизации пользователей убрать лишнее

Автор pautina

Ответов: 22
Просмотров: 10797
Последний ответ 20.01.2018, 06:08:46
от ElenaD
Модуль «VirtueMart Товары» вывод товаров по рейтингу

Автор myrka

Ответов: 0
Просмотров: 707
Последний ответ 10.01.2017, 17:09:22
от myrka
Как изменить путь к картинке /components/com_virtuemart/shop_image/product/?

Автор ssskyy

Ответов: 5
Просмотров: 817
Последний ответ 19.06.2015, 10:45:07
от vipiusss
Модуль или плагин для VirtueMart

Автор Stasweb

Ответов: 0
Просмотров: 627
Последний ответ 18.02.2015, 06:43:52
от Stasweb
Меню для VirtueMart, модуль "Accordion Menu - Offlajn.com" правка

Автор silversunrise

Ответов: 3
Просмотров: 4540
Последний ответ 07.02.2015, 09:13:29
от Stasweb