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