загрузка...
Люди города Кстово
ЗДЕСЬ МОЖЕТ БЫТЬ ВАША РЕКЛАМА! (980х100px) Подробнее...
Нижегородская область, город Кстово
Индекс: 607650
Координатыты: 56°9'6" N 44°11'44" E
Прогноз погоды: Сегодня днем +8oC Ветер: С, 2 м/сек Атм.д.: 746 мм.рт.ст. Прогноз погоды: Завтра ночью +3oC Ветер: З, 3 м/сек Атм.д.: 748 мм.рт.ст. Прогноз погоды: Завтра днем +10oC Ветер: С-З, 5 м/сек Осадки: да Атм.д.: 754 мм.рт.ст. Прогноз погоды: Послезавтра ночью +3oC Ветер: Ю, 5 м/сек Атм.д.: 758 мм.рт.ст. Курс Доллара: $   56.2307 руб. (на 2017 - 04 - 24) Курс Евро:   60.3187 руб. (на 2017 - 04 - 24)

ФОРУМ ЗЕМЛЯКОВ

Главная форума     Новые сообщения     Поиск по форуму     Кто на форуме

Зарегистрироваться | Войти
АВТОРИЗОВАТЬСЯ МОЖНО ЧЕРЕЗ СОЦСЕТИ:

ОбновитьПоследние сообщения на форуме:

Форум » Портал kstovo.ru » Глюки на форуме
Просмотр темы: 7274
Сообщения [ с 1 по 30 из 46 ]
Mak
Off-Line
Персональная информация

Регистрация: 11.04.2011
Сообщений: 684
Пол: Мужчина

Предупреждений: 0
Предупреждений: 0 
 Дата: 12 Сентября 2013, 11:16
Не знаю куда еще написать ..

Создаю тему, получаю сообщение:
Заголовок темы: Снова про Linux. Кто его разрабатывает?
Request-URI Too Large
The requested URL's length exceeds the capacity limit for this server.
Apache/2.0.52 (CentOS) Server at default Port 80


Текст "Снова про Linux. Кто его разрабатывает?" слишком длинный для названия темы?
Вниз Вверх
0
Mr.Miksar
Off-Line
Персональная информация

Регистрация: 29.12.2007
Сообщений: 2121
Пол: Мужчина
 Дата: 12 Сентября 2013, 15:24
Выйду из отпуска - буду смотреть. Врятли дело в заголовке. были и подлиннее ))

С винды пост делали?
Вниз Вверх
0
Mak
Off-Line
Персональная информация

Регистрация: 11.04.2011
Сообщений: 684
Пол: Мужчина

Предупреждений: 0
Предупреждений: 0 
 Дата: 12 Сентября 2013, 17:03
C Linux, Chrome
Мне показалось, что трабл связан с Аяксом, который пытается на лету найти похожие темы
Вниз Вверх
0
Mr.Miksar
Off-Line
Персональная информация

Регистрация: 29.12.2007
Сообщений: 2121
Пол: Мужчина
 Дата: 12 Сентября 2013, 18:46
Mak, так ошибка была при отправлении формы или при вводе текста?
Вниз Вверх
0
Mak
Off-Line
Персональная информация

Регистрация: 11.04.2011
Сообщений: 684
Пол: Мужчина

Предупреждений: 0
Предупреждений: 0 
 Дата: 12 Сентября 2013, 23:46
Mak, так ошибка была при отправлении формы или при вводе текста?

В смысле?

Кстати, при попытке вставить цитату тоже сплошные глюки ..
(ну или я абсолютно тупой, ни разу не получилось сделать это по нормальному ...)
Вниз Вверх
0
Mr.Miksar
Off-Line
Персональная информация

Регистрация: 29.12.2007
Сообщений: 2121
Пол: Мужчина
 Дата: 13 Сентября 2013, 00:52
Mak, ну гришь что возможно ошибка связана при поиске похожей темы на лету. Там скрипт отрабатывает только при вводе текста в поле для заголовка.

С цитатой да. Туго. Но это так сделано на новой версии движка этого сайта. (т.е. исходной версии).
Хочется конечно реализовать как на vBuletin, но пока не получается. Не силен я в javaScript

Работает так - ставим курсор в поле ввода текста (обозначаем объект(поле) куда цитировать). потом выделяем нужный нам кусок текста. жмем на кнопку цитаты - цитата выделенного куска вставляется в указанное поле. Ну а если просто нажать - то вставятся теги цитаты.
Мож чего переделают еще )))
Вниз Вверх
0
Mak
Off-Line
Персональная информация

Регистрация: 11.04.2011
Сообщений: 684
Пол: Мужчина

Предупреждений: 0
Предупреждений: 0 
 Дата: 13 Сентября 2013, 08:22
Ошибка вылезла при наборе названия новой темы
Вниз Вверх
0
Mak
Off-Line
Персональная информация

Регистрация: 11.04.2011
Сообщений: 684
Пол: Мужчина

Предупреждений: 0
Предупреждений: 0 
 Дата: 13 Сентября 2013, 12:13
С цитатой да. Туго. Но это так сделано на новой версии движка этого сайта. (т.е. исходной версии).
Хочется конечно реализовать как на vBuletin, но пока не получается. Не силен я в javaScript


Файлик insert_code.js
PHP - Код // вставка тегов в редакторе

// Browser check
var ClientPC = navigator.userAgent.toLowerCase();
var
ClientVer = parseInt(navigator.appVersion);
var
IsIE = ((ClientPC.indexOf("msie") != -1) && (ClientPC.indexOf("opera") == -1));
var
IsWin = ((ClientPC.indexOf("win") != -1) || (ClientPC.indexOf("16bit") != -1));

// Increase the text field
function RowsTextarea(h, id) {
var
inrows = document.getElementById(id);
if (
h < 1) {
var
rows = -5;
} else {
var
rows = +5;
}
var
outrows = inrows.rows + rows;
if (
outrows >= 5 && outrows < 50) {
inrows.rows = outrows;
}
return
false;
}

// Defining a text field
function FieldName(text, id) {
if (
text.createTextRange) {
text.caretPos = document.selection.createRange().duplicate();
}
if (
id != "") {
var
Field = document.getElementById(id);
SelField = Field;
TxtFeld = Field;
}
}

// Add code in BB Editor
function AddCode(id, area, open, close) {
//alert(id)
if (id == 1) {
sel = document.selection.createRange();
var
l = sel.text.length;
sel.text = open+sel.text+close;
sel.moveEnd("character", -close.length);
sel.moveStart("character", -l);
sel.select();
return
false;
} else if (
id == 2) {
var
ss = area.scrollTop;
if (
SelField.createTextRange && SelField.caretPos && close == 'n') {
var
caretPos = SelField.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? open + close + ' ' : open + close;
SelField.focus();
} else if (
SelField.caretPos) {
SelField.caretPos.text = open + SelField.caretPos.text + close;
} else {
SelField.value += open + close;
SelField.focus();
}
area.scrollTop = ss;
} else if (
id == 3) {
var
ss = area.scrollTop;
sel1 = area.value.substr(0, area.selectionStart);
sel2 = area.value.substr(area.selectionEnd);
sel = area.value.substr(area.selectionStart, area.selectionEnd - area.selectionStart);
area.value = sel1 + open + sel + close + sel2;
area.selectionStart = sel1.length + open.length;
area.selectionEnd = area.selectionStart + sel.length;
area.scrollTop = ss;
return
false;
}
}



function
InsertCode(code, info, type, error, id, w, h, tit) {
if (
w == '') {
var
w = 500;
}
if (
h == '') {
var
h = 500;
}
if (
tit == '') {
var
tit = 'KSTOVO.ru';
}
var
area = document.getElementById(id);
if ((
ClientVer >= 4) && IsIE && IsWin) {
var
selection = document.selection.createRange().text;
var
client = 1;
} else {
var
selection = document.getSelection();
var
client = 3;
}
if (
code != 'quote' || (code == 'quote' && selection == '')) area.focus();
if (
code == 'name') {
AddCode(client, area, '[b]' + info + '[/b]', ', ');
} else if (
code == 'url' || code == 'mail') {
if (
code == 'url') var url = prompt(info, 'http://');
if (
code == 'mail') var url = prompt(info, '');
if (!
url) return alert(error);
if ((
client == 1 && !selection) || (client == 3 && area.selectionEnd && (area.selectionEnd - area.selectionStart <= 0))) {
var
title = prompt(type, type);
AddCode(client, area, '[' + code + '=' + url + ']' + title + '[/' + code + ']', 'n');
} else {
AddCode(client, area, '[' + code + '=' + url + ']', '[/' + code + ']');
}
} else if (
code == 'color' || code == 'family' || code == 'size') {
AddCode(client, area, '[' + code + '=' + info + ']', '[/' + code + ']');
} else if (
code == 'li' || code == 'hr') {
AddCode(client, area, '[' + code + ']', '');
} else if (
code == 'attach') {
// rel=rel
AddCode(client, area, '[' + code + '=' + info + ' align=left title=' + tit + ' width=' + w + ' height=' + h + ']', ' ');
} else if (
code == 'v') {
// rel=rel
AddCode(client, area, '[' + code + '=' + tit + ']' + info + '[/' + code + ']', ' ');
} else if (
code == 'a') {
// rel=rel
AddCode(client, area, '[' + code + '=' + tit + ']' + info + '[/' + code + ']', ' ');
} else if (
code == 'smilies') {
AddCode(client, area, info, '');
} else if (
code == 'img') {
if (
info && !type && !error) {
AddCode(client, area, '[' + code + ' width=' + w + ' alt=' + tit + ']' + info +'[/' + code + ']', ' ');
} else {
var
url = prompt(info, '');
if (!
url) return alert(error);
if ((
client == 1 && !selection) || (client == 3 && area.selectionEnd && (area.selectionEnd - area.selectionStart <= 0))) {
var
title = prompt(type, type);
if (
title) {
AddCode(client, area, '[' + code + ' width=' + w + ' alt=' + title + ']' + url + '[/' + code + ']', ' ');
} else {
AddCode(client, area, '[' + code + ' width=' + w + ' alt=' + tit + ']' + url + '[/' + code + ']', ' ');
}
} else {
AddCode(client, area, '[' + code + ' width=' + w + ' alt=' + tit + ']' + url + '[/' + code + ']', ' ');
}
}
} else {
if (
code == 'quote' && selection != '') {
AddCode(2, area, '[' + code + ']' + selection + '[/' + code + ']', 'n');
} else {
if (
code == 'quote' && selection == '') alert(info);
AddCode(client, area, '[' + code + ']', '[/' + code + ']', 'n');
}
}
}

.............................
}


В функции InsertCode попробуй вместо
if (code != 'quote' || (code == 'quote' && selection == '')) area.focus();
оставить просто
area.focus();

Наверное фокус на поле ввода нужно всегда делать, а не только когда selection не пустое
По крайней мере если фокус есть, все работает нормально
Сообщение отредактировано: Mak (13 Сентября 2013, 12:14)
Вниз Вверх
0
Mr.Miksar
Off-Line
Персональная информация

Регистрация: 29.12.2007
Сообщений: 2121
Пол: Мужчина
 Дата: 13 Сентября 2013, 15:14
Когда два поля - будут наверное конфликтовать. нет?
Вниз Вверх
0
Mak
Off-Line
Персональная информация

Регистрация: 11.04.2011
Сообщений: 684
Пол: Мужчина

Предупреждений: 0
Предупреждений: 0 
 Дата: 13 Сентября 2013, 16:45
Каких два поля?

Там area ссылается на поле, которое ты передаешь как параметр id
На странице это поле с id "l"

PHP - Код function InsertCode(code, info, type, error, id, w, h, tit) {
...............
var
area = document.getElementById(id);

Вниз Вверх
0
Mr.Miksar
Off-Line
Персональная информация

Регистрация: 29.12.2007
Сообщений: 2121
Пол: Мужчина
 Дата: 13 Сентября 2013, 21:52
Mak, в админке импользуется два текстовых поля. скрипт для них одни рабетает.
Вниз Вверх
0
Mak
Off-Line
Персональная информация

Регистрация: 11.04.2011
Сообщений: 684
Пол: Мужчина

Предупреждений: 0
Предупреждений: 0 
 Дата: 13 Сентября 2013, 22:57
При вызове функции указывается для какого элемента он применяется
С двумя полями проблем быть не должно, ты указываешь к какому полю оно применяется
Вниз Вверх
0
Mr.Miksar
Off-Line
Персональная информация

Регистрация: 29.12.2007
Сообщений: 2121
Пол: Мужчина
 Дата: 15 Сентября 2013, 10:15
Mak, а в чем разница тогда от того кода, что сейчас работает? Все равно надо указать с каким полем работаешь...
Вниз Вверх
0
Mak
Off-Line
Персональная информация

Регистрация: 11.04.2011
Сообщений: 684
Пол: Мужчина

Предупреждений: 0
Предупреждений: 0 
 Дата: 15 Сентября 2013, 11:45
if (code != 'quote' || (code == 'quote' && selection == '')) area.focus();

Сейчас фокус на поле area делается только если
code не равен 'quote' или (code равен 'quote' и selection есть пустая строка)

Во всех этих случаях вставка срабатывает правильно
Если же условие не выполняется (и команда area.focus() не срабатывает)
то вставка не работает

ПРОСТО ПОПРОБУЙ сделать то, что я написал выше
Вниз Вверх
0
Mr.Miksar
Off-Line
Персональная информация

Регистрация: 29.12.2007
Сообщений: 2121
Пол: Мужчина
 Дата: 15 Сентября 2013, 23:15
При случае. Незачем кричать. Что то выделять и прочее просто так...
Вниз Вверх
0
Mak
Off-Line
Персональная информация

Регистрация: 11.04.2011
Сообщений: 684
Пол: Мужчина

Предупреждений: 0
Предупреждений: 0 
 Дата: 16 Сентября 2013, 10:42
Я не кричу, сделал выделения для лучшего понимания ..

ЗЫ. Собственно и говорить то не о чем
Заменить 1 строчку на хостинге - дело пяти минут,
А мы уже скоро неделя как это обсуждаем ... :)
Вниз Вверх
0
Mr.Miksar
Off-Line
Персональная информация

Регистрация: 29.12.2007
Сообщений: 2121
Пол: Мужчина
 Дата: 16 Сентября 2013, 12:13
Mak, я в отпуске.
У меня еще куча заказов. Все не успеваю.
Блин, я поваляться на диване хочу. В гараж хочу сходить - разобрать.
В игрухи поиграть ))

Отпуска хочу ))
Вниз Вверх
0
Mak
Off-Line
Персональная информация

Регистрация: 11.04.2011
Сообщений: 684
Пол: Мужчина

Предупреждений: 0
Предупреждений: 0 
 Дата: 16 Сентября 2013, 12:46
Счасливчик :)
Я в этом году в отпуске формально был два раза,
а фактически не факт что получится ...
Вниз Вверх
0
Mr.Miksar
Off-Line
Персональная информация

Регистрация: 29.12.2007
Сообщений: 2121
Пол: Мужчина
 Дата: 16 Сентября 2013, 17:49
Попробовал без условия - выделенный текст не цитируется.
попробовал вариант:
Кодif ((code == 'quote' && selection == '')) area.focus();

Без указания поля - не цитирует...
Вниз Вверх
0
Mak
Off-Line
Персональная информация

Регистрация: 11.04.2011
Сообщений: 684
Пол: Мужчина

Предупреждений: 0
Предупреждений: 0 
 Дата: 16 Сентября 2013, 22:06
Ладно, похоже в скриптах есть и другие ошибки, и все немного сложнее ...

Смотрим в отладчике в Лисе:

В том же файле есть функция
PHP - Код function FieldName(text, id) {
if (
text.createTextRange) {
text.caretPos = document.selection.createRange().duplicate();
}
if (
id != "") {
var
Field = document.getElementById(id);
SelField = Field;
TxtFeld = Field;
}
}


Она вызывается при попадании фокуса на текстовое поле, и записывает ссылку на это поле в переменные
SelField = Field;
TxtFeld = Field;
(последняя наверное опечатка)

