![]() |
Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community |
|
|
|
|
#1 |
|
Administrator
|
Помоему, правильный путь такой:
1) в TSConfig ### RTE Configuration CONSTANTS ### RTE.default { proc.overruleMode = ts_css proc.dontConvBRtoParagraph=1 } #это наверняка не нужно RTE.default.proc.dontProtectUnknownTags_rte=1 #а это наверняка нужно RTE.default.proc.dontProtectUnknownTags_db=1 #а вот это не работает, поэтому придется патчить #файл class.t3lib_parsehtml_proc.php RTE.default.proc.entryHTMLparser_rte = 0 RTE.proc.entryHTMLparser_rte = 0 #это вроде как работает RTE.default.proc.entryHTMLparser_db = 1 RTE.default.proc.entryHTMLparser_db{ denyTags= allowTags=table,tr,td,p,font,div,img,hr,b,i,u,a,br ,pre,strong,em,li,ul,ol,span,h1,h2,h3,h4,h5,h6 noAttrib = table,tr,td,h1,h2,h3,h4,h5,h6 tags { #это позволяет не резать p при добавлениии в DB p.rmTagIfNoAttrib=1 } } 2) Что патчить: class.t3lib_parsehtml_proc.php см. http://typo3api.ueckermann.de/classt3lib__parsehtml__proc.htm Пока не могу проверить на своем сайте, как проверю, напишу. по-моему нужно закоментировать вот это (можно ориетироваться по номерам строк): 01190 // Wrapping the line in <$dT> is not already wrapped: 01191 $testStr = strtolower(trim($parts[$k])); 01192 if (substr($testStr,0,4)!='<div' || substr($testStr,-6)!='</div>') { 01193 if (substr($testStr,0,2)!='<p' || substr($testStr,-4)!='</p>') { 01194 // Only set p-tags if there is not already div or p tags: 01195 $parts[$k]='<'.$dT.'>'.$parts[$k].'</'.$dT.'>'; 01196 Вопросы все равно остаются: почему сделано именно так, и ведь, главное, не сделали конфигурируемость!!! Может я не вижу каких-то подводный камней? |
|
|
|
|
|
#2 |
|
Senior Member
Регистрация: 10.02.2004
Сообщений: 114
|
Сдается мне, UserFriendly HTML тут вообще ни при чем ибо:
1) RTE использует ИЕ для отображения форматирования. 2) При переключении в HTML View просто берется InnerHTML этого ИЕ-куска и показывается как код в текстбоксе. То есть, все, что делает галка - смета visible между текстбоксом и компанентой ИЕ с передачей туда-обратно InnerHTML. Что касается форматирования ворда... Вроде бы я решил эту проблему, написав PHP-функцию по документированным специфическим тегам офиса.. В смысле, функцию, для их вырезания (показывать, наверное, не стану - стыдно, все ж я с ПХП очень слабо дружу, C# больше, смеяться станете ).Оформил эту функцию в отдельный файл, ну и далее в конфигурации: page.includeLibs.removeword = fileadmin/scripts/removeword.php subparts.CONTENT < styles.content.get subparts.CONTENT.stdWrap.preUserFunc = user_removeword То есть, понятно, что в базу все идет как есть, зато на этапе формирования HTML-страницы контент чистится и пользователь не видит всякой гадости типа XML namespaces, etc. Хорошо бы, конечно, такую штуковину прикрутить прямо к RTE, чтобы в базу уже чистый контент писало, но я не нашел, где это можно сделать... |
|
|
|
|
|
#3 |
|
Administrator
|
Да, насчет переключения в решим Source Code в RTE все правильно.
UserFriendly HTML касается другого: если включить чекбокс Disable Rich Text Editor, то мы не увидим этих лишних, по мнению Каспера тегов p, div (которые без параметров) |
|
|
|
|
|
#4 |
|
Administrator
|
Наверняка можно прикрутить removeword.php
где-то в class.t3lib_parsehtml_proc.php ... На след. неделе постараюсь поискать в каком месте. Может быть, для чистки word, что можно и тайпоскриптом обойтись: allowedClasses list of strings (Applies for \"ts_transform\" only (function divideIntoLines)) Direction: To DB Allowed general classnames when content is stored in database. Could be a list matching the number of defined classes you have. Case-insensitive. This might be a really good idea to do, because when pasting in content from MS word for instance there are a lot of <SPAN> and <P> tags which may have class-names in. So by setting a list of allowed classes, such foreign classnames are removed. If a classname is not found in this list, the default is to remove the class-attribute. http://typo3.org/doc.0.html?&tx_extrepmgm_pi1[extUid]=214&tx_extrepmgm_pi1[tocEl]=477&cHash=efe7cbc27b |
|
|
|