Редактор добавления комментария над списком комментариев 2.X

 
Посетитель
small user social cms
Медаль
Сообщений: 438
Решил переработать вывод комментариев, по сути как сделано сейчас выглядит не очень удобно, так как если на сайте к примеру много комментариев то форма добавления комментария (редактор) оказывается в самом низу, под списком комментариев, что заставляет пользователя прокрутить добавленные комментарии и только уже потом добавлять самому.

И все бы было бы просто, если б поменять в фаиле templates/default/controllers/comments/list.tpl.php немного местами и редактор у нас уже над комментариями
Код PHP:
  1.  
  2. <?php // Шаблон списка комментариев и формы добавления //
  3.  
  4. $this->addJS('templates/default/js/jquery-scroll.js');
  5. $this->addJS('templates/default/js/comments.js');
  6. $is_guests_allowed = !empty($this->controller->options['is_guests']);
  7. $is_karma_allowed = $user->is_logged && !cmsUser::isPermittedLimitHigher('comments', 'karma', $user->karma);
  8.  
  9. ?>
  10. <?php if ($rss_link){ ?>
  11. <div class="content_list_rss_icon">
  12. <a href="<?php echo $rss_link; ?>">RSS</a>
  13. </div>
  14. <?php } ?>
  15. <?php if ($user->is_logged){ ?>
  16. <?php if ($is_karma_allowed){ ?>
  17. <div class="track">
  18. <label><input type="checkbox" id="is_track" name="is_track" value="1" <?php if($is_tracking){ ?>checked="checked"<?php } ?> /> <?php echo LANG_COMMENTS_TRACK; ?></label>
  19. </div>
  20. <?php } ?>
  21.  
  22.  
  23. <?php if (($user->is_logged && cmsUser::isAllowed('comments', 'add')) || (!$user->is_logged && $is_guests_allowed)){ ?>
  24. <div id="comments_add_link">
  25. <a href="#reply" class="ajaxlink" onclick="return icms.comments.add()"><?php echo LANG_COMMENT_ADD; ?></a>
  26. </div>
  27.  
  28. <div id="comments_add_form">
  29. <?php if ($is_karma_allowed || $is_guests_allowed){ ?>
  30. <div class="preview_box"></div>
  31. <form action="<?php echo $this->href_to('submit'); ?>" method="post">
  32. <?php echo html_csrf_token($csrf_token_seed); ?>
  33. <?php echo html_input('hidden', 'action', 'add'); ?>
  34. <?php echo html_input('hidden', 'id', 0); ?>
  35. <?php echo html_input('hidden', 'parent_id', 0); ?>
  36. <?php echo html_input('hidden', 'tc', $target_controller); ?>
  37. <?php echo html_input('hidden', 'ts', $target_subject); ?>
  38. <?php echo html_input('hidden', 'ti', $target_id); ?>
  39. <?php echo html_input('hidden', 'tud', $target_user_id); ?>
  40. <?php echo html_input('hidden', 'timestamp', time()); ?>
  41. <?php if (!$user->is_logged) { ?>
  42. <?php
  43. $this->addJS('templates/default/js/jquery-cookie.js');
  44. $name = cmsUser::getCookie('comments_guest_name');
  45. $email = cmsUser::getCookie('comments_guest_email');
  46. ?>
  47. <div class="author_data">
  48. <div class="name field">
  49. <label><?php echo LANG_COMMENTS_AUTHOR_NAME; ?>:</label> <?php echo html_input('text', 'author_name', $name); ?>
  50. </div>
  51. <div class="email field">
  52. <label><?php echo LANG_COMMENTS_AUTHOR_EMAIL; ?>:</label> <?php echo html_input('text', 'author_email', $email); ?>
  53. </div>
  54. </div>
  55. <?php } ?>
  56. <?php echo $user->is_logged ? html_editor('content') : html_textarea('content'); ?>
  57. <div class="buttons">
  58. <?php echo html_button(LANG_PREVIEW, 'preview', 'icms.comments.preview()'); ?>
  59. <?php echo html_button(LANG_SEND, 'submit', 'icms.comments.submit()'); ?>
  60. <?php echo html_button(LANG_CANCEL, 'cancel', 'icms.comments.restoreForm()', array('class'=>'button-cancel')); ?>
  61. </div>
  62. <div class="loading">
  63. <?php echo LANG_LOADING; ?>
  64. </div>
  65. </form>
  66. <?php } else { ?>
  67. <p><?php printf(LANG_COMMENTS_LOW_KARMA, cmsUser::getPermissionValue('comments', 'karma')); ?></p>
  68. <?php } ?>
  69. </div>
  70. <?php } ?>
  71.  
  72. <script type="text/javascript">
  73. <?php echo $this->getLangJS('LANG_SEND', 'LANG_SAVE', 'LANG_COMMENT_DELETED', 'LANG_COMMENT_DELETE_CONFIRM'); ?>
  74. <?php if ($is_highlight_new){ ?>icms.comments.showFirstSelected();<?php } ?>
  75. </script>
  76.  
  77.  
  78. <div id="comments_refresh_panel">
  79. <a href="#refresh" class="refresh_btn" onclick="return icms.comments.refresh()" title="<?php echo LANG_COMMENTS_REFRESH; ?>"></a>
  80. </div>
  81. <?php } ?>
  82.  
  83. <div id="comments_list">
  84.  
  85. <?php if (!$comments){ ?>
  86.  
  87. <div class="no_comments">
  88. <?php echo LANG_COMMENTS_NONE; ?>
  89. </div>
  90.  
  91. <?php if (!$user->is_logged && !$is_guests_allowed) { ?>
  92. <div class="login_to_comment">
  93. <?php
  94. $reg_url = href_to('auth', 'register');
  95. $log_url = href_to('auth', 'login');
  96. printf(LANG_COMMENTS_LOGIN, $log_url, $reg_url);
  97. ?>
  98. </div>
  99. <?php } ?>
  100.  
  101. <?php } ?>
  102.  
  103. <?php if ($comments){ ?>
  104.  
  105. <?php echo $this->renderChild('comment', array('comments'=>$comments, 'target_user_id'=>$target_user_id, 'user'=>$user, 'is_highlight_new'=>$is_highlight_new, 'is_can_rate' => $is_can_rate)); ?>
  106.  
  107. <?php } ?>
  108.  
  109. </div>
  110.  
  111. <div id="comments_urls" style="display: none"
  112. data-get-url="<?php echo $this->href_to('get'); ?>"
  113. data-approve-url="<?php echo $this->href_to('approve'); ?>"
  114. data-delete-url="<?php echo $this->href_to('delete'); ?>"
  115. data-refresh-url="<?php echo $this->href_to('refresh'); ?>"
  116. data-track-url="<?php echo $this->href_to('track'); ?>"
  117. data-rate-url="<?php echo $this->href_to('rate'); ?>"
  118. ></div>
  119.  
