cancel
Showing results for 
Search instead for 
Did you mean: 

alterar orden de busqueda magento 2

SOLVED

alterar orden de busqueda magento 2

buenas tardes, vengo con un detalle; quiero exportar la lista de categorias cno sus subcategorias, pero el codigo que ya viene el tema me lo esta dando mal ordenadao, pero verificando el codigo no veo nada mal.

usare las imagenes para explicarme

menu.PNG

como se ve en la imagen de arriba, asi quiero que me salgan en la siguiente seccion 

buscador.PNG

como se ve en el dropdwon se ve que empieza por earrings y no por rings como debe de ir, viendo el codigo debe de tomar por id 

<?php $mpanelHelper = $this->helper('MGS\Mpanel\Helper\Data'); ?>
				<?php if($mpanelHelper->getStoreConfig('mpanel/form_mini_search/show_categories')): ?>
					<?php $categories = $mpanelHelper->getCategories(); ?>
					<?php $currentCategory = ""; ?>
					<?php $currentCategoryId = ""; ?>
					<?php
						foreach ($categories as $category) {
							foreach ($category as $key => $value) {
								if ($key == 'label') { $categoryName = $value; }
								if ($key == 'value') { $categoryId = $value; }
							}
							if ($mpanelHelper->getCurrentlySelectedCategoryId() == $categoryId){
								$currentCategory = $categoryName;
								$currentCategoryId = $categoryId;
								break;
							}
						}
					?>
					<input type="hidden" name="cat" id="cat" value="<?php echo $currentCategoryId; ?>"/>
					<div class="search-select">
						<span id="cat-active-name" onclick="toggleCatSearch()" class="search-cat-active">
							<?php if($currentCategory != ""): ?>
								<?php echo $currentCategory ?>
							<?php else: ?>
								<?php echo __('All Categories'); ?>
							<?php endif ?>
						</span>
						<ul id="select-cat-dropdown" style="display:none;">
							<li>
								<span onclick="setSearchCatValue('', '<?php echo __('All Categories') ?>')"><?php echo __('All Categories') ?></span>
							</li>
							<?php
								foreach ($categories as $category) {
									foreach ($category as $key => $value) {
										if ($key == 'label') {
											$categoryName = $value;
										}
										if ($key == 'value') {
											$categoryId = $value;
										}
										if ($key == 'level') {
											$categoryLevel = $value;
										}
									}
									?>
									<li class="level<?php echo $categoryLevel ?> <?php if ($mpanelHelper->getCurrentlySelectedCategoryId() == $categoryId): ?>active<?php endif; ?>">
										<span onclick="setSearchCatValue('<?php echo $categoryId; ?>', '<?php echo $categoryName; ?>')"><?php echo $categoryName; ?></span>
									</li>
									<?php
								}
							?>
						</ul>
					</div>

y checando lo que me llega inspeccinando el codigo veo que no me vienen ordenados 

codigo.PNG

como se ve en la imagen de arriba los 2 li desplegados son level 2 pero su id de la categoria el de arriba es mucho mayor que el de abajo, cuando el primer lavel 2 viene con la el id de la categoria en 108 soy nuevo en esto de laravel, me podrian ayudar?

public function getCategories()
	{
		$rootCategoryId = $this->_storeManager->getStore()->getRootCategoryId();
		$categoriesArray = $this->_category
			->getCollection()
			->setStoreId($this->_storeManager->getStore()->getId())
			->addAttributeToSelect('*')
			->addAttributeToFilter('is_active', 1)
			->addAttributeToFilter('include_in_menu', 1)
			->addAttributeToFilter('path', array('like' => "1/{$rootCategoryId}/%"))
			->addAttributeToSort('path', 'asc')
			->load()
			->toArray();
		$categories = array();
		foreach ($categoriesArray as $categoryId => $category) {
			if (isset($category['name'])) {
				$categories[] = array(
					'label' => $category['name'],
					'level' => $category['level'],
					'value' => $categoryId
				);
			}
		}
		return $categories;
	}

ahi esta el codio de la funcion getcategories()

saludos

3 REPLIES

Re: alterar orden de busqueda magento 2

¿Podrías compartir las imágenes en algún servicio online? (hasta que un moderador no aprueba las imágenes no se ven)

--
If you've found one of my answers useful, please give "Kudos" or "Accept as Solution"

Re: alterar orden de busqueda magento 2

Hola @Korinho

 

Por lo que entiendo el listado que no se ordena como quieres es el del sidebbar del listado catg de tu tema.

A veces las modificaciones en los temas son complicadas. Igual puedes desactivas ese list de categoria/sidebar del tema, y usar el de magento. Luego ajustas los estilos.

Espero que te ayude
Suerte!


Re: alterar orden de busqueda magento 2

Hola,

lo esta ordenando "asc" por el id de la categoría, el problema creo que viene en el orden en el que creaste las categorías en BackEnd, revísalas por si fuera eso y lo puedas arreglar solo volviendo a crear las categorías.

 

 

Un saludo!! 

Desarrollador Front-End