Файловый менеджер - Редактировать - /home/lmsyaran/public_html/j3/components/com_phocacart/views/item/tmpl/default.php
Назад
<?php /* @package Joomla * @copyright Copyright (C) Open Source Matters. All rights reserved. * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php * @extension Phoca Extension * @copyright Copyright (C) Jan Pavelka www.phoca.cz * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL */ defined('_JEXEC') or die(); $layoutC = new JLayoutFile('button_compare', null, array('component' => 'com_phocacart')); $layoutW = new JLayoutFile('button_wishlist', null, array('component' => 'com_phocacart')); $layoutP = new JLayoutFile('product_price', null, array('component' => 'com_phocacart')); $layoutS = new JLayoutFile('product_stock', null, array('component' => 'com_phocacart')); $layoutID = new JLayoutFile('product_id', null, array('component' => 'com_phocacart')); $layoutPP = new JLayoutFile('product_play', null, array('component' => 'com_phocacart')); $layoutA = new JLayoutFile('button_add_to_cart_item', null, array('component' => 'com_phocacart')); $layoutA2 = new JLayoutFile('button_buy_now_paddle', null, array('component' => 'com_phocacart')); $layoutA3 = new JLayoutFile('button_external_link', null, array('component' => 'com_phocacart')); $layoutQ = new JLayoutFile('button_ask_question', null, array('component' => 'com_phocacart')); $layoutPD = new JLayoutFile('button_public_download', null, array('component' => 'com_phocacart')); $layoutEL = new JLayoutFile('link_external_link', null, array('component' => 'com_phocacart')); $layoutAB = new JLayoutFile('attribute_options_box', null, array('component' => 'com_phocacart')); $layoutPOQ = new JLayoutFile('product_order_quantity', null, array('component' => 'com_phocacart')); $layoutSZ = new JLayoutFile('product_size', null, array('component' => 'com_phocacart')); $layoutI = new JLayoutFile('image', null, array('component' => 'com_phocacart')); $layoutAAQ = new JLayoutFile('popup_container_iframe', null, array('component' => 'com_phocacart')); echo '<div id="ph-pc-item-box" class="pc-item-view'.$this->p->get( 'pageclass_sfx' ).'">'; if (isset($this->category[0]->id) && ($this->t['display_back'] == 2 || $this->t['display_back'] == 3)) { if ($this->category[0]->id > 0) { $linkUp = JRoute::_(PhocacartRoute::getCategoryRoute($this->category[0]->id, $this->category[0]->alias)); $linkUpText = $this->category[0]->title; } else { $linkUp = false; $linkUpText = false; } if ($linkUp && $linkUpText) { echo '<div class="ph-top">' .'<a class="'.$this->s['c']['btn.btn-success'].'" title="'.$linkUpText.'" href="'. $linkUp.'" >' .'<span class="'.$this->s['i']['back-category'].'"></span> '.JText::_($linkUpText).'</a>' .'</div>'; } } echo $this->t['event']->onItemBeforeHeader; $popupAskAQuestion = 0;// we need this info for the container at the bottom (if modal popup is used for ask a question) $x = isset($this->item[0]) ? $this->item[0]: 0; if (!empty($x) && isset($x->id) && (int)$x->id > 0) { $idName = 'VItemP'.(int)$x->id; echo '<div class="'.$this->s['c']['row'].'">'; // === IMAGE PANEL echo '<div id="phImageBox" class="'.$this->s['c']['col.xs12.sm5.md5'] .'">'; //JPluginHelper::importPlugin('pcv'); $results = \JFactory::getApplication()->triggerEvent('PCVonItemImage', array('com_phocacart.item', &$x, &$this->t, &$this->p)); $imageOutput = trim(implode("\n", $results)); if ($imageOutput != '') { echo $imageOutput;// rendered by plugin } else { $label = PhocacartRenderFront::getLabel($x->date, $x->sales, $x->featured); // IMAGE $image = PhocacartImage::getThumbnailName($this->t['pathitem'], $x->image, 'large');// Image $imageL = PhocacartImage::getThumbnailName($this->t['pathitem'], $x->image, 'large');// Image Link to enlarge // Some of the attribute is selected - this attribute include image so the image should be displayed instead of default $imageA = PhocaCartImage::getImageChangedByAttributes($this->t['attr_options'], 'large'); if ($imageA != '') { $image = PhocacartImage::getThumbnailName($this->t['pathitem'], $imageA, 'large'); $imageL = PhocacartImage::getThumbnailName($this->t['pathitem'], $imageA, 'large'); } $link = JURI::base(true) . '/' . $imageL->rel;// Thumbnail //$link = JURI::base(true) . '/' . $this->t['pathitem']['orig_rel_ds'] . $x->image;// Original image if ($this->t['display_webp_images'] == 1) { $link = JURI::base(true) . '/' . $imageL->rel_webp; } if (isset($image->rel) && $image->rel != '') { $altValue = PhocaCartImage::getAltTitle($x->title, $image->rel); echo '<div class="ph-item-image-full-box ' . $label['cssthumbnail'] . '">'; echo '<div class="ph-label-box">'; echo $label['new'] . $label['hot'] . $label['feat']; if ($this->t['taglabels_output'] != '') { echo $this->t['taglabels_output']; } echo '</div>'; $imageS = PhocacartImage::getThumbnailName($this->t['pathitem'], $x->image, 'small'); $linkS = JURI::base(true) . '/' . $imageS->rel;// Thumbnail if ($this->t['display_webp_images'] == 1) { $linkS = JURI::base(true) . '/' . $imageS->rel_webp; } echo '<a href="' . $link . '" ' . $this->t['image_rel'] . ' class="' . $this->t['image_class'] . ' phjProductHref' . $idName . ' phImageFullHref" data-href="' . $link . '" data-href-s="' . $linkS . '">'; $d = array(); $d['t'] = $this->t; $d['s'] = $this->s; $d['src'] = JURI::base(true) . '/' . $image->rel; $d['data-image'] = JURI::base(true) . '/' . $image->rel; $d['data-image-webp'] = JURI::base(true) . '/' . $image->rel_webp; $d['alt-value'] = PhocaCartImage::getAltTitle($x->title, $image->rel); $d['srcset-webp'] = $d['data-image-webp']; $d['data-image-meta'] = $d['data-image']; $d['class'] = PhocacartRenderFront::completeClass(array($this->s['c']['img-responsive'], $label['cssthumbnail2'], 'ph-image-full', 'phImageFull', 'phjProductImage' . $idName)); $d['style'] = ''; if (isset($this->t['image_width']) && (int)$this->t['image_width'] > 0 && isset($this->t['image_height']) && (int)$this->t['image_height'] > 0) { $d['style'] = 'width:' . $this->t['image_width'] . 'px;height:' . $this->t['image_height'] . 'px'; } echo $layoutI->render($d); echo '</a>'; echo '</div>' . "\n";// end item_row_item_box_full_image } // ADDITIONAL IMAGES if (!empty($this->t['add_images'])) { echo '<div class="' . $this->s['c']['row'] . ' ph-item-image-add-box">'; foreach ($this->t['add_images'] as $v2) { echo '<div class="' . $this->s['c']['col.xs12.sm4.md4'] . ' ph-item-image-box">'; $image = PhocacartImage::getThumbnailName($this->t['pathitem'], $v2->image, 'small'); $imageL = PhocacartImage::getThumbnailName($this->t['pathitem'], $v2->image, 'large'); $link = JURI::base(true) . '/' . $imageL->rel; if ($this->t['display_webp_images'] == 1) { $link = JURI::base(true) . '/' . $imageL->rel_webp; } $altValue = PhocaCartImage::getAltTitle($x->title, $v2->image); echo '<a href="' . $link . '" ' . $this->t['image_rel'] . ' class="' . $this->t['image_class'] . ' phImageAdditionalHref">'; $d = array(); $d['t'] = $this->t; $d['s'] = $this->s; $d['src'] = JURI::base(true) . '/' . $image->rel; $d['srcset-webp'] = JURI::base(true) . '/' . $image->rel_webp; $d['alt-value'] = PhocaCartImage::getAltTitle($x->title, $v2->image); $d['class'] = PhocacartRenderFront::completeClass(array($this->s['c']['img-responsive'], $label['cssthumbnail2'], 'ph-image-full', 'phImageAdditional', /*, 'phjProductImage'.$idName*/)); echo $layoutI->render($d); echo '</a>'; echo '</div>'; } echo '</div>';// end additional images } } // end image output echo '</div>';// end item_row_item_c1 // === PRICE PANEL echo '<div class="'.$this->s['c']['col.xs12.sm7.md7'].'">'; echo '<div class="ph-item-price-panel phItemPricePanel">'; $title = ''; if (isset($this->item[0]->title) && $this->item[0]->title != '') { $title = $this->item[0]->title; } echo PhocacartRenderFront::renderHeader(array($title)); // :L: PRICE $price = new PhocacartPrice;// Can be used by options $priceItems = array(); if ($this->t['can_display_price']) { $priceItems = $price->getPriceItems($x->price, $x->taxid, $x->taxrate, $x->taxcalculationtype, $x->taxtitle, $x->unit_amount, $x->unit_unit, 1, 1, $x->group_price); // Can change price and also SKU OR EAN (Advanced Stock and Price Management) $price->getPriceItemsChangedByAttributes($priceItems, $this->t['attr_options'], $price, $x); $d = array(); $d['s'] = $this->s; $d['type'] = $x->type;// PRODUCTTYPE $d['priceitems'] = $priceItems; $d['priceitemsorig']= array(); if ($x->price_original != '' && $x->price_original > 0) { $d['priceitemsorig'] = $price->getPriceItems($x->price_original, $x->taxid, $x->taxrate, $x->taxcalculationtype); } $d['class'] = 'ph-item-price-box'; $d['product_id'] = (int)$x->id; $d['typeview'] = 'Item'; // Display discount price // Move standard prices to new variable (product price -> product discount) $d['priceitemsdiscount'] = $d['priceitems']; $d['discount'] = PhocacartDiscountProduct::getProductDiscountPrice($x->id, $d['priceitemsdiscount']); // Display cart discount (global discount) in product views - under specific conditions only // Move product discount prices to new variable (product price -> product discount -> product discount cart) $d['priceitemsdiscountcart'] = $d['priceitemsdiscount']; $d['discountcart'] = PhocacartDiscountCart::getCartDiscountPriceForProduct($x->id, $x->catid, $d['priceitemsdiscountcart']); $d['zero_price'] = 1;// Apply zero price if possible echo $layoutP->render($d); } if ( isset($x->description) && $x->description != '') { echo '<div class="ph-desc">'. Joomla\CMS\HTML\HTMLHelper::_('content.prepare', $x->description). '</div>'; } // REWARD POINTS - NEEDED $pointsN = PhocacartReward::getPoints($x->points_needed, 'needed'); if ($pointsN) { echo '<div class="ph-item-reward-box">'; echo '<div class="ph-reward-txt">'.JText::_('COM_PHOCACART_PRICE_IN_REWARD_POINTS').'</div>'; echo '<div class="ph-reward">'.$pointsN.'</div>'; echo '</div>'; echo '<div class="ph-cb"></div>'; } // REWARD POINTS - RECEIVED $pointsR = PhocacartReward::getPoints($x->points_received, 'received', $x->group_points_received); if ($pointsR) { echo '<div class="ph-item-reward-box">'; echo '<div class="ph-reward-txt">'.JText::_('COM_PHOCACART_REWARD_POINTS').'</div>'; echo '<div class="ph-reward">'.$pointsR.'</div>'; echo '</div>'; echo '<div class="ph-cb"></div>'; } if (isset($x->manufacturertitle) && $x->manufacturertitle != '') { echo '<div class="ph-item-manufacturer-box">'; echo '<div class="ph-manufacturer-txt">'.JText::_('COM_PHOCACART_MANUFACTURER').':</div>'; echo '<div class="ph-manufacturer">'; echo PhocacartRenderFront::displayLink($x->manufacturertitle, $x->manufacturerlink); echo '</div>'; echo '</div>'; echo '<div class="ph-cb"></div>'; } // STOCK =================================================== // Set stock: product, variations, or advanced stock status // There are classes because AJAX can change the visibility of buttons // Last word when checking if product can be ordered have always checkout $class_btn = ''; $class_icon = ''; $stock = PhocacartStock::getStockItemsChangedByAttributes($this->t['stock_status'], $this->t['attr_options'], $x); if ($this->t['hide_add_to_cart_stock'] == 1 && (int)$stock < 1) { $class_btn = 'ph-visibility-hidden'; $class_icon = 'ph-display-none'; } if ($this->t['display_stock_status'] == 1 || $this->t['display_stock_status'] == 3) { if($this->t['stock_status']['stock_status'] || $this->t['stock_status']['stock_count'] !== false) { $d = array(); $d['s'] = $this->s; $d['class'] = 'ph-item-stock-box'; $d['product_id'] = (int)$x->id; $d['typeview'] = 'Item'; $d['stock_status_output'] = PhocacartStock::getStockStatusOutput($this->t['stock_status']); echo $layoutS->render($d); } if($this->t['stock_status']['min_quantity']) { $dPOQ = array(); $dPOQ['s'] = $this->s; $dPOQ['text'] = JText::_('COM_PHOCACART_MINIMUM_ORDER_QUANTITY'); $dPOQ['status'] = $this->t['stock_status']['min_quantity']; echo $layoutPOQ->render($dPOQ); } if($this->t['stock_status']['min_multiple_quantity']) { $dPOQ = array(); $dPOQ['s'] = $this->s; $dPOQ['text'] = JText::_('COM_PHOCACART_MINIMUM_MULTIPLE_ORDER_QUANTITY'); $dPOQ['status'] = $this->t['stock_status']['min_multiple_quantity']; echo $layoutPOQ->render($dPOQ); } } if ((int)$this->t['item_display_delivery_date'] > 0 && $x->delivery_date != '' && $x->delivery_date != '0000-00-00 00:00:00') { echo '<div class="ph-item-delivery-date-box">'; echo '<div class="ph-delivery-date-txt">'.JText::_('COM_PHOCACART_DELIVERY_DATE').':</div>'; echo '<div class="ph-delivery-date">'; echo JHtml::date($x->delivery_date, 'DATE_FORMAT_LC3'); echo '</div>'; echo '</div>'; echo '<div class="ph-cb"></div>'; } // END STOCK ================================================ // SIZE OPTIONS ============================================= if ((int)$this->t['item_display_size_options'] > 0){ $dSZ = array(); $dSZ['s'] = $this->s; $dSZ['length'] = $x->length; $dSZ['width'] = $x->width; $dSZ['height'] = $x->height; $dSZ['weight'] = $x->weight; $dSZ['volume'] = $x->volume; $dSZ['unit_amount'] = $x->unit_amount; $dSZ['unit_unit'] = $x->unit_unit; echo $layoutSZ->render($dSZ); } // END SIZE OPTIONS ========================================= // ID OPTIONS (SKU, EAN, UPC, ...) ========================== $id = new PhocacartId(); $id->getIdItemsChangedByAttributes($x, $this->t['attr_options']); $dID = array(); $dID['s'] = $this->s; $dID['x'] = $x; $dID['class'] = 'ph-item-id-box'; $dID['product_id'] = (int)$x->id; $dID['typeview'] = 'Item'; echo $layoutID->render($dID); // END ID OPTIONS =========================================== // This form can get two events: // when option selected - price or image is changed id=phItemPriceBoxForm // when ajax cart is active and submit button is clicked class=phItemCartBoxForm echo '<form id="phCartAddToCartButton'.(int)$x->id.'" class="phItemCartBoxForm phjAddToCart phjItem phjAddToCartVItemP'.(int)$x->id.' form-inline" action="'.$this->t['linkcheckout'].'" method="post">'; // ATTRIBUTES, OPTIONS $d = array(); $d['s'] = $this->s; $d['attr_options'] = $this->t['attr_options']; $d['hide_attributes'] = $this->t['hide_attributes_item']; $d['dynamic_change_image'] = $this->t['dynamic_change_image']; $d['zero_attribute_price'] = $this->t['zero_attribute_price']; $d['remove_select_option_attribute'] = $this->t['remove_select_option_attribute']; $d['pathitem'] = $this->t['pathitem']; $d['init_type'] = 0; $d['price'] = $price; $d['product_id'] = (int)$x->id; $d['gift_types'] = $x->gift_types; $d['image_size'] = 'large'; $d['typeview'] = 'Item'; $d['priceitems'] = $priceItems; echo $layoutAB->render($d); // :L: ADD TO CART $addToCartHidden = 0;// Button can be hidden based on price if ($x->type == 3) { // PRODUCTTYPE - price on demand product cannot be added to cart $addToCartHidden = 1; } else if ($this->t['hide_add_to_cart_zero_price'] == 1 && $x->price == 0) { // Don't display Add to Cart in case the price is zero $addToCartHidden = 1; } else if ((int)$this->t['item_addtocart'] == 1 || (int)$this->t['item_addtocart'] == 4) { $d = array(); $d['s'] = $this->s; $d['id'] = (int)$x->id; $d['catid'] = $this->t['catid']; $d['return'] = $this->t['actionbase64']; $d['addtocart'] = $this->t['item_addtocart']; $d['typeview'] = 'Item'; $d['class_btn'] = $class_btn; $d['class_icon'] = $class_icon; echo $layoutA->render($d); } else if ((int)$this->t['item_addtocart'] == 102 && (int)$x->external_id != '') { $d = array(); $d['s'] = $this->s; $d['external_id'] = (int)$x->external_id; $d['return'] = $this->t['actionbase64']; echo $layoutA2->render($d); } else if ((int)$this->t['item_addtocart'] == 103 && $x->external_link != '') { $d = array(); $d['s'] = $this->s; $d['external_link'] = $x->external_link; $d['external_text'] = $x->external_text; $d['return'] = $this->t['actionbase64']; echo $layoutA3->render($d); } echo '</form>'; echo '<div class="ph-cb"></div>'; echo $this->t['event']->onItemAfterAddToCart; echo '<div class="ph-top-space"></div>'; if ($this->t['display_compare'] == 1 || $this->t['display_wishlist'] == 1) { //echo '<div class="ph-cb"></div>'; } // :L: COMPARE if ($this->t['display_compare'] == 1) { $d = array(); $d['s'] = $this->s; $d['linkc'] = $this->t['linkcomparison']; $d['id'] = (int)$x->id; $d['catid'] = (int)$x->catid; $d['return']= $this->t['actionbase64']; $d['method']= $this->t['add_compare_method']; echo $layoutC->render($d); } // :L: WISHLIST if ($this->t['display_wishlist'] == 1) { $d = array(); $d['s'] = $this->s; $d['linkw'] = $this->t['linkwishlist']; $d['id'] = (int)$x->id; $d['catid'] = (int)$x->catid; $d['return']= $this->t['actionbase64']; $d['method']= $this->t['add_wishlist_method']; echo $layoutW->render($d); } echo '<div class="ph-cb"></div>'; // :L: PUBLIC DOWNLOAD if ($this->t['display_public_download'] == 1 && $x->public_download_file != '') { $d = array(); $d['s'] = $this->s; $d['linkdownload'] = $this->t['linkdownload']; $d['id'] = (int)$x->id; $d['return'] = $this->t['actionbase64']; $d['title'] = ''; if ($x->public_download_text != '') { $d['title'] = $x->public_download_text; } echo '<div class="ph-cb"></div>'; echo $layoutPD->render($d); } // :L: PUBLIC FILE PLAY if ($this->t['display_file_play'] == 1 && $x->public_play_file != '') { $d = array(); $d['s'] = $this->s; $d['id'] = (int)$x->id; $d['publicplayfile'] = $x->public_play_file; $d['pathpublicfile'] = $this->t['pathpublicfile']; $d['title'] = ''; if ($x->public_play_text != '') { $d['title'] = $x->public_play_text; } echo '<div class="ph-cb"></div>'; echo $layoutPP->render($d); } // :L: EXTERNAL LINK if ($this->t['display_external_link'] == 1 && $x->external_link != '') { $d = array(); $d['s'] = $this->s; $d['linkexternal'] = $x->external_link; //$d['id'] = (int)$x->id; //$d['return'] = $this->t['actionbase64']; $d['title'] = ''; if ($x->external_text != '') { $d['title'] = $x->external_text; } echo '<div class="ph-cb"></div>'; echo $layoutEL->render($d); } // :L: EXTERNAL LINK 2 if ($this->t['display_external_link'] == 1 && $x->external_link2 != '') { $d = array(); $d['s'] = $this->s; $d['linkexternal'] = $x->external_link2; //$d['id'] = (int)$x->id; //$d['return'] = $this->t['actionbase64']; $d['title'] = ''; if ($x->external_text2 != '') { $d['title'] = $x->external_text2; } echo '<div class="ph-cb"></div>'; echo $layoutEL->render($d); } // ASK A QUESTION if (((int)$this->t['item_askquestion'] == 1) || ($this->t['item_askquestion'] == 2 && ((int)$this->t['item_addtocart'] == 0 || $addToCartHidden != 0))) { $d = array(); $d['s'] = $this->s; $d['id'] = (int)$x->id; $d['catid'] = $this->t['catid']; $d['popup'] = 0; $tmpl = ''; if ((int)$this->t['popup_askquestion'] > 0) { $d['popup'] = (int)$this->t['popup_askquestion']; $popupAskAQuestion = (int)$this->t['popup_askquestion']; $tmpl = 'tmpl=component'; } $d['link'] = JRoute::_(PhocacartRoute::getQuestionRoute($x->id, $x->catid, $x->alias, $x->catalias, $tmpl)); $d['return'] = $this->t['actionbase64']; echo '<div class="ph-cb"></div>'; echo $layoutQ->render($d); } echo '<div class="ph-cb"></div>'; echo $this->t['event']->onItemBeforeEndPricePanel;// View Plugin echo $this->t['event']->PCPonItemBeforeEndPricePanel;// Payment Plugin echo '</div>';// end item_row_item_box_price echo '</div>';// end item_row_item_c2 echo '</div>';// end item_row echo '<div class="ph-item-bottom-box">'; // TABS $active = $this->s['c']['tabactive']; $activeTab = $this->s['c']['tabactvietab'];// Not displayed in Bootstrap4 $tabO = ''; $tabLiO = ''; // DESCRIPTION if (isset($x->description_long) && $x->description_long != '') { $tabLiO .= '<li class="'.$this->s['c']['nav-item'].' '.$activeTab.'"><a href="#phdescription" data-toggle="tab" class="'.$this->s['c']['nav-link'].' '.$active.'">'.JText::_('COM_PHOCACART_DESCRIPTION').'</a></li>'; $tabO .= '<div class="'.$this->s['c']['tabpane'].' ph-tab-pane '.$active.'" id="phdescription">'; $tabO .= Joomla\CMS\HTML\HTMLHelper::_('content.prepare', $x->description_long); $tabO .= '</div>'; $active = $activeTab = ''; } // FEATURES if (isset($x->features) && $x->features != '') { $tabLiO .= '<li class="'.$this->s['c']['nav-item'].' '.$activeTab.'"><a href="#phfeatures" data-toggle="tab" class="'.$this->s['c']['nav-link'].' '.$active.'">'.JText::_('COM_PHOCACART_FEATURES').'</a></li>'; $tabO .= '<div class="'.$this->s['c']['tabpane'].' ph-tab-pane '.$active.'" id="phfeatures">'; $tabO .= Joomla\CMS\HTML\HTMLHelper::_('content.prepare', $x->features); $tabO .= '</div>'; $active = $activeTab = ''; } // VIDEO if (isset($x->video) && $x->video != '') { $tabLiO .= '<li class="'.$this->s['c']['nav-item'].' '.$activeTab.'"><a href="#phvideo" data-toggle="tab" class="'.$this->s['c']['nav-link'].' '.$active.'">'.JText::_('COM_PHOCACART_VIDEO').'</a></li>'; $tabO .= '<div class="'.$this->s['c']['tabpane'].' ph-tab-pane '.$active.'" id="phvideo">'; $tabO .= PhocacartRenderFront::displayVideo($x->video); $tabO .= '</div>'; $active = $activeTab = ''; } // SPECIFICATION if (!empty($this->t['specifications'])){ $tabLiO .= '<li class="'.$this->s['c']['nav-item'].' '.$activeTab.'"><a href="#phspecification" data-toggle="tab" class="'.$this->s['c']['nav-link'].' '.$active.'">'.JText::_('COM_PHOCACART_SPECIFICATIONS').'</a></li>'; $tabO .= '<div class="'.$this->s['c']['tabpane'].' ph-tab-pane '.$active.'" id="phspecification">'; foreach($this->t['specifications'] as $k => $v) { if(isset($v[0]) && $v[0] != '') { $tabO .= '<h4 class="ph-spec-group-title">'.$v[0].'</h4>'; unset($v[0]); } if (!empty($v)) { foreach($v as $k2 => $v2) { if (isset($v2['title']) && isset($v2['value'])) { $tabO .= '<div class="' . $this->s['c']['row'] . '">'; $tabO .= '<div class="' . $this->s['c']['col.xs12.sm5.md5'] . '">'; $tabO .= '<div class="ph-spec-title">' . $v2['title'] . '</div>'; $tabO .= '</div>'; $tabO .= '<div class="' . $this->s['c']['col.xs12.sm7.md7'] . '">'; $tabO .= '<div class="ph-spec-value">' . $v2['value'] . '</div>'; $tabO .= '</div>'; $tabO .= '</div>'; } } } } $tabO .= '</div>'; $active = $activeTab = ''; } // REVIEWS if ($this->t['enable_review'] > 0) { $tabLiO .= '<li class="'.$this->s['c']['nav-item'].' '.$activeTab.'"><a href="#phreview" data-toggle="tab" class="'.$this->s['c']['nav-link'].' '.$active.'">'.JText::_('COM_PHOCACART_REVIEWS').'</a></li>'; $tabO .= '<div class="'.$this->s['c']['tabpane'].' ph-tab-pane '.$active.'" id="phreview">'; if (!empty($this->t['reviews'])) { foreach($this->t['reviews'] as $k => $v) { $rating = $v->rating; $tabO .= '<div class="bs-callout bs-callout-info">'; $tabO .= '<h4 class="ph-reviews-name">'.htmlspecialchars($v->name).'</h4>'; $tabO .= '<div><span class="ph-stars"><span style="width:'.((int)$rating * 16) .'px;"></span></span></div>'; $tabO .= '<div class="ph-reviews-review">'.htmlspecialchars($v->review).'</div>'; $tabO .= '</div>'; } } if ((int)$this->u->id > 0) { $tabO .= '<form action="'.$this->t['linkitem'].'" method="post" class="'.$this->s['c']['item_review_form'].'">'; // ROW $tabO .= '<div class="'.$this->s['c']['row'].'">'; $tabO .= '<div class="'.$this->s['c']['col.xs12.sm2.md2'].'">'; $tabO .= '<div class="ph-review-title">'.JText::_('COM_PHOCACART_RATING').'</div>'; $tabO .= '</div>'; $tabO .= '<div class="'.$this->s['c']['col.xs12.sm10.md10'].' ph-rating-box">'; $tabO .= '<div class="ph-review-value ph-rating">'; $tabO .= '<select name="rating" id="phitemrating"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> </select>'; $tabO .= '</div>'; $tabO .= '</div>'; $tabO .= '</div>'; // ROW $tabO .= '<div class="'.$this->s['c']['row'].'">'; $tabO .= '<div class="'.$this->s['c']['col.xs12.sm2.md2'].'">'; $tabO .= '<div class="ph-review-title">'.JText::_('COM_PHOCACART_NAME').'</div>'; $tabO .= '</div>'; $tabO .= '<div class="'.$this->s['c']['col.xs12.sm5.md5'].'">'; $tabO .= '<div class="ph-review-value"><input type="text" name="name" class="form-control" value="'. $this->u->name .'" /></div>'; $tabO .= '</div>'; $tabO .= '<div class="'.$this->s['c']['col.xs12.sm5.md5'].'"></div>'; $tabO .= '</div>'; // ROW $tabO .= '<div class="'.$this->s['c']['row'].'">'; $tabO .= '<div class="'.$this->s['c']['col.xs12.sm2.md2'].'">'; $tabO .= '<div class="ph-review-title">'.JText::_('COM_PHOCACART_REVIEW').'</div>'; $tabO .= '</div>'; $tabO .= '<div class="'.$this->s['c']['col.xs12.sm5.md5'].'">'; $tabO .= '<div class="ph-review-value"><textarea class="" name="review" rows="3"></textarea></div>'; $tabO .= '</div>'; $tabO .= '<div class="'.$this->s['c']['col.xs12.sm5.md5'].'"></div>'; $tabO .= '</div>'; // ROW $tabO .= '<div class="'.$this->s['c']['row'].'">'; $tabO .= '<div class="'.$this->s['c']['col.xs12.sm2.md2'].'"></div>'; $tabO .= '<div class="'.$this->s['c']['col.xs12.sm5.md5'].'">'; $tabO .= '<div class="'.$this->s['c']['pull-right'].'">'; $tabO .= '<button class="'.$this->s['c']['btn.btn-primary.btn-sm'].' ph-btn"><span class="'.$this->s['i']['edit'].'"></span> '.JText::_('COM_PHOCACART_SUBMIT').'</button>'; $tabO .= '</div>'; $tabO .= '</div>'; $tabO .= '<div class="'.$this->s['c']['col.xs12.sm5.md5'].'"></div>'; $tabO .= '</div>'; // END ROW $tabO .= Joomla\CMS\HTML\HTMLHelper::_('form.token'); $tabO .= '<input type="hidden" name="catid" value="'.$this->t['catid'].'">'; $tabO .= '<input type="hidden" name="task" value="item.review">'; $tabO .= '<input type="hidden" name="tmpl" value="component" />'; $tabO .= '<input type="hidden" name="option" value="com_phocacart" />'; $tabO .= '<input type="hidden" name="return" value="'.$this->t['actionbase64'].'" />'; $tabO .= '</form>'; } else { $tabO .= '<div class="ph-message">'.JText::_('COM_PHOCACART_ONLY_LOGGED_IN_USERS_CAN_MAKE_REVIEW_PLEASE_LOGIN').'</div>'; } $tabO .= '</div>'; $active = $activeTab = ''; } // RELATED PRODUCTS if (!empty($this->t['rel_products'])) { $tabLiO .= '<li class="'.$this->s['c']['nav-item'].' '.$activeTab.'"><a href="#phrelated" data-toggle="tab" class="'.$this->s['c']['nav-link'].' '.$active.'">'.JText::_('COM_PHOCACART_RELATED_PRODUCTS').'</a></li>'; $tabO .= '<div class="'.$this->s['c']['tabpane'].' ph-tab-pane '.$active.'" id="phrelated">'; $tabO .= '<div class="'.$this->s['c']['row'].'">'; foreach($this->t['rel_products'] as $k => $v) { $tabO .= '<div class="'.$this->s['c']['row-item'].' '.$this->s['c']['col.xs12.sm3.md3'].'">'; $tabO .= '<div class="ph-item-box grid ph-item-thumbnail-related">'; $tabO .= '<div class="'.PhocacartRenderFront::completeClass(array($this->s['c']['thumbnail'], 'ph-thumbnail', 'ph-thumbnail-c', 'ph-item')).'">'; $tabO .= '<div class="ph-item-content">'; $image = PhocacartImage::getThumbnailName($this->t['pathitem'], $v->image, 'medium'); // Try to find the best menu link if (isset($v->catid2) && (int)$v->catid2 > 0 && isset($v->catalias2) && $v->catalias2 != '') { $link = JRoute::_(PhocacartRoute::getItemRoute($v->id, $v->catid2, $v->alias, $v->catalias2)); } else { $link = JRoute::_(PhocacartRoute::getItemRoute($v->id, $v->catid, $v->alias, $v->catalias)); } $tabO .= '<a href="'.$link.'">'; if (isset($image->rel) && $image->rel != '') { /*$tabO .= '<img src="'.JURI::base(true).'/'.$image->rel.'" alt="" class="'.$this->s['c']['img-responsive'].' ph-image"'; if (isset($this->t['image_width']) && $this->t['image_width'] != '' && isset($this->t['image_height']) && $this->t['image_height'] != '') { $tabO .= ' style="width:'.$this->t['image_width'].';height:'.$this->t['image_height'].'"'; } $tabO .= ' />';*/ $d = array(); $d['t'] = $this->t; $d['s'] = $this->s; $d['src'] = JURI::base(true) . '/' . $image->rel; $d['srcset-webp'] = JURI::base(true) . '/' . $image->rel_webp; $d['data-image'] = JURI::base(true) . '/' . $image->rel; $d['data-image-webp'] = JURI::base(true) . '/' . $image->rel_webp; $d['alt-value'] = PhocaCartImage::getAltTitle($v->title, $image->rel); $d['class'] = PhocacartRenderFront::completeClass(array($this->s['c']['img-responsive'], 'img-thumbnail', 'ph-image-full', 'phImageFull', 'phjProductImage' . '')); $d['style'] = ''; /*if (isset($this->t['image_width']) && (int)$this->t['image_width'] > 0 && isset($this->t['image_height']) && (int)$this->t['image_height'] > 0) { $d['style'] = 'width:' . $this->t['image_width'] . 'px;height:' . $this->t['image_height'] . 'px'; }*/ $tabO .= $layoutI->render($d); } $tabO .= '</a>'; $tabO .= '<div class="'.$this->s['c']['caption'].'"><h4><a href="'.$link.'">'.$v->title.'</a></h4></div>'; $tabO .= '<div class="">'; $tabO .= '<a href="'.$link.'" class="'.$this->s['c']['btn.btn-primary.btn-sm'].' ph-btn" role="button"><span class="'.$this->s['i']['view-product'].'"></span> '.JText::_('COM_PHOCACART_VIEW_PRODUCT').'</a>'; $tabO .= '</div>'; $tabO .= '</div>'; $tabO .= '</div>'; $tabO .= '</div>'; $tabO .= '</div>'; } $tabO .= '</div>'; $tabO .= '</div>'; $active = $activeTab = ''; } // PRICE HISTORY if ($this->t['enable_price_history'] && $this->t['price_history_data']) { $tabLiO .= '<li class="'.$this->s['c']['nav-item'].' '.$activeTab.'"><a href="#phpricehistory" data-toggle="tab" class="'.$this->s['c']['nav-link'].' '.$active.'">'.JText::_('COM_PHOCACART_PRICE_HISTORY').'</a></li>'; $tabO .= '<div class="'.$this->s['c']['tabpane'].' ph-tab-pane '.$active.'" id="phpricehistory">'; $tabO .= '<div class="'.$this->s['c']['row'].'">'; $tabO .= '<div class="'.$this->s['c']['col.xs12.sm12.md12'].' ph-cpanel-chart-box">'; $tabO .= '<div id="phChartAreaLineHolder" class="ph-chart-canvas-holder" style="width:95%" >'; $tabO .= '<canvas id="phChartAreaLine" class="ph-chart-area-line"></canvas>'; $tabO .= '</div>'; $tabO .= '</div>'; $tabO .= '</div>'; $tabO .= '</div>'; } // TABS PLUGIN if (!empty($this->t['event']->onItemInsideTabPanel) && is_array($this->t['event']->onItemInsideTabPanel)) { foreach($this->t['event']->onItemInsideTabPanel as $k => $v) { if (isset($v['title']) && isset($v['alias']) && isset($v['content'])) { $tabLiO .= '<li class="'.$this->s['c']['nav-item'].' '.$activeTab.'"><a href="#'.strip_tags($v['alias']).'" data-toggle="tab" class="'.$this->s['c']['nav-link'].' '.$active.'">'.$v['title'].'</a></li>'; $tabO .= '<div class="'.$this->s['c']['tabpane'].' ph-tab-pane '.$active.'" id="'.strip_tags($v['alias']).'">'; $tabO .= $v['content']; $tabO .= '</div>'; $active = $activeTab = ''; } } } if ($tabLiO != '') { echo '<ul class="'.$this->s['c']['tabnav'].'">'; echo $tabLiO; echo '</ul>'; } if ($tabO != '') { echo '<div class="'.$this->s['c']['tabcontent'].'">'; echo $tabO; echo '</div>'; } echo '</div>'; // end row 2 (bottom) echo $this->t['event']->onItemAfterTabs; // TAGS if ($this->t['tags_output'] != '') { echo '<div class="ph-cb"></div>'; echo '<div class="ph-item-tag-box">'; echo '<h3>Tags</h3>'; echo $this->t['tags_output']; echo '</div>'; } // PARAMETERS if ($this->t['parameters_output'] != '') { echo '<div class="ph-cb"></div>'; echo '<div class="ph-item-parameter-box">'; echo $this->t['parameters_output']; echo '</div>'; } echo '<div class="ph-cb"></div>'; } if ((isset($this->itemnext[0]) && $this->itemnext[0]) || (isset($this->itemprev[0]) && $this->itemprev[0])) { echo '<div class="'.$this->s['c']['row'].'">'; echo '<div class="'.$this->s['c']['col.xs12.sm4.md4'].' ph-item-navigation-box">'; if(isset($this->itemprev[0]) && $this->itemprev[0]) { $p = $this->itemprev[0]; $title = ''; $titleT = JText::_('COM_PHOCACART_PREVIOUS_PRODUCT'). ' ('. $p->title.')'; if ($this->t['title_next_prev'] == 1) { $title = $titleT; } else if ($this->t['title_next_prev'] == 2) { $title = JText::_('COM_PHOCACART_PREVIOUS_PRODUCT'); } else if ($this->t['title_next_prev'] == 3) { $title = $p->title; } $linkPrev = JRoute::_(PhocacartRoute::getItemRoute($p->id, $p->categoryid, $p->alias, $p->categoryalias)); echo '<div class="'.$this->s['c']['pull-left'].'">'; echo '<a href="'.$linkPrev.'" class="'.$this->s['c']['btn.btn-default'].' ph-item-navigation" role="button" title="'.$titleT.'"><span class="'.$this->s['i']['prev'].'"></span> '.$title.'</a>'; echo '</div>'; } echo '</div>'; echo '<div class="'.$this->s['c']['col.xs12.sm2.md2'].' ph-item-navigation-box">'; echo '</div>'; echo '<div class="'.$this->s['c']['col.xs12.sm2.md2'].' ph-item-navigation-box">'; echo '</div>'; echo '<div class="'.$this->s['c']['col.xs12.sm4.md4'].' ph-item-navigation-box">'; if(isset($this->itemnext[0]) && $this->itemnext[0]) { $n = $this->itemnext[0]; $title = ''; $titleT = JText::_('COM_PHOCACART_NEXT_PRODUCT'). ' ('. $n->title.')'; if ($this->t['title_next_prev'] == 1) { $title = $titleT; } else if ($this->t['title_next_prev'] == 2) { $title = JText::_('COM_PHOCACART_NEXT_PRODUCT'); } else if ($this->t['title_next_prev'] == 3) { $title = $n->title; } $linkNext = JRoute::_(PhocacartRoute::getItemRoute($n->id, $n->categoryid, $n->alias, $n->categoryalias)); echo '<div class="'.$this->s['c']['pull-right'].'">'; echo '<a href="'.$linkNext.'" class="'.$this->s['c']['btn.btn-default'].' ph-item-navigation" role="button" title="'.$titleT.'">'.$title.' <span class="'.$this->s['i']['next'].'"></span></a>'; echo '</div>'; } echo '</div>'; echo '</div>'; } echo '</div>'; echo '<div id="phContainer"></div>'; if ($popupAskAQuestion == 2) { echo '<div id="phContainerPopup">'; $d = array(); $d['id'] = 'phAskAQuestionPopup'; $d['title'] = JText::_('COM_PHOCACART_ASK_A_QUESTION'); $d['icon'] = $this->s['i']['question-sign']; $d['t'] = $this->t; $d['s'] = $this->s; echo $layoutAAQ->render($d); echo '</div>';// end phContainerPopup } echo '<div> </div>'; echo PhocacartUtilsInfo::getInfo(); ?>
| ver. 1.4 |
Github
|
.
| PHP 8.1.33 | Генерация страницы: 0.02 |
proxy
|
phpinfo
|
Настройка