Вход • Регистрация

Как вывести имя пункта меню в id в шаблоне вывода меню?

  • 09 февраля 2014 г.
  • Помогите пожалуйста.Как вывести имя пункта меню в id в шаблоне вывода меню?

    // начало уровня меню
    echo '<div id="имя пункта меню" class="sub" ></div>

    То которое выводится этой конструкцией.

    // название пункта меню
    if (! empty($row["name"]))
    {
    echo $row["name"];
    }

    <div id=" '.$row["name"].' " class="sub" ></div> типо того я думал.
    • 09 февраля 2014 г. , редакция: 09 февраля 2014 г.
    • Просмотрите данные в массиве через print_r и увидите какую часть массива выводить. Данные передаются в массиве $result, так что лучше просмотрите сразу его.

      Код
      echo "<pre style='color:red;margin:40px 0;'>";
      print_r($result);
      echo "</pre>";
      • 09 февраля 2014 г. , редакция: 09 февраля 2014 г.
      • Array
        (
        [menu_category_site_rel] => Array
        (
        [0] => 0
        )

        [show_all_level] => 1
        [hide_parent_link] => 0
        [current_link] => 1
        [only_image] => 0
        [menu_template] => show_block_catalog
        [rows] => Array
        (
        [0] => Array
        (
        [0] => Array
        (
        [id] => 430
        [name] => iPhone
        [module_name] => shop
        [site_id] => 30
        [module_cat_id] => 1
        [element_id] => 0
        [parent_id] => 0
        [param_id] => 0
        [othurl] =>
        [attributes] =>
        [target_blank] => 0
        [link] => iphone/
        [img] =>
        [active] => 1
        [active_child] =>
        )

        [1] => Array
        (
        [id] => 436
        [name] => iPad

        А подскажите пожалуйста как правильно вывести name?
        echo '<div id="'.$row[0]["name"].'" class="sub" >' ;
        • 10 февраля 2014 г.
        • Всё зависит от того, в каком месте выводить. Мне, например, понадобились данные для вывода во вьюхе, но получал я их в контроллере и потом передавал во вьюху через модель. Так просто не скажешь, надо видеть - что вы и куда хотите выводить.

          У каждой переменной (массива) есть своя область действия. Смотрите нужные данные именно в том месте, где нужен вывод (через print_r или echo), если есть - выводите, если нет - смотрите где есть и передавайте через переменную.

          Если эти инструкции вызывают трудности, стоит почитать учебник по php, поскольку даже моих скудных познаний в php для данной задачи вполне хватает.
          • 12 февраля 2014 г.
          • Цитата

            <div id=" '.$row["name"].' " class="sub" ></div> типо того я думал.


            Так тоже сработает, только надо будет смотреть результат не авторизовавшись в браузере а то будет


            <div id=" <span class="tut_class_kotoryy_podstavlyaev_bystroe_redactirovanie">1213</span>" class="sub" ></div> и в итоге будет ошибка верстки
            • 12 февраля 2014 г.
            • я бы сделал так

              22 строчка menu.view.show.level.php

              Код укороченный чтоб показать суть

              Код

              $menuID = 0;

              foreach ($result["rows"][$result["parent_id"]] as $row)
              {

              $menuID = $menuID+1; //Или можно вроде так $menuID += 1;

              echo '<div id="'.$menuID.'"></div>';
              }


              Какая вообще задача стоит?
              • 12 февраля 2014 г. , редакция: 12 февраля 2014 г.
              • Александр Биг Эпл (ba5),садитесь 2 балла. Вы советуете новичку заведомо неправильный подход.
                Почти у каждого элемента в диафане есть id, его и надо использовать.

                У вас же при добавлении изменении порядка измениться и номер элемента массива, и придётся лезть в код и править, что убивает концепцию редактирования из админки.

                ===
                Автору темы нужно изучить массивы, и как они работают. Не вырывать из контекста массива переменные, понять область видимости, переменная которая объявлена внутри скобок не работает после скобок, понять что он видит с print_r


                Ну или китайский код, обращение через индексы массива к каждому элементу. ))

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум