Открыть Ответить

Ковыряние в bb редакторе.

5.00

5.00

1
02.04.2010 03:53:10 02.04.2010 03:56:36

Ух и тяжко же до форума у вас тут с 0 добираться... Ну да бог с ним.

На OpenSlaed 1.2 столкнулся с тем, что при использовании textarea() некорректно ведет себя bb-редактор. Вдумчиво почитал код и выяснил, что, например смайлы корректно могут работать только при

<br /> <form name=post><br /> и <br /> <textarea name=comment><br />


Решение в лоб и не слишком красивое, ну уж как смог:

  1. Конвертировать файл "ajax/insert_code.js" из cp-1251 в utf-8, для корректной работы транслитерации.

2. Если принять, что все ваши формы будут с именем post, то редактировать тот же файл:

Найти
<br /> function AddSmile(SmileCode) {<br /> var SmileCode;<br /> var newPost;<br /> var oldPost = SelField.value;<br /> newPost = oldPost+SmileCode;<br /> SelField.value=newPost;<br /> SelField.focus();<br /> return;<br /> }<br />


Заменить на

<br /> function AddSmile(SmileCode,FieldName) {<br /> var SmileCode;<br /> var newPost;<br /> var FixedSelField = eval("document.post."+FieldName);<br /> var oldPost = FixedSelField.value;<br /> newPost = oldPost+SmileCode;<br /> FixedSelField.value=newPost;<br /> FixedSelField.focus();<br /> return;<br /> }<br />


3. Открыть файл "function/function.php" найти все вызовы функции AddSmile, там их 3.

Заменить все три

<br /> OnClick=\"AddSmile(' *$i');\"<br />


на
<br /> OnClick=\"AddSmile(' *$i','".$name."');\"<br />


Можно конечно поправить и на предмет имени формы, но может тут кто поможет перекроить джаваскрипт на предмет использования document.getElementById.
В таком разе имя формы уже роли играть не будет вовсе.
Open SLAED 1.*
PHP 5
Локальный сервер
Группа
Новички
Пункты
29
Регистрация
01.04.2010
Предупреждения
Нет
tuzzz
tuzzz
5.00

5.00

02.04.2010 11:16:51

Прошу уточнить, что именно в редакторе работает не корректно?


О сколько нам открытий чудных,
Готовит просвещенья дух,
И опыт, сын ошибок трудных,
И гений, парадоксов друг...
Группа
Клиент
Пункты
39835
Регистрация
30.04.2005
Пол
Мужчина
Из
Germany
Предупреждения
Нет
SLAED CMS
SLAED CMS
3.24

3.24

02.04.2010 15:06:40 02.04.2010 15:10:46

При дефолтной установке не работает вставка смайлов через bb-редактор например а модуле files, при заливке файла. Причина в абсолютном пути к полю в файле "ajax/insert_code.js". А конкретно: var SelField = document.post.comment;

Так же не работает транслитерация по причине неверной кодировки этого же файла.

И мне как разработчику тоже иной раз нужно текстовое поле с bb-редактором, кроме как comment

Группа
Новички
Пункты
29
Регистрация
01.04.2010
Предупреждения
Нет
tuzzz
tuzzz
5.00

5.00

03.04.2010 09:01:49

ТО что не работают смайлы - за 5 лет впервый раз слышу. Про Транслит согласен

Группа
Клиент
Пункты
2121
Регистрация
02.11.2008
Пол
Мужчина
Из
Пермь
Предупреждения
Нет
ra55551
ra55551
3.75

3.75

03.04.2010 16:23:30 03.04.2010 16:28:32

Речь об OpenSlaed 1.2 - ему не 5 лет.

Собственно Sled Lite для внутренних нужд сети использую порядка 2-3 лет. Нравится он мне. Дает высокую скорость в разработке модулей и при этом не слишком перегружен лишним кодом.

А для проверки я вам предлагаю участок кода, еще раз уточню: я это обнаружил только в OpenSlaed 1.2, а не на других версиях этой CMS.

Принимаем, что имя формы "post" - фича.


if (!defined("MODULE_FILE")) {

	Header("Location: ../../index.php");

	exit;

}

function tester()
{
   $content = "<form name=post>\n"
   .textarea("1","comment","","files","10")."<br>\n"
   .textarea("2","test_name","","files","10")."<br>\n"
   ."</form>";

   head();
   open();
   echo $content;
   close();
   foot();
}

switch($op) {

	default:

	tester();

	break;

}


Собственно врубаем bb-редактор в конфигурациях.

Теперь расскажу, что будет происходить с этим кодом.
При клике на смайл в нижнем поле, код попадет в верхний. Если убрать первую textarea из кода, то получим в джаваскрипте "неизвестный объект". И как следствие - смайла в поле нету. Кроме того, если просто поле comment вставить не первым, то тоже скорее всего получим "неизвестный объект".

Протестируйте сами.

Группа
Новички
Пункты
29
Регистрация
01.04.2010
Предупреждения
Нет
tuzzz
tuzzz
5.00

5.00

03.04.2010 18:19:26 03.04.2010 18:21:33

И вдогонку, нарисовал код независимый от имени формы:
В файле "ajax/insert_code.js" найти

<br /> function AddSmile(SmileCode) {<br /> var SmileCode;<br /> var newPost;<br /> var oldPost = SelField.value;<br /> newPost = oldPost+SmileCode;<br /> SelField.value=newPost;<br /> SelField.focus();<br /> return;<br /> }<br />


Заменить на

<br /> function AddSmile(SmileCode,FieldId) {<br /> var SmileCode;<br /> var newPost;<br /> var FixedSelField = document.getElementById(FieldId);<br /> var oldPost = FixedSelField.value;<br /> newPost = oldPost+SmileCode;<br /> FixedSelField.value=newPost;<br /> FixedSelField.focus();<br /> return;<br /> }<br />


Открыть файл "function/function.php" найти все вызовы функции AddSmile, там их 3.

Заменить все три

<br /> OnClick=\"AddSmile(' *$i');\"<br />


на
<br /> OnClick=\"AddSmile(' *$i','".$id."');\"<br />

Группа
Новички
Пункты
29
Регистрация
01.04.2010
Предупреждения
Нет
tuzzz
tuzzz
5.00

5.00

05.04.2010 07:18:41

tuzzz, да согласен есть такое полностью подтвердаю такой баг

Группа
Клиент
Пункты
706
Регистрация
24.06.2006
Пол
Мужчина
Из
Москва
Предупреждения
Нет
ZOMBiE
ZOMBiE
4.05

4.05

01.09.2010 08:48:43

а что за глюк со смайлами? почему они вставляются не в то место куда надо а в конец текста

Группа
Клиент
Пункты
1246
Регистрация
21.09.2005
Пол
Мужчина
Предупреждения
Нет
Sergey
Sergey
3.57

3.57

01.09.2010 09:52:17

tuzzz, спасибо у себя поправил

Группа
Посетители
Пункты
425
Регистрация
28.02.2008
Предупреждения
Нет
panic
panic
3.38

3.38

Открыть Ответить
Хотите опробовать SLAED CMS в действии?
Идеи и предложения
Обратная связь
Подтверждение

Поделиться
QR-код