Eksportowanie ustawień bloku w obiekcie (Drupal 7)

13

Próbuję dowiedzieć się o tworzeniu rozsądnego przepływu pracy między witryną programistyczną a witryną produkcyjną i postanowiłem skorzystać z modułu Funkcje, aby pomóc w realizacji tego zadania.

Na mojej stronie głównej mam kilka bloków, które wyświetlają nowo dodane i najwyżej ocenione treści. Użyłem funkcji, aby wyeksportować te widoki, ale i tak nie widzę wewnątrz modułu Funkcje, aby wyeksportować moje ustawienia bloku. Ustawiam nowe projekty i najwyżej oceniane bloki, aby pojawiały się w sekcji zawartości strony. Filtruję go, aby wyświetlać się tylko na pierwszej stronie w widoku.

Jak wyeksportować te ustawienia bloków w mojej funkcji, aby nie trzeba było ponownie konfigurować ich w każdej witrynie?

Mike2012
źródło

Odpowiedzi:

13

Możesz eksportować znacznie więcej za pomocą funkcji wraz z Strongarm i dodatkowymi funkcjami .

Strongarm daje twórcom stron sposób na zastąpienie domyślnych wartości zmiennych, które są dostarczane z rdzeniem Drupal i modułami. To nie jest narzędzie użytkownika końcowego, ale narzędzie programistyczne i narzędzie do tworzenia witryn, które zapewnia interfejs API i ograniczony interfejs użytkownika.

Zawiera dodatkowe wsparcie: słowniki; kolejki węzłów (definicje); ustawienia bloków; niestandardowe bloki (pudełka).

Dodatkowo integracja funkcji UUID zapewnia mechanizm eksportowania treści (węzły, taksonomia, pola) do modułu funkcji.

Refineo
źródło
1
Poleciłbym również użycie drush i git do obsługi przepływu pracy.
Refineo,
1
Świetnie, właśnie tego potrzebowałem. Planowałem zacząć pracę z Gitem, kiedy wymyślę, jak lepiej korzystać z funkcji.
Mike2012
Fantastycznie! Jako Mike, to po prostu niesamowite!
Jean-Rémy Revy
4

Możesz użyć modułu Skrzynki zgodnie z sekcją Eksportowanie bloków dla funkcji .

Jeśli wolisz nie instalować dodatkowych modułów, a masz do czynienia z blokiem widoków (gdzie potrzebujesz tylko ustawień konfiguracji bloku), inną opcją jest zrobienie tego na poziomie kodu z implementacją hook_update_N () w module niestandardowym zainstaluj plik. Przykład poniżej.

/**
 * Configure block settings.
 */
function my_module_update_7101() {

  // Enable blocks
  db_update('block')
    ->fields(array(
      'status'     => 1,
      'region'     => 'content',
      'visibility' => 1,
      'pages'      => 'node/999',
      'title'      => 'My Block Title',
      'css'        => '',
      'js'         => '',
    ))
    ->condition('delta', 'BLOCK_ID')
    ->execute();
}
colan
źródło
0

Alternatywą jest użycie mini-paneli zamiast niestandardowych bloków, jak tutaj sugerowano . Działają one tak samo, a panele wydają się być lepiej obsługiwane przez funkcje. Jeśli planujesz już korzystać z paneli, oszczędza to również kilka dodatkowych modułów.

Pomin Wu
źródło