Да вот только одно но! Когда нажимаем "Написать комментарий" форма открывается все равно внизу. Что логично не правильно. Так вот может кто то уже заморачивался привязкой редактора над комментариями

P.S.
Конечно есть классный компонент ГудКомментарии, но он честно говоря работает не стабильно, не хочу обидеть Дениса Васильевича, но компонент ставить на рабочий проект побоялся так как выглядит красиво, но работает с перебоями.
Прикрепленные файлы:
1_lambv.jpg | 141.45 Кб | Скачали: 116
2_lambv.jpg | 149.57 Кб | Скачали: 117
Редактировалось: 3 раз (Последний: 26 апреля 2018 в 22:04)
generalit.ru
Посетитель
small user social cms
Медаль
Сообщений: 728
Тоже заметил это, но забыл.
На стене пользователя все правильно и удобно: форма всегда сверху.
Реклама
cms
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4336
alkokrolik:
На стене пользователя все правильно и удобно: форма всегда сверху.
потому что новые вверху.
в комментариях новые внизу.
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
Посетитель
small user social cms
Медаль
Сообщений: 728
Fuze,
А какая разница, писателей сейчас больше чем читателей.
Посетитель
small user social cms
Медаль
Сообщений: 728
Я имею в виду: зашел, прочитал статью или новость, всё, конец статьи и сразу форма комментариев. Мотивирует.
Если комментов очень много - шанс что их будут читать невелик, а вот крутить вниз раздражает немного.
Редактировалось: 1 раз (Последний: 27 апреля 2018 в 00:32)
Посетитель
small user social cms
Сообщений: 24
вообще не вижу проблемы ) просто добавьте ссылку
Код PHP:
  1. <a href="#reply" class="ajaxlink" onclick="return icms.comments.add()">написать комментарий</a>
на начало блока комментариев, зачем переносить всю форму?
Посетитель
small user social cms
Медаль
Сообщений: 728
@JanaKovich, не работает.
Посетитель
small user social cms
Медаль
Сообщений: 925
Так а почему бы тогда не сделать блок комментариев с прокруткой
Анапа объявления
Быстрый хостинг
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4336
/templates/default/js/comments.js

Код JAVASCRIPT:
  1. form.detach().appendTo('#comments_widget');
заменить на

Код JAVASCRIPT:
  1. form.detach().insertBefore('#comments_list');
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
Посетитель
small user social cms
Медаль
Сообщений: 304
Теперь, по-умолчанию, кнопка и форма добавления нового комментария находятся наверху сразу после публикации. Но это тоже по-своему неудобно.
После этого пользователи начали жаловаться, что неудобно после прочтения комментариев крутить наверх чтобы достаться до кнопки "добавления комментария". А некоторые ленясь крутить вверх просто добавляют новый комментарий как ответ к последнему опубликованному комментарию, даже если этот комментарий на самом деле не является "ответом".
Конечно, можно пошаманить с кодом и сделать чтобы выводилось как нравится, но считаю уместным наличие таких опций в настройках компонента "Комментарии", поэтому добавил соответствующее предложение на Github
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.