Очистка форматированного текста

Просмотры 13
Дата окт 31, 2015 (8 лет, 5 месяцев, 3 недели, 1 день, 1 час назад)
#1
Антон подскажи пожалуйста.
Есть техническая возможность, очищать форматирование текста при подаче объявления.
А то форматированный текст смотрится не презентабельно.
Дата окт 31, 2015 (8 лет, 5 месяцев, 3 недели, 22 часа назад)
#2
Приведите пример, что нужно удалить (какие символы и т.п.) в форматированном тексте?
Дата окт 31, 2015 (8 лет, 5 месяцев, 3 недели, 21 час назад)
#3
Ну например если при подаче объявления, пользователь тупо из ворда или ещё откуда копирует текст.
https://yadi.sk/i/df8INDR8k9Qow
Вроде всё нормально, но в итоге получается так.
https://yadi.sk/i/TMVnSmMCk9Qrt
И это только нумерованный список, а если потестить далее, то тело объявления раздвигается до футера.
Хотя и стоит подсказка пользователям, что простой текст без форматирования, но это как о стенку горох.
------------------------------------------------------------------------------------------------------------------------------
Собственно и вопрос, как в пользовательской части при подаче объявления, не допускать (очищать) теги.
Заранее спасибо.
P/S Спасибо да движок, чем дальше в нём копаешся, тем он более интересен!!!
Дата окт 31, 2015 (8 лет, 5 месяцев, 3 недели, 20 часов назад)
#4
Попробуйте так:
applications\bulletin_board\frontend\models\bulletin\Bulletin_Validate_POST.php

добавьте функцию
public function cleanHTML($html = '') {
require_once(V_LIBS_DIR . 'htmlpurifier' . V_DS . 'library' . V_DS . 'HTMLPurifier.auto.php');

$config = HTMLPurifier_Config::createDefault();
$config->set('Core.Encoding', 'UTF-8');
$config->set('Cache.DefinitionImpl', null);

$config->set('HTML.Doctype', 'XHTML 1.0 Transitional');
$config->set('HTML.TidyLevel', 'heavy');

$purifier = new HTMLPurifier($config);
$clean_html = $purifier->purify($html);

return $clean_html;
}

найдите
protected function _validateTextarea($field) {
$value = $this->Input->post($field['name']);
$value = trim($value);

return (string) $value;
}

и замените на
protected function _validateTextarea($field) {
$value = $this->Input->post($field['name']);
$value = trim($value);

$value = $this->cleanHTML($value);

return (string) $value;
}

Для исправления вашего примера:
applications\bulletin_board\frontend\views\native\tpl\view-bulletin.tpl
найдите
<p>{$bulletin.description|regex_replace:"/[\r\t\n]/":"<br />"}</p>
замените на
<p>{$bulletin.description|regex_replace:"/[\r\n]/":"<br />"}</p>
Дата ноя 1, 2015 (8 лет, 5 месяцев, 3 недели, 8 часов назад)
#5
Спасибо Антон помогло.
Собственно если выполнить все пункты, что Вы написали получается так - форматирование не очищается, но всё встаёт на свои места.
Если выполнить все пункты
applications\bulletin_board\frontend\models\bulletin\Bulletin_Validate_POST.php
applications\bulletin_board\frontend\views\native\tpl\view-bulletin.tpl
Списки и нумерованные и не нумерованные, отображаются нормально но с двойным пробелом.
https://yadi.sk/i/xnhG9Kl0k9kKX
https://yadi.sk/i/OcmQ5nvCk9kMU
А если не выполнять код для -
Bulletin_Validate_POST.php
А сделать только -
view-bulletin.tpl
Получается как надо
https://yadi.sk/i/rS07yju9k9kR5
Ну в принципе, то что и нужно.
Спасибо.

^
Запустить задачи