Скачать скрипт мона здесь (81,9 кб)
Мне посоветовали воспользовоться парсером
Цитата
UBB Parser
' eamBBParser is a UBB Parser (or BB-code parser), written in PHP. It provides
a class for transforming BB-code to HTML.'
http://ubb.eamelink.nl/ or http://sourceforge.net/project/showf...roup_id=141389
' eamBBParser is a UBB Parser (or BB-code parser), written in PHP. It provides
a class for transforming BB-code to HTML.'
http://ubb.eamelink.nl/ or http://sourceforge.net/project/showf...roup_id=141389
либо регулярными выражениями
Код
$var = str_replace("[b]","<strong>", $var);
$var = str_replace("[/b]","</strong>", $var);
$var = str_replace("[i]","<i>", $var);
$var = str_replace("[/i]","</i>", $var);
$var = str_replace("[u]","<u>", $var);
$var = str_replace("[/u]","</u>", $var);
$var = str_replace("[hr]","<hr noshade color=\"#999999\" size=\"1\">", $var);
$var = str_replace("[/hr]","", $var);
$var = str_replace("[li]","<li>", $var);
$var = str_replace("[/li]","</li>", $var);
$var = str_replace("[up]","<span class=up>",$var);
$var = str_replace("[/up]","</span>",$var);
$var = preg_replace("#\[align=(left|right)\](.*?)\[/align\]#si", "<div style=\"text-align:\\1\">\\2</div>", $var);
$var = preg_replace("#\[url=(.*?)\](.*?)\[/url\]#si", "<a class=\"u\" target=\"_blank\" href=\"\\1\">\\2</a>", $var);
$var = preg_replace("#\[url\](.*?)\[/url\]#si", "<a class=\"u\" target=\"_blank\" href=\"\\1\">\\1</a>", $var);
$var = str_replace("[CENTER]","<center>",$var);
$var = str_replace("[/CENTER]","</center>",$var);
$var = str_replace("[color=red]","<font color=#B71E2D>",$var);
$var = str_replace("[COLOR=blue]","<font color=#336699>",$var);
$var = str_replace("[COLOR=orange]","<font color=#FF9900>",$var);
$var = str_replace("[COLOR=gray]","<font color=#999999>",$var);
$var = str_replace("[COLOR=green]","<font color=#006633>",$var);
$var = str_replace("[/color]","</font>",$var);
$var = str_replace("[/b]","</strong>", $var);
$var = str_replace("[i]","<i>", $var);
$var = str_replace("[/i]","</i>", $var);
$var = str_replace("[u]","<u>", $var);
$var = str_replace("[/u]","</u>", $var);
$var = str_replace("[hr]","<hr noshade color=\"#999999\" size=\"1\">", $var);
$var = str_replace("[/hr]","", $var);
$var = str_replace("[li]","<li>", $var);
$var = str_replace("[/li]","</li>", $var);
$var = str_replace("[up]","<span class=up>",$var);
$var = str_replace("[/up]","</span>",$var);
$var = preg_replace("#\[align=(left|right)\](.*?)\[/align\]#si", "<div style=\"text-align:\\1\">\\2</div>", $var);
$var = preg_replace("#\[url=(.*?)\](.*?)\[/url\]#si", "<a class=\"u\" target=\"_blank\" href=\"\\1\">\\2</a>", $var);
$var = preg_replace("#\[url\](.*?)\[/url\]#si", "<a class=\"u\" target=\"_blank\" href=\"\\1\">\\1</a>", $var);
$var = str_replace("[CENTER]","<center>",$var);
$var = str_replace("[/CENTER]","</center>",$var);
$var = str_replace("[color=red]","<font color=#B71E2D>",$var);
$var = str_replace("[COLOR=blue]","<font color=#336699>",$var);
$var = str_replace("[COLOR=orange]","<font color=#FF9900>",$var);
$var = str_replace("[COLOR=gray]","<font color=#999999>",$var);
$var = str_replace("[COLOR=green]","<font color=#006633>",$var);
$var = str_replace("[/color]","</font>",$var);
Но как это сделать до меня не доходит, может кто нить помочь?
Желательно внедрить данную возможность в этот скрипт (по слухам это не сложно) буду благодарен как я так и автор скрипта (у него на это сейчас времени нету

Заранее благодарю!
Спустя 14 часов, 29 минут, 45 секунд (5.10.2008 - 11:50) Bl@ck написал(а):
Млин, неужели никто не может этого сделать?
Спустя 38 минут, 12 секунд (5.10.2008 - 12:29) Ghost написал(а):
ну блин... а тебе не кажется что это несколько... приходить на форум, и просто грить - мне тут скрипт надо сделать, а я не могу - сделайте за меня..
у меня, например, нет ни малейшего желания работать за кого-то.
у меня, например, нет ни малейшего желания работать за кого-то.
Спустя 1 час, 27 минут, 11 секунд (5.10.2008 - 13:56) twin написал(а):
Разбираться в чужих скриптах правда желания никакого.
Вот попробуйте этот скриптик:
сверху ваших "регулярок" напишите
а снизу:
теперь останется обработать этой функцией выводимый текст, и вуаля.
Что не получится, пишите.
Вот попробуйте этот скриптик:
Код
function tag(text1, text2){
if ((document.selection))
{
document.form.ИМЯ_ТЕКСТАРЕИ.focus();//Установка фокуса
var ran = form.ИМЯ_ТЕКСТАРЕИ.createTextRange();
var s=document.form.document.selection;//Делаем объект из выделенного текста
var r = s.createRange();
var len = r.text.length;//Считаем количество символов в выделенном тексте
var sc=r;
var scr=text1+sc.text+text2;//Оборачиваем выделенный текст ВВ тегами
len = len + 7;//Вычисляем разницу между выделенным текстом итекстом с тегами
document.form.ИМЯ_ТЕКСТАРЕИ.focus();
//Определяем браузер
var m_Name = navigator.appName;
//Смещаем указатель на новую позицию
if (m_Name.indexOf("Explorer") != -1) {
r.moveStart("character",1)//Если "Explorer"alert(len)
}
else{
r.moveEnd("character", len)
}
//Вставляем текст с ВВ тегами
document.form.document.selection.createRange().text = scr;
}
else if(document.forms['form'].elements['ИМЯ_ТЕКСТАРЕИ'].selectionStart != undefined) {
var element = document.forms['form'].elements['ИМЯ_ТЕКСТАРЕИ'];
var str = element.value;
var start = element.selectionStart;
var length = element.selectionEnd - element.selectionStart;
var rv=str.substr(0, start) + text1 + str.substr(start, length) + text2 + str.substr(start + length)
element.value = rv;
r = s.createRange();
}
}
поставьте имя текстареи, в которую нужно вставлять ВВ. Там, где нужны кнопки, вставьте это:if ((document.selection))
{
document.form.ИМЯ_ТЕКСТАРЕИ.focus();//Установка фокуса
var ran = form.ИМЯ_ТЕКСТАРЕИ.createTextRange();
var s=document.form.document.selection;//Делаем объект из выделенного текста
var r = s.createRange();
var len = r.text.length;//Считаем количество символов в выделенном тексте
var sc=r;
var scr=text1+sc.text+text2;//Оборачиваем выделенный текст ВВ тегами
len = len + 7;//Вычисляем разницу между выделенным текстом итекстом с тегами
document.form.ИМЯ_ТЕКСТАРЕИ.focus();
//Определяем браузер
var m_Name = navigator.appName;
//Смещаем указатель на новую позицию
if (m_Name.indexOf("Explorer") != -1) {
r.moveStart("character",1)//Если "Explorer"alert(len)
}
else{
r.moveEnd("character", len)
}
//Вставляем текст с ВВ тегами
document.form.document.selection.createRange().text = scr;
}
else if(document.forms['form'].elements['ИМЯ_ТЕКСТАРЕИ'].selectionStart != undefined) {
var element = document.forms['form'].elements['ИМЯ_ТЕКСТАРЕИ'];
var str = element.value;
var start = element.selectionStart;
var length = element.selectionEnd - element.selectionStart;
var rv=str.substr(0, start) + text1 + str.substr(start, length) + text2 + str.substr(start + length)
element.value = rv;
r = s.createRange();
}
}
Код
<img src=images/italic.gif style='cursor:pointer' onClick="java script:tag('[i]', '[/i]'); return false;/>
<img src=images/under.gif style='cursor:pointer' onClick="java script:tag('[u]', '[/u]'); return false;"/>
<img src=images/strike.gif style='cursor:pointer' onClick="java script:tag('[s]', '[/s]'); return false;"/>
<img src=images/bold.gif style='cursor:pointer;' onClick="java script:tag('[b]', '[/b]'); return false;"/>
и так далее
<img src=images/under.gif style='cursor:pointer' onClick="java script:tag('[u]', '[/u]'); return false;"/>
<img src=images/strike.gif style='cursor:pointer' onClick="java script:tag('[s]', '[/s]'); return false;"/>
<img src=images/bold.gif style='cursor:pointer;' onClick="java script:tag('[b]', '[/b]'); return false;"/>
и так далее
сверху ваших "регулярок" напишите
Код
function bb_replace($var)
{
{
а снизу:
Код
return $var;
}
}
теперь останется обработать этой функцией выводимый текст, и вуаля.
Что не получится, пишите.
Спустя 28 минут, 53 секунды (5.10.2008 - 14:25) Bl@ck написал(а):
Спс! Щас буду пробовать!
Спустя 23 минуты, 3 секунды (5.10.2008 - 14:48) Bl@ck написал(а):
Код
############### БЛОК ДОБАВЛЕНИЯ ТОВАРОВ ###############
function bb_replace($var)
{
$var = str_replace("[b]","<strong>", $var);
$var = str_replace("[/b]","</strong>", $var);
$var = str_replace("[i]","<i>", $var);
$var = str_replace("[/i]","</i>", $var);
$var = str_replace("[u]","<u>", $var);
$var = str_replace("[/u]","</u>", $var);
$var = str_replace("[hr]","<hr noshade color=\"#999999\" size=\"1\">", $var);
$var = str_replace("[/hr]","", $var);
$var = str_replace("[li]","<li>", $var);
$var = str_replace("[/li]","</li>", $var);
$var = str_replace("[up]","<span class=up>",$var);
$var = str_replace("[/up]","</span>",$var);
$var = preg_replace("#\[align=(left|right)\](.*?)\[/align\]#si", "<div style=\"text-align:\\1\">\\2</div>", $var);
$var = preg_replace("#\[url=(.*?)\](.*?)\[/url\]#si", "<a class=\"u\" target=\"_blank\" href=\"\\1\">\\2</a>", $var);
$var = preg_replace("#\[url\](.*?)\[/url\]#si", "<a class=\"u\" target=\"_blank\" href=\"\\1\">\\1</a>", $var);
$var = str_replace("[CENTER]","<center>",$var);
$var = str_replace("[/CENTER]","</center>",$var);
$var = str_replace("[color=red]","<font color=#B71E2D>",$var);
$var = str_replace("[COLOR=blue]","<font color=#336699>",$var);
$var = str_replace("[COLOR=orange]","<font color=#FF9900>",$var);
$var = str_replace("[COLOR=gray]","<font color=#999999>",$var);
$var = str_replace("[COLOR=green]","<font color=#006633>",$var);
$var = str_replace("[/color]","</font>",$var);
return $var;
}
function tag(text1, text2){
if ((document.selection))
{
document.form.description.focus();//Установка фокуса
var ran = form.description.createTextRange();
var s=document.form.document.selection;//Делаем объект из выделенного текста
var r = s.createRange();
var len = r.text.length;//Считаем количество символов в выделенном тексте
var sc=r;
var scr=text1+sc.text+text2;//Оборачиваем выделенный текст ВВ тегами
len = len + 7;//Вычисляем разницу между выделенным текстом итекстом с тегами
document.form.description.focus();
//Определяем браузер
var m_Name = navigator.appName;
//Смещаем указатель на новую позицию
if (m_Name.indexOf("Explorer") != -1) {
r.moveStart("character",1)//Если "Explorer"alert(len)
}
else{
r.moveEnd("character", len)
}
//Вставляем текст с ВВ тегами
document.form.document.selection.createRange().text = scr;
}
else if(document.forms['form'].elements['description'].selectionStart != undefined) {
var element = document.forms['form'].elements['description'];
var str = element.value;
var start = element.selectionStart;
var length = element.selectionEnd - element.selectionStart;
var rv=str.substr(0, start) + text1 + str.substr(start, length) + text2 + str.substr(start + length)
element.value = rv;
r = s.createRange();
}
}
elseif (@$_GET['op'] == "add_item")
{
if (@$_POST['title']) // если POST массив не пуст
{
// преобразовываем зарезервированные в HTML символы
// и устанавливаем тип переменных в числа
$id_category = intval ($_POST['id_category']);
$price = intval ($_POST['price']);
$title = htmlspecialchars ($_POST['title']);
$description = htmlspecialchars ($_POST['description']);
// Проверим наличие стоимости
if (!$price) die ("<br /><br /><center><strong>
Введите нормальную стоимость, без точек и запятых!</strong></center>");
// экранируем
if (!get_magic_quotes_gpc())
{
$title = mysql_escape_string($title);
$description = mysql_escape_string($description);
}
else
{
$title = str_replace("'","`",$title);
$description = str_replace("'","`",$description);
}
// вставляем данные в БД
$query = mysql_query("
INSERT jic_item
SET id_category = '$id_category',
title = '$title',
description = '$description',
price = '$price',
money_type = '".$_POST['money_type']."',
print_to_index = '".$_POST['print_to_index']."'
");
// если удачно, то...
if($query) echo "<br /><br /><center><strong>Товар добавлен</strong></center>";
// если не удачно, то
else echo "<br /><br /><center><strong>Ошибка при добавлении товара</strong></center>";
}
// иначе выводим форму для заполнения
else
{
echo "<table align=center cellspacing=2 cellpadding=2 border=0>
<tr><td align=right><br /><FORM METHOD=POST
ACTION=\"http://".$_SERVER['HTTP_HOST']."/".$dir."admin/cat/add_item/\">
Название: <input type=text size=60 maxlength=250 name=title><br /><br />
Описание: <textarea rows=6 cols=60 name=description></textarea><br /><br />
Выберите категорию: <select name=id_category>";
// ф-ия обхода дерева категорий
function subcategory_it($id, $sub)
{
$categories = mysql_query("SELECT * FROM jic_category WHERE root_cat = $id ORDER by name_cat ASC");
while($category = mysql_fetch_array($categories))
{
echo "<option value=\"".$category['cat_id']."\">";
for($i = 0; $i < $sub; $i++) echo " ";
echo " ".$category['name_cat']." ";
subcategory_it($category['cat_id'], $sub+1);
}
}
$categories = mysql_query("SELECT * FROM jic_category WHERE root_cat = 0 ORDER by name_cat ASC");
while($category = mysql_fetch_array($categories))
{
$sub = 1;
echo "<optgroup label=\"".$category['name_cat']."\">";
subcategory_it($category['cat_id'], $sub);
}
echo "</select><br /><br />
Стоимость: <input type=text size=60 maxlength=9 name=price><br /><br />
Вид валюты: <select name=money_type>
<option value=\"R\" selected>Рубли</option>
<option value=\"D\">Доллары США</option>
<option value=\"E\">Евро</option>
<option value=\"G\">Гривны</option>
</select><br /><br />
Показывать на главной странице? <select name=print_to_index>
<option value=\"yes\" selected>Да, показывать</option>
<option value=\"no\">Нет</option>
</select><br /><br />
<input type=submit value=Добавить наименование товара>
</form></td></tr></table>";
}
}
############### КОНЕЦ БЛОКА ДОБАВЛЕНИЯ ТОВАРОВ ###############
function bb_replace($var)
{
$var = str_replace("[b]","<strong>", $var);
$var = str_replace("[/b]","</strong>", $var);
$var = str_replace("[i]","<i>", $var);
$var = str_replace("[/i]","</i>", $var);
$var = str_replace("[u]","<u>", $var);
$var = str_replace("[/u]","</u>", $var);
$var = str_replace("[hr]","<hr noshade color=\"#999999\" size=\"1\">", $var);
$var = str_replace("[/hr]","", $var);
$var = str_replace("[li]","<li>", $var);
$var = str_replace("[/li]","</li>", $var);
$var = str_replace("[up]","<span class=up>",$var);
$var = str_replace("[/up]","</span>",$var);
$var = preg_replace("#\[align=(left|right)\](.*?)\[/align\]#si", "<div style=\"text-align:\\1\">\\2</div>", $var);
$var = preg_replace("#\[url=(.*?)\](.*?)\[/url\]#si", "<a class=\"u\" target=\"_blank\" href=\"\\1\">\\2</a>", $var);
$var = preg_replace("#\[url\](.*?)\[/url\]#si", "<a class=\"u\" target=\"_blank\" href=\"\\1\">\\1</a>", $var);
$var = str_replace("[CENTER]","<center>",$var);
$var = str_replace("[/CENTER]","</center>",$var);
$var = str_replace("[color=red]","<font color=#B71E2D>",$var);
$var = str_replace("[COLOR=blue]","<font color=#336699>",$var);
$var = str_replace("[COLOR=orange]","<font color=#FF9900>",$var);
$var = str_replace("[COLOR=gray]","<font color=#999999>",$var);
$var = str_replace("[COLOR=green]","<font color=#006633>",$var);
$var = str_replace("[/color]","</font>",$var);
return $var;
}
function tag(text1, text2){
if ((document.selection))
{
document.form.description.focus();//Установка фокуса
var ran = form.description.createTextRange();
var s=document.form.document.selection;//Делаем объект из выделенного текста
var r = s.createRange();
var len = r.text.length;//Считаем количество символов в выделенном тексте
var sc=r;
var scr=text1+sc.text+text2;//Оборачиваем выделенный текст ВВ тегами
len = len + 7;//Вычисляем разницу между выделенным текстом итекстом с тегами
document.form.description.focus();
//Определяем браузер
var m_Name = navigator.appName;
//Смещаем указатель на новую позицию
if (m_Name.indexOf("Explorer") != -1) {
r.moveStart("character",1)//Если "Explorer"alert(len)
}
else{
r.moveEnd("character", len)
}
//Вставляем текст с ВВ тегами
document.form.document.selection.createRange().text = scr;
}
else if(document.forms['form'].elements['description'].selectionStart != undefined) {
var element = document.forms['form'].elements['description'];
var str = element.value;
var start = element.selectionStart;
var length = element.selectionEnd - element.selectionStart;
var rv=str.substr(0, start) + text1 + str.substr(start, length) + text2 + str.substr(start + length)
element.value = rv;
r = s.createRange();
}
}
elseif (@$_GET['op'] == "add_item")
{
if (@$_POST['title']) // если POST массив не пуст
{
// преобразовываем зарезервированные в HTML символы
// и устанавливаем тип переменных в числа
$id_category = intval ($_POST['id_category']);
$price = intval ($_POST['price']);
$title = htmlspecialchars ($_POST['title']);
$description = htmlspecialchars ($_POST['description']);
// Проверим наличие стоимости
if (!$price) die ("<br /><br /><center><strong>
Введите нормальную стоимость, без точек и запятых!</strong></center>");
// экранируем
if (!get_magic_quotes_gpc())
{
$title = mysql_escape_string($title);
$description = mysql_escape_string($description);
}
else
{
$title = str_replace("'","`",$title);
$description = str_replace("'","`",$description);
}
// вставляем данные в БД
$query = mysql_query("
INSERT jic_item
SET id_category = '$id_category',
title = '$title',
description = '$description',
price = '$price',
money_type = '".$_POST['money_type']."',
print_to_index = '".$_POST['print_to_index']."'
");
// если удачно, то...
if($query) echo "<br /><br /><center><strong>Товар добавлен</strong></center>";
// если не удачно, то
else echo "<br /><br /><center><strong>Ошибка при добавлении товара</strong></center>";
}
// иначе выводим форму для заполнения
else
{
echo "<table align=center cellspacing=2 cellpadding=2 border=0>
<tr><td align=right><br /><FORM METHOD=POST
ACTION=\"http://".$_SERVER['HTTP_HOST']."/".$dir."admin/cat/add_item/\">
Название: <input type=text size=60 maxlength=250 name=title><br /><br />
Описание: <textarea rows=6 cols=60 name=description></textarea><br /><br />
Выберите категорию: <select name=id_category>";
// ф-ия обхода дерева категорий
function subcategory_it($id, $sub)
{
$categories = mysql_query("SELECT * FROM jic_category WHERE root_cat = $id ORDER by name_cat ASC");
while($category = mysql_fetch_array($categories))
{
echo "<option value=\"".$category['cat_id']."\">";
for($i = 0; $i < $sub; $i++) echo " ";
echo " ".$category['name_cat']." ";
subcategory_it($category['cat_id'], $sub+1);
}
}
$categories = mysql_query("SELECT * FROM jic_category WHERE root_cat = 0 ORDER by name_cat ASC");
while($category = mysql_fetch_array($categories))
{
$sub = 1;
echo "<optgroup label=\"".$category['name_cat']."\">";
subcategory_it($category['cat_id'], $sub);
}
echo "</select><br /><br />
Стоимость: <input type=text size=60 maxlength=9 name=price><br /><br />
Вид валюты: <select name=money_type>
<option value=\"R\" selected>Рубли</option>
<option value=\"D\">Доллары США</option>
<option value=\"E\">Евро</option>
<option value=\"G\">Гривны</option>
</select><br /><br />
Показывать на главной странице? <select name=print_to_index>
<option value=\"yes\" selected>Да, показывать</option>
<option value=\"no\">Нет</option>
</select><br /><br />
<input type=submit value=Добавить наименование товара>
</form></td></tr></table>";
}
}
############### КОНЕЦ БЛОКА ДОБАВЛЕНИЯ ТОВАРОВ ###############
Пытаюсь проверить (кнопок не вставляю еще) выдает пустую страницу при попытке добавления товара, либо категории, мне кажется что чего-то нехватает в БД
Спустя 1 час, 7 минут, 34 секунды (5.10.2008 - 15:55) twin написал(а):
Не-не-не-не-не!!!!
Это разные скрипты.
Первый - это JS, кнопки нужно в HTML, а Ваши регуляркии отдельным файлом (php) лучше и инклюдить к странице(ам), где вывод.
Найдите файл, где форма редактирования и в студию, я подскажу куда и как.
Это разные скрипты.
Первый - это JS, кнопки нужно в HTML, а Ваши регуляркии отдельным файлом (php) лучше и инклюдить к странице(ам), где вывод.
Найдите файл, где форма редактирования и в студию, я подскажу куда и как.
Спустя 2 часа, 33 минуты, 50 секунд (5.10.2008 - 18:29) Bl@ck написал(а):
Всем спасибо! Тему можно закрыть, разобрался!
_____________