X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> По умолчанию [DLE] Вывод содержания статьи в новости
Demcheg
Demcheg
Topic Starter сообщение 5.1.2015, 21:53; Ответить: Demcheg
Сообщение #1


Новичок
*

Группа: User
Сообщений: 46
Регистрация: 24.10.2011
Из: Украина, Харьков
Поблагодарили: 13 раз
Репутация:   2  


Доброго всем времени суток.

Задача стоит в следующем: нужно после краткого описания новости выводить содержание статьи, которое будет браться из заголовков в самой статье. То есть у меня есть заполненная статья, внутри которой есть подзаголовки h2 и h3. В начале статьи (очень желательно после вступления, которое у меня дублирует shortstory) должно быть содержание статьи, составленное из этих подзаголовков, где каждый пункт содержания будет ссылкой на соответствующий подзаголовок.

Пример есть в статье (под первой картинкой и небольшим вступлением): _http://ogorodsadovod.com/entry/705-kak-pravilno-vyrashchivat-klubniku

Есть несколько вопросов:
1. Как это можно реализовать?
2. Можно ли это реализовать не редактируя вручную каждую статью, при условии, что мне нужно содержание после вступления?

Если кто-то готов за это взяться - можете сразу написать сколько денег хотите.

Буду благодарен любым советам :)

П.С. Версия DLE на данный момент 10.2, но планирую обновляться до 10.4, как только она выйдет.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Alex_RD
Alex_RD
сообщение 6.1.2015, 7:00; Ответить: Alex_RD
Сообщение #2


Бывалый
****

Группа: User
Сообщений: 299
Регистрация: 25.11.2008
Поблагодарили: 131 раз
Репутация:   34  


в fullstory.tpl заменить {full-story} на
Код
<div id="table_of_contents">
    <div class="toc-title">Содержание</div>
    <ul>
    </ul>
</div>
<div id="the_content">{full-story}</div>
<script>
$(document).ready(function(){
$("#the_content h1, #the_content h2, #the_content h3, #the_content h4, #the_content h5").each(function(i) {
    var current = $(this);
    current.attr("id", "title" + i);
    $("#table_of_contents ul").append("<li class='list-" + current.prop("tagName") + "'><a id='chapter" + i + "' href='#title" +
        i + "' title='" + current.prop("tagName") + "'>" +
        current.html() + "</a></li>");
});
  });
</script>


--------------------


Поблагодарили: (2)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Demcheg
Demcheg
Topic Starter сообщение 10.1.2015, 15:14; Ответить: Demcheg
Сообщение #3


Новичок
*

Группа: User
Сообщений: 46
Регистрация: 24.10.2011
Из: Украина, Харьков
Поблагодарили: 13 раз
Репутация:   2  


Alex_RD, круто, спасибо огромное!

Но тут возникает немножко другая проблемка - такой код не распознает различия между h2 и h3, чтобы сделать древовидный вывод содержания.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Alex_RD
Alex_RD
сообщение 10.1.2015, 15:46; Ответить: Alex_RD
Сообщение #4


Бывалый
****

Группа: User
Сообщений: 299
Регистрация: 25.11.2008
Поблагодарили: 131 раз
Репутация:   34  


Demcheg,
Он выводит по порядку нахождения в тексте. Если идет так: h1-h2-h2-h3-h3-h1-h2 и.т.д. То получиться, каждой строке в содержании подставляется класс list-h1,list-h2,list-h3 (для h1,h2 и h3 соотвественно), применить к ним нужные стили и будет древовидный.


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Scorpion71
Scorpion71
сообщение 11.1.2015, 1:03; Ответить: Scorpion71
Сообщение #5


Участник
***

Группа: User
Сообщений: 156
Регистрация: 8.5.2011
Из: СССР
Поблагодарили: 76 раз
Репутация:   12  


Alex_RD, спасибо за скрипт, а как можно вручную так прописывать в статье? Просто по способу что ты дал выводит содержание в самом начале статьи, а нужно чтобы после первого абзаца.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Alex_RD
Alex_RD
сообщение 11.1.2015, 7:51; Ответить: Alex_RD
Сообщение #6


Бывалый
****

Группа: User
Сообщений: 299
Регистрация: 25.11.2008
Поблагодарили: 131 раз
Репутация:   34  


Scorpion71
Код
{full-story}

на
Код
<div id="the_content">{full-story}</div>
<script>
$(document).ready(function(){
$("#the_content p:first").after('<div id="table_of_contents"><div class="toc-title">Содержание</div><ul></ul></div>');
$("#the_content h1, #the_content h2, #the_content h3, #the_content h4, #the_content h5").each(function(i) {
    var current = $(this);
    current.attr("id", "title" + i);
    $("#table_of_contents ul").append("<li class='list-" + current.prop("tagName") + "'><a id='chapter" + i + "' href='#title" +
        i + "' title='" + current.prop("tagName") + "'>" +
        current.html() + "</a></li>");
});
  });
