Дополнительный шаблон статьи [InstantCMS 1.10.*]

2531
Здравствуйте, сообщество.

Вдохновился этой темой на форуме и зацепила идея её реализации. Конечно, можно было бы написать плагин/фильтр, но идея с js мне понравилась больше в данном контексте (ну и php я страшусь crazy ).
Задача. Мы имеем статью, большую, внутри множество h2-заголовков. Нужно, чтобы на заголовки цеплялись якоря и мы могли к ним перейти по ссылкам.
Решение: скачать файл.

Решение для 1.10.6:
Решение для версий ниже 1.10.6:
Несколько слов ещё: в файле подключен jquery плагин по внешней ссылке (ничего страшного, но уточняю, мало ли smile ) - сделано для того, чтобы не было скачков при скроллинге на Google Chrome.

Делаем магию: для нужного материала указываем в админке шаблон статьи com_content_read2.tpl.
Наиболее важное для работы сего дополнения, чтобы текст находился в диве с классом con_text. Учитывая, что структуру шаблона компонента никто (или почти никто) с нуля не переписывает, вероятность магии высока.

Как будет выглядеть:
клик - дефолтный шаблон.
клик - не дефолтный шаблон.

Благодарю за внимание. Надеюсь, кому-то помог.
Дополнительный шаблон модуля для InstantCMS [1.10.6]. | Дополнительный просмотр записи [InstantCMS 2*]
Комментарии (31)
Петрмаг 12 апреля 2015 в 00:08 -1
ничего не понял,
AndroS 12 апреля 2015 в 08:55 0
А демо смотрели?
Скрипт выводит в отдельном модуле подзаголовки статей. В итоге, получается нечто вроде оглавления. Очень удобно для сайтов-мануалов различных, документации. А в принципе, применимо во многих местах. Возможно, и с точки зрения SEO очень полезно.
Ильгиз 12 апреля 2015 в 14:12 0
А точно в отдельном модуле? По-моему в теле статьи... что кстати удобнее, т.к. "бегающий" модуль лучше использовать под рекламный блок.
Джехутимери 12 апреля 2015 в 14:15 +1
Да, верно, выводиться в теле статьи.
Олег Васильевич я 12 апреля 2015 в 00:49 +1
Спасибо!
Пригодится где-то!
AndroS 12 апреля 2015 в 07:14 0
Классная штука! Под двоечку тоже бы надо...
SE7EN 12 апреля 2015 в 14:06 0
Да однозначно для второй ветки тоже нужно. Класс
Джехутимери 12 апреля 2015 в 14:15 +2
Для двойки будет, постараюсь сегодня.
Алексей Тимофеев 12 апреля 2015 в 14:39 -2
Хорошее решение
Кирилл Эдуардович (Странник) 12 апреля 2015 в 15:02 +1
Молодец, дружище.
Ильгиз 12 апреля 2015 в 17:10 0
Доработка "цепляет" стиль текста откуда-то из шаблона. Назначает размер шрифта 16рх, а нужно 14рх.
Попробовал задать стиль "font-size: 14px !important" практически всем элементам, но к нужному результату это не принесло. Гугл тоже не помог.
Может подскажете как задать стили генерируемым элементам?
Джехутимери 12 апреля 2015 в 18:36 0
Берутся Ваши стили ссылок.
Helg 12 апреля 2015 в 18:13 -1
А почему в коде страницы ссылки не показываются?
Helg 12 апреля 2015 в 18:13 -1
которые в оглавлении
Джехутимери 12 апреля 2015 в 18:34 0
Это исключено, Вы невнимательно смотрели исходный код.
Helg 13 апреля 2015 в 06:05 0
Вот кусок кода с вашего не дефолтного представленого тут выше
Спойлер
Здесь нет кода самих ссылок или я не там смотрю?
Джехутимери 13 апреля 2015 в 13:58 0
Мм, я понял Вас теперь, всё верно. Если смотреть исходный код без javascript, так и будет. Чтобы было, как Вы хотите, нужно делать не на js. Это уже разве другой разработчик захочет сделать.
Loadырь 12 апреля 2015 в 18:38 0
Потому что они динамически создаются яваскриптом после создания страницы.
Helg 12 апреля 2015 в 19:20 0
Думаю, что лучше будет сделать по типу как ВП там ссылки с заголовков прописываются в коде в том месте где они выводятся. ИМХО на такие сайты часто в первых позициях на выдаче натыкаешься.
Helg 12 апреля 2015 в 19:22 0
То бишь в начале страницы под заголовком или после первого поста стоит блок содержание со ссылками на заголовки
santi 14 апреля 2015 в 15:05 0
отлично выглядит (реализовано)...
LoginovSO 14 апреля 2015 в 23:26 0
Господа подскажите пожалуйста, куда необходимо заливать данный (скаченный) шаблон, что бы стандартный шаблон скушал данный шаблон????
Джехутимери 15 апреля 2015 в 09:20 +1
Залейте или в папку components Вашего шаблона, или в папку components дефолтного. И в том, и в другом случае шаблон компонента будет доступен для обращения.
LoginovSO 15 апреля 2015 в 09:50 0
Добрый день! Спасибо что откликнулись!

Залил в /www/templates/_default_/components и если в админке ручками прописать для конкретной статьи какой шаблон использовать, то данная статья приобретает нужный вид. (Очень приятная плюшка, за это СПАСИБО).

И еще маленький вопросик, куда необходимо залить данный шаблон, что бы статьи автоматически кушали данный шаблон? (если эир возможно). Заранее спасибо!
Джехутимери 15 апреля 2015 в 09:55 +1
Можно удалить файл com_content_read.tpl, а com_content_read2.tpl назвать его именем (убрать двойку из названия). Но делать этого я бы не рекомендовал, так как отобразиться на всех материалах из каталога статей.
LoginovSO 15 апреля 2015 в 09:57 0
А ну да точно (подменить)!

Спасибо!
LoginovSO 15 апреля 2015 в 09:50 0
вот фотка
LoginovSO 26 апреля 2015 в 18:35 0
Шаблон приятный, есть только нюанс один, если оглавление большое, то пока не спустишься в конец страницы, оконцовку оглавления не увидешь(((.
Надо прикручивать дополнительный скрол для оглавления.
Если не сложно Джехутимери прошу Вас добавить скрол в оглавление)))
Dorimen 12 мая 2015 в 12:53 0
Неплохо было бы подумать над тем, что если в тексте нет h2, то и блок не выводить ибо зачем?
Джехутимери 12 мая 2015 в 12:57 +1
Тут другой момент. Если в тексте нет h2, тогда статье не надо прописывать другой шаблон, ибо зачем?
Dorimen 12 мая 2015 в 14:50 0
Ну оно вроде и так, конечно, можно. Но зачем плодить сущности и шаблоны, если можно немного автоматизировать )