Ошибка в журнале.

(ERROR @ /blahblahblah/core/cache/includes/elements/modsnippet/20.include.cache.php: 39) PHP warning: in_array() expects parameter 2 to be array, string given

Вот такое чудо валится при попытке открыть любой контейнер из админки. Кто-нибудь сталкивался?

Заранее благодарен.
Wassi Wassinen
10 октября 2014, 19:17
modx.pro
1
1 996
0

Комментарии: 18

Wassi Wassinen
10 октября 2014, 23:18
0
"
    Володя
    10 октября 2014, 23:43
    0
    че за сниппет глянь
      Wassi Wassinen
      10 октября 2014, 23:51
      0
      Как я понял, речь об FormIt.
        Володя
        11 октября 2014, 00:06
        0
        2ой параметр должен быть массив… кидай код
          Wassi Wassinen
          11 октября 2014, 00:18
          0
          <?php
          function elements_modsnippet_20($scriptProperties= array()) {
          global $modx;
          if (is_array($scriptProperties)) {
          extract($scriptProperties, EXTR_SKIP);
          }
          /**
           * FormIt
           *
           * Copyright 2009-2012 by Shaun McCormick <shaun@modx.com>
           *
           * FormIt is free software; you can redistribute it and/or modify it
           * under the terms of the GNU General Public License as published by the Free
           * Software Foundation; either version 2 of the License, or (at your option) any
           * later version.
           *
           * FormIt is distributed in the hope that it will be useful, but WITHOUT ANY
           * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
           * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
           *
           * You should have received a copy of the GNU General Public License along with
           * FormIt; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
           * Suite 330, Boston, MA 02111-1307 USA
           *
           * @package formit
           */
          /**
           * Custom output filter that returns checked="checked" if the value is set
           *
           * @var string $input
           * @var string $options
           * @package formit
           */
          $output = ' ';
          if ($input == $options) {
              $output = ' selected="selected"';
          }
          $input = $modx->fromJSON($input);
          if (in_array($options,$input)) {
            $output = ' selected="selected"';
          }
          return $output;
          }
            Володя
            11 октября 2014, 07:41
            0
            чтото не нравится значит в вызове формит. Показывай как вызываешь…
            p.s.
            modx.pro/help/1194/
              Василий Наумкин
              11 октября 2014, 07:47
              +1
              По моему, это ошибка FormIt. Сначала проверка на совпадение строк, а потом, не взирая на результаты — проверка на массив.

              Должно быть вот так:
              if ($input == $options) {
                  $output = ' selected="selected"';
              }
              else {
              	$input = $modx->fromJSON($input);
              	if (in_array($options,$input)) {
              		$output = ' selected="selected"';
              	}
              }
                Володя
                11 октября 2014, 07:49
                0
                логично
                  Wassi Wassinen
                  11 октября 2014, 16:29
                  0
                  А как быть с этой ошибкой? Формит удалять? :)
                    Володя
                    11 октября 2014, 16:30
                    0
                    Так попробуй изменить как Василий написал…
                  Wassi Wassinen
                  11 октября 2014, 16:29
                  0
                  Это можно как-то исправить? Как я понимаю, эти файлы затираются при обновлении кеша.
                    Володя
                    11 октября 2014, 16:30
                    0
                    В сниппете измени а не в кеше)
                    P.s. Если уж не выйдет — то удалять формит! Другого выхода не вижу)))
                      Wassi Wassinen
                      11 октября 2014, 22:02
                      0
                      2014/10/11 21:52:37 [error] 10898#0: *8174 FastCGI sent in stderr: «PHP message: PHP Fatal error: include(): Cannot redeclare class modtemplatevarinputrendertext in /blahblahblah/core/model/modx/modtemplatevar.class$
                      201

                      Вот он косяк. Пока не знаю в чем дело. Формит был не при чем.
                    Wassi Wassinen
                    13 октября 2014, 12:44
                    0
                    Василий, сервер по твоему мануалу настроен, может быть был похожий случай?

                    2014/10/11 21:52:37 [error] 10898#0: *8174 FastCGI sent in stderr: «PHP message: PHP Fatal error: include(): Cannot redeclare class modtemplatevarinputrendertext in /blahblahblah/core/model/modx/modtemplatevar.class$
                    201
                      Василий Наумкин
                      13 октября 2014, 12:45
                      0
                      Нет, конечно.
                      Cannot redeclare class modtemplatevarinputrendertext
                      Это говорит о попытке 2 раза объявить один и тот же класс. У тебя, скорее всего, какой-то кастомный ТВ так барахлит.
                        Wassi Wassinen
                        13 октября 2014, 13:07
                        0
                        Спасибо, Василий. Действительно, висел старый ТВ.

                        Я тут случаем заглянул на Безумкин.ру и увидел в разделе контакты возможность платно проконсультироваться по скайпу. Практикуешь или это в прошлом?
                        Wassi Wassinen
                        13 октября 2014, 13:08
                        0
                        Спрошу более конкретно: что-то вроде аудита сайт+сервер у тебя можно заказать?
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        18