12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- declare(strict_types=1);
- namespace Magento\Customer\Block\Account;
- use \Magento\Framework\View\Element\Html\Links;
- use \Magento\Customer\Block\Account\SortLinkInterface;
- /**
- * Class for sorting links in navigation panels.
- *
- * @api
- * @since 101.0.0
- */
- class Navigation extends Links
- {
- /**
- * {@inheritdoc}
- * @since 101.0.0
- */
- public function getLinks()
- {
- $links = $this->_layout->getChildBlocks($this->getNameInLayout());
- $sortableLink = [];
- foreach ($links as $key => $link) {
- if ($link instanceof SortLinkInterface) {
- $sortableLink[] = $link;
- unset($links[$key]);
- }
- }
- usort($sortableLink, [$this, "compare"]);
- return array_merge($sortableLink, $links);
- }
- /**
- * Compare sortOrder in links.
- *
- * @param SortLinkInterface $firstLink
- * @param SortLinkInterface $secondLink
- * @return int
- * @SuppressWarnings(PHPMD.UnusedPrivateMethod)
- */
- private function compare(SortLinkInterface $firstLink, SortLinkInterface $secondLink): int
- {
- return $secondLink->getSortOrder() <=> $firstLink->getSortOrder();
- }
- }
|