Skip to content

Commit

Permalink
Escape menu item name (#33)
Browse files Browse the repository at this point in the history
* Escape menu item name

* Fix breadcrumbs
  • Loading branch information
kispali authored Jan 21, 2019
1 parent 2049ad3 commit b822693
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 10 deletions.
5 changes: 3 additions & 2 deletions src/MX/MegaMenu/Model/Menu/Item.php
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ public function getItemData($item)
{
return [
'status' => $this->isEnabled($item, 'status'),
'name' => $item['name'],
'name' => $this->getDecodedContent($item['name']),
'link' => $this->getItemLink($item),
'header_status' => $this->isEnabled($item, 'header_status'),
'header_content' => $this->getDecodedContent($item['header_content']),
Expand All @@ -90,7 +90,8 @@ public function getItemData($item)
*/
public function needEncode($name)
{
return strpos($name, '_content') !== false || strpos($name, 'link') !== false;
return strpos($name, '_content') !== false || strpos($name, 'link') !== false
|| $name === 'name';
}

/**
Expand Down
2 changes: 1 addition & 1 deletion src/MX/MegaMenu/etc/module.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="MX_MegaMenu" setup_version="1.2.1">
<module name="MX_MegaMenu" setup_version="1.2.4">
<sequence>
<module name="Magento_Store"/>
</sequence>
Expand Down
2 changes: 1 addition & 1 deletion src/MX/MegaMenu/view/adminhtml/web/js/megamenu-editor.js
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ define([
$nameElement = $element.find('.form').find('.menu_item_' + $element.data('id') + '_name');
menuItemNameValue = $nameElement.val();
menuItemNameValue = JSON.parse(menuItemNameValue);
menuItemName = menuItemNameValue.value;
menuItemName = formBuilder().decodeContent('name', menuItemNameValue.value);
}

menuDialog().openDialog(this.options.editUrl + additionalParams, menuItemName);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ define([
var newItem = tmpl({
data: {
id: itemId,
label: item['name'],
label: this.decodeContent('name', item['name']),
classname: item['classname'] || ''
}
});
Expand Down Expand Up @@ -137,7 +137,7 @@ define([
return window.btoa(value);
}

if (name.match('link')) {
if (name.match('link') || name === 'name') {
return window.btoa(value);
}

Expand All @@ -152,7 +152,7 @@ define([
return this._convertContentForEditor(value);
}

if (name.match('link')) {
if (name.match('link') || name === 'name') {
return window.atob(value);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ $levelClass = 'level' . $block->getItemLevel($item);
<?php if ($child['status']): ?>
<?php // Categories as children ?>
<?php if ($child['content_categories']): ?>
<div class="<?php echo $levelClass; ?> mx-megamenu__item mx-megamenu__category <?php echo $child['custom_class']; ?>">
<div class="<?php echo $levelClass; ?> mx-megamenu__item mx-megamenu__category category-item <?php echo $child['custom_class']; ?>">
<?php $categories = $child['content_categories']; ?>
<?php if ($categories['category']): ?>
<?php $category = $categories['category']; ?>
Expand All @@ -30,7 +30,7 @@ $levelClass = 'level' . $block->getItemLevel($item);
<?php if (count($categories['children'])): ?>
<ul class="mx-megamenu__submenu">
<?php foreach ($categories['children'] as $subcategory): ?>
<li class="mx-megamenu__category-item">
<li class="mx-megamenu__category-item category-item">
<a id="u-uid-<?php echo $subcategory['id']; ?>" class="mx-megamenu__link" href="<?php echo $subcategory['link']; ?>">
<span><?php echo $subcategory['name']; ?></span>
</a>
Expand All @@ -42,7 +42,7 @@ $levelClass = 'level' . $block->getItemLevel($item);
</div>
<?php // Other item with link as child ?>
<?php elseif (!empty($child['link'])): ?>
<div class="<?php echo $levelClass; ?> mx-megamenu__item mx-megamenu__category <?php echo $child['custom_class']; ?>">
<div class="<?php echo $levelClass; ?> mx-megamenu__item mx-megamenu__category category-item <?php echo $child['custom_class']; ?>">
<a href="<?php echo $child['link']?>" class="nav-anchor mx-megamenu__link <?php echo $child['content_category_type']; ?>">
<?php echo $child['name']; ?>
</a>
Expand Down

0 comments on commit b822693

Please sign in to comment.