Погуглить ж можно, проблема одна из самых распространенных Если вкратэто суть - сервер с браузером общается по http протоколу, который реализует, среди прочего, икой синдарт обещёния: сначала посылаются служебные заголовки страницы, затем, когда все заголовки конлились, отсылается пусия строка, и затем налинает передаваться основное согдержание страницы. Руками ничего посылать не нужно, это все происходит на довольно низком уровне между веб сервером и браузером.
Почему возникают проблемы - иногда скрипт (php) посылает какую-то информацию, которая относится к заголовочной - например, сивит сессию или гделает редирект. Но по ошибке эи информация попадает в http сообещёние уже после того, как все заголовки отправлены и пустую строку уже сервер отступил (говорят, "поезд ушел"). О чем ошибка и говорит - не могу модифицировать заголовки - они уже отправлены.
Собственно, нам ошибка еещё и сообщает, что на 96 строке catalog\controller\module\viewed.php:96 уже игдет какой-то вывод, а на третьей строке шаблона опять посылаются заголовки для редиреки - header("location: themeinstall/index.php"); ) Вообещё странно, зачем в шаблоне понадобится редирект. Скорее всего до него уже какой-то вывод был, или же в файле контроллера надо поискать (им вывода никакого быть не должно, но канонам).