Написание CMS Вопрос 1: WYSIWYG на JavaScript

lelik133

Новичок
Написание CMS Вопрос 1: WYSIWYG на JavaScript

Начал писать небольшую CMS. В принципе круг ее задача уже известен.
1. Возможность визуального редактирования страниц (что-то вроде on-line WYSIWYG)
2. Возможность создания страниц (содержание за это ответственен WYSIWYG, ключевые слова, описание, заголовок) удаление старых страниц, редактирование существующих
3. Возможность создания разделов
4. Возможность перемещения страниц между разделами
5. Лента новостей (также добавление/удаление/редактирование новости, возможно функция архива)
6. Гостевую книга (удаление записей, ответ администрации сайта)
7. и т.д. и т.д. по возможности обрастание всякими вкусностями
Сразу расписал что хочу делать, поскольку вопросов у меня будет много попутно))) и вы представляли чего я ваяю.
Все буду писать на связке PHP + MySQL. Сразу оговорюсь почему стандартные движки не подходят, работаю в компьютерной фирме занимаюсь сайтами в ручную верстать уже просто запарился (есть идея создать коммерческий движок, пересадить на него современных клиентов и заняться его продажей потом), движок нужен написанный собственноручно и знакомый до последнего байта.
Кое что по отдельности из списка уже написал (например новости и гостевая)
На первом этапе надо разработать on-line WYSIWYG с которым было бы легко работать самому не продвинутому пользователю.
После изучения инфу по этому поводу понял что опираться буду здесь на JavaScript.
Из аналогов на что хотелось бы сделать похожим например на http://www.solmetra.com/en/disp.php/en_products/en_spaw/en_spaw_about Буду рад любой информации подкинутой для разработчика CMS (очень желательно на русском), и в первую очередь про разработку WYSIWYG на JavaScript.
Теперь к конкретике начал делать этот самый редактор. Вопросы следующее.
Что лучше использовать в качестве окна редактора textarea не подходит как я понимаю его невозможно заставить отображать внешний вид страницы тока ее код, что-то читал про использование iframe но конкретно по этому поводу ничего не нашел, пробовал делать через <div contenteditable="true"> но там никак не могу отловить положение курсора для вставки тэгов. Если через iframe так я понял в spaw сделано. то тоже надо указывать contenteditable для всей страницы в iframe или я не прав?

И сразу к более позднему этапу как лучше это передавать скрипту это все таки же не элемент формы а div или iframe?

Буду благодарен за любую инфу по данному поводу… сорри за столь длинный пост, покороче выразиться не удалось.
 

lelik133

Новичок
2Алексей Пешков мне готовых не надо редакторов я же написал что пишу свой, мне инфа по этому поводу нужна
 

crocodile2u

http://vbolshov.org.ru
Могу только добавить, что писать свой визивиг - дело долгое и трудное.

Ребята, которые разрабатывают и поддерживают htmlarea и подобные проекты, имеют свои форумы, службы поддержки, багрепорты - в общем, из того, что, возможно, задумывалось как "небольшой веб-редактор" выросли довольно серьезные проекты. предложения по улучшению редакторов, а также сообщения об ошибках им идут со всего света. Чтобы в одиночку (или даже силами двух-трех разработчиков) выйти на тот же уровень, понадобится уйма времени.

Отсюда - совет: пользуйся готовыми решениями и не изобретай велосипед. Тем более, что визивиг - это далеко не главное в ЦМС.
 

otdyh

Guest
Не надо пугать людей простым WYSIWYG он пишется достаточно просто имеет хорошую кросброузерность и вообще очень не сложный.
Пишется это действительно через iframe. Документу или форме необходимо задать событие onkeypress и сделать поле hidden в которую и будешь правильно заносить то что нажато, после нажатия необходимо скопировать содержимое в iframe - оно отразится как в редакторе
p.s. если хочешь добавлять тэги <b> и <i> необходимо в хидден поле добавлять их трансляцию ("<"=>"&lt" ">"=>"&rt") ну и т.д. потому как если добавить реальную ">" то ты просто закроешь ей тэг input


--------------------
ОТДЫХ.РУ
 

IBSN

Новичок
если хочешь добавлять тэги <b> и <i> необходимо в хидден поле добавлять их трансляцию ("<"=>"&lt" ">"=>"&rt") ну и т.д. потому как если добавить реальную ">" то ты просто закроешь ей тэг input
откуда такая информация?
 

Ямерт

The Old One
я работал с WYSIWYG, был реализован на iframe
У меня проблема с <iframe> этим кстати, при использовании HtmlArea, если используется HTTPS...Для части браузеров удалось решить, для части - нет. Мне кажется лучше для этого использовать <div>.
 

crocodile2u

http://vbolshov.org.ru
otdyh

Не надо пугать людей простым WYSIWYG он пишется достаточно просто
В принципе, конечно, основное форматирование текста сделать несложно, но, когда дело касается всяческих прибабахов (вставка картинок, таблиц, работа с попап-окнами - а это, видимо, наилучший путь для того, что бы сделать все эти вещи), траблы с кроссбраузерностью такого визивига начнутся. Просматривая исходники htmlarea, я натыкался там на весьма странные вещи. Например: одна и та же строчка кода повторяется дважды, и комментарий: по неизвестной причине в IE ничего не работает, если эту строчку написать один раз. Для того чтобы избавиться только от одного такого вот бага (а я уверен, он не один), может понадобиться пара-тройка часов.

И кроме того - крупные проекты WYSIWYG-редакторов снабжены всем, что нужно для их настройки под конкретный проект. Лично я рассматриваю редактор в общем как некий черный ящик (я лишь добавил туда пару своих действий), который выполняет все, что я от него требую - и писать свой мне просто не нужно, тем более что, когда он выйдет на серьезный уровень, функциональность его вряд ли будет сильно отличаться он существующих решений.
 

Alexandre

PHPПенсионер
У меня проблема с <iframe> этим кстати, при использовании HtmlArea, если используется HTTPS...Для части браузеров удалось решить, для части - нет
Ямерт мой WYSIWYG работал под IE 5.5
на сколько я знаю, некоторые WYSIWYG даже и не работают под IE 5.5, просят 6.0

вообще кросбраузерность в WYSIWYG - дело неблагодарное
 
Сверху