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

  });


Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


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


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


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Вывод на Сбербанк 6% | Работаю быстро
WMR/Яндекс > Сбербанк
15 rudnizki 4010 Сегодня, 11:48
автор: rudnizki
Горячая тема (нет новых ответов) Услуги продвижения сайтов, SEO специалист (эффективный вывод в Топ)
Качественно и гибкие цены
47 mvchansas 7445 Сегодня, 11:06
автор: mvchansas
Открытая тема (нет новых ответов) Нужны мини-статьи на постоянной основе (40р/1000зн)
Компьютерная и мобильная тематика (Windows, Mac, iOS, Android)
1 phant 295 Сегодня, 0:15
автор: phant
Открытая тема (нет новых ответов) Два браузера по-умолчанию
3 SOROKVLAD29 587 Вчера, 17:19
автор: SOROKVLAD29
Горячая тема (нет новых ответов) Обмен WebMoney - Яндекс - QIWI - Bitcoin BTC и другая крипта. Вывод/ввод Приват24 UAH
142 himin 48359 Вчера, 15:56
автор: himin


 



RSS Текстовая версия Сейчас: 25.5.2018, 15:45
Дизайн