А именно, когда с помощью CKEditor вводишь текст, то при последующем редактировании обнаруживается, что вначале текста автоматически устанавливается <p></p>.
Угу, и они вновь появятся при следующем редактировании.
Варианты:
1) Сложный. Убираем тег из списка допустимых в формате ввода. Бред получится.
2) Bueditor. Генерирунет чистый-пречистый html-код вот только вам оно зачем?
Угу, и они вновь появятся при следующем редактировании.
Варианты:
1) Сложный. Убираем тег из списка допустимых в формате ввода. Бред получится.
2) Bueditor. Генерирунет чистый-пречистый html-код вот только вам оно зачем?
То есть, получается, что это - глюк и его нужно обходить ?
А если написать какой-нибудь небольшой модуль, в котором переопределить hook_node_presave, в котором удалять последовательность "" в начале текста ?
Когда я уже сохранил ноду, а потом захожу в ее режим редактирования, то в визуальном режиме в начале текста по неизвестной причине оказывается отступ, а в коде в начале текста вижу ''.
Это явно не Ckeditor - по крайней мере, у меня на кучке сайтов ничего подобного нет. Скорее всего, это фильтр преобразования переводов строк получает откуда-то пробел или перевод строки, и преобразует его в пустой абзац.
Как-то странно получается ...
Друпал - вроде бы известная и серьезная система.
CKEditor - тоже серьезный редактор.
А при стыковке - некий глючок, для которого, получается, нет готового решения.
Я, скорее всего, для решения попробую написать небольшой модуль, который бы перехватывал hook_field_presave или hook_node_presave и на этом этапе чистил бы это поле от мусора.
Решил поэкспериментировать с перехватом хука hook_node_presave
Написал такую функцию, которая в модуле, описывающем тип данной ноды, пытается сделать автозамену пустого абзаца на ""
<?php function yrv_review_node_presave($node) { if ($node->type=='yrv_review') { $bd=$node->field_body['und']['0']['value']; $node->field_body['und']['0']['value']=str_replace('<p></p>','',$bd);
dpm($node->field_body['und']['0']['value']); };
return $node; }; ?>
Что самое интересное - так это то, что почему-то не отрабатывается функция str_replace ...
Проверил, сверил ...
Разницу в установках фильтров не нашел.
Кстати, заметил такую вещь.
Если на странице редактирования ноды нажимать на ссылку "Switch to rich text editor" / "Switch to plain text editor", то при каждом переходе в Rich Text Editor происходит добавление тэгов <p></p> в начало текста.
То есть, 5 раз открылся таким образом CKEditor - в начале текста 5 пустых абзацев.
- снесите libraries, jqeryupdate, ckedittor - либы, модули, разного рода bef, htmlawed,
- удалите записи в БД,
- устанавливайте заново и смотрите, когда возникнет проблема
- ????
- PROFIT!
Сносил разные модули, сносил и заново устанавливал CKEditor - не помогло
Завтра установлю Drupal сначала уже как на новый локальный сайт и буду один за другим устанавливать модули и тогда смотреть, где эта ошибка снова возникнет.
Сейчас настроил Drupal на другой локальный сайт, затем буду подключать модуль за модулем и смотреть, после какого подключения такая ерунда снова возникнет.
Проблема по непонятной причине повторилась уже на новой сборке.
Кто знает, какой хук можно перехватить при инициализации редактора CKEditor, чтобы можно было тупо удалять последовательности "<p></p>" в начале текста ?
Да... проблема мне хорошо известна и преследует меня уже давно... Обычно лишний параграф автоматом ставится в конец ноды только после какой-нибудь таблицы... Поэтому приходится после каждого создания или редактирования ноды выбирать Switch to plain text и удалять этот параграф... Данная проблема присутствует далеко не на одном моём сайте...
roman-yrv, у тебя сплошная магия.....elfinder не запускается правильно, теперь ckeditor бодяжит....чего нам ждать завтра? прямо как-то подозрительно уже
roman-yrv, у тебя сплошная магия.....elfinder не запускается правильно, теперь ckeditor бодяжит....чего нам ждать завтра? прямо как-то подозрительно уже
Это что, позиция такая жизненная следить? Велико желание всех "опустить?"
А по делу есть что сказать?
Несколько выше другой чел указал же на подобную бяку, но в конце сообщения.
Кстати, как отследить, что происходит, когда в форме редактирования ноды переключаешься с простого реактора на CKEditor ?
Вот в этом случае как раз каждый раз и дописываются в начало эти параграфы.
Это что, позиция такая жизненная следить? Велико желание всех "опустить?"
А по делу есть что сказать?
Несколько выше другой чел указал же на подобную бяку, но в конце сообщения.
УМВР
никто никого не опускал! я так-то сам лох в друпале. я больше немекал на то, что он делает что-то не так
Вчера копировал тексты (статьи) с одного сайта на другой... Заметил что при вставке параграфы всё-таки ставятся и в начале тоже... (может что-то подобное и раньше было... но что-то не припомню... не в каждом дизайне это заметно просто...). А если ещё в конце статьи расположена какая-нибудь таблица... то и в конце тоже... то есть два лишних параграфа получается...
Спасибо что про Wysiwyg рассказал! Сейчас попробую его поставить... а то мне ещё осталось скопировать около 300 статей... и если заработает... то гемору будет поменьше...
Комментарии
Удаляй в "источнике" лишние p-эшки и сохраняй
Понимаете, сам бы я, может быть, и удалял бы ...
Но, думаю, потенциальные клиенты такую "идею" не поймут.
Угу, и они вновь появятся при следующем редактировании.
Варианты:
1) Сложный. Убираем тег из списка допустимых в формате ввода. Бред получится.
2) Bueditor. Генерирунет чистый-пречистый html-код вот только вам оно зачем?
То есть, получается, что это - глюк и его нужно обходить ?
А если написать какой-нибудь небольшой модуль, в котором переопределить hook_node_presave, в котором удалять последовательность "" в начале текста ?
Так подождите. Где вы видите тег
<p>
?В "визульном" режиме или в исходном коде?
Когда я уже сохранил ноду, а потом захожу в ее режим редактирования, то в визуальном режиме в начале текста по неизвестной причине оказывается отступ, а в коде в начале текста вижу ''.
Это явно не Ckeditor - по крайней мере, у меня на кучке сайтов ничего подобного нет. Скорее всего, это фильтр преобразования переводов строк получает откуда-то пробел или перевод строки, и преобразует его в пустой абзац.
У Вас эти сайты на какой версии Drupal ? Я говорю о Drupal 7.
И скажу еще, что я с фильтрами никаких операций не производил.
Можно ещё написать костыль на javascript, который будет искать пустые p-эшки и присваивать им display:none;
Как-то странно получается ...
Друпал - вроде бы известная и серьезная система.
CKEditor - тоже серьезный редактор.
А при стыковке - некий глючок, для которого, получается, нет готового решения.
Я, скорее всего, для решения попробую написать небольшой модуль, который бы перехватывал hook_field_presave или hook_node_presave и на этом этапе чистил бы это поле от мусора.
roman-yrv, можете скрины сего процесса дать?
Вот скрины.
Зашел в режим редактирования ранее введенной ноды.
И неизвестно почему там сначала оказался пустой абзац.
В тексте темы вырезались тэги
<p></p>
. ИсправилЕрунда какая-то. Хотя теперь ясно, что у вас за теги.
Вы этот текст вписываете в редактор или копируете из Верда? Формат ввода Full HTML, который был в drupal по умолчанию или вы с ним поиграли?
Текст вводил руками, формат ввода Full HTML не изменял.
Решил поэкспериментировать с перехватом хука hook_node_presave
Написал такую функцию, которая в модуле, описывающем тип данной ноды, пытается сделать автозамену пустого абзаца на ""
<?php
function yrv_review_node_presave($node)
{
if ($node->type=='yrv_review')
{
$bd=$node->field_body['und']['0']['value'];
$node->field_body['und']['0']['value']=str_replace('<p></p>','',$bd);
dpm($node->field_body['und']['0']['value']);
};
return $node;
};
?>
Что самое интересное - так это то, что почему-то не отрабатывается функция str_replace ...
Может, кто сталкивался с подобной проблемой ?
CKEditor 7.x-1.9, не наблюдаю такой проблемы
а если заменить формат ввода на FilteredHTML ?
Кстати, посмотрел на свой другой учебный мини-сайт - там таких проблем почему-то нет ...
Попробую сравнить их конфигурацию.
я бы начал с фильтров ввода
Проверил, сверил ...
Разницу в установках фильтров не нашел.
Кстати, заметил такую вещь.
Если на странице редактирования ноды нажимать на ссылку "Switch to rich text editor" / "Switch to plain text editor", то при каждом переходе в Rich Text Editor происходит добавление тэгов
<p></p>
в начало текста.То есть, 5 раз открылся таким образом CKEditor - в начале текста 5 пустых абзацев.
- снесите libraries, jqeryupdate, ckedittor - либы, модули, разного рода bef, htmlawed,
- удалите записи в БД,
- устанавливайте заново и смотрите, когда возникнет проблема
- ????
- PROFIT!
Сносил разные модули, сносил и заново устанавливал CKEditor - не помогло
Завтра установлю Drupal сначала уже как на новый локальный сайт и буду один за другим устанавливать модули и тогда смотреть, где эта ошибка снова возникнет.
после отключения модулей выполняли их удаление из админки?
Конечно, удалял. Не помогло.
Буду идти по другому пути.
Сейчас настроил Drupal на другой локальный сайт, затем буду подключать модуль за модулем и смотреть, после какого подключения такая ерунда снова возникнет.
Так, думаю, проще.
Собрал Drupal на другом локальном сайте, всё нормально
Наверное, в тот раз был какой-то глюк ...
Проблема по непонятной причине повторилась уже на новой сборке.
Кто знает, какой хук можно перехватить при инициализации редактора CKEditor, чтобы можно было тупо удалять последовательности "
<p></p>
" в начале текста ?Да... проблема мне хорошо известна и преследует меня уже давно... Обычно лишний параграф автоматом ставится в конец ноды только после какой-нибудь таблицы... Поэтому приходится после каждого создания или редактирования ноды выбирать Switch to plain text и удалять этот параграф... Данная проблема присутствует далеко не на одном моём сайте...
Решение не найдено?
Так у Вас в конце ноды эти параграфы ?
У меня в начале текста.
roman-yrv, у тебя сплошная магия.....elfinder не запускается правильно, теперь ckeditor бодяжит....чего нам ждать завтра? прямо как-то подозрительно уже
Насчет CKEditor - у меня подозрение, что эта ошибка произошла вследствие какого-то некорректного удаления (или установки) модуля.
Это что, позиция такая жизненная следить? Велико желание всех "опустить?"
А по делу есть что сказать?
Несколько выше другой чел указал же на подобную бяку, но в конце сообщения.
Кстати, как отследить, что происходит, когда в форме редактирования ноды переключаешься с простого реактора на CKEditor ?
Вот в этом случае как раз каждый раз и дописываются в начало эти параграфы.
УМВР
никто никого не опускал! я так-то сам лох в друпале. я больше немекал на то, что он делает что-то не так
Интересно, что если подключить CKEditor через модуль Wysiwyg, то этой проблемы нет. Все работает нормально.
Вчера копировал тексты (статьи) с одного сайта на другой... Заметил что при вставке параграфы всё-таки ставятся и в начале тоже... (может что-то подобное и раньше было... но что-то не припомню... не в каждом дизайне это заметно просто...). А если ещё в конце статьи расположена какая-нибудь таблица... то и в конце тоже... то есть два лишних параграфа получается...
Спасибо что про Wysiwyg рассказал! Сейчас попробую его поставить... а то мне ещё осталось скопировать около 300 статей... и если заработает... то гемору будет поменьше...