Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2017, 05:17   #1
kremisa
Новичок
Джуниор
 
Регистрация: 09.06.2017
Сообщений: 2
По умолчанию Как вставить текст в карточку товара News Show Pro GK5

Доброго дня, господа форумчане!

Помогите, пожалуйста, с проблемой отображения текста из описания карточки товара.
Использую Joomla 3.7.2 и VirtueMart 3.2.2.

Для отображения товара на главной странице сайта использую модуль News Show Pro GK5 v. 1.9.3.8.
Выглядит товар на сайте следующим образом

1.jpg

У меня стоит задача отобразить вместо 3-й строчкой с ценой (0,00Р.) краткий текст из описания карточки товара ‘product_desc’.

За отображения данной строки отвечает скрипт
modules/mod_news_pro_gk5/tmpl/portal_modes/product_gallery_2/controller.php

следующего содержания

Код:

 
class NSP_GK5_Product_Gallery_2 {
    // necessary class fields
    private $parent;
    private $mode;
    static $instances = 0;    
    // constructor
    function __construct($parent) {
        $this->parent = $parent;
        NSP_GK5_Product_Gallery_2::$instances += 1;
        // detect the supported Data Sources
        if(stripos($this->parent->config['data_source'], 'com_content_') !== FALSE) {
            $this->mode = 'com_content';
        } else if(stripos($this->parent->config['data_source'], 'k2_') !== FALSE) {
            $this->mode = 'com_k2';
        } else if(stripos($this->parent->config['data_source'], 'com_virtuemart_') !== TRUE) {
            $this->mode = 'com_virtuemart';
        } else {
            $this->mode = false;
        }
        //
        if($this->parent->config['portal_mode_product_gallery_2_button'] == 'cart' && NSP_GK5_Product_Gallery_2::$instances == 1) {
            $closeimage = JURI::root(TRUE) .'/components/com_virtuemart/assets/images/fancybox/fancy_close.png';
            $vmLangVar = '';
            
            if (VmConfig::get ('vmlang_js', 1))  {
                $vmLangVar .= "vmLang = '&lang=" . substr (VmConfig::$vmlang, 0, 2) . "' ;\n";
            } else {
                $vmLangVar .= 'vmLang = "";' . "\n";        
            }
            
            $doc = JFactory::getDocument();
            $doc->addScriptDeclaration(
                $vmLangVar . '
                vmSiteurl = \''. JURI::root() .'\' ;
                Virtuemart.addtocart_popup = \''.VmConfig::get('addtocart_popup',1).'\' ;
                vmCartText = \''.addslashes(vmText::_('COM_VIRTUEMART_CART_PRODUCT_ADDED')).'\' ;
                vmCartError = \''.addslashes(vmText::_('COM_VIRTUEMART_MINICART_ERROR_JS')).'\' ;
                loadingImage = \''.JURI::root(TRUE) .'/components/com_virtuemart/assets/images/facebox/loading.gif\' ;
                closeImage = \''.$closeimage.'\' ;
                usefancy = false;
                jQuery(document).ready(function() { Virtuemart.product(jQuery("form.product")); });'
            );
        }
    }
    // static function which returns amount of articles to render - VERY IMPORTANT!!
    static function amount_of_articles($parent) {
        return $parent->config['portal_mode_product_gallery_2_rows'] * $parent->config['portal_mode_product_gallery_2_cols'];
    }
    
