Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
< >
1 2 3 4 5

Drupal 7 тэматычны пункт меню

Сёння мне прыйшлося зрабіць даволі распаўсюджаную тэматычную задачу Drupal, пераўтварыўшы блок меню ў набор убудаваных спасылак. На здымках мне трэба было ісці

з гэтага: з гэтага:   да гэтага: да гэтага:

Так як я звычайна раблю модуль dev і падобныя задачы Koumbit , Я ведаў, што Drupal ужо мае убудаваны клас для спісаў, якія ўтрымліваюць спасылкі, якія будуць адлюстроўвацца ў маіх сувязях. Гэты клас "спасылкі ўбудаваны". На жаль, я не ўпэўнены, як змяніць гэтыя значэнні на ўзроўні тэм. Такім чынам, я наведаў старонку API theme_menu_tree (), спадзеючыся на натхненне, і знайшоў нейкі ў гэты каментар wgsimon . Карыстацкая тэма можа перавызначыць тэматыку пэўнага пункта меню ў Drupal 7, выкарыстоўваючы шаблон THEME_menu_tree__MENU_NAME ().

Я дадаў наступны код у template.php маёй тэмы, каб зрабіць як стандартнае меню карыстальніка, так і наша карыстацкае меню для ананімных карыстальнікаў для ўбудаваных спасылак Drupal для ўбудаваных спасылак:

/ ** * Зрабіце меню карыстальніка ўбудаваным * / функцыяй customtheme_menu_tree__user_menu ($ зменныя) {return '& lt; ul class = "links inline clearfix" & gt;' . $ зменныя ['tree']. '& lt; / ul & gt;' ; } / ** * Зрабіце ананімнае меню карыстальніка ў радку * / function customtheme_menu_tree__menu_user_menu_anonymous_ ($ зменныя) {return '& lt; ul class = "links inline clearfix" & gt;' . $ зменныя ['tree']. '& lt; / ul & gt;' ; }

Проста заменіце настраиваемую тэму назвай тэм і змяніце імёны меню, каб выкарыстоўваць гэта самастойна.

Пасля пераключэння моў я зрабіў нешта падобнае пасля кансультацыі locale_block_view () у api і бачачы, што ў мове пераключальнік моў выкарыстоўвае тэму ('links__locale_block', $ variable); забяспечыць яго змест. Вызначэнне на аснове template.php выглядае наступным чынам:

/ ** * Тэма спасылка на пераключальнік мовы ў выглядзе ўбудаванага * / функцыя customtheme_links__locale_block ($ variables) {array_push ($ зменныя ['атрыбуты'] ['class'], 'links', 'inline', 'clearfix'); return theme ('links', $ зменныя); }

Таму я даведаўся, што шаблон theme_function__object_name будзе працаваць для любой тэмы, якая называецца такім чынам. Я ўпэўнены, што гэта павінна быць паказана дзе-небудзь у дакументацыі Drupal API.

У гэты момант мае меню выглядалі так: У гэты момант мае меню выглядалі так:

Апошні крок - больш канкрэтная тэма. У маім выпадку я перамясціў змесціва <div class = "region region-header"> і навакольнага разметкі ў старонцы page.tpl.php да лагатыпа, і ўставіў наступныя правілы CSS у адпаведныя файлы:

.region-header .block {display: inline-block; ніжні край: 0; } .region-header {text-align: right; }

Вынік: Вынік:

Відавочна, што да канчатковага прадукту ўсё яшчэ застаецца некаторая праца, падобная на дызайн, але галоўная задача - да таго, каб пазбавіцца ад засмучэння майго CSS кода, які ўжо прысутнічае ў ядры Drupal.