warning на foreach ($this->info['locales'] as $id => $str) На рассмотрении

3

Сыпится warning

Warning: Invalid argument supplied for foreach() in /wa-system/file/waTheme.class.php on line 1662

лечится

if(isset($this->info['locales']))
        foreach ($this->info['locales'] as $id => $str) {
            $result[$id] = !empty($str[$locale]) ? $str[$locale] : null;
        }

но почему он вообще есть? Локаль в системе одна и в таблице wa_app_settings

 app_id     name     value
webasyst    locale    ru_RU

может какие-то настройки php влияют?


5 комментариев

  • +1
    Maverick Maverick 18 ноября 2016 17:10 #

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

    Сделал как Вы написали. Ошибка пропала. Спасибо!

    Но в чем причина интересно.

  • +1
    Михаил Ушенин Михаил Ушенин Webasyst 21 ноября 2016 15:27 #

    Возможно, в файле theme.xml темы дизайна отсутствует вот такой элемент:

        <locales>
            <locale>
                <msgid>E.g. %s</msgid>
                <msgstr locale="ru_RU">Например, %s</msgstr>
            </locale>
        </locales>

    либо в таком фрагменте отсутствуют строки для отдельных локалей:

    <msgstr locale="ru_RU">Например, %s</msgstr>
  • +1
    bowlman bowlman 4 декабря 2016 21:44 #

    Тоже такое сыпется в приложении сайт, добавление элемента в файле theme.xml не помогло. Помогло решение с добавлением строки if(isset($this->info['locales'])) в waTheme.class.php on line 1662.

    Сложно теперь определить после чего началось, приходится после каждого обновления фрэйорка добавлять эту строку.


    • +1
      info@ravencode.ru info@ravencode.ru 13 декабря 2016 16:31 #

      Вы можете просто переопределить стандартный класс waTheme на свою версию в 'wa-config\SystemConfig.class.php' и не страдать подобным геморроем, вряд ли этот класс часто обновляют.

    • +1
      bowlman bowlman 15 декабря 2016 20:29 #

      Можно подробней, как переопределить стандартный класс waTheme на свою версию?

      Вот содержимое файла 'wa-config\SystemConfig.class.php':


      <?php
      
      require_once dirname(__FILE__).'/../wa-system/autoload/waAutoload.class.php';
      waAutoload::register();
      
      class SystemConfig extends waSystemConfig
      {
      
      }
      

      Кстати, варнинги после обновления фреймворка сыпаться перестали в десктопной версии сайта, но в мобильной продолжают сыпать.

      Добавить комментарий

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