Не отображаются некоторые блоки Есть решение

Перенёс сайт с хостинга на локальный компьютер, и на на хостинге два блока отображается, а у меня  - нет. Именно из-за этих переменных:

{if $wa->isAuthEnabled()}
{if count($_menu_links) > 0}

Всё происходит в теме euroshop. А где они инициализируются, и как это пофиксить?

На хостинге PHP 7.2, у меня PHP 7.3 - это может быть с этим связано?

1 ответ

  • 2
    replicant 3 марта 2021 11:57 # Решение

    Едва ли это из-за версии PHP. Несмотря на перенос отличия в настройках какие-то всё же есть. И в этом и проблема.

    Первое условие - это наличие включенного личного кабинета. В Сайт - Личный кабинет включить/выключить. Возможно надо просто выкл., а потом вкл. и настройка оживет.

    Проверяется её работа элементарно конструкцией скажем в шаблоне page.html (чтобы сделать это безобидно и остальное не "поплыло")

    <p>{if $wa->isAuthEnabled()} ДА {else} НЕТ {/if}</p>



    Вторая строка - это местячковый массив каких-то ссылок в меню, судя по названию. Корни этого могут сидеть где угодно, но первично в шаблонах скорее всего. Надо искать место, где он собирается, а не где выводится условие на кол-во его элементов > 0. Ищите поиском по шаблонам первичное объявление $_menu_links и уже более полный код всей процедуры конструирования массива и его вывода может дать ответ. Сейчас это просто строка, вырванная из контекста. В ней без остального кода нет смысла, т.к. нет элементов массива, поэтому и вывод не работает. Можете конечно поиграть с условием или же вообще его изменить, но это не отменяет поиск первичного объявления т.к. только это даст ответ на вопрос.

    • +1
      fel1992 fel1992 3 марта 2021 16:04 #

      Да, спасибо, личный кабинет был выключен (видимо автоматически при первом запуске).

      Дальнейшее изучение показало

      {$_menu_links = $wa->shop->pages()}

      и сразу после этого проверил - _menu_links пуст (а должно быть что-то связанное с [информация, доставка, оплата, контакты]).

      А это с чем связано?


      PS >Едва ли это из-за версии PHP.

      ну в конвертере изображений в трейтах некоторые protected пришлось заменить на public

      • +2
        replicant replicant 3 марта 2021 17:54 #

        Код

        {$_menu_links = $wa->shop->pages()}

        говорит о том, что в приложении Магазин должны быть страницы, а их нет, поэтому и вывода нет


        У меня страницы в приложении созданы и проверочный код в шаблоне

        {$_menu_links = $wa->shop->pages()}
        {if count($_menu_links) > 0} страницы есть в кол-ве {count($_menu_links)} {else} страниц нет {/if}

        выдает вот "страницы есть в кол-ве 13"

        Потому что страницы для этого кода надо создавать в Магазин - Витрина - Страницы для соответствующей шаблону витрине.

        Страницы должны быть именно в том поселении и на той витрине Магазина, в шаблонах которой вы исполняете код. Если они есть, но не в том шаблоне и не на той витрине, то считайте что их нет для вышеупомянутой проверки.

        Повторюсь. Это не из-за версии PHP, а просто потому что поменялась структура витрин/поселений и какие-то настройки.

        • +1
          fel1992 fel1992 3 марта 2021 19:00 #

          А что такое поселение?

          На странице "Магазин - Витрина - Страницы" у меня есть нужные страницы, но они относятся к адресам http://my-site.ru/informatsiya...http://my-site.ru/oplata и т.д. А как у них поменять адреса на localhost/informatsiya, localhost/oplata ?


          offtop: А есть у всех этих кнопочек/вкладочек какой-нибудь альтернативный "програмистский" интерфейс? Ну типа файл с конфигами, где можно увидеть сразу все настройки? Ну или документацию по shop-script-у, где можно прочитать, какие настройки на какой вкладке находятся?

          • +1
            replicant replicant 3 марта 2021 19:20 #

            Просто в кач-ве направления для ваших поисков истины укажу на: Сайт - Настройки, Сайт - Структура, чтобы там всё соответствовало вашему localhost'y по всем правилам для Приложений.


            Если честно, то предпочитаю, даже работая с localhost, всё же навешивать на него фейковый домен в пределах рабочей машины, поворачивая системно dns и соотв. запросы браузера к этому домену на 127.0.0.1 или на какой-нибудь серый адрес своей интрасети, если нужна работа в пределах нескольких доступных рабочих станций. В качестве простого фейкового домена можно взять что-то типа скажем m0.ru или подобное ультра-простое.

            offtop: А есть у всех этих кнопочек/вкладочек какой-нибудь альтернативный "програмистский" интерфейс? Ну типа файл с конфигами, где можно увидеть сразу все настройки?

            Есть, но не один, а много и не в одном месте, а в разных + прямая работа в БД не отменяется, но это зачастую сложнее и дольше, чем кнопочки и т.п. тыкать. В редких случаях через всякие конфиги и БД проще, но случай должен быть особый. Тут явно не такой.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите