rss
Навигация
ИнструментыЯмаПолезные ссылкиЗачем мне блог?Рейтинг контентаКодекс админаФотогалереяi-payrss
Последние записи
Смонтировал видюху, моменты из жизни 2013-15На уазике до ск. Верблюд по Торгашинскому хребтуBreaks волна #9 осенний funkК нам на дачу пришел медведьСтарая бомба! Крутой рифмоплет
Каменты [еще]
2017-05-17 11:25:31 [articles] Владимир:
2016-12-20 17:49:41 [articles] Виталик:
2016-12-01 23:34:25 [news] Meteor:
2016-11-11 03:35:47 [articles] Tata10:
2016-07-27 14:28:19 [articles] Сергей:
2016-05-17 09:56:26 [articles] юра:
2016-04-29 18:03:48 [articles] agatsky.dn:
Теги
Друзья
Блог малова Лучшие стихи зая =) Мед в Красноярске Daniil V. Savenkoff Blog | То, что мне когда-то пригодилось... Велкам в друзья!

Спойлеры в php-fusion

Мая
2011 года
23
Теги: web,
Раздел: zgbox.ru -> Статьи -> Web -> Спойлеры в php-fusion
Просмотров: 3693
По многочисленным просьбам трудящихся клана FMP. Были прикручены спойлеры к php-fusion. И составлен этот манускрипт в котором описано как прикрутить спойлеры к php-fusion.

Вид спойлеров:
image

Дано:


PHP-Fusion version 6.01.19.4
Спойлер

Суть:


Спойлер это яваскрипт (jpack.js) который реализует плавное сворачивание-разворачивание. А его внешний вид и параметры лежат в файле стилей spoiler.css
Наша задача подключить спойлер к движку. Для этого нужно собстно подключить файл стилей и скрипт спойлера в зону <HEAD></HEAD>. Затем в парсере ббкодов (в maincore.php) движка сделать обработчик для ббкода спойлеров [spoiler=заголовок спойлера]содержимое[/spoiler]

Приступим:


Качаем архив со спойлером.

Файл spoiler.zip Комплект для спойлера: images - графика jpack.js - ява скрипт спойлера spoiler.css - внешний вид Размещен
размер 0.02 mb 2011-07-18 11:42:09
Скачан 140

Ложим его содержимое в папку /spoiler в корне движка или куда душе угодно (только пути тогда свои не забудьте прописать к скрипту и картинкам)
Прикрутим спойлеры на форум:
Открываем файл forum/subheader.php и ищем в нем:
<link rel='shortcut icon' href='".BASEDIR."favicon.ico'>
<link rel='stylesheet' href='".THEME."styles.css' type='text/css'>";
После найденного вставляем:
echo " <link rel='stylesheet' type='text/css' href='../spoiler/spoiler.css' >
<script type='text/javascript' src='../spoiler/jpack.js'></script>
<SCRIPT type='text/javascript'>
function initSpoilers(context)
{
var context = context || 'body';
$('div.spoiler-head', $(context))
.click(function(){
$(this).toggleClass('unfolded');
$(this).next('div.spoiler-body').slideToggle('fast');
})
;
}
$(document).ready(function(){
initSpoilers('body');
});
</SCRIPT> ";
Это для форума. Теперь тоже самое делаем с файлом /subheader.php лежащим в корне сайта, только вставляем этотже код после строк:
<link rel=\"shortcut icon\" href='".BASEDIR."favicon.ico'>
<link rel=\"stylesheet\" href='".THEME."styles.css' type='text/css'>";
Это для спойлеров на главной странице и в каментах.
Еще раз делаем тоже самое но вставляем код спойлера в файл /administration/subheader.php после строк:
<link rel='stylesheet' href='".THEME."styles.css' type='text/css'>
<script language='javascript' type='text/javascript' src='".INCLUDES."jscript.js'></script>\n";
Это делалем для того чтоб можно было использовать спойлеры при оформлении новостей статей итд.
небольшое отступление
По сути после выполнения вышеописанного спойлеры готовы к употреблению. И для их вставки можно использовать html код:
<div class="spoiler-wrap"><div class="spoiler-head folded clickable"> заголовок спойлера </div><div class="spoiler-body"> содержимое спойлера </div></div>
Важно чтобы этот код использовался в строку, т.е. чтоб небыло переносов строки, пробелов и других символов между <div></div> Этим методом придется пользоваться при оформлении новостей из админпанели php-fusion т.к. новости не проходят через парсер ббкодов

Далее по тексту будет прикручивание этого кода к bbcode в парсере php-fusion
Затем открываем maincore.php что лежит в корне, находим в нем строку:
$qcount = substr_count($text, "[quote]"); $ccount = substr_count($text, "[code]");
И перед ней вставляем:
$scount = substr_count($text, "[spoiler=");
for ($i=0;$i < $scount;$i++)
$text = preg_replace('#\[spoiler=([\r\n]*)([^\'\";]*?)\](.*?)([\r\n]*)\[/spoiler\]#si', '<div class="spoiler-wrap"><div class="spoiler-head folded clickable">\2</div><div class="spoiler-body">\3</div></div>', $text);
Спойлеры на форуме готовы, теперь пробуем создать на форуме новое сообщение с тегом [spoiler=название]содержание[/spoier]
Комментарии к записи:
Excreman 2011-05-23 16:00:54 [ответить]
Спасибо!
=ZG= 2011-05-23 18:25:42 [ответить]
да пожалуйста! =)
0leZik 2011-05-27 11:48:59 [ответить]
Экс везде успевает читать =)

Добавление комментария

Ваше имя: (Антиспам) Какой сейчас год?
Ваш комментариий: