Навсегда раскрыть форму комментария

Я ничего не понимаю в javascript,
подскажите люди, как сделать форму ОСТАВИТЬ КОММЕНТАРИЙ внизу топиков открытой, и чтобы она закрывалась, если хочется не оставлять комментрий, а ответить кому-то на уже существующий комментарий.

На мой взгляд это более юзабильно и более мотивирует человека оставить комментарий, чем ссылка «Оставить комментарий». Заранее спасибо за решение.

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

avatar
воспользуюсь служебным положением и подниму топик в «Прямой эфир», вопрос архиважный для меня :(
avatar

Вставь

document.addEvent('domready', function() {
   showCommentForm(0);
});
 
После объявления функции showCommentForm. Если будет ругаться смарти, поставь теги {literal}{/litera}:)
avatar

круто :) спасибо Кирилл, в асю выйди, да? :)
полностью код в habra/actions/ActionBlog/comment.tpl должен выглядить так:
{literal}
<script type="text/javascript">
var currentShowForm=-1;

function showCommentForm(reply) {      
        if (document.getElementById('reply_'+currentShowForm)) {               
                var div_form_comment=document.getElementById('reply_'+currentShowForm);
                div_form_comment.style.display='none';
        } else {
                var div_form_comment=document.getElementById('form_comment');
        }
        var div_reply=document.getElementById('reply_'+reply);
       
        var form_comment_reply=document.getElementById('form_comment_reply');
       
        document.getElementById('text_preview').innerHTML='';
       
        form_comment_reply.value=reply;
        var s=div_form_comment.innerHTML;
        div_form_comment.innerHTML=''; 
        div_reply.innerHTML=s;         
        div_reply.style.display='block';       
        currentShowForm=reply;
        document.getElementById('form_comment_text').focus();
}

document.addEvent('domready', function() {
   showCommentForm(0);
});
</script>
{/literal}
avatar

actions\ActionBlog\comment.tpl
<div id="form_comment" style="display: block;">
avatar
тогда прятаться не будет, Кирилл предложил корректнее решение
avatar
Так получается? Там форма создается уже после нажатия динамически… Так что див по-умолчанию должен быть пустой даже если дисплей: блок
avatar
Так, теперь проблема, что при открытии топика сразу улетаешь не в начало, а на форму комментирования :)) Как решить?
avatar
.focus() убрать в строчке document.getElementById('form_comment_text');
avatar

помните как в одной не без известной программе «Да Но!»

если просто закоментить фокус, то он у вас не появится при реплае или при нажатии по ссылке написать комментарий — уже будучи на странице

Можно либо сделать вторую функцию в которой не будет фокуса или эту изменить, например так

function showCommentForm(reply,focus) {
        if (document.getElementById('reply_'+currentShowForm)) {               
                var div_form_comment=document.getElementById('reply_'+currentShowForm);
                div_form_comment.style.display='none';
        } else {
                var div_form_comment=document.getElementById('form_comment');
        }
        var div_reply=document.getElementById('reply_'+reply);
       
        var form_comment_reply=document.getElementById('form_comment_reply');
       
        document.getElementById('text_preview').innerHTML='';
       
        form_comment_reply.value=reply;
        var s=div_form_comment.innerHTML;
        div_form_comment.innerHTML=''; 
        div_reply.innerHTML=s;         
        div_reply.style.display='block';       
        currentShowForm=reply;
        if(focus != 'unfocus' )
                document.getElementById('form_comment_text').focus();
}
document.addEvent('domready', function() { showCommentForm(0,'unfocus'); });
 
avatar
Но вот вопрос а как открывать ЭТО, только при переходе по ссылке комментировать с главной?
avatar
А как такое провернуть в новой версии LS?
avatar
Некорректный способ:
www\templates\skin\new\actions\ActionBlog\comment.tpl
<div style="display: block;" id="reply_0" class="reply">			

меняете на
<div style="display: block;" id="reply" class="reply">			
avatar
Спасибо. Но после этого не работают ответы отдельным пользователям, только внизу страницы можно писать. Как я понимаю, на данный момент ещё нормального решения нет?
avatar
Нормальное решение есть… только мы его не знаем)))
Сейчас кто-нибудь знающий может подойдет и поможет
avatar
avatar
Отлично. Спасибо!
avatar
закомментируй строчку trac.assembla.com/livestreet/browser/tags/0.3.1/templates/skin/new/js/comments.js#L27


хорошо а как тогда убрать надпись комментировать и еще одна проблема при вход в топик действтельно открыто, но когда добавляешь комментарий редактор закрывается
avatar
А для версии 0,5+ кто-нибудь напишет итоговое решение, так чтобы чайнику понятно было?
avatar
файл js/comments.js метод this.init
удалить строчку
this.toggleCommentForm(this.iCurrentShowFormComment);
avatar
Нашел четыре файла с таким адресом в templates/skin… Какой именно править?
avatar
в том шаблоне которым вы пользуетесь
avatar
А, туплю, это ж разные шаблоны. Говорю ведь — чайник :)
Тем не менее строчку удалил, но ничего не изменилось :(
avatar
Присоединяюсь, ничего не дало удаление этой строки ((
avatar
С папку cache в templates почистили? :)
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.