Привет, извини, я не могу точно понять, что идет не так.Но убедитесь, что отчеты об ошибках включены.Также вы пытались закомментировать часть своего кода и посмотреть, работает ли он по-прежнему.
Также немного о вашем коде и вашем подходе.Логика, которую вы пытаетесь реализовать, должна находиться внутри контроллера, а не в виде.Также триггер контроллера довольно много событий.Возможно, есть такой, который соответствует вашим требованиям.
Класс блока Mage_Catalog_Block_Product_View расширяется еще на несколько классов.И вы не хотите запускать проверку каждый раз, когда загружается какой-либо шаблон, особенно если вы запрашиваете базу данных.
Также похоже, что метод checkPrivateCategories принимает массив идентификаторов категорий, а затем использует цикл foreach длязапросите базу данных для каждого идентификатора категории, используя коллекцию, чтобы найти одну сущность.Вместо этого вам следует один раз запросить базу данных с одной коллекцией, а затем проверить результат для всех.
check $ product-> getCategoryCollection ()
Даже если это не тот ответ, который вы искалиНадеюсь это поможет