Эта функция не вызывается (и не устанавливает значение для SelField) как раз в тех случаях, когда вставка не работает. Функция вставки вылетает по ошибке на строке
if (SelField.createTextRange && SelField.caretPos && close == 'n') {
поскольку SelField в этот момент не определено

При правильном срабатываении там же и фокус на нужно поле делается (так что предыдущая правка, та что ты проверил, оказывается лишней, она не работает).

Причем смысл всех этих сложностей непонятен, поскольку тоже самое значение (что и SelField) передается в функцию как параметр area. Все это похоже на костыли, которые кто-то к чужому алгоритму приделал. Это могло бы пригодиться, если есть два текстовых поля для вставки, а кнопка вставки ("") одна на двоих. И то не уверен, что в этом случае правильно сработает.

Похоже, что вот в этом фрагменте кода изначально вместо SelField стояло area
PHP - Код } else if (id == 2) {
var
ss = area.scrollTop;
if (
SelField.createTextRange && SelField.caretPos && close == 'n') {
var
caretPos = SelField.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? open + close + ' ' : open + close;
SelField.focus();
} else if (
SelField.caretPos) {
SelField.caretPos.text = open + SelField.caretPos.text + close;
} else {
SelField.value += open + close;
SelField.focus();
}
area.scrollTop = ss;

Изменения были сделаны для работы с двумя текстовыми полями и одним экземпляром кнопок
Но сделаны были неудачно, в результате появился тот глюк что мы видим

Короче, первым оператором в функцию AddCode вставь строчку:
PHP - Код function AddCode(id, area, open, close) {
if (
typeof SelField == "undefined") SelField = area; // вставь меня
if (id == 1) {
sel = document.selection.createRange();
var
l = sel.text.length;
sel.text = open+sel.text+close;
sel.moveEnd("character", -close.length);
sel.moveStart("character", -l);
sel.select();
return
false;
} else if (
id == 2) {
var
ss = area.scrollTop;
if (
SelField.createTextRange && SelField.caretPos && close == 'n') {
.........

При этом и существующий функционал не нарушится, и в случае отсутствия переменной SelField работать должно
Вниз Вверх
0
Mr.Miksar
Off-Line
Персональная информация

Регистрация: 29.12.2007
Сообщений: 2121
Пол: Мужчина
 Дата: 16 Сентября 2013, 22:28
ну я и говорю. в админке по два поля. редактор аналагичный для обоих.
раньше небыло цитирования выделеного текста. И функции отправлялись в авно указанное поле. А теперь все на фокусировку переделали...
Вниз Вверх
0
Mak
Off-Line
Персональная информация

Регистрация: 11.04.2011
Сообщений: 684
Пол: Мужчина

Предупреждений: 0
Предупреждений: 0 
 Дата: 16 Сентября 2013, 23:05
Попробуй строчку добавить,
PHP - Код if (typeof SelField == "undefined") SelField = area; // вставь меня

она только исправляет глюки, не мешая существующему функционалу
Вниз Вверх
1
Mak
Off-Line
Персональная информация

Регистрация: 11.04.2011
Сообщений: 684
Пол: Мужчина

Предупреждений: 0
Предупреждений: 0 
 Дата: 18 Сентября 2013, 14:16
Проверил в отладчике - работает
Вниз Вверх
0
Mr.Miksar
Off-Line
Персональная информация

Регистрация: 29.12.2007
Сообщений: 2121
Пол: Мужчина
 Дата: 18 Сентября 2013, 21:24
Вставил. Вроде работает. Спасибо.
Потом с двумя полями проверю....
Вниз Вверх
0
Mak
Off-Line
Персональная информация

Регистрация: 11.04.2011
Сообщений: 684
Пол: Мужчина

Предупреждений: 0
Предупреждений: 0 
 Дата: 19 Сентября 2013, 14:32
Что опять случилось?
Вниз Вверх
0
Mr.Miksar
Off-Line
Персональная информация

Регистрация: 29.12.2007
Сообщений: 2121
Пол: Мужчина
 Дата: 19 Сентября 2013, 15:00
Mak, вы об чем? )
в случае двух полей по умолчанию идет в первое.
при фокусировке на второе поле - идет во второе...
Сообщение отредактировано: Mr.Miksar (19 Сентября 2013, 15:01)
Вниз Вверх
0
Mak
Off-Line
Персональная информация

Регистрация: 11.04.2011
Сообщений: 684
Пол: Мужчина

Предупреждений: 0
Предупреждений: 0 
 Дата: 19 Сентября 2013, 15:16
Уже не работает,
строчка из скрипта пропала ))
Вниз Вверх
0
Mr.Miksar
Off-Line
Персональная информация

Регистрация: 29.12.2007
Сообщений: 2121
Пол: Мужчина
 Дата: 19 Сентября 2013, 21:58
Все на месте. Я ничего не убирал. Кеш?
Вниз Вверх
0
Mak
Off-Line
Персональная информация

Регистрация: 11.04.2011
Сообщений: 684
Пол: Мужчина

Предупреждений: 0
Предупреждений: 0 
 Дата: 19 Сентября 2013, 23:00
Может и кеш, не проверял ..
Сейчас работает
Вниз Вверх
0
Mr.Miksar
Off-Line
Персональная информация

Регистрация: 29.12.2007
Сообщений: 2121
Пол: Мужчина
 Дата: 01 Октября 2013, 12:17
Mak пишет:
Текст "Снова про Linux. Кто его разрабатывает?" слишком длинный для названия темы?


Это постоянно было? Попробуй сейчас. немного поменял скрипт - теперь появляется все плавнее))
Да и вставка контента через JQuery. Вобщем потестить надо )
Сообщение отредактировано: Mr.Miksar (01 Октября 2013, 12:32)
Вниз Вверх
0
Просмотр темы: 7274
Сообщения [ с 1 по 30 из 46 ]

Тему читают: 0 чел.
kstovo.ru

© 2017 ООО «ИД «Земляки»

Свидетельство о регистрации СМИ
Эл № ФС77-33632 от 26.09.2008г.

Выдано Федеральной службой по надзору
в сфере связи и массовых коммуникаций.



vk.com В КОНТАКТЕ С КСТОВО.РУ

rss news RSS лента новостей

pda kstovo.ru PDA.КСТОВО.РУ


© Спецпроекты КСТОВО.РУ
Web-разработка © Mr.Miksar

Яндекс цитирования
Отдельные публикации могут содержать информацию, не предназначенную для пользователей младше 16 лет.