Diff
checker
文本
文本
图像
文档
Excel
文件夹
Legal
Enterprise
桌面版
定价
登录
下载 Diffchecker 桌面版
比较文本
查找两个文本文件之间的差异
工具
历史
实时编辑器
隐藏空白更改
折叠未更改行
关闭换行
视图
拆分
统一
比对精度
智能
单词
字符
文本样式
更改外观
语法高亮
选择语法
忽略
文本转换
转到第一个差异
编辑输入
Diffchecker Desktop
运行Diffchecker最安全的方式。获取Diffchecker桌面应用:您的差异永远不会离开您的电脑!
获取桌面版
private-content.phtml
创建于
3年前
差异永不过期
清除
导出
分享
解释
1 删除
行
总计
删除
字符
总计
删除
要继续使用此功能,请升级到
Diff
checker
Pro
查看价格
149 行
全部复制
54 添加
行
总计
添加
字符
总计
添加
要继续使用此功能,请升级到
Diff
checker
Pro
查看价格
199 行
全部复制
复制
已复制
复制
已复制
<?php
/**
* Hyvä Themes - https://hyva.io
* Copyright © Hyvä Themes 2020-present. All rights reserved.
* This product is licensed per Magento install
* See https://hyva.io/license
*/
declare(strict_types=1);
/** @var Template $block */
/** @var Escaper $escaper */
use Magento\Framework\Escaper;
use Magento\Framework\View\Element\Template;
?>
<script>
<script>
'use strict';
'use strict';
{
{
const private_content_key = 'mage-cache-storage';
const private_content_key = 'mage-cache-storage';
const private_content_expire_key = 'mage-cache-timeout';
const private_content_expire_key = 'mage-cache-timeout';
const private_content_version_key = 'private_content_version';
const private_content_version_key = 'private_content_version';
const section_data_ids_key = 'section_data_ids';
const section_data_ids_key = 'section_data_ids';
const mage_cache_session_id_key = 'mage-cache-sessid';
const mage_cache_session_id_key = 'mage-cache-sessid';
const last_visited_store_key = 'last_visited_store';
const last_visited_store_key = 'last_visited_store';
const ttl = 3600;
const ttl = 3600;
复制
已复制
复制
已复制
<?php
/**
* The `hyva` JS namespace is being set by Hyva_Theme/src/view/frontend/templates/page/js/hyva.phtml
* and should be included through Hyva_Theme/src/view/frontend/layout/default_hyva.xml
*/
?>
if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) {
if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) {
console.warn("Hyvä helpers are not loaded yet. Make sure they are included before this script");
console.warn("Hyvä helpers are not loaded yet. Make sure they are included before this script");
}
}
function loadSectionData () {
function loadSectionData () {
const browserStorage = hyva.getBrowserStorage();
const browserStorage = hyva.getBrowserStorage();
if (!browserStorage) {
if (!browserStorage) {
typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
[{
type: "warning",
type: "warning",
复制
已复制
复制
已复制
text: "
Please enable LocalStorage in your browser.
"
text: "
<?= $escaper->escapeHtml(__('
Please enable LocalStorage in your browser.
')) ?>
"
}]
}]
);
);
return;
return;
}
}
try {
try {
let isInvalid = false;
let isInvalid = false;
复制
已复制
复制
已复制
<?php
/**
* Usually store switch is made via POST requests, but if this happen on other ways (eg. the customer
* changing manually the base url, or landing from search engines on a different store) we need to
* request again private contents
*/
?>
if (hyva.getCookie(last_visited_store_key) !== CURRENT_STORE_CODE) {
if (hyva.getCookie(last_visited_store_key) !== CURRENT_STORE_CODE) {
isInvalid = true;
isInvalid = true;
}
}
hyva.setCookie(last_visited_store_key, CURRENT_STORE_CODE, false, false);
hyva.setCookie(last_visited_store_key, CURRENT_STORE_CODE, false, false);
复制
已复制
复制
已复制
<?php
/**
* The `mage-cache-sessid` cookie is being unset from backend to
* indicate that sectionData is invalidated and needs to be reloaded
* in the frontend. So we mark it as invalid, and then re-set the
* `mage-cache-sessid` cookie
*/
?>
if (!hyva.getCookie(mage_cache_session_id_key)) {
if (!hyva.getCookie(mage_cache_session_id_key)) {
isInvalid = true;
isInvalid = true;
const skipSetDomain = true;
const skipSetDomain = true;
const days = false;
const days = false;
hyva.setCookie(mage_cache_session_id_key, true, days, skipSetDomain)
hyva.setCookie(mage_cache_session_id_key, true, days, skipSetDomain)
}
}
const cookieVersion = hyva.getCookie(private_content_version_key);
const cookieVersion = hyva.getCookie(private_content_version_key);
const storageVersion = browserStorage.getItem(private_content_version_key);
const storageVersion = browserStorage.getItem(private_content_version_key);
if (cookieVersion && !storageVersion || cookieVersion !== storageVersion) {
if (cookieVersion && !storageVersion || cookieVersion !== storageVersion) {
isInvalid = true;
isInvalid = true;
}
}
const privateContentExpires = browserStorage.getItem(private_content_expire_key);
const privateContentExpires = browserStorage.getItem(private_content_expire_key);
if (privateContentExpires && new Date(privateContentExpires) < new Date()) {
if (privateContentExpires && new Date(privateContentExpires) < new Date()) {
browserStorage.removeItem(private_content_key);
browserStorage.removeItem(private_content_key);
}
}
if (isInvalid) {
if (isInvalid) {
fetchPrivateContent([]);
fetchPrivateContent([]);
} else if (cookieVersion && storageVersion && cookieVersion === storageVersion) {
} else if (cookieVersion && storageVersion && cookieVersion === storageVersion) {
const privateContent = JSON.parse(browserStorage.getItem(private_content_key));
const privateContent = JSON.parse(browserStorage.getItem(private_content_key));
if (
if (
privateContent &&
privateContent &&
privateContentExpires &&
privateContentExpires &&
privateContent.cart &&
privateContent.cart &&
privateContent.customer
privateContent.customer
) {
) {
dispatchPrivateContent(privateContent);
dispatchPrivateContent(privateContent);
} else {
} else {
fetchPrivateContent([]);
fetchPrivateContent([]);
}
}
} else {
} else {
dispatchPrivateContent({});
dispatchPrivateContent({});
}
}
} catch (error) {
} catch (error) {
console.warn('Error retrieving Private Content:', error);
console.warn('Error retrieving Private Content:', error);
}
}
}
}
复制
已复制
复制
已复制
window.addEventListener('
load
', loadSectionData);
window.addEventListener('
alpine:initialized
', loadSectionData);
window.addEventListener('reload-customer-section-data', loadSectionData);
window.addEventListener('reload-customer-section-data', loadSectionData);
function dispatchPrivateContent(data) {
function dispatchPrivateContent(data) {
const privateContentEvent = new CustomEvent("private-content-loaded", {
const privateContentEvent = new CustomEvent("private-content-loaded", {
detail: {
detail: {
data: data
data: data
}
}
});
});
window.dispatchEvent(privateContentEvent);
window.dispatchEvent(privateContentEvent);
}
}
复制
已复制
复制
已复制
<?php
/**
* We use 'X-Requested-With': 'XMLHttpRequest' to prevent Magento from clearing the customer session
* in \Magento\PageCache\Model\DepersonalizeChecker::checkIfDepersonalize
* Otherwise, \Magento\Tax\Plugin\Checkout\CustomerData\Cart::afterGetSectionData can't add tax to
* cart items.
*/
?>
function fetchPrivateContent(sections) {
function fetchPrivateContent(sections) {
fetch(`${BASE_URL}customer/section/load/?sections=${encodeURIComponent(sections.join(','))}`, {
fetch(`${BASE_URL}customer/section/load/?sections=${encodeURIComponent(sections.join(','))}`, {
method: 'GET',
method: 'GET',
headers: {
headers: {
'Content-Type': 'application/json',
'Content-Type': 'application/json',
'X-Requested-With': 'XMLHttpRequest'
'X-Requested-With': 'XMLHttpRequest'
}
}
})
})
.then(response => response.json())
.then(response => response.json())
.then(
.then(
data => {
data => {
if (data) {
if (data) {
try {
try {
const browserStorage = hyva.getBrowserStorage();
const browserStorage = hyva.getBrowserStorage();
// merge new data preserving non-invalidated sections
// merge new data preserving non-invalidated sections
复制
已复制
复制
已复制
const oldSectionData = JSON.parse(browserStorage.getItem(private_content_key) || '{}')
;
const oldSectionData = JSON.parse(browserStorage.getItem(private_content_key) || '{}')
|| {}
;
复制
已复制
复制
已复制
<?php
/** Ensure no checkout data remains after logout (from Luma checkout) */
?>
if ((! data.cart || ! data.cart.cartId) && oldSectionData['checkout-data']) {
if ((! data.cart || ! data.cart.cartId) && oldSectionData['checkout-data']) {
delete oldSectionData['checkout-data'];
delete oldSectionData['checkout-data'];
}
}
const newSectionData = Object.assign(oldSectionData, data);
const newSectionData = Object.assign(oldSectionData, data);
dispatchPrivateContent(newSectionData);
dispatchPrivateContent(newSectionData);
// don't persist messages, they've been dispatched already
// don't persist messages, they've been dispatched already
if (newSectionData.messages && newSectionData.messages.messages ) {
if (newSectionData.messages && newSectionData.messages.messages ) {
newSectionData.messages.messages = [];
newSectionData.messages.messages = [];
}
}
browserStorage.setItem(private_content_key, JSON.stringify(newSectionData));
browserStorage.setItem(private_content_key, JSON.stringify(newSectionData));
const expiresAt = new Date(Date.now() + (ttl * 1000)).toISOString();
const expiresAt = new Date(Date.now() + (ttl * 1000)).toISOString();
browserStorage.setItem(private_content_expire_key, expiresAt);
browserStorage.setItem(private_content_expire_key, expiresAt);
const newCookieVersion = hyva.getCookie(private_content_version_key);
const newCookieVersion = hyva.getCookie(private_content_version_key);
browserStorage.setItem(private_content_version_key, newCookieVersion);
browserStorage.setItem(private_content_version_key, newCookieVersion);
// We don't need the section_data_ids in Hyvä, but we store them for compatibility
// We don't need the section_data_ids in Hyvä, but we store them for compatibility
// with Luma Fallback. Otherwise, not all sections are loaded in Luma Checkout
// with Luma Fallback. Otherwise, not all sections are loaded in Luma Checkout
hyva.setCookie(
hyva.setCookie(
section_data_ids_key,
section_data_ids_key,
JSON.stringify(
JSON.stringify(
Object.keys(data).reduce((sectionDataIds, sectionKey) => {
Object.keys(data).reduce((sectionDataIds, sectionKey) => {
sectionDataIds[sectionKey] = data[sectionKey]['data_id'];
sectionDataIds[sectionKey] = data[sectionKey]['data_id'];
return sectionDataIds;
return sectionDataIds;
}, {})
}, {})
),
),
false,
false,
true
true
);
);
} catch (error) {
} catch (error) {
console.warn("Couldn't store privateContent", error);
console.warn("Couldn't store privateContent", error);
}
}
}
}
}
}
);
);
}
}
}
}
</script>
</script>
复制
已复制
复制
已复制
已保存差异
原始文本
打开文件
<script> 'use strict'; { const private_content_key = 'mage-cache-storage'; const private_content_expire_key = 'mage-cache-timeout'; const private_content_version_key = 'private_content_version'; const section_data_ids_key = 'section_data_ids'; const mage_cache_session_id_key = 'mage-cache-sessid'; const last_visited_store_key = 'last_visited_store'; const ttl = 3600; if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) { console.warn("Hyvä helpers are not loaded yet. Make sure they are included before this script"); } function loadSectionData () { const browserStorage = hyva.getBrowserStorage(); if (!browserStorage) { typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( [{ type: "warning", text: "Please enable LocalStorage in your browser." }] ); return; } try { let isInvalid = false; if (hyva.getCookie(last_visited_store_key) !== CURRENT_STORE_CODE) { isInvalid = true; } hyva.setCookie(last_visited_store_key, CURRENT_STORE_CODE, false, false); if (!hyva.getCookie(mage_cache_session_id_key)) { isInvalid = true; const skipSetDomain = true; const days = false; hyva.setCookie(mage_cache_session_id_key, true, days, skipSetDomain) } const cookieVersion = hyva.getCookie(private_content_version_key); const storageVersion = browserStorage.getItem(private_content_version_key); if (cookieVersion && !storageVersion || cookieVersion !== storageVersion) { isInvalid = true; } const privateContentExpires = browserStorage.getItem(private_content_expire_key); if (privateContentExpires && new Date(privateContentExpires) < new Date()) { browserStorage.removeItem(private_content_key); } if (isInvalid) { fetchPrivateContent([]); } else if (cookieVersion && storageVersion && cookieVersion === storageVersion) { const privateContent = JSON.parse(browserStorage.getItem(private_content_key)); if ( privateContent && privateContentExpires && privateContent.cart && privateContent.customer ) { dispatchPrivateContent(privateContent); } else { fetchPrivateContent([]); } } else { dispatchPrivateContent({}); } } catch (error) { console.warn('Error retrieving Private Content:', error); } } window.addEventListener('load', loadSectionData); window.addEventListener('reload-customer-section-data', loadSectionData); function dispatchPrivateContent(data) { const privateContentEvent = new CustomEvent("private-content-loaded", { detail: { data: data } }); window.dispatchEvent(privateContentEvent); } function fetchPrivateContent(sections) { fetch(`${BASE_URL}customer/section/load/?sections=${encodeURIComponent(sections.join(','))}`, { method: 'GET', headers: { 'Content-Type': 'application/json', 'X-Requested-With': 'XMLHttpRequest' } }) .then(response => response.json()) .then( data => { if (data) { try { const browserStorage = hyva.getBrowserStorage(); // merge new data preserving non-invalidated sections const oldSectionData = JSON.parse(browserStorage.getItem(private_content_key) || '{}'); if ((! data.cart || ! data.cart.cartId) && oldSectionData['checkout-data']) { delete oldSectionData['checkout-data']; } const newSectionData = Object.assign(oldSectionData, data); dispatchPrivateContent(newSectionData); // don't persist messages, they've been dispatched already if (newSectionData.messages && newSectionData.messages.messages ) { newSectionData.messages.messages = []; } browserStorage.setItem(private_content_key, JSON.stringify(newSectionData)); const expiresAt = new Date(Date.now() + (ttl * 1000)).toISOString(); browserStorage.setItem(private_content_expire_key, expiresAt); const newCookieVersion = hyva.getCookie(private_content_version_key); browserStorage.setItem(private_content_version_key, newCookieVersion); // We don't need the section_data_ids in Hyvä, but we store them for compatibility // with Luma Fallback. Otherwise, not all sections are loaded in Luma Checkout hyva.setCookie( section_data_ids_key, JSON.stringify( Object.keys(data).reduce((sectionDataIds, sectionKey) => { sectionDataIds[sectionKey] = data[sectionKey]['data_id']; return sectionDataIds; }, {}) ), false, true ); } catch (error) { console.warn("Couldn't store privateContent", error); } } } ); } } </script>
更改后文本
打开文件
<?php /** * Hyvä Themes - https://hyva.io * Copyright © Hyvä Themes 2020-present. All rights reserved. * This product is licensed per Magento install * See https://hyva.io/license */ declare(strict_types=1); /** @var Template $block */ /** @var Escaper $escaper */ use Magento\Framework\Escaper; use Magento\Framework\View\Element\Template; ?> <script> 'use strict'; { const private_content_key = 'mage-cache-storage'; const private_content_expire_key = 'mage-cache-timeout'; const private_content_version_key = 'private_content_version'; const section_data_ids_key = 'section_data_ids'; const mage_cache_session_id_key = 'mage-cache-sessid'; const last_visited_store_key = 'last_visited_store'; const ttl = 3600; <?php /** * The `hyva` JS namespace is being set by Hyva_Theme/src/view/frontend/templates/page/js/hyva.phtml * and should be included through Hyva_Theme/src/view/frontend/layout/default_hyva.xml */ ?> if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) { console.warn("Hyvä helpers are not loaded yet. Make sure they are included before this script"); } function loadSectionData () { const browserStorage = hyva.getBrowserStorage(); if (!browserStorage) { typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( [{ type: "warning", text: "<?= $escaper->escapeHtml(__('Please enable LocalStorage in your browser.')) ?>" }] ); return; } try { let isInvalid = false; <?php /** * Usually store switch is made via POST requests, but if this happen on other ways (eg. the customer * changing manually the base url, or landing from search engines on a different store) we need to * request again private contents */ ?> if (hyva.getCookie(last_visited_store_key) !== CURRENT_STORE_CODE) { isInvalid = true; } hyva.setCookie(last_visited_store_key, CURRENT_STORE_CODE, false, false); <?php /** * The `mage-cache-sessid` cookie is being unset from backend to * indicate that sectionData is invalidated and needs to be reloaded * in the frontend. So we mark it as invalid, and then re-set the * `mage-cache-sessid` cookie */ ?> if (!hyva.getCookie(mage_cache_session_id_key)) { isInvalid = true; const skipSetDomain = true; const days = false; hyva.setCookie(mage_cache_session_id_key, true, days, skipSetDomain) } const cookieVersion = hyva.getCookie(private_content_version_key); const storageVersion = browserStorage.getItem(private_content_version_key); if (cookieVersion && !storageVersion || cookieVersion !== storageVersion) { isInvalid = true; } const privateContentExpires = browserStorage.getItem(private_content_expire_key); if (privateContentExpires && new Date(privateContentExpires) < new Date()) { browserStorage.removeItem(private_content_key); } if (isInvalid) { fetchPrivateContent([]); } else if (cookieVersion && storageVersion && cookieVersion === storageVersion) { const privateContent = JSON.parse(browserStorage.getItem(private_content_key)); if ( privateContent && privateContentExpires && privateContent.cart && privateContent.customer ) { dispatchPrivateContent(privateContent); } else { fetchPrivateContent([]); } } else { dispatchPrivateContent({}); } } catch (error) { console.warn('Error retrieving Private Content:', error); } } window.addEventListener('alpine:initialized', loadSectionData); window.addEventListener('reload-customer-section-data', loadSectionData); function dispatchPrivateContent(data) { const privateContentEvent = new CustomEvent("private-content-loaded", { detail: { data: data } }); window.dispatchEvent(privateContentEvent); } <?php /** * We use 'X-Requested-With': 'XMLHttpRequest' to prevent Magento from clearing the customer session * in \Magento\PageCache\Model\DepersonalizeChecker::checkIfDepersonalize * Otherwise, \Magento\Tax\Plugin\Checkout\CustomerData\Cart::afterGetSectionData can't add tax to * cart items. */ ?> function fetchPrivateContent(sections) { fetch(`${BASE_URL}customer/section/load/?sections=${encodeURIComponent(sections.join(','))}`, { method: 'GET', headers: { 'Content-Type': 'application/json', 'X-Requested-With': 'XMLHttpRequest' } }) .then(response => response.json()) .then( data => { if (data) { try { const browserStorage = hyva.getBrowserStorage(); // merge new data preserving non-invalidated sections const oldSectionData = JSON.parse(browserStorage.getItem(private_content_key) || '{}') || {}; <?php /** Ensure no checkout data remains after logout (from Luma checkout) */ ?> if ((! data.cart || ! data.cart.cartId) && oldSectionData['checkout-data']) { delete oldSectionData['checkout-data']; } const newSectionData = Object.assign(oldSectionData, data); dispatchPrivateContent(newSectionData); // don't persist messages, they've been dispatched already if (newSectionData.messages && newSectionData.messages.messages ) { newSectionData.messages.messages = []; } browserStorage.setItem(private_content_key, JSON.stringify(newSectionData)); const expiresAt = new Date(Date.now() + (ttl * 1000)).toISOString(); browserStorage.setItem(private_content_expire_key, expiresAt); const newCookieVersion = hyva.getCookie(private_content_version_key); browserStorage.setItem(private_content_version_key, newCookieVersion); // We don't need the section_data_ids in Hyvä, but we store them for compatibility // with Luma Fallback. Otherwise, not all sections are loaded in Luma Checkout hyva.setCookie( section_data_ids_key, JSON.stringify( Object.keys(data).reduce((sectionDataIds, sectionKey) => { sectionDataIds[sectionKey] = data[sectionKey]['data_id']; return sectionDataIds; }, {}) ), false, true ); } catch (error) { console.warn("Couldn't store privateContent", error); } } } ); } } </script>
查找差异