Рейтинг:0

Drupal 7 и/или CKEditor, добавляющие абзацы в стиль нарушения кода

флаг th

Недавно я устроился на новую работу, где впервые управляю веб-сайтом на Drupal 7. Мы скоро уйдем с этой платформы, но пока я должен поддерживать этот сайт.

Я пытаюсь добавить новую форму на одну из наших страниц, но теги абзаца добавляются после сохранения кода в CKEditor, что нарушает мой стиль.

Вот соответствующий код, добавленный в CKEditor с отключенным форматированным текстом:

<select id="scopeSelecter" name="scopeSelecter" onchange="primoScopeSwitch(this)">
<option value="Everything">Everything</option><option value="LibraryCatalog">Library Catalog</option>
<option value="CourseReserves">Course Reserves</option>
<option value="Theses">Theses</option></select>
<input id="primoQueryTemp" size="55" type="text" value=""> 
<input alt=" Search " id="go" onclick="searchPrimo()" title="Click to Search" type="button" value="Search">

Когда я проверяю вывод сохраненного кода, я вижу, что он поместил элементы ввода в элемент абзаца:

<select id="scopeSelecter" name="scopeSelecter" onchange="primoScopeSwitch(this)">
<option value="Everything">Everything</option><option value="LibraryCatalog">Library Catalog</option>
<option value="CourseReserves">Course Reserves</option>
<option value="Theses">Theses</option></select>
<p><input id="primoQueryTemp" size="55" type="text" value="" placeholder="Discover books, articles, videos, etc."> 
<input alt=" Search " id="go" onclick="searchPrimo()" title="Click to Search" type="button" value="Search">&nbsp;</p>

Спасибо за любой совет.

Рейтинг:1
флаг de

Это связано с вашей конфигурацией CKEditor и тем фактом, что CKEditor пытается обернуть теги вокруг встроенного содержимого, чтобы обеспечить целостность вашего контента. Я считаю, что это config.autoParagraph вариант.

Я попытался воспроизвести вашу проблему и глобально отключить эту опцию (на странице редактирования профиля CKEditor, раздел «Дополнительные параметры»), но безуспешно.

Здесь я даю вам два варианта решения вашей проблемы:

  • Опция 1 - Простой обходной путь - Оберните ваши элементы ввода любым другим тегом, на который не влияет стиль, чтобы предотвратить добавление CKEditor <p> тег.

например с <div> тег:

<select id="scopeSelecter" name="scopeSelecter" onchange="primoScopeSwitch(this)">
    <option value="Everything">Everything</option><option value="LibraryCatalog">Library Catalog</option>
    <option value="CourseReserves">Course Reserves</option>
    <option value="Theses">Theses</option>
</select>
<div> <!-- Use this tag to wrap your input elements -->
    <input id="primoQueryTemp" size="55" type="text" value=""> 
    <input alt=" Search " id="go" onclick="searchPrimo()" title="Click to Search" type="button" value="Search">
</div>
  • Вариант 2 - На странице издания в текстовом формате (например, admin/config/content/formats/filtered_html), снять галочку коробка Преобразование разрывов строк в HTML. Я не рекомендую это решение, так как это повлияет на весь ваш контент, использующий этот текстовый формат. Или вы можете создать новый текстовый формат, который будет использоваться, когда редактор содержит форму.

введите описание изображения здесь

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.