Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Общие вопросы (http://forum.typo3.ru/forumdisplay.php?f=12)
-   -   Ускорение и оптимизация TYPO3 (http://forum.typo3.ru/showthread.php?t=7520)

ksevelyar 20.03.2009 15:34

Ускорение и оптимизация TYPO3
 
В недавней теме -=UncleByte=- упомянул экстеншен - sourceopt

Здесь я его правда не нашёл: http://typo3.org/documentation/docum...nsion-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.addAttributes.P.style=
        text.20.parseFunc.nonTypoTagStdWrap.encapsLines.addAttributes.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/docum...t/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>текст"


Часовой пояс GMT +4, время: 16:57.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot