Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
Для просмотра ссылки ВойдиПриветствую,
Установил шаблон в мадженто 2.3 а там все нормально кроме одного модуля у которого есть в самом шаблоне и не возможно его удалить потому что привязки есть.
Этот модуль Mageplaza Social Login не активирован и просит One or more Mageplaza extensions are not validated. Click here to validate them как его нулить без его удаления?
Решил сам и поделюсь с вами.Во первых у меня composer require box/spout не устанавливается на корень мадженто 2 при наличий composer.json и я решил вручную установить его(с помощью сайта Для просмотра ссылки ВойдиПосле установки Firebear Improved Import / Export v. 3.2.3 и composer require box/spout
ошибка
To use the ODS and XLSX file format, you need to install the library Spout (composer require box/spout).
И не могу работать с форматами xlsx,ODS
В чем проблема помогите!
public function getTreeHtml(Node $node, $level = 1)
{
$html = '';
if ($node->hasChildren()) {
$nodesCount = $node->getChildren()->count();
$columnCount = $this->getColumnCount($node) ?: $nodesCount;
$widthClass = ($level == 1) ? (' -col-'. $columnCount) : '';
$html .= '<ul class="ammenu-item -child' . $widthClass . '" '
. ($level >= 3 ? ' style="display: none;"' : '') . '>';
if ($level == 1 && $nodesCount > $columnCount) {
$newColumnIndexes = $this->getNewColumnIndexes($nodesCount, $columnCount);
}
/** @var Node $childNode */
$counter = 1;
foreach ($node->getChildren() as $childNode) {
if ($level === 1
&& $counter !== 1
&& ($nodesCount <= $columnCount || in_array($counter - 1, $newColumnIndexes))
) {
$html .= '</ul><ul class="ammenu-item -child' . $widthClass . '">';
}
$parentDataAttr = $arrowIcon = '';
if ($childNode->hasChildren() && $level > 1) {
$parentDataAttr = 'data-ammenu-js="parent-subitem"';
$arrowIcon = ' ammenu-icon -small -down';
}
$arrowIcon = $childNode->hasChildren()
? '<span class="ammenu-arrow' . $arrowIcon . '" data-ammenu-js="submenu-toggle"></span>'
: '';
$html .= sprintf(
'<li class="ammenu-wrapper" %s>%s<a href="%s" title="%s" class="ammenu-link -level%s %s">
<span class="ammenu-wrapper">%s</span>
</a>',
$parentDataAttr,
$arrowIcon,
$this->escapeUrl($childNode->getUrl() ? : '#'),
$this->escapeHtml($childNode->getName()),
$level,
$this->getHighLightClass($childNode),
$this->escapeHtml($childNode->getName())
);
if ($childNode->hasChildren()) {
$html .= $this->getTreeHtml($childNode, $level + 1);
}
$html .= '</li>';
$counter++;
}
$html .= '</ul>';
}
return $html;
}
if ($level === 2) {
$html .= '<li class="ammenu-wrapper"><a href="" title="" class="ammenu-link">
<span class="ammenu-wrapper">Show all</span></a></li>';
}
<?php
/**
* @author Amasty Team
* @copyright Copyright (c) 2019 Amasty (https://www.amasty.com)
* @package Amasty_MegaMenu
*/
?>
<?php
/** @var \Amasty\MegaMenu\Block\Html\Topmenu $block */
?>
<section class="ammenu-menu-wrapper -desktop"
data-ammenu-js="desktop-menu"
data-mage-init='{"amastyMegaMenu":{"stickyStatus": <?= $block->escapeHtml($block->getStickyState())?>,
"desktopStatus": 1 }}'>
<nav class="ammenu-main-container">
<ul class="ammenu-items">
<?php foreach ($block->getMainNodes() as $mainNode) : ?>
<?php
if (!$block->isNeedDisplay($mainNode->getId(), $mainNode->getStatus(), $block::DESKTOP_VIEW)) {
continue;
}
$url = $mainNode->getUrl() ?: '#';
$widthMode = $block->escapeHtml($block->getWidth($mainNode));
$widthValue = $block->getWidthValue($mainNode);
$mainNodeContent = $block->getContent($mainNode);
?>
<li class="ammenu-item -main -<?= $block->escapeHtml($widthMode)?> <?= /* @noEscape */ $block->getHighLightClass($mainNode)?>">
<a href="<?= $block->escapeUrl($url) ?>"
class="ammenu-link -main<?= ($mainNodeContent) ?' -parent': '' ?>"
title="<?= $block->escapeHtml($mainNode->getName()) ?>">
<?= $block->escapeHtml($mainNode->getName()) ?>
<?php if ($label = $mainNode->getLabel()) : ?>
<span class="ammenu-label"
style="color: <?= $block->escapeHtml($mainNode->getLabelTextColor() ?: '#000') ?> !important;
background-color: <?= $block->escapeHtml($mainNode->getLabelBackgroundColor() ?: '#fff') ?> !important;">
<?= $block->escapeHtml($label) ?>
</span>
<?php endif; ?></a>
<?php if (/* @noEscape */ $mainNodeContent) : ?>
<div class="ammenu-submenu-container ammenu-submenu -<?= $block->escapeHtml($widthMode)?>"
data-ammenu-js="menu-submenu"
<?= ($widthValue) ? 'style="width: ' . $block->escapeHtml($widthValue) . 'px"': '' ?>>
<?= /* @noEscape */ $mainNodeContent ?>
</div>
<?php endif;?>
</li>
<?php endforeach; ?>
</ul>
</nav>
</section>
<?xml version="1.0"?>
<!--
/**
* @author Amasty Team
* @copyright Copyright (c) 2019 Amasty (https://www.amasty.com)
* @package Amasty_MegaMenu
*/
-->
<layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<head>
<css src="Amasty_Base::vendor/slick/amslick.min.css"/>
</head>
<body>
<referenceBlock name="head.additional">
<block class="Amasty\MegaMenu\Block\Head" name="amasty.megamenu.head" template="Amasty_MegaMenu::head.phtml" after="-"/>
<referenceBlock name="header-wrapper">
<block class="Amasty\MegaMenu\Block\Toggle" name="amasty.menu.toggle" template="Amasty_MegaMenu::toggle.phtml" before="logo"/>
<block class="Amasty\MegaMenu\Block\Html\Topmenu" name="catalog.topnav.hamburger" template="Amasty_MegaMenu::html/hamburger/topmenu.phtml"/>
</referenceBlock>
</referenceBlock>
<referenceContainer name="page.top">
<referenceBlock name="navigation.sections" >
<action method="setTemplate">
<argument name="template" xsi:type="string">Amasty_MegaMenu::sections.phtml</argument>
</action>
<action method="setHelperBlock">
<argument name="helperBlock" xsi:type="object">Amasty\MegaMenu\Block\Html\Topmenu</argument>
</action>
</referenceBlock>
<referenceBlock name="store.menu">
<block class="Magento\Framework\View\Element\Template" name="catalog.topnav" template="Amasty_MegaMenu::html/topmenu.phtml" ttl="3600" before="-">
<block class="Amasty\MegaMenu\Block\Html\Topmenu" name="catalog.topnav.mobile" template="Amasty_MegaMenu::html/mobile/topmenu.phtml">
<arguments>
<argument name="block_type" xsi:type="string">mobile</argument>
</arguments>
</block>
<block class="Amasty\MegaMenu\Block\Html\Topmenu" name="catalog.topnav.desktop"
template="Amasty_MegaMenu::html/desktop/topmenu.phtml">
<arguments>
<argument name="block_type" xsi:type="string">desktop</argument>
</arguments>
</block>
<block class="Amasty\MegaMenu\Block\Html\Topmenu" name="catalog.topnav.hamburger.left" template="Amasty_MegaMenu::html/hamburger/leftmenu.phtml"/>
</block>
</referenceBlock>
</referenceContainer>
</body>
</layout>
class TopmenuMod extends Template implements IdentityInterface, ArgumentInterface.....
<referenceContainer name="footer-container">
<container name="footer" label="Page Footer" as="footer-wrapper" htmlTag="div" htmlClass="footer content">
<block class="Magento\Cms\Block\Block" name="footer-column-1">
<arguments>
<argument name="block_id" xsi:type="string">footer-column-1</argument>
</arguments>
</block>
<block class="Magento\Cms\Block\Block" name="footer-column-2">
<arguments>
<argument name="block_id" xsi:type="string">footer-column-2</argument>
</arguments>
</block>
<block class="Magento\Cms\Block\Block" name="footer-column-3">
<arguments>
<argument name="block_id" xsi:type="string">footer-column-3</argument>
</arguments>
</block>
<block class="Magento\Cms\Block\Block" name="footer-column-4">
<arguments>
<argument name="block_id" xsi:type="string">footer-column-4</argument>
</arguments>
</block>
</container>
</referenceContainer>
<?php
/**
* Language switcher template
*/
if (count($this->getStores())) { ?>
<div class="langs-wrapper">
<?php foreach ($this->getStores() as $_lang) { ?>
<a class="lang-flag" href="#" data-post='<?php echo $block->getTargetStorePostData($_lang); ?>'><img src="<?php echo $this->getViewFileUrl('images/flags/' . $_lang->getCode() . '.png');?>" alt="<?php echo $_lang->getName(); ?>" /></a>
<?php } ?>
</div>
<?php
}
<move element="store_language" destination="footer" after="-"/>