</script>


#the_content p:first - после первого абзаца (<p>), можно заменить на что-то другое.

Сообщение отредактировал Alex_RD - 11.1.2015, 7:52


--------------------


Поблагодарили: (2)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Scorpion71
Scorpion71
сообщение 11.1.2015, 16:50; Ответить: Scorpion71
Сообщение #7


Участник
***

Группа: User
Сообщений: 156
Регистрация: 8.5.2011
Из: СССР
Поблагодарили: 76 раз
Репутация:   12  


Alex_RD, спасибо ещё раз, последняя просьба - как при отсутствии тегов Н1-Н5 в статье убрать слово "Содержание"?

Сообщение отредактировал Scorpion71 - 11.1.2015, 16:52
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Demcheg
Demcheg
Topic Starter сообщение 12.1.2015, 14:00; Ответить: Demcheg
Сообщение #8


Новичок
*

Группа: User
Сообщений: 46
Регистрация: 24.10.2011
Из: Украина, Харьков
Поблагодарили: 13 раз
Репутация:   2  


Цитата(Scorpion71 @ 10.1.2015, 23:03) *
Alex_RD, спасибо за скрипт, а как можно вручную так прописывать в статье? Просто по способу что ты дал выводит содержание в самом начале статьи, а нужно чтобы после первого абзаца.

Я попробовал - можно выводить с помощью баннеров. Код этот добавляешь как баннер (без fullstory, конечно же), а потом уже код баннера в нужное место в статье. Тогда и можешь сам управлять, куда добавлять, а куда - нет.


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Scorpion71
Scorpion71
сообщение 15.1.2015, 15:27; Ответить: Scorpion71
Сообщение #9


Участник
***

Группа: User
Сообщений: 156
Регистрация: 8.5.2011
Из: СССР
Поблагодарили: 76 раз
Репутация:   12  


Цитата(Demcheg @ 12.1.2015, 14:00) *
Я попробовал - можно выводить с помощью баннеров. Код этот добавляешь как баннер (без fullstory, конечно же), а потом уже код баннера в нужное место в статье. Тогда и можешь сам управлять, куда добавлять, а куда - нет.

Спасибо, это тоже хороший способ, вот только для того что-бы разместить в старых статьях, их надо все редактировать, а это уже геморрой. Поэтому хотелось бы сделать слово "Содержание" невидимым при отсутствии тегов H1-5 в статье.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Alex_RD
Alex_RD
сообщение 15.1.2015, 15:54; Ответить: Alex_RD
Сообщение #10


Бывалый
****

Группа: User
Сообщений: 299
Регистрация: 25.11.2008
Поблагодарили: 131 раз
Репутация:   34  


Scorpion71,
Оберните код в if с проверкой на наличие h1,h2,h3 , т.е. чтобы получилось так:
поменяйте на

Код
$(document).ready(function(){
if($("#the_content h1, #the_content h2, #the_content h3, #the_content h4, #the_content h5").length){// <-проверка, есть ли h1-h5

$("#the_content p:first").after('<div id="table_of_contents"><div class="toc-title">Содержание</div><ul></ul></div>');
$("#the_content h1, #the_content h2, #the_content h3, #the_content h4, #the_content h5").each(function(i) {
    var current = $(this);
    current.attr("id", "title" + i);
    $("#table_of_contents ul").append("<li class='list-" + current.prop("tagName") + "'><a id='chapter" + i + "' href='#title" +
        i + "' title='" + current.prop("tagName") + "'>" +
        current.html() + "</a></li>");
});

}// Закрываем if

  });


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Услуги по CMS Wordpress, DLE, Joomla!. Правки, ремонт, настройка.
Редактирование и правки. Низкие цены.
143 contex1 65211 Сегодня, 9:07
автор: contex1
Горячая тема (нет новых ответов) Продаются готовые статьи (рерайтинг и копирайтинг)
Тематики разные
116 Михаил 41433 Вчера, 1:00
автор: Михаил
Горячая тема (нет новых ответов) Продаются готовые статьи
рерайт, копирайтинг
97 Slavchac 33593 15.12.2017, 10:56
автор: Slavchac
Открытая тема (нет новых ответов) Статьи по 5р за 1000 знаков
из вебархива, тема: строительство и ремонт
4 scovorodca 1790 15.12.2017, 10:54
автор: scovorodca
Горячая тема (нет новых ответов) ВНИМАНИЕ: Обмен/Ввод/Вывод - Paypal/WM/PM/WIRE/ePm/Paxum/BTC/Epese/Capitali/Visa/MC/eCoin/EXMO/нал
184 JenkinChange 77275 14.12.2017, 17:42
автор: gold15


 



RSS Текстовая версия Сейчас: 17.12.2017, 20:21
Дизайн