Проблемы с написанием плагина и ajax

Пишу плагин для гостевых комментариев по мотивам хаков для старой версии и хак для 0.4.2. На текущий момент не могу решить проблему с обновлением комментариев ибо это делается через ajax (/include/ajax/commentResponse.php).

Собственно вопрос, если с наследованием экшинов, модулей и т.п. все понятно, то как быть тут?

Что я пробовал:

— добавлял в /plugins/opencomments/include/ajax/commentResponse.php и соответственно менял в comments.js:
url_response: DIR_WEB_ROOT+'plugins/opencomments/include/ajax/commentResponse.php'

в результате никакой реакции, хотя коммент после Ф5 виден на странице.

— менял в comments.js url_response след. образом:
typeComment: {
		topic: {
			url_add: aRouter.blog+'ajaxaddcomment/',			
			url_response: aRouter.blog+'ajaxresponsecomment/'		
		},

и наследнике от ActionBlog:

class PluginOpenComments_ActionBlog extends PluginOpenComments_Inherit_ActionBlog 
{
	protected function RegisterEvent() {
                parent::RegisterEvent();
                $this->AddEvent('ajaxresponsecomment','AjaxResponseComment');
                //$this->AddEvent('ajaxtextpreview','AjaxTextPreview');
	}
    
	protected function AjaxResponseComment() {
		//$this->Viewer_SetResponseAjax();
		$this->Message_AddErrorSingle('AjaxResponseComment',$this->Lang_Get('error'));
	}

тоже не работает.

Что я делаю не так? Где мои ошибки? :)

UPD:
проблема решилась так:

	protected function RegisterEvent() {
                $this->AddEvent('ajaxresponsecomment','AjaxResponseComment');
                //$this->AddEvent('ajaxtextpreview','AjaxTextPreview');
                parent::RegisterEvent();
	}

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

avatar
Когда меняете url_response в comments.js, смотрите фаербагом куда уходит запрос и что приходит в ответ.
  • bobo
  • 0
avatar
За фаербаг спасибо! Во втором случае оказалось, что роутер возвращает 404. Почему то ивент 'ajaxresponsecomment' не регистрируется, если перед этим вызывать parent::RegisterEvent()
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.