wysiwyg'и

SelenIT

IT-лунатик :)
...где-то цветом выделить, где-то жирным...
...для этого не обязательны 2 мегабайта кода того же FCKEditor'а :)

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

А хорошо знающие Word секретарши - это отдельная тема (причем в отличие от тупых как пробка героинь анекдотов, похоже, канувших в Лету вместе c эпохой малиновых пиджаков - они реальность). Когда у них накопится критическая масса вопросов вида "почему я не могу сделать то-то и то-то, как в Word'e?" (например, перетянуть ячейку таблицы мышкой или хотя бы просто выделить столбец) в концe концов приходится... объяснять им на пальцах основы HTML. Разве не удобнее было бы просто не давать им повода для таких вопросов?
 

Sizz

Новичок
для этого не обязательны 2 мегабайта кода того же FCKEditor'а
согласен, у меня он 300 кбайт весит :)

почему я не могу сделать то-то и то-то, как в Word'e?
потомучто это не ворд и тут это сделать нельзя.
обычно больше вопросов не возникает

приходится... объяснять им на пальцах основы HTML. Разве не удобнее было бы просто не давать им повода для таких вопросов?
предлагаешь их сразу html обучать?
или как тогда должно быть?
 

SelenIT

IT-лунатик :)
300к - ИМХО все равно многовато для клиентской части веб-приложения (по крайней мере в странах, где модемные скорости пока еще для многих суровая реальность).

потомучто это не ворд...
В том-то и дело! Может, имеет смысл сделать данный факт очевидным? Зачем запутывать пользователя?

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

Добавить сюда плавающую панель для вставки типовых элементов (опять же, типичных для данного сайта) в заданное место относительно существующих на странице блоков (перед/после/внутрь) - получится полностью визуальный "конструктор страницы" со всеми действительно необходимыми возможностями редактирования и оформления. Но за структуру HTML-кода при таком подходе будет отвечать не произвол редактора, а мастерство разработчика.

На мой взгляд, это должно быть удобнее традиционных форм, где чередуются обычные input-ы и "как бы визивиги". Да, реализовать что-то подобное будет непросто. Но вряд ли намного сложнее, чем реализовать достаточно переносимый DHTML-редактор традиционного вида с достаточной функциональностью и хотя бы не слишком очевидными глюками...
 

alexxx_05

Новичок
Люди.
есть ли у кого описание настройки FCKEditor на русском.
Что то я из доков так и не понял, где и чего прописать, чтобы он папки увидел наконец.
 

Magnat

Guest
а что там прописывать то?

<script type="text/javascript">
window.onload = function()
{
var oFCKeditor = new FCKeditor( 'field_name' ) ;
oFCKeditor.Width = 400 ;
oFCKeditor.Height = 100 ;
oFCKeditor.BasePath = "/Library/FCKeditor/" ;
oFCKeditor.ToolbarSet = "Basic" ;
oFCKeditor.ReplaceTextarea() ;
}
</script>
<textarea id="short_news" name="field_name"></textarea>

после строчки var oFCKeditor = new FCKeditor( 'field_name' ) ;
указуешь конфигурацию: oFCKeditor.Height = 100 ;
oFCKeditor.BasePath = "/Library/FCKeditor/" ;
и т.д. :)

Тоько вот с ним проблемы... он нехочет дважд запускаться гна одной странички... т.е. если реально нужно два поля в таком виде зделать, хрен сделаешь :(

-~{}~ 05.06.05 06:10:

а что там прописывать то?

<script type="text/javascript">
window.onload = function()
{
var oFCKeditor = new FCKeditor( 'field_name' ) ;
oFCKeditor.Width = 400 ;
oFCKeditor.Height = 100 ;
oFCKeditor.BasePath = "/Library/FCKeditor/" ;
oFCKeditor.ToolbarSet = "Basic" ;
oFCKeditor.ReplaceTextarea() ;
}
</script>
<textarea id="short_news" name="field_name"></textarea>

после строчки var oFCKeditor = new FCKeditor( 'field_name' ) ;
указуешь конфигурацию: oFCKeditor.Height = 100 ;
oFCKeditor.BasePath = "/Library/FCKeditor/" ;
и т.д. :)

Тоько вот с ним проблемы... он нехочет дважд запускаться гна одной странички... т.е. если реально нужно два поля в таком виде зделать, хрен сделаешь :(
 

Magnat

Guest
через джаваскрипт некатит... нехочепт.. вот через fckeditor.php спокойно получается... Во пример:

PHP:
    include_once (SITE_ROOT."/Library/FCKeditor/fckeditor.php") ;
    
    $oFCKeditor = new FCKeditor('short_news') ;
    $oFCKeditor->BasePath = "../Library/FCKeditor/";
    $oFCKeditor->ToolbarSet = "Basic";
    $oFCKeditor->Width = "737";
    $oFCKeditor->Height = "150";
    $oFCKeditor->Create();
SITE_ROOT."/Library/FCKeditor/ - ну здесь свой патч ставим :)

А вобще посоветую открыть файлик ROOT/FCKeditor/fckeditor.php
и посмотреть 44 строчку :)

PHP:
function Create()
	{
        echo $this->CreateHtml() ;
	}
Переписать её на вот такой вид:


PHP:
function Create($return = TRUE)
	{
        if ($return == TRUE)
        {
          return $this->CreateHtml() ;
        } else {
          echo $this->CreateHtml() ;
        }
	}
а посля использовать с передачей параметра в Create() TRUE or FALSE... Т.к часто приходиться получить сам код эдитора а не показывать его сразу.. ну например я с этим столкнулся, когда работал с смарти шаблонами... и вместо переменной мне нужно было подставить поле фомы, обработаное эдитором :))
 

Sizz

Новичок
а если опустить глаза на 49 строчку, то увидишь функцию
PHP:
function CreateHtml()
    {
вызвав которую ты и получишь код эдитора
PHP:
$oFCKeditor->CreateHtml();
 
Сверху