Баг Virtuemart — пустые строки

Хоть разработчики и обновили компонент до новой версии, которая работает даже с последней joomla 2.5, но ошибки все равно есть и бороться с ними приходиться своими силами. Сегодня столкнулся с очередной проблемой. Компонент вставлял пустую строчку перед выводом контента. Убил не один час, перечитал все сообщения на форумах, которые смог найти в тему.. Понятно было лишь одно, в каком-то из файлов проблема с кодировкой, так как пустые строки выводятся при сохранение файлов с BOM . Причина то ясна, но найти нужный файл, из-за которого слетает верстка не так-то просто…

Помог мне в этом деле найденный на форуме скриптик, который ищет и выводит список всех файлов с BOM сигнатурой.

<?php
xdir('.',1);

function xdir($path,$recurs) {
	global $find;
	if ($dir = @opendir($path)) {
		while($file = readdir($dir)) {
			if ($file == '.' or $file == '..') continue;
			$file = $path.'/'.$file;
			if (is_dir($file) && $recurs)  {
				xdir($file,1);
			}
			if (is_file($file) && strstr($file,'.php')) {
				$f = fopen($file,'r');
				$t = fread($f, 3);
				if ($t == "\xEF\xBB\xBF") {
				 	$find = 1;
				 	echo "$file<br>\n";
				}
				fclose ($f);
			}
		}
		closedir($dir);
 	}
}

if ($find == 0) echo "All clear, sir!";
?>
<hr>

Все что нужно сделать — это положить данный скриптик в корень сайта и запустить. Скрипт проходит по всем папкам, по файлам с расширением php, записывает их в буфер и потом выводит список файлов и полный путь к ним. Вам лишь остается открыть этот файл в редакторе, например Notepad++ и преобразовать в utf-8 без BOM . У меня таких файлов нашлось 4 штуки, после преобразования (о чудо!) пустая строка пропала 🙂

На всякий приложу архив с файлом, пользуйтесь.

Скачать bom searcher.zip

This entry was posted in Virtuemart and tagged , , , . Bookmark the permalink.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*