Форум программистов, компьютерный форум, киберфорум
Наши страницы
Joomla
Войти
Регистрация
Восстановить пароль
 
katjuha6
28 / 25 / 14
Регистрация: 17.01.2013
Сообщений: 311
1

Вывод плагина на странице товара Joomshopping

17.03.2017, 17:20. Просмотров 448. Ответов 0
Метки нет (Все метки)

Всем добрый день, уважаемые формучане!
Есть плагин вывода товаров из этой же категории. Беда в том, что товары выводятся в самом низу страницы.
Разработчик утверждает, что нет возможности вывести плагин там, где мне нужно. А нужно мне посередине страницы.
Может быть возможно как-то доподпилить скрипт, чтобы он выводился там, где нужно, например в позиции "_tmp_product_html_buttons".

полный код в спойлере.
Заранее огромное спасибо за подсказку!

Кликните здесь для просмотра всего текста

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
defined('_JEXEC') or die('Restricted access');
 
class plgJshoppingProductsProducts_Category extends JPlugin {
    
    private $locale;
    
    public function __construct(&$subject, $config = array()) {
        parent::__construct($subject, $config);
        
        $lang = JFactory::getLanguage();
        $this->locale = $lang->getTag();
        $this->loadLanguage();
        $document = JFactory::getDocument();
                if($this->params->get('loadCssFile')) {
                    $document->addStyleSheet(JURI::root(true).'/plugins/jshoppingproducts/products_category/style.css');
                }
    }
    
