Переопределение метода в Action

Хочу заменить метод AjaxBlogInfo в /classes/actions/ActionBlog.class.php через плагин.
Читал аналогичный пост, он мне помог, но не полностью.

И так, я создал плагин состоящий из:
plugins/bloginfo/PluginBloginfo.class.php. Содержимое:
<?php
/**
 * Запрещаем напрямую через браузер обращение к этому файлу.
 */
if (!class_exists('Plugin')) {
    die('Hacking attemp!');
}

class PluginBloginfo extends Plugin {

    // Объявление переопределений (модули, мапперы и сущности)
    protected $aInherits=array(
       'action' => array('ActionBlog'),  // <--- Сделал по аналогии с примером для hook и module
    );

    // Активация плагина
    public function Activate() {
        return true;
    }

    // Инициализация плагина
    public function Init() {

    }
}
?>


И plugins/bloginfo/classes/actions/ActionBlog.class.php. Содержимое:
<?php

class PluginBloginfo_ActionBlog extends PluginBloginfo_Inherit_ActionBlog {

    protected function AjaxBlogInfo() {
		/**
		 * Устанавливаем формат Ajax ответа
		 */
		$this->Viewer_SetResponseAjax('json');
		$sBlogId=getRequestStr('idBlog',null,'post');
		/**
		 * Определяем тип блога и получаем его
		 */
		if ($sBlogId==0) {
			if ($this->oUserCurrent) {
				$oBlog=$this->Blog_GetPersonalBlogByUserId($this->oUserCurrent->getId());
			}
		} else {
			$oBlog=$this->Blog_GetBlogById($sBlogId);
		}
		/**
		 * если блог найден, то возвращаем описание
		 */
		if ($oBlog) {
			$sText=$oBlog->getDescription();
			$this->Viewer_AssignAjax('sText',$sText);
		} else { // Это я добавил самостоятельно
			$this->Viewer_AssignAjax('sText',''); // Это я добавил самостоятельно
        } // Это я добавил самостоятельно
	}

}
?>


Всё вроде бы работает как надо, но в некоторых местах (например, при редактировании названия блога) стала вылетать ошибка:
Warning: Cannot modify header information - headers already sent by (output started at .../plugins/bloginfo/classes/actions/ActionBlog.class.php:1) in .../engine/include/function.php on line 234

Warning: Cannot modify header information - headers already sent by (output started at .../plugins/bloginfo/classes/actions/ActionBlog.class.php:1) in .../engine/include/function.php on line 235


Не пойму, в чем ошибка, что не так?

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

avatar
Нужно пересохранить файлы плагина в кодировке UTF without BOM
  • ort
  • +1
avatar
Они в ней и сохранены.
avatar
Пока проверял кодировки файлов, заметил пробел перед <?php в одном из них. Убрал, проблема решилась. FACEPALM
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.