Arhar Опубликовано 17 Октября 2007 Жалоба Поделиться Опубликовано 17 Октября 2007 мы тут блин делаем самый кроссбраузерный и эффективный спойлер, который можно будет тупо сделать дополнительным ббкодом, причем уже можно сделать, бери и делай Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
DacentGS Опубликовано 17 Октября 2007 Автор Жалоба Поделиться Опубликовано 17 Октября 2007 Вот что мне посоветовали, может осмыслите для меня?! D)) Генерируй для каждого id какой-нибудь случайный текст...В php есть функция uniqid. Если ты заменяешь код с помощью регулярных выражений, то вместо замены всех вхождений сразу можно сделать замены каждого вхождения последовательно, в цикле (чтобы для каждого сгенерировать свой id). Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 18 Октября 2007 Жалоба Поделиться Опубликовано 18 Октября 2007 Генерируй для каждого id какой-нибудь случайный текст...В php есть функция uniqid.В джаваскрипте тоже есть возможность генерации случайных чисел и перевод численной переменной в строковую. Вот и случайный текст. Если есть возможность написать код в одном языке, не вижу резона часть кода писать на пхп, а вторую часть на джаваскрипте: "смешаный" код намного сложнее трассировать в случае возникновения ошибок. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
DacentGS Опубликовано 18 Октября 2007 Автор Жалоба Поделиться Опубликовано 18 Октября 2007 Можете кто-нибудь переписать скрипт? Пожалуйста. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 18 Октября 2007 Жалоба Поделиться Опубликовано 18 Октября 2007 Можете кто-нибудь переписать скрипт? Пожалуйста. Я скорее всего буду делать под IPB 1.3 + mJournal 1.05.Интересует? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
DacentGS Опубликовано 18 Октября 2007 Автор Жалоба Поделиться Опубликовано 18 Октября 2007 А разве в ББ кодах есть разница под какую версию? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 18 Октября 2007 Жалоба Поделиться Опубликовано 18 Октября 2007 А разве в ББ кодах есть разница под какую версию? ОК, как сделаю, напишу.Разница в том, какие файлы изменять, и куда внедрять джаваскрипт. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
DacentGS Опубликовано 18 Октября 2007 Автор Жалоба Поделиться Опубликовано 18 Октября 2007 Думаю с этим проблемм не будет, спасибо тебе! Только ты потом напиши какие файли изменял и всё такое))) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 18 Октября 2007 Жалоба Поделиться Опубликовано 18 Октября 2007 Создал новую кнопку, вводящую теги [more] и [/more] (чтобы сохранить старый спойлер) По аналогии с кнопкой жирности текста. В стили через админку и в файл skin_jinfo.php (для журналов) добавил описания классов:$txt = preg_replace( "#\[more\](.+?)\[/more\]#is", "<!--spoilerstart--><div class='sp-wrap'><div class='sp-head-wrap'><div class='sp-head folded clickable'><b><u>Свернутый текст</u></b></div></div><div class='sp-body'><div class='sp-content'>\\1</div></div></div><!--spoilerstend-->", $txt ); $txt = preg_replace( "#\[more=(.*?)\](.*?)\[\/more\]#is", "<!--spoilerstart--><div class='sp-wrap'><div class='sp-head-wrap'><div class='sp-head folded clickable'><b><u>\\1</u></b></div></div><div class='sp-body'><div class='sp-content'>\\2</div></div></div><!--spoilerstend-->", $txt ); Таким образом, обрабатываться будут и тег [more] (заголовок будет дефолтный), и тег [more=Заголовок спойлера] (позволяет пользователю ввести текст заголовка. Не понял почему не всегда парсятся вложенные спойлеры. Продублировал код - стали парситься и много вложенных спойлеров в общий спойлер. Анконверт:После кода:$txt = preg_replace( "#(<!--spoilerstart--><div class='sp-wrap'><div class='sp-head-wrap'><div class='sp-head folded clickable'><b><u>Свернутый текст</u></b></div></div><div class='sp-body'><div class='sp-content'>)(.+?)(</div></div></div><!--spoilerstend-->)#is", "\[more\]\\2\[\/more]", $txt ); $txt = preg_replace( "#(<!--spoilerstart--><div class='sp-wrap'><div class='sp-head-wrap'><div class='sp-head folded clickable'><b><u>)(.+?)(</u></b></div></div><div class='sp-body'><div class='sp-content'>)(.+?)(</div></div></div><!--spoilerstend-->)#is", "\[more=\\2\]\\4\[/more\]", $txt ); Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
DacentGS Опубликовано 18 Октября 2007 Автор Жалоба Поделиться Опубликовано 18 Октября 2007 Мне на самом деле нефига не понятно. )) Даже на 1,2 поставить не смог, у меня даже файла html/quote.js нету. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 18 Октября 2007 Жалоба Поделиться Опубликовано 18 Октября 2007 http://vesvalo.net/journal.php?user=1 - вот пример в работе. Я не помню, откуда взялся у меня файл quote.js - на форуме много модификаций, в том числе написанных мной походя, все и не упомню. Сделай новый файл и прилинкуй где требуется, или пропиши линк через админку в основной шаблон. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
DacentGS Опубликовано 18 Октября 2007 Автор Жалоба Поделиться Опубликовано 18 Октября 2007 Так и не работает на 1.2, на 2.2 вообще нету смысла проверять. Всё равно спасибо. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 18 Октября 2007 Жалоба Поделиться Опубликовано 18 Октября 2007 Я не помню, откуда взялся у меня файл quote.jsСтандартная поставка. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 18 Октября 2007 Жалоба Поделиться Опубликовано 18 Октября 2007 Так и не работает на 1.2Не телепат. Не смог угадать что не работает: ББ-код не удалось создать, скрипт не удалось прилинковать, стили не удалось добавить, парсер не удалось сделать? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
DacentGS Опубликовано 19 Октября 2007 Автор Жалоба Поделиться Опубликовано 19 Октября 2007 Не, всё сделал как надо, изменения в файле post_parser.php, и даже quote.js добавлял и прописывал в стилях, но вот единственное чего у меня нету, так это skin_jinfo.php, я так понимаю он должен быть в папке skin/s*/, но там у меня его не оказалось.Да и к тому же это другой бб код, я же хотел именно тот который в самом начале описал. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 19 Октября 2007 Жалоба Поделиться Опубликовано 19 Октября 2007 Оформите ваши пожелания одним постом, тут много чего выше написано. А скиновой файл в подпапке папки journal должен был быть. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
DacentGS Опубликовано 19 Октября 2007 Автор Жалоба Поделиться Опубликовано 19 Октября 2007 Самый первый пост. Аа, ну у мну журнал не стоит. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 19 Октября 2007 Жалоба Поделиться Опубликовано 19 Октября 2007 чего у меня нету, так это skin_jinfo.phpЭто файл от mJournal. Если мод не ставил, то и файла нет. Да и к тому же это другой бб код, я же хотел именно тот который в самом начале описал. Нужен не [more], а другой? Дык не проблема поправить.Перечитал первый пост, но так и не понял, какой ББ-код спрашивается. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
DacentGS Опубликовано 19 Октября 2007 Автор Жалоба Поделиться Опубликовано 19 Октября 2007 В первом посте же всё описано по полочкам, скрипт практически полностью готов, но надо что у каждого бб кода был свой ид, т.е. либо надо сам скрипт переписывать либо делать как мне посоветовали:Генерируй для каждого id какой-нибудь случайный текст...В php есть функция uniqid. Если ты заменяешь код с помощью регулярных выражений, то вместо замены всех вхождений сразу можно сделать замены каждого вхождения последовательно, в цикле (чтобы для каждого сгенерировать свой id). Сам тег уже работает, но при добалнении второго такого же, второй просто не работает потому как у первого и второго одинаковые ид, а скрипт именно к ним и обращаеться. Вот пример где надо генерировать случайный ид: (где стоит значение TEST, там и надо генерировать случайный ид)<a class='show_hide_button' id='show_hide_buttonTEST'>-</a> <span class='hidden_block_title'>{option}</span><div class='hidden_block' id='hidden_blockTEST'>{content}</b></div><script type='text/javascript'>assign_show_hide_button('hidden_blockTEST', 'show_hide_buttonTEST');</script> Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 19 Октября 2007 Жалоба Поделиться Опубликовано 19 Октября 2007 Вот пример где надо генерировать случайный ид: (где стоит значение TEST, там и надо генерировать случайный ид) Для вывода тега<a class='show_hide_button' id='show_hide_buttonTEST'>пойдет код:<script type="text/javascript"> var d_id=(Math.random()+'').replace('0.','') eval('document.write("<a class=\\"show_hide_button\\" id=\\"show_hide_button'+d_id+'\\">");') </script> Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
DacentGS Опубликовано 20 Октября 2007 Автор Жалоба Поделиться Опубликовано 20 Октября 2007 В джава ведь другие бб коды не работают. Т.е. ссылки и всё такое нельзя вставлять и уж тем более вкладки не будут вкладываться в друг друга. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 20 Октября 2007 Жалоба Поделиться Опубликовано 20 Октября 2007 В джава ведь другие бб коды не работают. Глубокомысленно. Но не верно.Джава будет вставляться парсером в нужный ББ-код.У меня похожее сделано для сокрытия документ-реферер. Код [URL] парсится в джаваскрипт, который сначала через tlt=window.open() открывает пустое окно (чтобы в document.refer получился localhost), а затем методом tlt.document.write() в открытое окно внедряется код для перехода на нужный URL. Т.е. ссылки и всё такое нельзя вставлять и уж тем более вкладки не будут вкладываться в друг друга.Блин! Написал же работающий код; дал ссылку где посмотреть в действии.Всё вставляется ББ-кодами; отлично друг в друга вкладывается. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
DacentGS Опубликовано 20 Октября 2007 Автор Жалоба Поделиться Опубликовано 20 Октября 2007 FatCat, безусловно ты сделал хороший ББ код, но просто мне не это надо.Пример можешь посмотреть в первом посте, там рисунок есть. Хорошо, вот отличный пример моего ББ кода, оставим пока прошлый, займёмся этим. На примере отчётливо видно ракрашенные участки, я поясню что это такое.1: Красный цвет. Красным цветом закрашены кликабельные участки кода, т.е. как видно на примере №2, кликабельный участок равен длинне текста который находиться внутри ББ кода, т.е. если текст занимает лишь половину размера то кликабельный участок будет равен длинне текста, это из за использования в теге строчки <div>.На первом примере мы видим что в закрытом состоянии тега кликабельный участок занимает лишь ту часть, которую занимает текст, т.е. тоже самое. 2: Зелёный цвет. Зелёный цвет отмечает кликабельные участки, точнее какими они должны быть, именно надо что бы тег раскрывался и свёртывался только по нажитию на кнопки "+" и "-". Как вы видете на примере №4, кликабельный участок уже не зависит от колличества и длинны текста, он (участок) остаёться на своём месте и закрыть тег можно только по нажатию кнопки "-", ну или как в примере №3, открыть с помощью кнопки "+" и если вы заметили теперь зелёный кликабельный участок не распространяеться на {option}, а находиться слево от него, но при использовании строчки <div>, {option} автоматически переноситься на следующую строчку. ББ код:<table><div style="cursor: pointer; color: #000; font-size: 12px; font-family: Verdana, Tahoma, Helvetica, sans-serif; text-decoration: none" onclick="show_hide_text(this,'{option}')"><a class='show_hide_button'>+</a> <span class='hidden_block_title'>{option}</span></div><div class='hidden_block' style="display: none">{content}</div></table> Expand.js:function show_hide_text(divObj,text) { var div = divObj.parentNode.getElementsByTagName('div')[1]; if (div.style.display == 'none') { div.style.display = 'block'; divObj.innerHTML = "<a class='show_hide_button'>-</a> <span class='hidden_block_title'>" + text; } else { div.style.display = 'none'; divObj.innerHTML = "<a class='show_hide_button'>+</a> <span class='hidden_block_title'>" + text; } } Пример!!!:http://img80.imageshack.us/img80/6789/debugpb6.gif Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 20 Октября 2007 Жалоба Поделиться Опубликовано 20 Октября 2007 ОК, скриншот красивый.В чем проблема, не пойму? Учебник ХТМЛ и ЦСС в руки и делать. Как сделать джаваскриптом динамический айдишник в топике написано; как внедрить в форумный движок написано. Чего не хватает для счастья? Если подробных пошаговых инструкций, то мне лень. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
DacentGS Опубликовано 20 Октября 2007 Автор Жалоба Поделиться Опубликовано 20 Октября 2007 Мне всего лишь надо сделать то что нарисовано, но дело то в том что я этого не умею, вот и обращаюсь к опытным людям. В любом случая, спасибо что хоть откликнулся! Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.