Просмотр полной версии : Ускорение и оптимизация TYPO3
ksevelyar
20.03.2009, 15:34
В недавней теме -=UncleByte=- упомянул экстеншен - sourceopt
Здесь я его правда не нашёл: http://typo3.org/documentation/document-library/extension-manuals/
Поэтому несколько вопросов - что будет чистить этот экст при таких настройках:
config {
disablePrefixComment = 1
doctype = xhtml_11
xhtmlDoctype = xhtml_11
xmlprologue = none
xhtml_cleaning = all
htmlTag_langKey= ru
remove_defaultJS= 1
}
upd:
Нашёл доку в файлах экстеншена.
Надо ли его как-нибудь специфически настраивать? Какие с ним могут возникнуть проблемы?
ksevelyar
20.03.2009, 16:43
Плагин очищает код от лишних комментариев (оставляя только метки для поиска и информацию о системе в заголовке), действительно оптимизирует и улучшает читабельность кода и убирает onfocus="blurLink(this);" из ссылок.
Плагин можно настроить в константах или через ts:
config.sourceopt.removeGenerator = 0
Это пожалуй единственная настройка, которая не устраивает меня по умолчанию. Меня удивляет то, что экст убирает информацию о движке (removeGenerator = 1) при этом не трогая этот комментарий:
<!--
This website is powered by TYPO3 - inspiring people to share!
TYPO3 is a free open source Content Management Framework initially created by Kasper Skaarhoj and licensed under GNU/GPL.
TYPO3 is copyright 1998-2008 of Kasper Skaarhoj. Extensions are copyright of their respective owners.
Information and contribution at http://typo3.com/ and http://typo3.org/
-->
Комментарий только для людей, а генератор и для людей и для машин. И для последних, поисковых ботов, он гораздо важнее - они собирают статистику.
ksevelyar
20.03.2009, 16:47
Кстати, в доке есть полезная информация не касающаяся плагина, однако затрагивающая эту тему:
TypoScript setup for clean (X)HTML output:
Here some examples:
config {
# switch the doctype to XHTML Strict:
#"xhtml_trans", "xhtml_frames", "xhtml_strict", "xhtml_basic", "xhtml_11", "xhtml_2", "none"
doctype = xhtml_strict
# remove <?xml... ?> prolog
xmlprologue = none
#XHTML cleaning:
xhtml_cleaning = all
#remove default JavaScript:
removeDefaultJS = 1
# place the removed JavaScript in an external file:
#removeDefaultJS = external
# move css in an external file:
inlineStyle2TempFile = 1
# disable some of the comments:
disablePrefixComment = 1
# UTF8 Output:
metaCharset = utf-8
additionalHeaders = Content-Type:text/html;charset=utf-8
# Additional Parameter in the <a>-Tag
ATagParams =
}
plugin {
# deletes the default css from some the css_styled_content (be aware what you lose)
tx_cssstyledcontent._CSS_DEFAULT_STYLE >
}
tt_content {
# removes a-tag anchors
# stdWrap.dataWrap >
# removes various prefix comments
stdWrap.prefixComment >
header.20.dataWrap >
header.20.prefixComment >
default.prefixComment >
text.stdWrap.prefixComment >
text.20.prefixComment >
textpic.20.stdWrap.prefixComment >
table.20.stdWrap.prefixComment >
mailform.20.stdWrap.wrap >
menu.20.stdWrap.prefixComment >
image.20.stdWrap.prefixComment >
list.20.stdWrap.prefixComment >
# remove clear.gif
image.20.spaceBelowAbove = 0
header.stdWrap.space = 0|0
stdWrap.space = 0|0
stdWrap.spaceBefore = 0
stdWrap.spaceAfter = 0
stdWrap.space = 0|0
# remove clear.gif after headlines
text.20.parseFunc.tags.typohead.stdWrap.space = 0|0
# remove atributes for p and pre-tags
text.20.parseFunc.nonTypoTagStdWrap.encapsLines.ad dAttributes.P.style=
text.20.parseFunc.nonTypoTagStdWrap.encapsLines.ad dAttributes.PRE.style=
}
ksevelyar
20.03.2009, 17:09
Однако sourceopt не помог с gmenu. Как не помогли и removeDefaultJS = external с removeDefaultJS = 1
javascript отвечающий за него выглядит ужасно:
<script type="text/javascript">
/*<![CDATA[*/
<!--
if (version == "n3") {
img3_160f_0_n=new Image(); img3_160f_0_n.src = "typo3temp/menu/f4ed97bfc0.gif";
img3_160f_0_h=new Image(); img3_160f_0_h.src = "typo3temp/menu/682104dfe7.gif";
img7_160f_1_n=new Image(); img7_160f_1_n.src = "typo3temp/menu/1ae9678509.gif";
img7_160f_1_h=new Image(); img7_160f_1_h.src = "typo3temp/menu/db3d9f8d60.gif";
img5_160f_2_n=new Image(); img5_160f_2_n.src = "typo3temp/menu/2e7c77b07a.gif";
img5_160f_2_h=new Image(); img5_160f_2_h.src = "typo3temp/menu/75a0dc3141.gif";
img6_160f_3_n=new Image(); img6_160f_3_n.src = "typo3temp/menu/449efd838b.gif";
img6_160f_3_h=new Image(); img6_160f_3_h.src = "typo3temp/menu/2fa403f2a8.gif";
img4_160f_4_n=new Image(); img4_160f_4_n.src = "typo3temp/menu/fbf6c673cf.gif";
img4_160f_4_h=new Image(); img4_160f_4_h.src = "typo3temp/menu/9068681c45.gif";
img9_160f_5_n=new Image(); img9_160f_5_n.src = "typo3temp/menu/d08d609b70.gif";
img9_160f_5_h=new Image(); img9_160f_5_h.src = "typo3temp/menu/c54acd244a.gif";
img8_160f_6_n=new Image(); img8_160f_6_n.src = "typo3temp/menu/baa6f17bdd.gif";
img8_160f_6_h=new Image(); img8_160f_6_h.src = "typo3temp/menu/22e223107b.gif";
img2_160f_7_n=new Image(); img2_160f_7_n.src = "typo3temp/menu/8b2df5fa95.gif";
img2_160f_7_h=new Image(); img2_160f_7_h.src = "typo3temp/menu/8e262bba5d.gif";
}
// -->
/*]]>*/
</script>
<script type="text/javascript">
/*<![CDATA[*/
<!--
// JS function for mouse-over
function over(name,imgObj) { //
if (version == "n3" && document[name]) {document[name].src = eval(name+"_h.src");}
else if (document.getElementById && document.getElementById(name)) {document.getElementById(name).src = eval(name+"_h.src");}
else if (imgObj) {imgObj.src = eval(name+"_h.src");}
}
// JS function for mouse-out
function out(name,imgObj) { //
if (version == "n3" && document[name]) {document[name].src = eval(name+"_n.src");}
else if (document.getElementById && document.getElementById(name)) {document.getElementById(name).src = eval(name+"_n.src");}
else if (imgObj) {imgObj.src = eval(name+"_n.src");}
}
// -->
/*]]>*/
</script>
Можно ли как-нибудь всё-таки засунуть его в отдельный файл?
-=UncleByte=-
20.03.2009, 17:15
Ну вообще говоря на typo3.org документация по sourceopt есть - http://typo3.org/documentation/document-library/extension-manuals/sourceopt/0.5.10/view/
Убирает он версию движка, вероятно, исключительно ради соображений безопасности, типа если неизвестна версия движка, то и сломать будет труднее.
Настраивается он замечательно в секции Template > Constant Editor - там как раз ко всему есть пояснения. Была, правда, ошибка с маркерами подсказок для полей в предыдущих версиях, лечилась исправлениеми в файле locallang_db.xml в папке экстеншна.
ksevelyar
21.03.2009, 18:49
Пришлось включить formatHtml = 0, иначе sourceopt обижает тег pre.
-=UncleByte=-
21.03.2009, 18:52
Не сталкивался честно говоря, pre вообще не помню когда использовал последний раз.
ksevelyar
21.03.2009, 19:11
Ну так pre удобен для кода - все отступы сохраняет. А для обычных сайтов он и не нужен совсем :)
ksevelyar
04.04.2009, 20:34
Ещё одна причина побуждающая отказаться от formatHtml = 1
Если модифицировать шаблон tt_news, заменив метку ### ... ### обычным текстом sourceopt его убивает. Получается что-то вроде "<a ... ></a>" вместо "текст<a ... >текст<a>текст"
Работает на vBulletin® версия 3.8.1. Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot