Jump to content

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

Featured Replies

Posted
comment_172371

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

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

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

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

  • Author
comment_172372

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

comment_172375

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

 

comment_172377

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

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

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

comment_172378

Есть файлик, 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

Edited by Desti

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

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

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

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

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

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


 

  • Author
comment_172398
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

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

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

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.