    public function onAfterDisplayProduct(&$product) {
        
            $jshopConfig = JSFactory::getConfig();
            
            $in_row = $this->params->get('productsInRow'); // позиций в ряд
            $in_select = $this->params->get('productsTotal'); // максимальное количество товара из этой же категории
 
            if($this->params->get('showExtraFields')) {
                $showExtraFields = $jshopConfig->getProductListDisplayExtraFields();
            } else {
                $showExtraFields = false;
            }
            
            $image_path = $jshopConfig->image_product_live_path;
            $manuf_logo_path = $jshopConfig->image_manufs_live_path;
            $db = JFactory::getDBO();
 
            if(isset($jshopConfig->stock)) {
                $exist_only = ($jshopConfig->stock && $this->params->get('existOnly')) ? true : false;
            } else {
                $exist_only = false;
            }
 
            $product_categories = $product->product_categories;
            $category_id = $this->params->get('filterCategory') ? ($product_categories[0]->category_id) : 0;
            $manufacturer_id = $this->params->get('filterManufacturer') ? ($product->product_manufacturer_id) : 0;
                        
            // наличие поля currency_id в $products_table (в старых версиях Joomshopping этого поля нет)
            $query = $db->getQuery(true);
            $query->select('COUNT(*)');
            $query->from('information_schema.columns');
            $table = $db->replacePrefix((string) '#__jshopping_products');
            $query->where('table_name = ' . $db->quote($table));
            $query->where('column_name = ' . $db->quote('currency_id'));
            $db->setQuery($query);
            $is_curr_id = $db->loadResult();
            
            $numL = floor($in_select/2);
            $numR = $in_select - $numL;
 
            // выборка списка слева
            $listLeft = imd_select_products($db, $exist_only, $product->product_id, $category_id, $manufacturer_id, $numL, 1);
 
            $countL = count($listLeft);
            if ($countL == 0 or $countL < $numL) {
                $numR = $in_select - $countL;
            }
            // выборка списка справа
            $listRight = imd_select_products($db, $exist_only, $product->product_id, $category_id, $manufacturer_id, $numR, 0);
 
            $countR = count($listRight);
            if (($countL == $numL) and ($countR < $numR)) {
                // если получили меньше - повторная выборка слева, чтобы набрать заданное количество
                $listLeft = imd_select_products($db, $exist_only, $product->product_id, $category_id, $manufacturer_id, $in_select-$countR, 1);
            }
            if (count($listLeft) or count($listRight)) {
                $rows = array_merge((array) $listLeft, (array) $listRight); // сливаем объекты-списки в один массив
                unset($listLeft, $listRight);
                sort($rows); // сортировать по ID или shuffle($rows)
                
                $showPrice = $this->params->get('showPrice');
                $showBasePrice = $this->params->get('showBasePrice');
                $showBrand = $this->params->get('showBrand');
                $showBrandLogo = $this->params->get('showBrandLogo');
                $products_category = array();
                $shop_item_id = getShopMainPageItemid();
                $moduleclass_sfx = $this->params->get('moduleclass_sfx');
    
                foreach($rows as $productId){
                    
                    $tmpProduct = JTable::getInstance('product','jshop');
                    $tmpProduct->load($productId);
                    $tmpProduct->getExtendsData();
                    
                    $images = $tmpProduct->getImages();
                    $tmpProduct->image = $image_path . '/' . (($images) ? $images[0]->image_thumb : $jshopConfig->noimage);
                    $tmpProduct->name = str_replace('"', '&quot;', $tmpProduct->getName());
                
                    $catId = $category_id;
                    if(!$catId) {
                        $prod_all_categories = $tmpProduct->getCategories(1);
                        $j = count($prod_all_categories);
                        if($j == 1) {
                            $catId = $prod_all_categories[0];
                        } elseif($j > 1) {
                            $i = mt_rand(0,$j-1);
                            $catId = $prod_all_categories[$i];
                        }
                    }
                    
                    $tmpProduct->category_id = $catId;
                    $tmpProduct->productUrl = SEFLink('index.php?option=com_jshopping&controller=product&task=view&category_id='.$catId.'&product_id='.$productId."&Itemid=".$shop_item_id, 1);
                    
                    if($showBasePrice) $tmpProduct->getBasicPriceInfo();
                    
                    if($showBrand && $tmpProduct->product_manufacturer_id) {
                        $tmpManufacturer = $tmpProduct->getManufacturerInfo();
                        $tmpProduct->manufacturer_name = $tmpManufacturer->name;
                        $tmpProduct->manufacturer_logo = ($tmpManufacturer->manufacturer_logo) ? $manuf_logo_path .'/'. $tmpManufacturer->manufacturer_logo : '';
                        $tmpProduct->manufacturer_url  = SEFLink('index.php?option=com_jshopping&controller=manufacturer&task=view&manufacturer_id='.$tmpProduct->product_manufacturer_id, 2);
                    } else {
                        $tmpProduct->manufacturer_name = '';
                        $tmpProduct->manufacturer_logo = '';
                        $tmpProduct->manufacturer_url = '';
                    }                       
                    
                    $tmpExtraFields = $tmpProduct->getExtraFields(1);
                    $tmp_ef = array();
                    $i = 0;
                    if($showExtraFields && $tmpExtraFields) {
                        foreach($showExtraFields as $ef_id) {
                            foreach($tmpExtraFields as $ef_data) {
                                if($ef_data['id'] == $ef_id) {
                                    $ef = new StdClass();
                                    $ef->id = $ef_data['id'];
                                    $ef->name = $ef_data['name'];
                                    $ef->value = $ef_data['value'];
                                    $tmp_ef[$i] = $ef;
                                    $i++;
                                }
                            }
                        }
                    }
                    $tmpProduct->extrafields = $tmp_ef;
 
                    if (!$jshopConfig->admin_show_product_labels) $tmpProduct->label_id = null;
                    if ($tmpProduct->label_id){
            $image = getNameImageLabel($tmpProduct->label_id);
            if ($image){
                $tmpProduct->_label_image = $jshopConfig->image_labels_live_path."/".$image;
            }
            $tmpProduct->_label_name = getNameImageLabel($tmpProduct->label_id, 2);
        }
                    
                    $products_category[] = $tmpProduct;
                }
                if($products_category) {
                    include(dirname(__FILE__)."/template.php");
                }
            }
        } // end function onAfterDisplayProduct
} // end class
 
    function imd_select_products($db, $exist_only, $prod_id, $catg_id, $manuf_id, $total, $atLeft) {
        $query = $db->getQuery(true);
        $query->select('pt.product_id');
        $query->from('#__jshopping_products AS pt');
        $query->leftJoin('#__jshopping_products_to_categories AS pc USING (product_id)');
        $query->where("pt.product_publish=".$db->Quote('1'));
        if ($manuf_id) {
            $query->leftJoin('#__jshopping_manufacturers AS vt ON pt.product_manufacturer_id = vt.manufacturer_id');
            $query->where('pt.product_manufacturer_id='.$db->Quote($manuf_id));
            $query->where("(ISEMPTY(pt.product_manufacturer_id) OR vt.manufacturer_publish=".$db->Quote('1').')');
        }
        if ($catg_id)  $query->where('pc.category_id='.$db->Quote($catg_id));
        if ($exist_only) $query->where('(pt.product_quantity>0 OR pt.unlimited=1)');
        if ($atLeft) {
            $query->where('pt.product_id<'.$db->Quote($prod_id));
            $query->order('pc.product_id DESC');
        } else {
            $query->where('pt.product_id>'.$db->Quote($prod_id));
            $query->order('pc.product_id ASC');
        }
        $db->setQuery($query,0,$total); // третий параметр - ограничение количества записей
        $db->query();
        $list = $db->loadColumn();
        return $list;
    }
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2017, 17:20
Ответы с готовыми решениями:

Вывод способов оплаты и доставки Joomshopping на странице материала
добрый день, уважаемые форумчане! =) возможно ли вывести способы оплаты и доставки на странице...

Количество товара в Информация о товаре joomshopping
Всем привет. Вопрос может показаться страным, но все же спрошу может кто тоже такое делал и знает...

Joomshopping фото товара, не то что загружаю
Загружаю фото товара, а загружается совсем другое фото. В категориях работает нормально. Пробовал...

При сохранении товара в joomshopping появляется белый экран
Решил написать интернет магазин на Joomshopping. Работаю в ОС Linux Mint 16 Cinnamon Добавляю...

Изменить вывод хлебных крошек (joomshopping)
Здравствуйте! Если зайти на любого производителя, то путь хлебных крошек Главная -&gt;...

0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.03.2017, 17:20

Вывод цены и фото Joomshopping в результатах поиска Joomla
Всем привет, уважаемые форумчане! прошу прощения, если тема уже где-то ранее поднималась - не...

Вывод плагина на отдельной странице
Туплю немагу! Написал я плагин, который что то делает. Ну к примеру он печатает банальный Hello...

Нужно чтобы количество товара на странице прайс уменьшалось при заказе товара
нужно чтобы количество товара на странице прайс уменьшалось при заказе товара на странице заказ, ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.