Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Олег Тюкавин
Зарегистрирован: 10.04.2008 Сообщения: 14 Откуда: Нижний Тагил
|
Добавлено: 2009-02-10 08:21 am Заголовок сообщения: BBcode в комментариях |
|
|
Здравствуйте.
Работая с видео-каталогом, думаю, каждому не хватало поддержки вставки ссылок и форматированного текста. Реализовал эту возможность полностью на JavaScript'e, использую лишь один файл — index.php. Инструкция по установке в аттаче. |
|
Вернуться к началу |
|
Balamutov
Зарегистрирован: 13.03.2008 Сообщения: 25
|
Добавлено: 2009-02-13 06:59 am Заголовок сообщения: |
|
|
Спасибо большое за проделанную работу. |
|
Вернуться к началу |
|
Diver
Зарегистрирован: 09.03.2008 Сообщения: 96
|
Добавлено: 2009-02-13 11:55 am Заголовок сообщения: |
|
|
Надеюсь, что этот мод появится в виде следующего обновления к каталогу. |
|
Вернуться к началу |
|
Олег Тюкавин
Зарегистрирован: 10.04.2008 Сообщения: 14 Откуда: Нижний Тагил
|
Добавлено: 2009-02-13 19:31 pm Заголовок сообщения: |
|
|
Diver писал(а): | Надеюсь, что этот мод появится в виде следующего обновления к каталогу. |
Я за, как одна из опций конфиг-файла, будет интересна многим. |
|
Вернуться к началу |
|
Alex
Зарегистрирован: 25.03.2009 Сообщения: 3
|
Добавлено: 2009-03-28 07:22 am Заголовок сообщения: |
|
|
Обыскал весь index.php так и не нашел стиль select.dropDownList
Не поскажете строку в которой он должен быть? |
|
Вернуться к началу |
|
zzaraza
Зарегистрирован: 26.12.2008 Сообщения: 40
|
Добавлено: 2009-03-28 07:36 am Заголовок сообщения: |
|
|
Alex писал(а): | Обыскал весь index.php так и не нашел стиль select.dropDownList
Не поскажете строку в которой он должен быть? |
Чувак, если ты не можеш даже строчку в коде найти то лучше вообще туда не лезь а строчка нужная тебе нахоидтся в конце кода |
|
Вернуться к началу |
|
Alex
Зарегистрирован: 25.03.2009 Сообщения: 3
|
Добавлено: 2009-03-28 08:26 am Заголовок сообщения: |
|
|
Вообще до этого, проблем с поиском не было
В упор не вижу
Код: | function doAddTags(tag1,tag2,obj){
textarea = document.getElementById(obj);
// Code for IE
if (document.selection) {
textarea.focus();
var sel = document.selection.createRange();
sel.text = tag1 + sel.text + tag2;
// Code for Mozilla Firefox
} else {
var len = textarea.value.length;
var start = textarea.selectionStart;
var end = textarea.selectionEnd;
var scrollTop = textarea.scrollTop;
var scrollLeft = textarea.scrollLeft;
var sel = textarea.value.substring(start, end);
var rep = tag1 + sel + tag2;
textarea.value = textarea.value.substring(0,start) + rep + textarea.value.substring(end,len);
textarea.scrollTop = scrollTop;
textarea.scrollLeft = scrollLeft;
}
}
function doURL(obj){
textarea = document.getElementById(obj);
var url = prompt('Введите ваш URL:','http://');
var scrollTop = textarea.scrollTop;
var scrollLeft = textarea.scrollLeft;
if(url){
if (document.selection) {
textarea.focus();
var sel = document.selection.createRange();
if(sel.text==""){
sel.text = '[url]' + url + '[/url]';
} else {
sel.text = '[url=' + url + ']' + sel.text + '[/url]';
}
} else {
var len = textarea.value.length;
var start = textarea.selectionStart;
var end = textarea.selectionEnd;
var sel = textarea.value.substring(start, end);
if(sel==""){
var rep = '[url]' + url + '[/url]';
} else {
var rep = '[url=' + url + ']' + sel + '[/url]';
}
textarea.value = textarea.value.substring(0,start) + rep + textarea.value.substring(end,len);
textarea.scrollTop = scrollTop;
textarea.scrollLeft = scrollLeft;
}
}
}
</script>
</head>
<body onLoad="Init()" >
<?php require_once "templates/{$config['template']}/main.php"; ?>
</body>
</html> |
|
|
Вернуться к началу |
|
zzaraza
Зарегистрирован: 26.12.2008 Сообщения: 40
|
Добавлено: 2009-03-28 11:19 am Заголовок сообщения: |
|
|
Alex писал(а): | Вообще до этого, проблем с поиском не было
В упор не вижу
Код: | function doAddTags(tag1,tag2,obj){
textarea = document.getElementById(obj);
// Code for IE
if (document.selection) {
textarea.focus();
var sel = document.selection.createRange();
sel.text = tag1 + sel.text + tag2;
// Code for Mozilla Firefox
} else {
var len = textarea.value.length;
var start = textarea.selectionStart;
var end = textarea.selectionEnd;
var scrollTop = textarea.scrollTop;
var scrollLeft = textarea.scrollLeft;
var sel = textarea.value.substring(start, end);
var rep = tag1 + sel + tag2;
textarea.value = textarea.value.substring(0,start) + rep + textarea.value.substring(end,len);
textarea.scrollTop = scrollTop;
textarea.scrollLeft = scrollLeft;
}
}
function doURL(obj){
textarea = document.getElementById(obj);
var url = prompt('Введите ваш URL:','http://');
var scrollTop = textarea.scrollTop;
var scrollLeft = textarea.scrollLeft;
if(url){
if (document.selection) {
textarea.focus();
var sel = document.selection.createRange();
if(sel.text==""){
sel.text = '[url]' + url + '[/url]';
} else {
sel.text = '[url=' + url + ']' + sel.text + '[/url]';
}
} else {
var len = textarea.value.length;
var start = textarea.selectionStart;
var end = textarea.selectionEnd;
var sel = textarea.value.substring(start, end);
if(sel==""){
var rep = '[url]' + url + '[/url]';
} else {
var rep = '[url=' + url + ']' + sel + '[/url]';
}
textarea.value = textarea.value.substring(0,start) + rep + textarea.value.substring(end,len);
textarea.scrollTop = scrollTop;
textarea.scrollLeft = scrollLeft;
}
}
}
</script>
</head>
<body onLoad="Init()" >
<?php require_once "templates/{$config['template']}/main.php"; ?>
</body>
</html> |
|
Забавно ) у меня содержание index.php отличается от твоего, может у тебя краденный дезенднутый двиг?, обнови скрипт может
Код: |
function Search(mysearch_num,offset) {
if (search_num==mysearch_num){
if (document.getElementById("byfilms").checked) {what = 'films';} else {what = 'persones';};
text = document.getElementById("textsearch").value;
if (text.length>1){
JsHttpRequest.query(
'actions.php?action=simplesearch&what='+what, // backend
{'text':text},
function(result, errors) {
if (errors.length) sys_message(errors);
if (result){
if (document.getElementById("gen_time")) document.getElementById("gen_time").innerHTML = Math.round(eval(result.gen_time)*100)/100 + " сек.";
if (result.fcount){
resultcount = result.fcount;
var outstr = new StringBuilder();
resn = 0;
outstr.append("<table>");
if (result.films_exact.length) outstr.append ("<tr><td colspan='2' style='font-weight:bold'>Точное совпадение</td></tr>");
for (var j=0; film = result.films_exact[j];j++){
outstr.append (RenderFilmShort(++resn,film));
}
if (result.films_part.length) outstr.append ("<tr><td colspan='2' style='font-weight:bold'>Частичное совпадение</td></tr>");
for (var j=0; film = result.films_part[j];j++){
outstr.append (RenderFilmShort(++resn,film));
}
if (result.films_approx.length) outstr.append ("<tr><td colspan='2' style='font-weight:bold'>Похожий результат</td></tr>");
for (var j=0; film = result.films_approx[j];j++){
outstr.append (RenderFilmShort(++resn,film));
}
outstr.append("</table>");
}
if (result.pcount){
resultcount = result.pcount;
var outstr = new StringBuilder();
resn = 0;
outstr.append("<table>");
if (result.persones_exact.length) outstr.append ("<tr><td colspan='2' style='font-weight:bold'>Точное совпадение</td></tr>");
for (var j=0; person = result.persones_exact[j];j++){
outstr.append (RenderPersonShort(++resn,person));
}
if (result.persones_part.length) outstr.append ("<tr><td colspan='2' style='font-weight:bold'>Частичное совпадение</td></tr>");
for (var j=0; person = result.persones_part[j];j++){
outstr.append (RenderPersonShort(++resn,person));
}
if (result.persones_approx.length) outstr.append ("<tr><td colspan='2' style='font-weight:bold'>Похожий результат</td></tr>");
for (var j=0; person = result.persones_approx[j];j++){
outstr.append (RenderPersonShort(++resn,person));
}
outstr.append("</table>");
}
if (resn) document.getElementById("resultsearch").innerHTML = "Найдено "+resultcount+":<br>" + outstr.toString();
else document.getElementById("resultsearch").innerHTML = "Ничего не найдено";
}
},
true
)
}
}
}
</script>
<style>
select.dropDownList
{
margin: 0;
padding: 0;
border: 1px solid #93aaba;
width: 200px;
overflow: hidden;
position: absolute;
left: 0;
background-color: #fff;
z-index:999;
display: block;
font-size: 8pt;
}
</style>
</head>
<body onLoad="Init()" >
<div id="sysmessagebox" style="margin:0px;padding:5px;border:1px solid silver; background-color:#F5F5C0; width:100%; display:none;">
<div style='float:right;'><a href='javascript:Hide("sysmessagebox")'>Закрыть</a></div>
<span id="sysmessage"></span>
</div>
<div id="messagebox" style="margin:0px;padding:5px;border:1px solid silver; background-color:#F5F5C0; width:100%; display:none;">
<div style='float:right;'><a href='javascript:Hide("messagebox")'>Закрыть</a></div>
<span id="message"></span>
</div>
<?php require_once "templates/{$config['template']}/main.php"; ?>
</body>
</html>
|
|
|
Вернуться к началу |
|
Александр Ефремов
Зарегистрирован: 07.05.2009 Сообщения: 2
|
Добавлено: 2009-05-07 20:04 pm Заголовок сообщения: |
|
|
Спасибо.
Только функции лучше переопределить в header.php вашего шаблона.
А стиль для кнопок указать в style.css.
И тогда проблем при обновлении, не возникнет. |
|
Вернуться к началу |
|
BadMan
Зарегистрирован: 30.09.2008 Сообщения: 40
|
Добавлено: 2010-11-11 07:07 am Заголовок сообщения: |
|
|
В отзыве BB-коды отрабатывают отлично, а вот на главной в альте последних отзывов обнаружилась проблемка (см. вложение).
Как можно подправить?
UPD:
Решил все с помощью одной функции.
Найти:
Код: |
document.getElementById("LastCommentsBox").innerHTML = outstr;
|
заменить на
Код: |
document.getElementById("LastCommentsBox").innerHTML = bbtagit(outstr);
|
вставить перед этой же строкой
Код: |
function bbtagit(text) {
text = text.replace(/\[b]([\s\S]*)/gim, '$1');
text = text.replace(/\[\/b\]([\s\S]*)/gim, '$1');
text = text.replace(/\[i\]([\s\S]*)/gim, '$1');
text = text.replace(/\[\/i\]([\s\S]*)/gim, '$1');
text = text.replace(/\[u\]([\s\S]*)/gim, '$1');
text = text.replace(/\[\/u\]([\s\S]*)/gim, '$1');
text = text.replace(/\[\/url\]([\s\S]*)/gim, '$1');
text = text.replace(/\[url=.*?]([\s\S]*)/gim, '$1');
return text
}
|
Нус, гуру, давайте оптимизировать
Последний раз редактировалось: BadMan (2010-11-19 17:26 pm), всего редактировалось 1 раз |
|
Вернуться к началу |
|
AiKON
Зарегистрирован: 13.08.2010 Сообщения: 30
|
Добавлено: 2010-11-14 19:07 pm Заголовок сообщения: |
|
|
Как же быть тем у кого версия скрипта 1.05 :?: |
|
Вернуться к началу |
|
Владимир
Зарегистрирован: 15.09.2010 Сообщения: 15
|
Добавлено: 2013-06-16 10:05 am Заголовок сообщения: |
|
|
Олег Тюкавин bb заработал, а вот доработка BadMan исправил на
text = text.replace(/\[url=*?]([\s\S]*)/gim, '$1');
text = text.replace(/\[\/url\]([\s\S]*)/gim, '$1');
Убрал точку и поменял местами строки.
, а в RSS ленте надо бы доработать ) |
|
Вернуться к началу |
|
|