Ckeditor добавляет <p>&nbsp;</p>

Главные вкладки

Аватар пользователя kustoru kustoru 19 августа 2010 в 14:10

Здравствуйте, дорогие дрюпалеры!

Ckeditor добавляет перед вставляемым простым текстом без форматирования лишний абзац  

Вот как это происходит наглядно:

Как уговорить Ckeditor не вставлять лишнюю строку?

ВложениеРазмер
Иконка изображения ckeditor.png50.88 КБ

Комментарии

Аватар пользователя axa-xa-xa axa-xa-xa 27 апреля 2011 в 18:09

Таже проблема, ставит свои < р > во всех Text area полях, даже там где это не нужно делать. Уже перелопатил все галочки...

Кто нить решил эту проблему?

Аватар пользователя kustoru kustoru 28 апреля 2011 в 0:10

axa-xa-xa wrote:
Таже проблема, ставит свои < р > во всех Text area полях, даже там где это не нужно делать. Уже перелопатил все галочки...

Кто нить решил эту проблему?


Не решил никак. Оказалось, что не во всех браузерах происходит такая проблема. В опере к примеру точно текст вставляется без проблем, как надо. А в хроме проблема наблюдается. Поэтому как вариант, можно использовать другой браузер.

Аватар пользователя FORTIS FORTIS 27 апреля 2011 в 18:44

как вариант обновите библиотеку редактора и модуль до последних версий, точного рецепта не помню - само уходило Lol

Аватар пользователя msidiagnos01 msidiagnos01 29 апреля 2011 в 23:09

Попробуй в Форматах Ввода для нужного формата (либо Filtered, либо Full HTML, смотря с каким форматом сохраняешь поле) убрать галочку
Преобразователь переводов строки
Преобразует окончания строк в HTML (т.е. в теги <перенос строки> и <абзац>)
Теги абзаца должны пропасть, а вот & nbsp; все равно останется.

Аватар пользователя kustoru kustoru 29 апреля 2011 в 23:12

msidiagnos01, дело в том, что лишний код добавляется самим ckeditor, ещё до того, как он будет передан фильтру. С фильтрами играть уже пробовал, при любом положении галок результат одинаковый)

Аватар пользователя msidiagnos01 msidiagnos01 30 апреля 2011 в 14:20

Тогда не знаю, FCKEditor также добавлял теги абзаца. Описанные выше манипуляции помогли...

Присоеденюсь к вопросу, перефразируя его немного. Как избавиться от пробела, который вставляется в textarea, если оно остается пустое, т.е. при создании материала, если в textarea ничего не вписывать, до сохранения материала (и естественно после) вставляется пробел.

Аватар пользователя axa-xa-xa axa-xa-xa 7 мая 2011 в 20:10

ИТОГО:
Не нашел решения проблемы. Когда переделал (пересобрал) сайт с ноля (надо было избавиться от мусора, все файлы остались прежними, изменилась только MySql база) проблема сама исчезла 8-(
Такой подход нельзя назвать решением, зато можно вычислить проблему... Похоже "глюк" лежит в SQL базе и чистка кеша не помогает.

У меня только такое объяснение.

Аватар пользователя restart restart 13 марта 2012 в 2:05

Если кому еще надо - мне помогла замена метода ввода в настройках ckeditor (по enter поставил < br >, а по shift+enter < p > )

Аватар пользователя kustoru kustoru 13 марта 2012 в 9:10

Или если кому надо, то вот скрипт, который косметически убирает личнший абзац.

(function($){
        $(document).ready(function(){
                /* Убираем <p>&nbsp;</p> */
                $('#main .field-name-body').each(function(index, element) {
                        if ($(element).find('p:first').html() == '&nbsp;') {
                                $(element).find('p:first').remove();
                        };
                });
                /* /убираем <p>&nbsp;</p> */
               
        });
})(jQuery);
Аватар пользователя kpuk kpuk 14 февраля 2013 в 22:08

Тож проблема возникла поменять местами enter и shiftenter.
Стоит ckeditor version:'3.6.6',revision:'7689' и wysiwyg 7.x-2.x-dev от 2013-Jan-28
К сожалению удалось слегка извращённо поменять, Делюсь:
1.
Через config.js вообще реакции небыло.
Через hook_wysiwyg_editor_settings_alter удалось поменять лишь shiftEnterMode, т.е. Shift+Enter стал писать абзац. Выглядит вот как это:

function имя_модуля_wysiwyg_editor_settings_alter(&$settings, $context) {
        if ($context['profile']->editor == 'ckeditor') {
                $settings['shiftEnterMode'] = 'CKEDITOR.ENTER_P';
        };
}

А вот entermode отказался меняться, пришлось залезть в sites\all\libraries\ckeditor\ckeditor.js. Там ищем ;a.config={ и немного дальше находим такой кусок enterMode:1,forceEnterMode:false,shiftEnterMode:2,
и меняем там enterMode:1 на enterMode:2.
У меня заработало. А раз я не нашёл трушного способа, сдеал так. Думаю когда wysiwyg научиться поддерживать ckeditor версии 4.x можно буит нормально сделать.

Аватар пользователя Gukov Yor Gukov Yor 8 января 2015 в 22:56

http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.ente...

"kpuk" wrote:
и меняем там enterMode:1 на enterMode:2

// Not recommended.
config.enterMode = CKEDITOR.ENTER_BR;

Рекомендуют использовать всё таки CKEDITOR.ENTER_P
Мне думается проще отредактировать стили css на вводе и выводе.