Skip to content

Instantly share code, notes, and snippets.

View jorgehernandezSF's full-sized avatar

Jorge Hernandez jorgehernandezSF

  • Salesforce.com
View GitHub Profile
@jorgehernandezSF
jorgehernandezSF / Home.js
Created August 28, 2019 21:46
Page Designer Home controller that overrides the Home-Show route to show a page designer page.
'use strict';
var server = require('server');
server.extend(module.superModule);
var PageMgr = require('dw/experience/PageMgr');
server.append('Show', function (req, res, next) {
var page = PageMgr.getPage('pd_homepage');
if (page != null && page.isVisible()) {
@jorgehernandezSF
jorgehernandezSF / topsellertile_es
Last active September 25, 2020 04:23
This is a component localization file for the BM UI. It should be placed in bm_pagedesigner cartridge (or another one added to BM cartridge path).
name=Tile para el producto que mas vende
description=Este componente muestra el producto que mas se vende basado en la regla de clasification "top sellers"
attribute_definition_group.search_params.name=Parametros para busqueda
attribute_definition_group.search_params.description=Parametros para busqueda: escoja una categoria del sitio
attribute_definition.category.name=Categoria
@jorgehernandezSF
jorgehernandezSF / nodecorator.isml
Created August 19, 2019 16:07
This is a sample decorator that can be used inside PD UI to remove header and footer.
<iscontent type="text/html" charset="UTF-8" compact="true"/>
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<isreplace/>
</body>
</html>
@jorgehernandezSF
jorgehernandezSF / Page.js
Last active September 25, 2020 04:23
Page.js version that redirects to homepage when the page is not visible: not published yet, not visible for locale, or not visible for a user group, etc.
'use strict';
var server = require('server');
server.extend(module.superModule);
var consentTracking = require('*/cartridge/scripts/middleware/consentTracking');
var pageMetaData = require('*/cartridge/scripts/middleware/pageMetaData');
var PageMgr = require('dw/experience/PageMgr');
server.append('Show', consentTracking.consent, function (req, res, next) {
@jorgehernandezSF
jorgehernandezSF / PageRenderHelper.js
Last active September 25, 2020 04:23
PageRenderHelper that removes header/footer on the BM Page Designer UI, but not on the storefront.
'use strict';
var RegionModelRegistry = require('*/cartridge/experience/utilities/RegionModelRegistry.js');
function parseRenderParameters(renderParametersJson) {
var renderParameters = {};
if (renderParametersJson) {
try {
renderParameters = JSON.parse(renderParametersJson);
} catch (e) {
@jorgehernandezSF
jorgehernandezSF / mixedlayout.isml
Created May 1, 2019 03:55
Mixed Layout page type script
<iscontent type="text/html" charset="UTF-8" compact="true"/>
<isdecorate template="${pdict.decorator}">
<isscript>
var assets = require('*/cartridge/scripts/assets.js');
assets.addCss('/css/layout.css');
assets.addCss('/css/pagedesigner-bootstrap.min.css');
</isscript>
<!--- the page markup --->
<div class="container-fluid page-container px-2">
@jorgehernandezSF
jorgehernandezSF / mixedlayout.js
Created May 1, 2019 03:10
Mixed Layout page type script
'use strict';
var Template = require('dw/util/Template');
var HashMap = require('dw/util/HashMap');
var PageRenderHelper = require('*/cartridge/experience/utilities/PageRenderHelper.js');
/**
* Render logic for the mixedlayout.
*
* @param {dw.experience.PageScriptContext} context The page script context object.
@jorgehernandezSF
jorgehernandezSF / mixedlayout.json
Last active September 25, 2020 04:23
Mixed Layout page type meta definition
{
"name":"Mixed Page Layout",
"description":"Page Layout with a fixed set of banner and tile regions and a flexible main region",
"region_definitions":[
{
"id":"banner",
"name":"Banner Region",
"max_components":1,
"component_type_exclusions": [
{ "type_id": "layouts.1column" },
@jorgehernandezSF
jorgehernandezSF / topsellertile.isml
Last active September 25, 2020 04:23
Top Seller Tile component type: ISML template
<isscript>
var assets = require('*/cartridge/scripts/assets.js');
assets.addCss('/css/producttile.css');
assets.addCss('/css/component.css');
</isscript>
<figure class="component-figure product_centered-text">
<picture>
<isif condition="${pdict.image}">
<img class="component-image" src="${pdict.image.src}" <isif condition="${pdict.image.alt}">alt="${pdict.image.alt}" title="${pdict.image.alt}"</isif> />
</isif>
@jorgehernandezSF
jorgehernandezSF / topsellertile.properties
Last active May 1, 2019 20:39
Top Seller Tile component type: resource bundle that is needed to localize Shop Now button.
button.shop_now=Shop Now