zorro76
@zorro76

Не могу найти ошибку в блоке меню в tpl файла?

Есть простая разметка на html/css/js - responsive меню https://jsfiddle.net/martynuk/5tk6q8ty/ необходимо его разместить в tpl файл.

Код tpl я написал, но он не срабатывает, не могу найти ошибку. Кто может помочь?

<?php if ($categories) { ?>
	<div class="container">
		<a class="toggleMenu" href="#">Menu</a>
	<ul class="nav_menu">
		<?php foreach ($categories as $category) { ?>
			<li><?php if ($category['children']) { ?><div class="parent"<?php } ?>
				<a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
				<?php if ($category['children']) { ?>
                <?php for ($i = 0; $i < count($category['children']);) { ?>
                    <ul>
		          		<?php $j = $i + ceil(count($category['children']) / $category['column']); ?>
		          		<?php for (; $i < $j; $i++) { ?>
		          		<?php if (isset($category['children'][$i])) { ?>
          				<li>
	                        <a href="<?php echo $category['children'][$i]['href']; ?>">
		                    <?php echo $category['children'][$i]['name']; ?></a>
                        </li>
          				<?php } ?>
          				<?php } ?>
	                    <?php } ?>
        			</ul>
                <?php } ?>
				<?php } ?>
			</li>
		<?php } ?>
	</ul>
<div>
<?php } ?>
  • Вопрос задан
  • 260 просмотров
Решения вопроса 1
@ChenZhen
У вас лишняя закрывающая фигурная скобка. Используйте подсчёт открывающих-закрывающих скобок в редакторе. Открывающих у вас 7, закрывающих 8. И форматирование кода немного съехало - не понятно какая скобка что закрывает. Лишняя стоит перед последним /li . Я в коде её выделил комметом для наглядности.
<?php if ($categories) { ?>
  <div class="container">
    <a class="toggleMenu" href="#">Menu</a>
    <ul class="nav_menu">
      <?php foreach ($categories as $category) { ?>
      <li>
        <a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
        <?php if ($category['children']) { ?>
        <?php for ($i = 0; $i < count($category['children']); $i++) { ?>
        <ul>
          <?php $j = $i + ceil(count($category['children']) / $category['column']); ?>

          <?php for (; $i < $j; $i++) { ?>

          <?php if (isset($category['children'][$i])) { ?>
          <li>
            <a href="<?php echo $category['children'][$i]['href']; ?>">
              <?php echo $category['children'][$i]['name']; ?></a>
          </li>
          <?php } ?>


          <?php } //for  i < $j ?>

          <?php } //for ($i = 0; $i < count ?>

        </ul>
        <?php } // if ($category['children']) #8 ?>
      </li>
      <?php } // foreach ($categories as $category) ?>
    </ul>
    <div>
      <?php } ?>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
zorro76
@zorro76 Автор вопроса
Сейчас код выглядит следующим образом, и при адаптивном меню открывается только первый пункт, остальные не срабатывают

<?php if ($categories) { ?>
	<div class="container">
		<a class="toggleMenu" href="#">Menu</a>
		<ul class="nav_menu">
			<?php foreach ($categories as $category) { ?>
			<li><?php if ($category['children']) { ?><?php } ?>
				<a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
				<?php if ($category['children']) { ?>
				<?php for ($i = 0; $i < count($category['children']);) { ?>
				<ul>
					<?php $j = $i + ceil(count($category['children']) / $category['column']); ?>

					<?php for (; $i < $j; $i++) { ?>

					<?php if (isset($category['children'][$i])) { ?>
					<li>
						<a href="<?php echo $category['children'][$i]['href']; ?>">
							<?php echo $category['children'][$i]['name']; ?></a>
					</li>
					<?php } ?>


					<?php } //for  i < $j ?>

					<?php } //for ($i = 0; $i < count ?>

				</ul>
				<?php } // if ($category['children']) #8 ?>
			</li>
			<?php } // foreach ($categories as $category) ?>
		</ul>
		<div>
			<?php } ?>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы