Дополнительный просмотр записи [InstantCMS 2*]

+20
2.41K
Здравствуйте.

В продолжение предыдущей записи сделал такой же просмотр для второй ветки.
Как сделать.
1) Заходим в настройки нужного типа контента и в поле "Выводить HTML в конце записи" прописываем следующее:

  1.  
  2. <style>
  3. ul.show-all-h2 {
  4. list-style-type: decimal;
  5. margin: 0;
  6. padding: 0;
  7. }
  8. ul.show-all-h2 li {
  9. margin: 0 20px 5px 20px;
  10. padding: 0;
  11. }
  12. .article-read-h2-outer {
  13. width: 130px;
  14. position: absolute;
  15. z-index:20;
  16. padding-bottom:210px;
  17. }
  18. .article-read-h2-outer.fixed {
  19. position: fixed;
  20. top:0;
  21. }
  22. .content_item {
  23. padding-left:150px;
  24. }
  25. @media screen and (max-width: 540px){
  26. .article-read-h2-outer {
  27. display: none;
  28. }
  29. .content_item {
  30. padding-left:0px;
  31. }
  32. }
  33. </style>
  34. <script type="text/javascript" src="http://areaaperta.com/nicescroll/js/jquery.nicescroll.min.js"></script>
  35. <!-- Подключаем плагин скроллинга во избежание "скачков" в Google Chrome -->
  36. <script type="text/javascript">
  37. if($('.content_item h2.iwantlist').length) {
  38. $(function() {
  39. $(".content_item").niceScroll();
  40. $(".content_item").before( $('<div class="article-read-h2-outer"> <div class="article-read-h2"> <h3>Оглавление:</h3> <ul class="show-all-h2"></ul> </div> </div>') );
  41. var h2link = (function(i){return "#anchoron" + (i + 1);});
  42. var h2title = (function(i){return "anchoron" + (i + 1);});
  43. $('.content_item h2').clone().addClass('h2-list').prependTo('ul.show-all-h2').wrap("<li class='show-li-h2'><a href=''></a></li>");
  44. $('h2.h2-list').contents().unwrap();
  45. $(".content_item h2").attr('id', h2title);
  46. $('li.show-li-h2 a').attr('href', h2link);
  47. $('li.show-li-h2 a').click(function(){
  48. $('html, body').animate({
  49. scrollTop: $( $.attr(this, 'href') ).offset().top
  50. }, 300);
  51. return false;
  52. });
  53. $(window).scroll(function(){
  54. var w = $(".content_item").height()-20;
  55. var w1 = $('.content_item').offset().top;
  56. var w2 = $('.article-read-h2').height();
  57. var w4 = w2 - w1;
  58. if ($(this).scrollTop() > w1 && $(this).scrollTop() < w-w4) {
  59. $('.article-read-h2-outer').addClass('fixed').css("padding-top", 0);
  60. } else {
  61. if ($(this).scrollTop() > w-w4) {
  62. $('.article-read-h2-outer').css("padding-top", w-w2);
  63. };
  64. $('.article-read-h2-outer').removeClass('fixed');
  65. };
  66. });
  67. });
  68. } else {
  69. $(".content_item").css("padding-left", 0);
  70. };
  71. </script>
  72.  
2) В статье какому-то из наших тэгов h2 приписываем класс iwantlist.

Принцип действия: скрипт смотрит, есть ли в статье в указанном разделе h2 с классом iwantlist, и если это так, то слева выводится оглавление.
Смотреть демо.

К ухищрению выше пришлось прибегнуть, так как мне не удалось найти, где можно в двойке прописать конкретной статье свой шаблон вывода, как в первой ветке. Также приходиться брать во внимание, что в разделе могут быть сами по себе другие статьи с h2, которым такой вывод не нужен.

Спасибо за внимание.
Олег Васильевич я Олег Васильевич я 9 лет назад #
Комментарий удален
+1
Loadырь Loadырь 9 лет назад #
Джехутимери, отлично.
А можете сделать в двойке, так чтобы блок ссылок прописывался в шаблоне до его вывода на страницу. Т. е. поиск тегов h2 и создание блока ссылок чтобы происходили не яваскриптом в браузере, а скажем php кодом на сервере. Тогда и ссылки эти будут видны всяким гуглоботам?
0
Джехутимери Джехутимери 9 лет назад #
Loadырь, увы, я по фронтэнду. Моих знаний в php вряд ли хватит.
Но если кто-то по бэкенду сделает, я с радостью стилизирую.
0
Dmitry Dmitry 9 лет назад #
Класс, а для 1.10.6 можно такое сделать?
0
Dmitry Dmitry 9 лет назад #
Нашел)
[url=Дополнительный шаблон статьи [InstantCMS 1.10.*]]Дополнительный шаблон статьи [InstantCMS 1.10.*][/url]
0
NIKITA NIKITA 9 лет назад #
Разрешите спросить
В статье какому-то из наших тэгов h2 приписываем класс iwanlist.
, это как и где?
+1
Джехутимери Джехутимери 9 лет назад #
Это так:
http://prntscr.com/6t7nja
0
Sergon Sergon 9 лет назад #
здорово!+
+3
Денис Васильевич Денис Васильевич 9 лет назад #
+
может кто нибудь будет искать якоря.. найдёт по моему комменту, по слову якорь ;)

Еще от автора

Портальный шаблон MTheme для InstantCMS 2.6.1 - глобальное обновление
Здравствуйте, дорогие пользователи InstantCMS. Рад предоставить вашему вниманию обновленный шаблон MTheme для InstantCMS 2.6.1.
Виджет "Список групп" для InstantCMS 2.5.1
Обычный виджет вывода списка групп. О нём забыли в коробке Внешний вид. Настройки: Демо | Скачать Установка стандартная.
Портальный шаблон MTheme
Здравствуйте, сообщество. Представляю Вам шаблон MTheme, разработанный для порталов на основе InstantCMS 2.5.1.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.