404 hata sayfaları için özel şablon


12

Burada hızlı bir çaylak sorusu! Bir temayı page.tpl kullanmak yerine 404 hata sayfaları için özel bir şablon kullanacak şekilde nasıl ayarlayabilirim?

Yanıtlar:


10

Bu adımları takip et:

  1. Paneller modülünü kullanarak yeni bir sayfa oluşturun (Sayfayı boşaltın veya içine herhangi bir içerik koyun)

  2. Admin / config / system / site-information set (Varsayılan / 404 (bulunamadı)) sayfasını yeni sayfanıza ayarlayın

  3. Söz konusu sayfanın şablon dosyasını geçersiz kılın (sayfa - error.tpl.php)

  4. İhtiyacınız olmayan tüm bölgeleri kaldırın ve kodunuzu girin


5
Ve birinin panelleri kullanmasına bile gerek yok. Modül bir sayfayı veya en basit "Temel sayfa" düğümünü de işleyecektir.
MOLOT

2
404 oluşturmak için neden katkıda bulunan bir modüle ihtiyacınız var?
MrUpsidown

1
Temel bir sayfa gibi bir düğüm kullanmayla ilgili sorun, daha sonra arama sonuçlarında ve istenmeyen içerikle ilgili diğer listelerde ortaya çıkmasıdır.
rooby

27

Bu tartışmadan paneller veya diğer özel modüller olmadan çalışan başka bir çözüm .

Tema klasörünüzde template.phpbu kodu bulun ve yazın. YOURTHEMETemanızın adıyla değiştirin :

function YOURTHEME_preprocess_page(&$vars) {
  $header = drupal_get_http_header('status'); 
  if ($header == '404 Not Found') {     
    $vars['theme_hook_suggestions'][] = 'page__404';
  }
}

Ne zaman 404 meydana gelirse page--404.tpl.phpkullanılacaktır. Şablon dosya adınıza "-" değil "__" yazmayı unutmayın.


page--404.tpl.phpDosyayı yeni oluşturduysanız önbelleğinizi temizlemeyi unutmayın .
Blake Erickson

403 için, $ üstbilgisi == '403 Yasak'.
Henry

bu bir modülde çalışmıyor gibi görünüyor, modül klasöründeki şablonun üzerine çıkılmaz. aynı işlevi YOURMODULE_preprocess_page (& $ vars) ile nasıl yapmalı?
Matoeil

3

Sayfa (düğüm) oluşturmayı içermeyen özelleştirilmiş bir 404 sayfanız olmasını istiyorsanız, customerror modülünü kullanın .

Drupal'da 404 sayfanız varsa, arama sonuçlarında ve / veya Views listelerinizde görünecektir.

Customerror modülünü kullanırken, tema klasörünüzde bir page - customerror.tpl.php oluşturarak şablonu geçersiz kılabilirsiniz. Yeni şablon dosyası oluşturduktan sonra önbelleğinizi temizlemeyi de unutmayın.


Bu iyi görünüyordu, ancak yönlendirme modülünü kullananlarınız için birlikte iyi oynamadıkları anlaşılıyor. Ben asla customerror'ın yönlendirmenin gösterdiği sayfa olduğunu göstermesini sağlayamadım.
evanmcd

1
Redirect ve Customerror modüllerini bu sorunlar olmadan birlikte kullanıyoruz. Her iki modülün ayar sayfalarına bakıldığında, customerror (özel hata işlevine ek olarak), ham arabirimle de olsa yönlendirmeleri yönetme özelliğine sahiptir. Yönlendirme kullanıyorsanız (ve OP kullanmıyorsanız), customerror yönlendirme ayarlarını kullanmaktan kaçının ve herhangi bir sorun yaşamamanız gerekir.
alexkb

0

Tema tabanınızda var olabilecek herhangi bir konvansiyonu varsaymadan, soru nihayet hangi şablon dosyasının kullanılacağından nasıl emin olabileceğimi ...

İşte adımlar:

  1. Temel bir temel oluşturun ve istediğiniz gibi çağırın.
  2. Bu sayfayı 404 yanıt yöneticisine / config / system / site-information öğesine atayın
  3. Theme_debug modunu etkinleştirin.
  4. Adres çubuğunuza aptal bir URL yazın.
  5. Sayfanıza başlangıçta oluşturuldunuz
  6. Kaynak ve şablon önerisine bakın, şöyle bir şey elde edersiniz:resim açıklamasını buraya girin

  7. Bu basittir, değiştirilecek önişleme dosyası veya template.php yoktur.

Kendim balta ile işaretlenmiş olanı seçtim, çünkü tam kare pic ve sadece arkaya bir bağlantı ile çıplak bir şey istedim.


404 hatası için oluşturduğunuz temel sayfanın artık arama sonuçlarında içerik sayfası olarak görüneceğini unutmayın.
rooby
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.