Наверняка вы знаете множество примеров bbcode'ов. Вот ссылка на более полную подборку по ним - вот. Но и тут есть нюансы. Эти bbcode'ы используют JQuery. То есть например я не смог применить другой JQuery именно на странице где использую bbcode. Скорее это возможно просто я не знаю как...
Но это другой вопрос. Так вот. Если есть проблемы по поводу bbcode'а от twina - прошу, пишите. Будем вместе разбираться.
Спустя 2 минуты, 39 секунд (11.02.2011 - 19:21) Sopromatenot написал(а):
А что конкретно нужно?
Меня лично немного не устроил код twin'а и я родил свой.
Меня лично немного не устроил код twin'а и я родил свой.
Спустя 1 минута, 57 секунд (11.02.2011 - 19:23) m4a1fox написал(а):
Sopromatenot
Молодец - шаришь. Покажешь? или поделись) У меня тоже есть свой маленький на JS. Но больно он не надежен. Поэтому использую его только в админке.
Молодец - шаришь. Покажешь? или поделись) У меня тоже есть свой маленький на JS. Но больно он не надежен. Поэтому использую его только в админке.
Спустя 10 минут, 40 секунд (11.02.2011 - 19:33) m4a1fox написал(а):
Вернусь через 30 мин.
Спустя 30 минут, 12 секунд (11.02.2011 - 20:03) Sopromatenot написал(а):
У меня довольно урезанный функционал. Я для гостевой книги писал, а там много наворотов не стал делать. Значится:
- смайлики.
- стили текста: жирный, наклонный, подчёркнутый, перечёркнутый.
- оставляется исходное форматирование текста.
- защита от "длинного" слова.
- защита от непарных тегов.
У меня имеется гостевая книга и админка для неё. Админка имеет функцию редактирования текста поэтому было реализовано "два типа возвращаемого результата":
normal - делает замены bb-тегов на html теги. Стандартный вывод для пользователя.
admin - не делает замены bb-тегов на html теги. Вывод для админки, чтоб было видно что юзер там написал тегами и чтоб можно было грамотно редактировать.
Собственно код не очень то и шикарен, но функции свои отрабатывает.
Я этот код оформил отдельным php файлом и инклужу в гостевой. Перед инклудом нужно указать переменую $dir_smiles - папка с смайликами типа "user/img/smiles/".
- смайлики.
- стили текста: жирный, наклонный, подчёркнутый, перечёркнутый.
- оставляется исходное форматирование текста.
- защита от "длинного" слова.
- защита от непарных тегов.
У меня имеется гостевая книга и админка для неё. Админка имеет функцию редактирования текста поэтому было реализовано "два типа возвращаемого результата":
normal - делает замены bb-тегов на html теги. Стандартный вывод для пользователя.
admin - не делает замены bb-тегов на html теги. Вывод для админки, чтоб было видно что юзер там написал тегами и чтоб можно было грамотно редактировать.
Собственно код не очень то и шикарен, но функции свои отрабатывает.
Я этот код оформил отдельным php файлом и инклужу в гостевой. Перед инклудом нужно указать переменую $dir_smiles - папка с смайликами типа "user/img/smiles/".
<?php
// Обработка bbcode
function bb_tags($text, $status)
{
global $dir_smiles; // директория со смайликами
// Создаем массив bb-тегов смаликов
$bb_smile = array(
'[:)]',
'[:(]',
'[;)]',
'[:D]',
'[xX]',
'[oO]',
'[oo]',
'[..]',
'[BIC]',
'[Aa]'
);
// Создаем массив тегов HTML смайликов
$html_smile = array(
'<img src="'.$dir_smiles.'1.gif" />',
'<img src="'.$dir_smiles.'2.gif" />',
'<img src="'.$dir_smiles.'3.gif" />',
'<img src="'.$dir_smiles.'4.gif" />',
'<img src="'.$dir_smiles.'5.gif" />',
'<img src="'.$dir_smiles.'6.gif" />',
'<img src="'.$dir_smiles.'7.gif" />',
'<img src="'.$dir_smiles.'8.gif" />',
'<img src="'.$dir_smiles.'9.gif" />',
'<img src="'.$dir_smiles.'10.gif" />'
);
// Создаем массив bb-тегов
$bb_text = array(
'#\[b\](.*?)\[/b\]#si',
'#\[i\](.*?)\[/i\]#si',
'#\[u\](.*?)\[/u\]#si',
'#\[s\](.*?)\[/s\]#si');
// Создаем массив тегов HTML
$html_text = array(
'<b>$1</b>',
'<i>$1</i>',
'<u>$1</u>',
'<s>$1</s>');
// Обрабатываем текст по "стандарту"
if($status == 'normal')
{
// Оставляем изначальное форматирование и преобразуем спецсимволы
$text = str_replace("\r", "", $text);
$text = str_replace("\t", " ", $text);
$text = htmlspecialchars($text);
$text = nl2br($text);
$text = str_replace(' ', ' ', $text);
// Режем "длинное слово"
$text = wordwrap($text, 70);
// заменяем bb-теги текста
$text = preg_replace($bb_text, $html_text, $text);
// заменяем bb-теги смайликов
$text = str_ireplace($bb_smile, $html_smile, $text);
}
// выводим чистый текст без замены тегов на html (для админки)
if($status == 'admin')
{
// Оставляем изначальное форматирование и преобразуем спецсимволы
$text = str_replace("\r", "", $text);
$text = str_replace("\t", " ", $text);
$text = htmlspecialchars($text);
$text = nl2br($text);
$text = str_replace(' ', ' ', $text);
// Режем "длинное слово"
$text = wordwrap($text, 70);
}
// Возвращаем результат
return $text;
}
?>
Спустя 15 минут, 45 секунд (11.02.2011 - 20:19) m4a1fox написал(а):
прикольно. А как насчет загрузки фотографии и добавления ссылок?
Спустя 4 минуты, 18 секунд (11.02.2011 - 20:23) m4a1fox написал(а):
Просто у twin'а есть возможность вставлять картинки и ссылку.
Спустя 1 минута, 20 секунд (11.02.2011 - 20:25) m4a1fox написал(а):
Если есть желание, могу свой код выложить. Глянете может оцените)
Спустя 4 минуты, 4 секунды (11.02.2011 - 20:29) Sopromatenot написал(а):
Цитата (m4a1fox @ 11.02.2011 - 17:23) |
Просто у twin'а есть возможность вставлять картинки и ссылку. |
Этот функционал можно дописать(=докопипастить
![laugh.gif](http://phpforum.ru/html/emoticons/laugh.gif)
Я просто упростил код Твина до своих нужд...
Что ты хочешь то конкретно?
Спустя 3 минуты, 57 секунд (11.02.2011 - 20:33) m4a1fox написал(а):
Возможность вставлять ссылку на выделенный тест и вставлять ссылку с изображением. Вот собственно и все.
Спустя 9 минут, 34 секунды (11.02.2011 - 20:42) m4a1fox написал(а):
Sopromatenot
Еще вопрос. А как у вас реализована меню кнопок на определенные теги?
Еще вопрос. А как у вас реализована меню кнопок на определенные теги?
Спустя 2 минуты, 38 секунд (11.02.2011 - 20:45) Sopromatenot написал(а):
Также как в Гостевой книги Твина:
<script type="text/javascript" language="javascript">
function tag(text1, text2)
{
if ((document.selection))
{
document.post.text2.focus();
document.post.document.selection.createRange().text = text1+document.post.document.selection.createRange().text + text2;
} else if(document.forms['post'].elements['text2'].selectionStart != undefined) {
var element = document.forms['post'].elements['text2'];
var str = element.value;
var start = element.selectionStart;
var length = element.selectionEnd - element.selectionStart;
element.value = str.substr(0, start) + text1 + str.substr(start, length) + text2 + str.substr(start + length);
} else document.post.text2.value += text1 + text2;
}
</script>
Спустя 4 минуты, 25 секунд (11.02.2011 - 20:49) m4a1fox написал(а):
Sopromatenot
Ух..... для меня это дремучий лес)
Ух..... для меня это дремучий лес)
Спустя 4 минуты, 24 секунды (11.02.2011 - 20:54) m4a1fox написал(а):
Значит надо сначала сделать гостевую как twin учит.
Спустя 23 минуты, 38 секунд (11.02.2011 - 21:17) m4a1fox написал(а):
Sopromatenot
и еще вопрос. Скажите, а вы в БД заносите информацию или в файл?
и еще вопрос. Скажите, а вы в БД заносите информацию или в файл?
Спустя 8 минут, 22 секунды (11.02.2011 - 21:26) Sopromatenot написал(а):
На файлах, за основу брал http://irbis-team.com/15/5
Спустя 1 минута, 1 секунда (11.02.2011 - 21:27) m4a1fox написал(а):
Sopromatenot
Последний вопрос снимается. Увидел Гостевую на SQL.
Последний вопрос снимается. Увидел Гостевую на SQL.
Спустя 31 секунда (11.02.2011 - 21:27) m4a1fox написал(а):
Sopromatenot
Хм... На файлах не интересно(
Хм... На файлах не интересно(
Спустя 1 час, 26 минут, 58 секунд (11.02.2011 - 22:54) twin написал(а):
прикольно.... а до конца читать не надо? можно из контекста выдернуть и сказать - это, сцук, твин писал, знач круто?
читайте, я для вас писал. Там все подробно.
читайте, я для вас писал. Там все подробно.
Спустя 38 минут, 59 секунд (11.02.2011 - 23:33) m4a1fox написал(а):
twin
Я собственно ничего дурного не имел ввиду. Чего Вы так?
Я собственно ничего дурного не имел ввиду. Чего Вы так?
Спустя 6 минут, 31 секунда (11.02.2011 - 23:40) m4a1fox написал(а):
Sopromatenot
Скажите, а у вас реализовано удаление непарных тегов?
Скажите, а у вас реализовано удаление непарных тегов?
Спустя 38 минут, 42 секунды (12.02.2011 - 00:19) Sopromatenot написал(а):
Цитата (m4a1fox @ 11.02.2011 - 20:40) |
Sopromatenot Скажите, а у вас реализовано удаление непарных тегов? |
Удаление нет, но защита имеется. Просто идёт обработка именно парных тегов.
Лучше действительно начни читать от сюда http://irbis-team.com/15/5