Chcę wyświetlić pewne pole przed tytułem węzła podczas wyświetlania zwiastuna w D7.
Skutecznie chcę przejść od tego do tego .
Patrzyłem na aktualizację node.tpl.php, ale zauważam, że różni się $title
od, $content
więc nie jestem pewien, jak podejść do tego. Po kilku poszukiwaniach odkryłem, że ludzie zasugerowali użycie modułów CCK i ConTemplate , aby obejść ten problem w Drupal-6, ale zastanawiam się, czy istnieje inne rozwiązanie Drupal-7.
Jakieś sugestie?
Odpowiedzi:
Jest to naprawdę dość proste w przypadku Drupala 7.
Dzięki
render
ihide
wiesz, że masz możliwość kontrolowania umieszczenia pojedynczego elementu$content
bez konieczności drukowania wszystkich elementów, które były potrzebne w Drupal 6.Uproszczony szablon węzła wygląda następująco:
Mała modyfikacja zaspokoi Twoje potrzeby:
Za pomocą
render
możesz wyprowadzić element. Jest to bardziej sprytne niż zwykłe drukowanie, ponieważ Drupal będzie śledził to, co zostało renderowane, aby uniknąć dwukrotnego wydrukowania tego samego miejsca. Podczas renderowania pola nad tytułem usuwasz również to, co jest renderowane podczas$content
renderowania.źródło
Display Suite jest również całkiem fajny.
źródło
Zobacz moduł tytułu - http://drupal.org/project/title . Może się to przydać w twoim scenariuszu. Zainstalowałem / włączyłem go z jakiegoś powodu, prawdopodobnie podobnego do twojego, i wydawało się, że daje elastyczność w umieszczaniu pola tytułu.
Od tego czasu go wyłączyłem (i używam Display Suite), więc moje przypomnienie może być nieco szkicowe.
źródło
To hackish rozwiązanie i jestem pewien, że ktoś wymyśli coś bardziej eleganckiego, ale na wypadek, gdybyś utknął, a nikt nie ...
Możesz użyć
page.tpl.php
do$title
całkowitego usunięcia drukowania i dodać nowe niestandardowe pole o nazwie Tytuł z nazwą komputera $ new_title lub coś w tym rodzaju. Następnie podczas edycji węzła ukryj oryginalne pole tytułu, a na węźle Zapisz użyj pola obliczeniowego lub niestandardowego php, aby skopiować$new_title
je$title
.Po tym wszystkim napisz trochę css, aby $ new_title wyglądał tak, jak poprzednio tytuł strony i powinieneś być w stanie umieścić dowolne pola w dowolnej kolejności, po prostu przeciągając i upuszczając na ekranie zarządzania polami. Ponieważ skopiowano
$new_title
do$title
, tytuł strony na pasku przeglądarki powinien nadal działać i nic nie powinno narzekać na brakujące tytuły węzłów.Jak powiedziałem, jest to hack - ale zadziałałoby. Powiadom mnie, jeśli będziesz potrzebować więcej informacji
źródło
page.tpl.php (girlanda)
template.php
źródło
To nie dotyczy pytania zwiastuna w oryginalnym poście, ale dla osób, które natkną się na to i chcą, aby stało się to w pełnym widoku, oto opcja bez kodu: wyświetl pole w bloku (używając widoków, na przykład) i umieść ten blok nad blokiem treści, ale w tym samym regionie.
źródło
Myślę, że powinieneś użyć funkcji wstępnego przetwarzania w pliku template.php
I jako dodatkowe
zrzucaj zmienne i rób co chcesz. dodaj / usuń / aktualizuj.
źródło
Rozwiązałem to za pomocą bezkodowego rozwiązania za pomocą Display Suite i jego dodatkowej funkcji „Region to Block”. Najbardziej podoba mi się to rozwiązanie ze względu na jego elastyczność.
Zasadniczo włącz część „Region do blokowania” dodatków, włącz wyświetlanie „Treści pełnotekstowej” w Display Suite. (zakładając, że chcesz wyświetlać zawartość powyżej tytułu na ekranie z pełnym węzłem, podobnie możesz użyć jej w dowolnym innym trybie widoku oprócz Domyślnego). Teraz w części „Zarządzaj wyświetlaniem” w części „Treść pełnotekstowa” u dołu ekranu powinna pojawić się karta „Blokuj regiony”. Wpisz tam nową nazwę bloku, zapisz i przeciągnij i upuść żądane pola do tego bloku. Na koniec przenieś nowo utworzony blok na ekranie Bloki gdzieś powyżej tytułu węzła.
Możesz zobaczyć wideo z tego samego podejścia tutaj: http://www.youtube.com/watch?v=y4wyjxyhbNA , oczywiście musisz umieścić blok nad tytułem (nie na lewym pasku bocznym) na końcu.
źródło
Dla szablonów zen poniższy kod działa dla mnie.
Wreszcie możesz łatwo wydrukować swoje pole w page.tpl.php;
źródło
Wiem, że używałbyś już jakiegoś motywu do zbudowania i teraz próbujesz dodać pola u góry tytułu.
Moimi sugestiami dla wszystkich programistów budujących motyw na Drupal 7 byłoby użycie: motyw Omega + moduły kontekstowe i Delta. Daje to bardzo mocne podstawy dla Twojego układu.
I elastyczność w ustawianiu regionów, bloków i pól.
źródło
Możesz to zrobić za pomocą modułu paneli
źródło