==b-head-tabs

===Описание
Строчка вверху шапки со ссылками на другие основные сервисы Яндекса, плюс ссылка "ещё", по нажатию на которую открывается меню-выпадушка с прочими сервисами.

{{TOC}}

===b-head-tabs.raw.*.xml
Есть несколько типов табов. Они отличаются набором ссылок и их порядком. Например, есть типы ##advertising##, ##communication##, ##intranet## и ##search-and-content##.
В папке https://svn.yandex.ru/lego/versions/2.1/common/xml/b-head-tabs/ находятся изначальные описания этих наборов в файлах ##b-head-tabs.raw.*.xml##. Их формат вот такой:
%%(html)
<lego:tabs>
    <lego:tab id="www"/>
    <lego:tab id="mail"/>
    <lego:tab id="news"/>
    ...
    <lego:more>
        <lego:tab id="auto"/>
        <lego:tab id="adresa"/>
        <lego:tab id="afisha"/>
        ...
    </lego:more>
</lego:tabs>
%%
Например, https://svn.yandex.ru/lego/versions/2.1/common/xml/b-head-tabs/b-head-tabs.raw.search-and-content.xml

Атрибуты ##id## берутся из списка проектов, находящегося в файле https://svn.yandex.ru/lego/versions/2.1/common/block/i-services/common.ru.xml

В папке ##common/xml/b-head-tabs## есть скрипт ##make.sh##, запуск которого генерит файлы вида b-head-tabs.type.locale.xml -- для каждого типа и для каждой локали.
При этом вместо ##id##-шников подставляются реальные названия проектов в соответствующей локали плюс xml-формат меняется на максимально удобный для последующей обработки xsl'ем.
Например, получаются вот такие файлы: https://svn.yandex.ru/lego/versions/2.1/common/xml/b-head-tabs/b-head-tabs.xml.search-and-content.ru.xml

Если необходимо поправить что-либо в табах, следует править ##.raw.xml## файлы и не забывать запускать ##make.sh##.



===id.raw.xml и xml-формат табов в них
XML-формат в ((../../../raw.wiki проектных raw-файлах)) вот такой:
%%(html)
<lego:b-head-tabs type="search-and-content"/>
%%
или же
%%(html)
<lego:b-head-tabs lego:theme="grey" type="communication"/>
%%
Атрибут ##lego:theme## включает подложку под табами. См. ниже

===XML-формат
Далее описывается тот xml-формат, который обрабатывается xsl'ем. Читать дальше можно из академического интереса, поскольку при написании проектных или шапочных xml'ей используется вышеописанный формат.

%%(html)
<lego:b-head-tabs>
    <lego:item service-id="www"><lego:link url="http://www.yandex.ru">Поиск</lego:link></lego:item>
    <lego:item service-id="mail"><lego:link url="http://mail.yandex.ru">Почта</lego:link></lego:item>
    <lego:item service-id="news"><lego:link url="http://news.yandex.ru">Новости</lego:link></lego:item>
    ...
    <lego:more>
        <lego:b-dropdown>
            <lego:text>
                <lego:b-pseudo-link>или</lego:b-pseudo-link>
            </lego:text>
            <lego:arrow/>
            <lego:item/>
            <lego:item service-id="auto"><lego:link url="http://auto.yandex.ru">Авто</lego:link></lego:item>
            <lego:item service-id="adresa"><lego:link url="http://adresa.yandex.ru">Адреса</lego:link></lego:item>
            <lego:item service-id="afisha"><lego:link url="http://afisha.yandex.ru">Афиша</lego:link></lego:item>
            <lego:item current="" service-id="video"><lego:link url="http://video.yandex.ru">Видео</lego:link></lego:item>
            <lego:item service-id="money"><lego:link url="http://money.yandex.ru">Деньги</lego:link></lego:item>
            ...
        </lego:b-dropdown>
    </lego:more>
</lego:b-head-tabs>
%%

Т.е. это список элементов ##lego:item##, в каждом из которых расположен элемент ##lego:link##, плюс элемент ##lego:more##, в котором находится стандартный элемент ##lego:b-dropdown##.
Ко всем ##lego:item## добавлен атрибут ##service-id## -- он необходим для построения счетчиков.

((../b-dropdown/b-dropdown.wiki Описание компонента b-dropdown))

===Кастомизация средствами XML
Текущий сервис выделяется атрибутом ##current## у соответствующего элемента ##lego:item##
%%(html)
<lego:b-head-tabs>
    <lego:item service-id="www"><lego:link url="http://www.yandex.ru">Поиск</lego:link></lego:item>
    <lego:item current="" service-id="mail"><lego:link url="http://mail.yandex.ru">Почта</lego:link></lego:item>
    ...
%%

Цветная подложка под табами включается указанием атрибута ##lego:theme##:
%%(html)
<lego:b-head-tabs lego:theme="grey">
    ...
%%

