Главное меню
все форумы все темы форума добавить тему
Комментарии через AJAX
В связи с обновлением класса, немного опишу методы для работы.
Вся работа с комментариями ведется через метод comment_json класса CommentTools. Результат он возвращает (сюрприз, сюрприз) в формате json. Не знаю, будет ли востребован формат xml. Если будет, может быть придется сделать обертку и для него.
Итак, методу передаются следующие обязательные значения:
action
token
comment_id
(в случае добавления - id комментария на который отвечают. В остальных случаях - id комментария с которым работают )
 
action могут быть следующие:
 
comment_add - добавляет новый комментарий
возвращает
comment_id - идентификатор комментария
parent_id - идентификатор родителя
html - сгенерированный комментарий (генерируется из шаблона comment_ajax.tpl)
 
comment_edit - редактирует существующий комментарий
возвращает
comment_id
text_html - обработанный текст комментария (не комментарий целиком, а только его содержимое)
 
comment_delete - удалить комментарий
возвращает
comment_id
branch_id - в случае если комментарий удален физически
 
comment_undelete - восстановить комментарий
возвращает
comment_id
 
comment_delete_branch - удалить ветвь (текущий комментарий и все последующие)
возвращает
comment_id
 
comment_abuse - жалоба модератору
возвращает
comment_id
message - текст подтверждения
 
comment_get - получить комментарий
возвращает
comment_id
text - исходный текст комментария
 
в случае неудачи все методы возвращают {'error'=>'текст ошибки'}
 
Методы принимают параметры аналогичные своим "неасинхронным собратьям".
 
Если есть какие-то неясности или пожелания (может, стоит расширить количество возвращаемых данных), то высказывайтесь - будем вместе думать.
то есть сам класс комментариев никаких изменений при этом не подвергся?
Нет. Просто дополнился.
Понятно, новый метод (comment_json) доступен для скачивания, потому, что я вчера начал описывать видимо что-то подобное прямо в классе (в модуле блога) ?
Разумеется. Иначе какой смысл был бы о нем писать?
Loki:
Разумеется. Иначе какой смысл был бы о нем писать?

О, тогда пора скачать последнюю версию
Вот с чем столкнулся. Если просто добавить комментарий (не отвечать на него), не хватает в ответе сервера значения id последнего комментария, в случае, когда "parent_id":"1". Так, наверное, было бы удобнее при вставке нового комментария.
А что значит последнего?
Это значение comment_id (последнего добавленного комментария в этом топике до нового) где item_id - id топика, в моем случае.
UPD: Вчера я получил в первом ответе от сервера ошибку смарти, что нет в папке с модулем comment_ajax.tpl, когда положил его туда, все прошло. Так должно быть?
Представим ситуацию:
есть комментарий, пользователь пишет на него ответ. В это время другой пользователь тоже ответил на этот комментарий. В результате первый пользователь получает в качестве последнего id идентификатор комментария второго пользователя... а такого даже на странице нет.
 
Да. Этот шаблон нужен. Хотел написать об этом в первом посте, но забыл. Лично я, чтобы не плодить одинаковые шаблоны, просто поставил в нем инклуд аналогичного шаблона модуля admin_pages.
Понял, тогда работаем дальше