Перейти к содержанию

Форматирование текста


Рекомендуемые сообщения

Скачал плагин для ckeditor - simple-button
С админки постятся красиво оформленные кнопочки, с аккаунта пользователя - нет, вырезается где-то треть атрибутов и стилей, нужно включать разрешение на публикацию html..
Думал ошибка в плагине или типа того, но даже свой простейший плагин с аккаунта пользователя заюзать не получится:
image.png.f4107b04e4131d8c1850e6fd1abb77ed.png
Думал что у ckeditor в config.js что-то не прописано, но методом научного тыка понял, что это не так (возможно ошибаюсь)
Начал копаться в файлах движка, в поисках некого вайт-листа, но быстро понял, что дело это крайне долгое, докопался лишь до инициализации такой функции:

public function htmlParsingEnforced()
	{
		return (boolean) $this->post_htmlstate > 0;
	}

Дальнейших обработчиков пока не нашёл

Может кто делал разрешение на использование определённых классов/атрибутов/тэгов обычным пользователям, не через разрешение публикации html?

Ссылка на комментарий
Поделиться на другие сайты

Upd:по пути
/forum/system/3rd_party/HTMLPurifier/HTMLPurifier/ConfigSchema/schema
нашёл файлы которые начинаются на HTML.Allowed.. и CSS.Allowed..
Пока не разобрался что с ними делать

Ссылка на комментарий
Поделиться на другие сайты

С админки тоже стили режутся, при сохранении.

Ссылка на комментарий
Поделиться на другие сайты

Нашел, как разрешить бордер-радиусы.. но это надо прописывать прямо в коде.

 

Ссылка на комментарий
Поделиться на другие сайты

Хукайте метод getAllowedCssClasses в классе \IPS\Text\Parser

А ну или в настройках можно так же указать разрешенные css-классы.

Тогда ничего не будет урезать при сохранении.

Ссылка на комментарий
Поделиться на другие сайты

Есть файлик, schema.ser, там опции CSS.AllowImportant, CSS.AllowTricky и CSS.Proprietary - они определяют, как обрабатывать некоторые css в сообщении. Если их поставить в 1, то появятся все стили, которые есть на превьюшке кнопки. 

А вот опция cursor: pointer не появляется, ее вообще нет в определениях. Можно добавить 

        $this->info['cursor'] = new HTMLPurifier_AttrDef_Enum(
            array('pointer'),
            false
        );

Появится последний пропадающий css
 

image.png.cf2c86ea5e9cf797d3e4876e9335ede9.png

Изменено пользователем Desti
Ссылка на комментарий
Поделиться на другие сайты

3 часа назад, WaNted сказал:

Хукайте метод getAllowedCssClasses в классе \IPS\Text\Parser

А ну или в настройках можно так же указать разрешенные css-классы.

Тогда ничего не будет урезать при сохранении.

ага, без этого ни один инородный класс выводиться не будет. Еще можно и атрибуты пропускать нужные этой функцией:

	/**
	 * Customize HTML Purifier HTML Definition
	 *
	 * @param	HTMLPurifier_HTMLDefinition	$def	The definition
	 * @return	void
	 */
	protected function _htmlPurifierModifyHtmlDefinition( $def )


 

Ссылка на комментарий
Поделиться на другие сайты

Desti Вроде бы выставил 1, но всё как было, так и осталось
image.thumb.png.6c9a44bc99d9869cb3d2657eaf8319ce.png

Что я не так делаю?

Ссылка на комментарий
Поделиться на другие сайты

12 часов назад, WaNted сказал:

Хукайте метод getAllowedCssClasses в классе \IPS\Text\Parser

А ну или в настройках можно так же указать разрешенные css-классы.

Тогда ничего не будет урезать при сохранении.

Классы - это хорошо, можно сделать кучу полезного через custom.css
Проблема в том, что всё равно режутся стили, которые могут принимать пользовательские значения, тот же бордер-радиус

должно быть
<a class="simple-button-plugin" target="_blank" style="display:inline-block;background-color:#27AE61;border:1px solid #27AE61;color:#fff !important;padding:5px 10px;border-radius:5px;font-size:14px;text-decoration: none !important; cursor: pointer;" href="">Unsubscribe</a>

вывод:
<a class="simple-button-plugin" href="" style="background-color:#27AE61;border:1px solid #27AE61;color:#fff;padding:5px 10px;font-size:14px;text-decoration:none;" rel="">Unsubscribe</a>



 

 

10 часов назад, ZIKURIK сказал:

ага, без этого ни один инородный класс выводиться не будет. Еще можно и атрибуты пропускать нужные этой функцией:

Спасибо, получилось пропустить атрибут target

Ссылка на комментарий
Поделиться на другие сайты

41 минуту назад, cliva сказал:

Вроде бы выставил 1, но всё как было, так и осталось

Их там несколько. 

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...