Produced by Araxis Merge on 2022-11-18 03:12:07 +0000. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.
| # | Location | File | Last Modified |
|---|---|---|---|
| 1 | Porto Theme/app/design/frontend/Smartwave/porto/Magento_Catalog/templates/product/view | details.phtml | 2021-03-17 02:27:58 +0000 |
| 2 | Theme Files/Magento 2.x/Porto Theme/app/design/frontend/Smartwave/porto/Magento_Catalog/templates/product/view | details.phtml | 2021-03-17 02:27:58 +0000 |
| Description | Between Files 1 and 2 | |
|---|---|---|
| Text Blocks | Lines | |
| Unchanged | 1 | 408 |
| Changed | 0 | 0 |
| Inserted | 0 | 0 |
| Removed | 0 | 0 |
| Whitespace | Consecutive whitespace is treated as a single space |
|---|---|
| Character case | Differences in character case are significant |
| Line endings | Differences in line endings (CR and LF characters) are ignored |
| CR/LF characters | Not shown in the comparison detail |
| Active line-pairing rules |
No regular expressions were active.
| 1 | <?php | 1 | <?php | |||
| 2 | /** | 2 | /** | |||
| 3 | * Copyright © 2016 Magento. All rights reserved. | 3 | * Copyright © 2016 Magento. All rights reserved. | |||
| 4 | * See COPYING.txt for license details. | 4 | * See COPYING.txt for license details. | |||
| 5 | */ | 5 | */ | |||
| 6 | 6 | |||||
| 7 | // @codingStandardsIgnoreFile | 7 | // @codingStandardsIgnoreFile | |||
| 8 | 8 | |||||
| 9 | ?> | 9 | ?> | |||
| 10 | <?php if ($detailedInfoGroup = $block->getGroupChildNames('detailed_info', 'getChildHtml')):?> | 10 | <?php if ($detailedInfoGroup = $block->getGroupChildNames('detailed_info', 'getChildHtml')):?> | |||
| 11 | <?php | 11 | <?php | |||
| 12 | $porto_helper = $this->helper('Smartwave\Porto\Helper\Data'); | 12 | $porto_helper = $this->helper('Smartwave\Porto\Helper\Data'); | |||
| 13 | $_helper = $this->helper('Smartwave\Porto\Helper\Customtabs'); | 13 | $_helper = $this->helper('Smartwave\Porto\Helper\Customtabs'); | |||
| 14 | $product_config = $porto_helper->getConfig('porto_settings/product'); | 14 | $product_config = $porto_helper->getConfig('porto_settings/product'); | |||
| 15 | $_product = \Magento\Framework\App\ObjectManager::getInstance()->get(\Magento\Framework\Registry::class)->registry('product'); | 15 | $_product = \Magento\Framework\App\ObjectManager::getInstance()->get(\Magento\Framework\Registry::class)->registry('product'); | |||
| 16 | $page_type = $_product->getData('product_page_type'); | 16 | $page_type = $_product->getData('product_page_type'); | |||
| 17 | if(!$page_type) | 17 | if(!$page_type) | |||
| 18 | $page_type = isset($_config['product_page_type'])?$_config['product_page_type']:''; | 18 | $page_type = isset($_config['product_page_type'])?$_config['product_page_type']:''; | |||
| 19 | $tab_style = ""; | 19 | $tab_style = ""; | |||
| 20 | if(isset($product_config['tab_style']) && $product_config['tab_style']) | 20 | if(isset($product_config['tab_style']) && $product_config['tab_style']) | |||
| 21 | $tab_style = $product_config['tab_style']; | 21 | $tab_style = $product_config['tab_style']; | |||
| 22 | if($page_type == 'wide_grid') | 22 | if($page_type == 'wide_grid') | |||
| 23 | $tab_style = 'vertical'; | 23 | $tab_style = 'vertical'; | |||
| 24 | ?> | 24 | ?> | |||
| 25 | <?php if($product_config['tab_full_background']):?> | 25 | <?php if($product_config['tab_full_background']):?> | |||
| 26 | <div class="move-product-tab"> | 26 | <div class="move-product-tab"> | |||
| 27 | <div class="row"> | 27 | <div class="row"> | |||
| 28 | <div class="col-md-12"> | 28 | <div class="col-md-12"> | |||
| 29 | <?php endif;?> | 29 | <?php endif;?> | |||
| 30 | <div class="product info detailed <?php echo $tab_style; ?> <?php if($page_type == 'sticky_right'): ?>fullwidth-row<?php endif; ?>"> | 30 | <div class="product info detailed <?php echo $tab_style; ?> <?php if($page_type == 'sticky_right'): ?>fullwidth-row<?php endif; ?>"> | |||
| 31 | <?php $layout = $block->getLayout(); ?> | 31 | <?php $layout = $block->getLayout(); ?> | |||
| 32 | <?php if(!$tab_style || $tab_style != "sticky"): ?> | 32 | <?php if(!$tab_style || $tab_style != "sticky"): ?> | |||
| 33 | <div class="product data items <?php if($page_type == 'sticky_right'): ?>container<?php endif; ?>" data-mage-init='{"tabs":{"openedState":"active"}}'> | 33 | <div class="product data items <?php if($page_type == 'sticky_right'): ?>container<?php endif; ?>" data-mage-init='{"tabs":{"openedState":"active"}}'> | |||
| 34 | <?php foreach ($detailedInfoGroup as $name):?> | 34 | <?php foreach ($detailedInfoGroup as $name):?> | |||
| 35 | <?php | 35 | <?php | |||
| 36 | $html = $layout->renderElement($name); | 36 | $html = $layout->renderElement($name); | |||
| 37 | if (!trim($html)) { | 37 | if (!trim($html)) { | |||
| 38 | continue; | 38 | continue; | |||
| 39 | } | 39 | } | |||
| 40 | $alias = $layout->getElementAlias($name); | 40 | $alias = $layout->getElementAlias($name); | |||
| 41 | $label = $block->getChildData($alias, 'title'); | 41 | $label = $block->getChildData($alias, 'title'); | |||
| 42 | ?> | 42 | ?> | |||
| 43 | <div class="data item title" | 43 | <div class="data item title" | |||
| 44 | aria-labeledby="tab-label-<?php /* @escapeNotVerified */ echo $alias;?>-title" | 44 | aria-labeledby="tab-label-<?php /* @escapeNotVerified */ echo $alias;?>-title" | |||
| 45 | data-role="collapsible" id="tab-label-<?php /* @escapeNotVerified */ echo $alias;?>"> | 45 | data-role="collapsible" id="tab-label-<?php /* @escapeNotVerified */ echo $alias;?>"> | |||
| 46 | <a class="data switch" | 46 | <a class="data switch" | |||
| 47 | tabindex="-1" | 47 | tabindex="-1" | |||
| 48 | data-toggle="switch" | 48 | data-toggle="switch" | |||
| 49 | href="#<?php /* @escapeNotVerified */ echo $alias; ?>" | 49 | href="#<?php /* @escapeNotVerified */ echo $alias; ?>" | |||
| 50 | id="tab-label-<?php /* @escapeNotVerified */ echo $alias;?>-title"> | 50 | id="tab-label-<?php /* @escapeNotVerified */ echo $alias;?>-title"> | |||
| 51 | <span><?php /* @escapeNotVerified */ echo $label; ?></span> | 51 | <span><?php /* @escapeNotVerified */ echo $label; ?></span> | |||
| 52 | </a> | 52 | </a> | |||
| 53 | </div> | 53 | </div> | |||
| 54 | <div class="data item content" id="<?php /* @escapeNotVerified */ echo $alias; ?>" data-role="content"> | 54 | <div class="data item content" id="<?php /* @escapeNotVerified */ echo $alias; ?>" data-role="content"> | |||
| 55 | <?php /* @escapeNotVerified */ echo $html; ?> | 55 | <?php /* @escapeNotVerified */ echo $html; ?> | |||
| 56 | </div> | 56 | </div> | |||
| 57 | <?php endforeach;?> | 57 | <?php endforeach;?> | |||
| 58 | <?php | 58 | <?php | |||
| 59 | if($custom_cms_tabs = $_helper->getCustomTabs($_product)) { | 59 | if($custom_cms_tabs = $_helper->getCustomTabs($_product)) { | |||
| 60 | $i = 1; | 60 | $i = 1; | |||
| 61 | foreach($custom_cms_tabs as $_item) { | 61 | foreach($custom_cms_tabs as $_item) { | |||
| 62 | ?> | 62 | ?> | |||
| 63 | <div class="data item title" | 63 | <div class="data item title" | |||
| 64 | aria-labeledby="tab-label-<?php /* @escapeNotVerified */ echo "custom-".$i;?>-title" | 64 | aria-labeledby="tab-label-<?php /* @escapeNotVerified */ echo "custom-".$i;?>-title" | |||
| 65 | data-role="collapsible" id="tab-label-<?php /* @escapeNotVerified */ echo "custom-".$i;?>"> | 65 | data-role="collapsible" id="tab-label-<?php /* @escapeNotVerified */ echo "custom-".$i;?>"> | |||
| 66 | <a class="data switch" | 66 | <a class="data switch" | |||
| 67 | tabindex="-1" | 67 | tabindex="-1" | |||
| 68 | data-toggle="switch" | 68 | data-toggle="switch" | |||
| 69 | href="#<?php /* @escapeNotVerified */ echo "custom-".$i; ?>" | 69 | href="#<?php /* @escapeNotVerified */ echo "custom-".$i; ?>" | |||
| 70 | id="tab-label-<?php /* @escapeNotVerified */ echo "custom-".$i;?>-title"> | 70 | id="tab-label-<?php /* @escapeNotVerified */ echo "custom-".$i;?>-title"> | |||
| 71 | <span><?php /* @escapeNotVerified */ echo $_item['tab_title']; ?></span> | 71 | <span><?php /* @escapeNotVerified */ echo $_item['tab_title']; ?></span> | |||
| 72 | </a> | 72 | </a> | |||
| 73 | </div> | 73 | </div> | |||
| 74 | <div class="data item content" id="<?php /* @escapeNotVerified */ echo "custom-".$i; ?>" data-role="content"> | 74 | <div class="data item content" id="<?php /* @escapeNotVerified */ echo "custom-".$i; ?>" data-role="content"> | |||
| 75 | <?php /* @escapeNotVerified */ echo $_item['tab_content']; ?> | 75 | <?php /* @escapeNotVerified */ echo $_item['tab_content']; ?> | |||
| 76 | </div> | 76 | </div> | |||
| 77 | <?php | 77 | <?php | |||
| 78 | $i++; | 78 | $i++; | |||
| 79 | } | 79 | } | |||
| 80 | } | 80 | } | |||
| 81 | ?> | 81 | ?> | |||
| 82 | </div> | 82 | </div> | |||
| 83 | <?php elseif($tab_style && $tab_style == "sticky"): ?> | 83 | <?php elseif($tab_style && $tab_style == "sticky"): ?> | |||
| 84 | <div class="product data items" data-mage-init='{"tabs":{"openedState":"active"}}'> | 84 | <div class="product data items" data-mage-init='{"tabs":{"openedState":"active"}}'> | |||
| 85 | <?php foreach ($detailedInfoGroup as $name):?> | 85 | <?php foreach ($detailedInfoGroup as $name):?> | |||
| 86 | <?php | 86 | <?php | |||
| 87 | $html = $layout->renderElement($name); | 87 | $html = $layout->renderElement($name); | |||
| 88 | if (!trim($html)) { | 88 | if (!trim($html)) { | |||
| 89 | continue; | 89 | continue; | |||
| 90 | } | 90 | } | |||
| 91 | $alias = $layout->getElementAlias($name); | 91 | $alias = $layout->getElementAlias($name); | |||
| 92 | $label = $block->getChildData($alias, 'title'); | 92 | $label = $block->getChildData($alias, 'title'); | |||
| 93 | $alias = str_replace(".","_",$alias); | 93 | $alias = str_replace(".","_",$alias); | |||
| 94 | ?> | 94 | ?> | |||
| 95 | <div class="data item title <?php if($alias == 'reviews'):?>active<?php endif; ?>" aria-labeledby="tab-label-<?php /* @escapeNotVerified */ echo $alias;?>" | 95 | <div class="data item title <?php if($alias == 'reviews'):?>active<?php endif; ?>" aria-labeledby="tab-label-<?php /* @escapeNotVerified */ echo $alias;?>" | |||
| 96 | data-role="collapsible" id="tab-label-<?php /* @escapeNotVerified */ echo $alias;?>"> | 96 | data-role="collapsible" id="tab-label-<?php /* @escapeNotVerified */ echo $alias;?>"> | |||
| 97 | <a class="data switch" href="#<?php /* @escapeNotVerified */ echo $alias; ?>"> | 97 | <a class="data switch" href="#<?php /* @escapeNotVerified */ echo $alias; ?>"> | |||
| 98 | <?php /* @escapeNotVerified */ echo $label; ?> | 98 | <?php /* @escapeNotVerified */ echo $label; ?> | |||
| 99 | </a> | 99 | </a> | |||
| 100 | </div> | 100 | </div> | |||
| 101 | <?php endforeach;?> | 101 | <?php endforeach;?> | |||
| 102 | <?php | 102 | <?php | |||
| 103 | if($custom_cms_tabs = $_helper->getCustomTabs($_product)) { | 103 | if($custom_cms_tabs = $_helper->getCustomTabs($_product)) { | |||
| 104 | $i = 1; | 104 | $i = 1; | |||
| 105 | foreach($custom_cms_tabs as $_item) { | 105 | foreach($custom_cms_tabs as $_item) { | |||
| 106 | ?> | 106 | ?> | |||
| 107 | <div class="data item title active"> | 107 | <div class="data item title active"> | |||
| 108 | <a class="data switch" href="#<?php /* @escapeNotVerified */ echo "custom-".$i; ?>"> | 108 | <a class="data switch" href="#<?php /* @escapeNotVerified */ echo "custom-".$i; ?>"> | |||
| 109 | <?php /* @escapeNotVerified */ echo $_item['tab_title']; ?> | 109 | <?php /* @escapeNotVerified */ echo $_item['tab_title']; ?> | |||
| 110 | </a> | 110 | </a> | |||
| 111 | </div> | 111 | </div> | |||
| 112 | <?php | 112 | <?php | |||
| 113 | $i++; | 113 | $i++; | |||
| 114 | } | 114 | } | |||
| 115 | } | 115 | } | |||
| 116 | ?> | 116 | ?> | |||
| 117 | <?php foreach ($detailedInfoGroup as $name):?> | 117 | <?php foreach ($detailedInfoGroup as $name):?> | |||
| 118 | <?php | 118 | <?php | |||
| 119 | $html = $layout->renderElement($name); | 119 | $html = $layout->renderElement($name); | |||
| 120 | if (!trim($html)) { | 120 | if (!trim($html)) { | |||
| 121 | continue; | 121 | continue; | |||
| 122 | } | 122 | } | |||
| 123 | $alias = $layout->getElementAlias($name); | 123 | $alias = $layout->getElementAlias($name); | |||
| 124 | $label = $block->getChildData($alias, 'title'); | 124 | $label = $block->getChildData($alias, 'title'); | |||
| 125 | $alias = str_replace(".","_",$alias); | 125 | $alias = str_replace(".","_",$alias); | |||
| 126 | ?> | 126 | ?> | |||
| 127 | <div class="data item content" id="<?php /* @escapeNotVerified */ echo $alias; ?>"> | 127 | <div class="data item content" id="<?php /* @escapeNotVerified */ echo $alias; ?>"> | |||
| 128 | <?php /* @escapeNotVerified */ echo $html; ?> | 128 | <?php /* @escapeNotVerified */ echo $html; ?> | |||
| 129 | </div> | 129 | </div> | |||
| 130 | <?php endforeach;?> | 130 | <?php endforeach;?> | |||
| 131 | <?php | 131 | <?php | |||
| 132 | if($custom_cms_tabs = $_helper->getCustomTabs($_product)) { | 132 | if($custom_cms_tabs = $_helper->getCustomTabs($_product)) { | |||
| 133 | $i = 1; | 133 | $i = 1; | |||
| 134 | foreach($custom_cms_tabs as $_item) { | 134 | foreach($custom_cms_tabs as $_item) { | |||
| 135 | ?> | 135 | ?> | |||
| 136 | <div class="data item content" id="<?php /* @escapeNotVerified */ echo "custom-".$i; ?>"> | 136 | <div class="data item content" id="<?php /* @escapeNotVerified */ echo "custom-".$i; ?>"> | |||
| 137 | <?php /* @escapeNotVerified */ echo $_item['tab_content']; ?> | 137 | <?php /* @escapeNotVerified */ echo $_item['tab_content']; ?> | |||
| 138 | </div> | 138 | </div> | |||
| 139 | <?php | 139 | <?php | |||
| 140 | $i++; | 140 | $i++; | |||
| 141 | } | 141 | } | |||
| 142 | } | 142 | } | |||
| 143 | ?> | 143 | ?> | |||
| 144 | </div> | 144 | </div> | |||
| 145 | <?php endif; ?> | 145 | <?php endif; ?> | |||
| 146 | <script type="text/javascript"> | 146 | <script type="text/javascript"> | |||
| 147 | require([ | 147 | require([ | |||
| 148 | 'jquery' | 148 | 'jquery' | |||
| 149 | ], function ($) { | 149 | ], function ($) { | |||
| 150 | $(document).ready(function(){ | 150 | $(document).ready(function(){ | |||
| 151 | <?php if($tab_style && $tab_style == "vertical"): ?> | 151 | <?php if($tab_style && $tab_style == "vertical"): ?> | |||
| 152 | $(".product.info.detailed.vertical .product.data.items .data.item.title").off("classadded").on("classadded",function(){ | 152 | $(".product.info.detailed.vertical .product.data.items .data.item.title").off("classadded").on("classadded",function(){ | |||
| 153 | $(this).parent().css("min-height",$(this).next().outerHeight()+"px"); | 153 | $(this).parent().css("min-height",$(this).next().outerHeight()+"px"); | |||
| 154 | }); | 154 | }); | |||
| 155 | <?php elseif($tab_style && $tab_style == "sticky"): ?> | 155 | <?php elseif($tab_style && $tab_style == "sticky"): ?> | |||
| 156 | var sticky_tabs; | 156 | var sticky_tabs; | |||
| 157 | var is_sticky = false; | 157 | var is_sticky = false; | |||
| 158 | $(window).scroll(function(){ | 158 | $(window).scroll(function(){ | |||
| 159 | if($(window).scrollTop() >= $(".product.info.detailed").offset().top-50){ | 159 | if($(window).scrollTop() >= $(".product.info.detailed").offset().top-50){ | |||
| 160 | if(!is_sticky){ | 160 | if(!is_sticky){ | |||
| 161 | $(".product.info.detailed.sticky").before('<div class="product-tabs-container"><div class="container"></div></div>'); | 161 | $(".product.info.detailed.sticky").before('<div class="product-tabs-container"><div class="container"></div></div>'); | |||
| 162 | $(".product.info.detailed.sticky .product.data.items > .item.title").each(function(){ | 162 | $(".product.info.detailed.sticky .product.data.items > .item.title").each(function(){ | |||
| 163 | $(".product-tabs-container > .container").append($(this).clone().detach()); | 163 | $(".product-tabs-container > .container").append($(this).clone().detach()); | |||
| 164 | }); | 164 | }); | |||
| 165 | $(".product-tabs-container .item.title > a").off("click").on("click", function(){ | 165 | $(".product-tabs-container .item.title > a").off("click").on("click", function(){ | |||
| 166 | $($(this).attr("href")).scrollToMe(); | 166 | $($(this).attr("href")).scrollToMe(); | |||
| 167 | return false; | 167 | return false; | |||
| 168 | }); | 168 | }); | |||
| 169 | <?php if ($porto_helper->getConfig('porto_settings/header/sticky_header')): ?> | 169 | <?php if ($porto_helper->getConfig('porto_settings/header/sticky_header')): ?> | |||
| 170 | $(".product-tabs-container").addClass("has-sticky-header"); | 170 | $(".product-tabs-container").addClass("has-sticky-header"); | |||
| 171 | <?php endif; ?> | 171 | <?php endif; ?> | |||
| 172 | <?php if ($porto_helper->getConfig('porto_settings/header/mobile_sticky_header')): ?> | 172 | <?php if ($porto_helper->getConfig('porto_settings/header/mobile_sticky_header')): ?> | |||
| 173 | $(".product-tabs-container").addClass("has-mobile-sticky-header"); | 173 | $(".product-tabs-container").addClass("has-mobile-sticky-header"); | |||
| 174 | <?php endif; ?> | 174 | <?php endif; ?> | |||
| 175 | is_sticky = true; | 175 | is_sticky = true; | |||
| 176 | } | 176 | } | |||
| 177 | } else { | 177 | } else { | |||
| 178 | $(".product-tabs-container").remove(); | 178 | $(".product-tabs-container").remove(); | |||
| 179 | is_sticky = false; | 179 | is_sticky = false; | |||
| 180 | } | 180 | } | |||
| 181 | }); | 181 | }); | |||
| 182 | $(".product.info.detailed.sticky .product.data.items > .item.title > a").off("click").on("click", function(){ | 182 | $(".product.info.detailed.sticky .product.data.items > .item.title > a").off("click").on("click", function(){ | |||
| 183 | $($(this).attr("href")).scrollToMe(); | 183 | $($(this).attr("href")).scrollToMe(); | |||
| 184 | return false; | 184 | return false; | |||
| 185 | }); | 185 | }); | |||
| 186 | $(".product-reviews-summary .reviews-actions a.action.view").off("click").on("click", function(){ | 186 | $(".product-reviews-summary .reviews-actions a.action.view").off("click").on("click", function(){ | |||
| 187 | $("#reviews").scrollToMe(); | 187 | $("#reviews").scrollToMe(); | |||
| 188 | return false; | 188 | return false; | |||
| 189 | }); | 189 | }); | |||
| 190 | $(".product-reviews-summary .reviews-actions a.action.add").off("click").on("click", function(){ | 190 | $(".product-reviews-summary .reviews-actions a.action.add").off("click").on("click", function(){ | |||
| 191 | $("#review-form").scrollToMe(); | 191 | $("#review-form").scrollToMe(); | |||
| 192 | return false; | 192 | return false; | |||
| 193 | }); | 193 | }); | |||
| 194 | <?php endif; ?> | 194 | <?php endif; ?> | |||
| 195 | }); | 195 | }); | |||
| 196 | }); | 196 | }); | |||
| 197 | </script> | 197 | </script> | |||
| 198 | </div> | 198 | </div> | |||
| 199 | <?php if($product_config['tab_full_background']):?> | 199 | <?php if($product_config['tab_full_background']):?> | |||
| 200 | </div> | 200 | </div> | |||
| 201 | </div> | 201 | </div> | |||
| 202 | </div> | 202 | </div> | |||
| 203 | <?php endif;?> | 203 | <?php endif;?> | |||
| 204 | <?php endif; ?> | 204 | <?php endif; ?> |
Araxis Merge (but not the data content of this report) is Copyright © 1993–2019 Araxis Ltd (www.araxis.com). All rights reserved.