Jump to content
View in the app

A better way to browse. Learn more.

IPBMafia.ru - поддержка Invision Community, релизы, темы, плагины и приложения

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Featured Replies

Posted

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

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

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

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

  • Author

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

Edited by 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 )


 

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

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.