Перейти к контенту

Дневник программиста

  • записей
    60
  • комментариев
    309
  • просмотров
    226 855

Почему нельзя, слушай?!


Arhar

3 062 просмотра

Эти шаблоны не могут быть сохранены, так как найдена ошибка при парсинге. Проверьте введенный HTML-код и все входящие переменные.

Говорит в общем-то мало о чем.

Чтобы говорило больше, надо сделать:

./sources/action_admin/skin_template_bits.php

function template_edit_bit_complete()

найти

			ob_start();
		eval( $this->template->convert_html_to_php( $template[ $id ]['func_name'], $func, $text ) );
		$return = ob_get_contents();
		ob_end_clean();

		if ( $return )
		{
			$error_bits[] = $id;
			continue;
		}

заменить на

			ob_start();
		$test=$this->template->convert_html_to_php( $template[ $id ]['func_name'], $func, $text );
		eval( $test );
		$return = ob_get_contents();
		ob_end_clean();

		if ( $return )
		{
			$error_bits[] = $id;
			$error_text[$id] = $return."<br/>".$this->ipsclass->parse_clean_value($test);
			continue;
		}

найти

$this->ipsclass->main_msg = "Эти фрагменты шаблона не могут быть сохранены, так как найдена ошибка при парсинге. Проверьте введенный HTML-код и все входящие переменные.";

заменить на

$this->ipsclass->main_msg = "Эти фрагменты шаблона не могут быть сохранены, так как найдена ошибка при парсинге. Проверьте введенный HTML-код и все входящие переменные.<br/>".$error_text[$id];

теперь мы видим весь текст, который содержит ошибку, а значит и видим саму ошибку.

Естесственно, если хоть немножко что-то знаем.

 

P.S. все, как всегда, для любимого 2.1.х

2 комментария


Рекомендуемые комментарии

Может так более правильно будет? Нежели выводить весь скин...ибо если скин большой..то его ой как раздует...

Хоть мне крайне не нравится...

			if ( $return )
		{
			$error_bits[] = $id;
	preg_match("#on line <b>([0-9]+)</b>#is", $return, $match);
	$lines = explode("\n", $test);
			$error_text[$id] = "<br />Ошибочный код: <span style='color: red;'>".$this->ipsclass->parse_clean_value($lines[($match[1] - 1)])."</span>";
			continue;
		}

 

Или вот выводить еще не преобразованный текст

			if ( $return )
		{
			$error_bits[] = $id;
			preg_match("#on line <b>([0-9]+)</b>#is", $return, $match);
			$lines = explode("\n", $text);
			$error_text[$id] = "<br />Ошибочный код: <span style='color: red;'>".$this->ipsclass->parse_clean_value($lines[($match[1] - 7)])."</span>";
			continue;
		}

:) Гораздо ведь красивей...

Ссылка на комментарий
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.