Автообновление комментариев

Возник вопрос на который пока ответа не нашел.

Вот эта штука:

Реальный атом!

А можно-ли сделать, что бы она автообновлялась? Сиди в теме и смотри как появляются свежие комментарии. Было бы супер.

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

avatar
поставьте на setInterval ls.comments.load () и будет вам театр
avatar
Взял на заметку!
avatar
у лоада параметры топика обязательными есть.
это так, на всякий случай
avatar
Да, я видел.
avatar
Спасибо! А куда ставить? Можно чуть развернутее плз.

В карму плючек кинул :)
avatar
например в comment_tree.tpl,
с самого верху будет что-то типа этого:


{if $oUserCurrent}
	<div class="update" id="update" style="{if $aPagingCmt and $aPagingCmt.iCountPage>1}display:none;{/if}">
		<div class="update-comments" id="update-comments" onclick="ls.comments.load({$iTargetId},'{$sTargetType}'); return false;"></div>
		<div class="new-comments" id="new_comments_counter" style="display: none;" onclick="ls.comments.goToNextComment();"></div>
		<input type="hidden" id="comment_last_id" value="{$iMaxIdComment}" />
		<input type="hidden" id="comment_use_paging" value="{if $aPagingCmt and $aPagingCmt.iCountPage>1}1{/if}" />
	</div>
	<script>
                setInterval ("ls.comments.load({$iTargetId},'{$sTargetType}')", 120000);
	</script>
{/if}

вот тот скрипт нужно установить в ваш шаблон. 120000 == 2 мин
avatar
как это повлияет на нагрузку?
avatar
так же само если бы вы вручную каждые две минуты обновляли комментарии мышкой
avatar
Спасибо большое!
avatar
Поставил скрипт под копирку — не работает. Заработал только когда setInterval вставил вместо onclick в 3-й строке. Но тут выскочил сразу косяк: в шаблоне Simple на главной странице нет этой кнопы-обновления, соответственно скрипт не работает. И ещё… добавляется не совсем комментарий, а название топика, в котором он появляется. Как-то так…
avatar
Может можно добавить кнопу-обновления на главную?
avatar
В шаблоне synio/toolbar_comment.tpl ставлю скрипт — обновление не происходит, что не так?

{if $oUserCurrent}
{assign var=aPagingCmt value=$params.aPagingCmt}




/>
/>




{/if}
avatar
Что-то не то… вставлю как рисунок:
avatar
для этой цели есть теги вставки кода
avatar
Да, спасибо, сразу не сообразил, а отредактировать здесь нет возможности.

{if $oUserCurrent}
	{assign var=aPagingCmt value=$params.aPagingCmt}
	<section class="toolbar-update" id="update" style="{if $aPagingCmt and $aPagingCmt.iCountPage > 1}display: none;{/if}">
               <a href="#" class="update-comments" id="update-comments" onclick="ls.comments.load({$params.iTargetId},'{$params.sTargetType}'); return false;"><i></i></a>

		<a href="#" class="new-comments" id="new_comments_counter" style="display: none;" title="{$aLang.comment_count_new}" onclick="ls.comments.goToNextComment(); return false;"></a>

		<input type="hidden" id="comment_last_id" value="{$params.iMaxIdComment}" />
		<input type="hidden" id="comment_use_paging" value="{if $aPagingCmt and $aPagingCmt.iCountPage>1}1{/if}" />
	</section>

<script>
                setInterval ("ls.comments.load({$iTargetId},'{$sTargetType}')", 20000);
	</script>

{/if}
avatar
setInterval ("ls.comments.load({$params.iTargetId},'{$params.sTargetType}')", 20000);
avatar
В таком виде на главной странице обновления нет, а на странице топика выскакивает вот что:
avatar
Забыл теги
<script></script>
поставить. Обновление заработало на странице с топиком. Спасибо. Как сделать автообновление на главной?
avatar
А можно ли это сделать и для Talk-сообщений? Там ведь тоже комментарии используются, было бы прикольно, отправил сообщение — и пришло сразу же
avatar
И еще было бы неплохо сделать автообновление прямого эфира
avatar
вот это меня как раз больше всего и волнует.)
avatar
Вопрос — а подобное автообнавление не скажется на написании комментариев? — т.е. сижу пишу коммент — тут раз автообнавление — что будет с недописанным и не опубликованным комментарием?
  • ASA
  • 0
avatar
не, обновляться будут только добавленные комменты.
avatar
я так понимаю, те что я не успел прочитать автоматом будут помечаться как прочитанные?
avatar
В топике — да.
avatar
тогда будет очень много пропущенных и неоцененных комментариев. особенно в хорошо обсуждаемых топиках. не очень хорошее решение.
avatar
Я бы хотел, чтобы внешнее колёсико осталось, а обновление шло по внутреннему Единственное, что при этом смущает — при нажатии на внутреннюю зелёную кнопку (которая возле поля Прямой эфир) на время обновления все комментарии исчезают, т.е. будет мерцание.
avatar
на время обновления все комментарии исчезают, т.е. будет мерцание.
А какой нибудь JS это не решит, что бы как в слайдерах было плавное появление/исчезновение?
avatar
Подозреваю, что там механизм хранения и отображения информации другой.
avatar
У меня работает, но только все время показывает 1 новое, а на самом деле их уже 3-4 обновилось в сообщениях. Это только у меня так?
avatar
Скрипт каждый раз запращивает новые комменатрии, относительно последнего обновления комментов, а не открытия страницы.
Т.е. если после первого обновление появился 1 комменатрий, а потом еще один, то на втором обновлении будет цифра 1, а не 2.
avatar
А реально сделать отоброжение не только первого а всех последующих?
avatar
Реально, но не настолько простым способом. Нужно писать JS, который будет именно «добавлять» непрочитанный к своему списку, а не полностью его обновлять.
avatar
Так и предполагал. Жаль что все руки не дойдут до изучения JS ((
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.