  // store generator
    // function used to show the store details
    function get_store($config, $id) {
        if($this->mode != 'com_virtuemart') {
            return array(
                "price" => '',
                "cart" => ''
            );
        } else {
            // if the VM is available
            if (!class_exists( 'VmConfig' )) {
                require(JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_virtuemart'.DS.'helpers'.DS.'config.php');
            }
            VmConfig::loadConfig();
            // Load the language file of com_virtuemart.
            JFactory::getLanguage()->load('com_virtuemart');
            // load necessary classes
            if (!class_exists( 'calculationHelper' )) {
                require(JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_virtuemart'.DS.'helpers'.DS.'calculationh.php');
            }
            if (!class_exists( 'CurrencyDisplay' )) {
                require(JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_virtuemart'.DS.'helpers'.DS.'currencydisplay.php');
            }
            if (!class_exists( 'VirtueMartModelVendor' )) {
                require(JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_virtuemart'.DS.'models'.DS.'vendor.php');
            }
            if (!class_exists( 'VmImage' )) {
                require(JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_virtuemart'.DS.'helpers'.DS.'image.php');
            }
            if (!class_exists( 'shopFunctionsF' )) {
                require(JPATH_SITE.DS.'components'.DS.'com_virtuemart'.DS.'helpers'.DS.'shopfunctionsf.php');
            }
            if (!class_exists( 'calculationHelper' )) {
                require(JPATH_COMPONENT_SITE.DS.'helpers'.DS.'cart.php');
            }
            if (!class_exists( 'VirtueMartModelProduct' )){
               JLoader::import( 'product', JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_virtuemart' . DS . 'models' );
            }
            // load the base
            $productModel = new VirtueMartModelProduct();
            $product = $productModel->getProduct($id, 100, true, true, true);
            $currency = CurrencyDisplay::getInstance();
            
            $price = '<strong>'.$currency->createPriceDiv($config['vm_show_price_type'], '', $product->prices, true).'</strong>';
 
            if($this->parent->config['portal_mode_product_gallery_2_button'] == 'cart') {
                vmJsApi::jPrice();
                vmJsApi::writeJS();
            }
 
            $news_price = '<div class="PricebasePriceWithTax">';
            //
            if($config['vm_show_price_type'] != 'none') {
                if($config['vm_display_type'] == 'text_price') {
                    $news_price .=  '<span class="PricebasePriceWithTax">'.JText::_('MOD_NEWS_PRO_GK5_PRODUCT_PRICE').' '.$price.'</span>';
                } else {
                    $news_price .= '<span class="PricebasePriceWithTax">'.$price.'</span>';
                }
            }
            $news_price .= '</div>';
            // display discount
            if($config['vm_show_discount_amount'] == 1) {
                $disc_amount = $currency->priceDisplay($product->prices['product_price'], $currency->getId());
                $news_price.= '<small class="PricetaxAmount">'.$disc_amount.'</small>';
            }
 
            // display tax
            if($config['vm_show_tax'] == 1) {
                  $taxAmount = $currency->priceDisplay($product->prices['product_desc'], $currency->getId());
                $news_price.= '<small class="PricetaxAmount">'.$taxAmount.'</small>';  
            }

У меня стоит задача отобразить вместо 3-й строчкой с ценой (0,00Р.) краткий текст из описания карточки товара ‘product_desc’.

За отображения данной строки отвечает скрипт
modules/mod_news_pro_gk5/tmpl/portal_modes/product_gallery_2/controller.php

следующего содержания[/CODE]

Более точно строка 240 следующий кусок кода

Код:
// display tax
        if($config['vm_show_tax'] == 1) {
           $taxAmount = $currency->priceDisplay($product->prices['product_desc'], $currency->getId());
            $news_price.= '<small class="PricetaxAmount">'.$taxAmount.'</small>';  
        }
В данном случае результата нет. При помощи 'product_desc' я обращаюсь к базе, что б получить данные, но данных нет. И вообще невозможно получить какие-либо данные из таблицы 'virtuemart_products’. А вот доступ к таблице данных ‘virtuemart_product_prices’ есть, поэтому я и получил цены 29,0 р и 67,0 р. из картинки при помощи аналогичных строк из кода 230 и 237.

Последний раз редактировалось kremisa; 09.06.2017 в 05:21.
kremisa вне форума Ответить с цитированием
Старый 09.06.2017, 11:03   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от kremisa Посмотреть сообщение
При помощи 'product_desc' я обращаюсь к базе, что б получить данные, но данных нет. И вообще невозможно получить какие-либо данные из таблицы 'virtuemart_products’. А вот доступ к таблице данных ‘virtuemart_product_prices’ есть, поэтому я и получил цены 29,0 р и 67,0 р. из картинки при помощи аналогичных строк из кода 230 и 237.
Это всё бред.
Информация о продукте уже получена в этой строке:
PHP код:
$product $productModel->getProduct($id100truetruetrue); 
Выведи после этой строки на экран значение переменной $product – и ты поймёшь, в каком свойстве объекта $product находится необходимое тебе описание продукта:
PHP код:
var_dump($product); 
Andkorol вне форума Ответить с цитированием
Старый 09.06.2017, 19:46   #3
kremisa
Новичок
Джуниор
 
Регистрация: 09.06.2017
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Это всё бред.
Информация о продукте уже получена в этой строке:
PHP код:
$product $productModel->getProduct($id100truetruetrue); 
Выведи после этой строки на экран значение переменной $product – и ты поймёшь, в каком свойстве объекта $product находится необходимое тебе описание продукта:
PHP код:
var_dump($product); 
Да, все заработала!
Осталось эту переменную завернуть в модальное окно и кнопку приварганить при нажатии.

Код:
	
	// display tax
	    	    $taxAmount = $product->product_desc;
	            $news_price.= '<small class="PricetaxAmount">'.$taxAmount.'</small>';
kremisa вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как вставить #10#13 в текст lich king Общие вопросы Delphi 6 21.02.2017 11:10
Как вставить обычный текст и как его вписывать Tamago4aRUS Общие вопросы Delphi 17 21.08.2015 09:06
как вставить копированный текст в richedit ? alman12 Общие вопросы Delphi 4 25.07.2014 12:52
Как вставить кусок текста в текст Tomatos Общие вопросы Delphi 5 24.09.2009 21:00
Как вставить в TListBox цветной текст? VintProg Общие вопросы Delphi 2 03.08.2009 11:46