Duyarlı bir temadaki blokları yönetme


15

İlk başta mobil düzene odaklanarak Omega tabanlı duyarlı bir temaya başlıyorum.

Mobil düzene eklenemeyecek kadar 'ağır' kabul edilecek bazı bloklar ve bu düzene özel olarak eklenmesi gereken diğer bloklar (sulandırılmış menüler, tonda kullanıcı çubuğu vb.) Vardır.

Mobil düzendeki istenmeyen blokları CSS ile kolayca gizleyebilir ve varsayılan düzene mobil cihazlara özgü blokları ekleyebilir ve bunları gizleyebilirim (böylece yalnızca mobil cihazlar için gösterilir), ancak bu, düşünmek için oldukça geri bir yol gibi görünüyor o. Bloklar gösterilmezse, ortaya çıkan ekstra yük gerçekten kabul edilemez olacaktır (özellikle gizli bloklardaki içeriğin ekleyeceği ekstra db sorgularının sayısı dikkate alındığında).

Sayfa oluşturma erken blok karar verme sürecini durdurmak ve bazı os algılama dayalı blokları dahil etmek / dahil etmek için güzel ve temiz bir yol olması gerektiğini düşünüyorum, ama bunun nasıl olabileceğini boş bir çizim mümkün.

Ayrıca Varnish'in bu sitenin önünde çalıştığı gerçeğini de atacağım, bu da işleri daha eğlenceli hale getirmeli :)

Bu konuda yardımcı olabilecek modüller / bilinen stratejiler var mı?

Site zaten tam teşekküllü olduğu için Context modülünü kullanmanın bir seçenek olmadığını ve onu Context'e taşımanın bu noktada büyük bir girişim olacağını eklemeliyim.


4
Hiç şüphesiz Paneller ve ilgili bir kullanıcı-aracı erişim eklentisi kullanırdım. Bağlam muhtemelen aynı şeyi yapabilir, ancak daha önce de söylediğin gibi, bu bir seçenek değil. Elbette korkunç bir değerlendirme olasılığı var: blok görünürlüğünü, ancak ... Öte yandan, Vernik ön tarafta, bu bloğun gerçekleştirdiği ekstra db sorguları çok fazla sorun olmayabilir mi?
Letharion

@Letharion Evet, düşünce Varnish'in bu yükü ortadan kaldırmasına izin verin. Sitede birkaç yüz bin aktif kullanıcı var ve Varnish sadece anonim trafikle ilgileniyor. ESI ile oldukça yakında oynayacağız ama o zaman bile problemleri düşünebilirim ... SEO açısından ekstra işaretleme / menüler, sayfalardaki ekstra (gereksiz) ağırlıktan bahsetmemek için ağır ve potansiyel olarak kafa karıştırıcı olurdu mobil kullanıcılar. Zor bir şey!
Clive

1
Belki de en ağır sayfalara daha akıllı bir blok işleyici (Paneller / Bağlam / diğer) ekleyin, böylece tüm siteyi yeniden yapmanıza gerek kalmadan ondan biraz kazanç elde edebilirsiniz?
Letharion

1
Soruyu aptalca ya da toplam bir oyun değiştirici yaptığını kabul etmiyorum. Vernik sorunu güzel bir şekilde ele almak için yapılandırılabilir, kutudan çıktığı bir konfigürasyonla nasıl yapılacağını bilemez.
Letharion

2
@Clive: Eski bir deyiş var: "Aptalca bir soru diye bir şey yoktur, sadece aptalca bir cevap!" ;-)
AjitS

Yanıtlar:


4

blok karar verme sürecini sayfa derlemesinin başlarında durdurmak ve bazı os algılamaya dayalı blokları hariç tutmak / dahil etmek

Vernik bu sitenin önünde çalışıyor

Zaten yorumlarda belirtildiği gibi, bu, verniği yalnızca istek URL'sinde önbelleklemek için değil , aynı zamanda kullanıcı aracısında da değişiklik gösterecek şekilde yapılandırmanızı gerektirir . Vernik wiki VCLExampleNormalizeUserAgent'da ilgili bir örnek var .

İstek aslında kez etmez siteyi vurmak, göstermek ve göstermek için değil hangi engeller belirlemek gerekir. Bunu eval ile yapmanın bir felaketten daha az olmadığını düşünürüm , bu yüzden kalan en yaygın seçenekler Bağlam ve Panellerdir .

Site zaten inşa edilmiş. her iki modülle tüm sayfaları / blok yerleşimini yeniden yapmak muhtemelen bir seçenek değildir, ancak bir profil oluşturucu ve 80-20 uygulayarak , yalnızca belirli sayfaları yeniden yaparak önemli performans kazançları elde etmek mümkün olabilir.


Bu gerçekten ilginç teşekkürler. Söz konusu site Pantheon'da, bu yüzden Varnish'i yapılandırmanın bir seçenek olduğunu düşünmüyorum, ancak bu daha genel bir 'teorik olarak bunu nasıl yapacağını'
yazıyor

Pantheon, STYXKEY çerezlerini ayarlamanıza izin verir ( helpdesk.getpantheon.com/customer/portal/articles/425726 sonuna doğru) ve vernik önbelleklerini / anon kullanıcıları için neyin hizmet verdiğini bölümlere ayırmanıza izin verir.
Jimajamma

Tamamen bu ödül üzerinde aralıklı, ben her iki cevap arasında bölmek istiyorum ama hayat bu tür değil. Sistem, ödül vermek için Chapabu'yu seçti, bu yüzden küçük yeşil kene sana dostum :)
Clive

10

Her iki modülü de uzun süredir kullanmadığım için çok fazla ayrıntıya giremiyorum (tüm sitelerimi Context ile go kelimesinden oluşturuyorum ve bir bu yüzden daha önce bu problemi yaşamadım), ancak Mobil Araçlar ve Alanlar ile bir şeyler koyabilmeniz gerektiğini düşünüyorum.

Spaces

Spaces, bir Drupal sitesindeki ayrı "boşluklar" tarafından yapılandırılabilir ve geçersiz kılınacak yapılandırma seçeneklerini genellikle yalnızca site genelinde kullanılabilir hale getirmeye yönelik bir API modülüdür. Şu şekilde tanımlanmıştır:

  • Bir Drupal sitesinin birkaç site gibi davranmasını sağlamanın bir yolu
  • Çok daha yapılandırılabilir, tam özellikli Organik Gruplar veya kullanıcı ana sayfaları sağlamanın bir yolu
  • Bağlamsal yapılandırma için genelleştirilmiş bir API

Mobil Araçlar

Mobil Araçlar modülü, Drupal geliştiricilerine, ziyaretçinin cihazına göre sitenizde ayarlamalar yapmanıza yardımcı olacak bazı araçlar sunar.

MT'nin proje sayfası, üretime hazır olmadığını söylüyor, bu bir sorun olabilir - son taahhüt bu ay olduğu için son güncellenme zamanına bağlıdır.

*DÜZENLE

BU HAKKI TAMAMEN UNUTTUM!

browscap

Browscap, PHP'nin get_browser () işlevinin geliştirilmiş bir sürümünü sağlar.

Browscap bloğu

Tarayıcı Bloğu, mobil cihazlarda blokları gizlemenize veya göstermenize izin vermek için yapılandırma ayarlarını engellemek için görünürlük seçenekleri ekler.

Tarayıcı sunucu kurulumunuza bağlıdır, ancak kullanabiliyorsanız, ikinci modül blok düzenleme sayfasındaki her blok için ekstra görünürlük ayarları sağlar.

resim açıklamasını buraya girin


Browscap Block gerçekten umut verici görünüyor, önümüzdeki birkaç gün içinde kontrol edeceğim ve size haber vereceğim
Clive

Hata! Benden tamamen uzaklaştı, yarım ödül için özür dilerim!
Clive

0

ekran çözünürlüğünü almak için jQuery çapraz tarayıcı desteğini kullanabilirsiniz:

var browserWidth  = $(window).width();
var browserHeight = $(window).height();

İlgili bloğun ayarını görüntülemek için basit PHP betiği ekleyin.


Teşekkürler, ancak bu tüm siteyi bloklar için AJAX kullanacak şekilde dönüştürmek anlamına gelmez mi? Mümkünse bu sunucu tarafını yapmak istiyorum
Clive

0

Mobil Algılama Bloğu'nu kullanabilirsiniz, ancak şu anda AdaptiveThemebu kodu çoğaltmamak ve son kullanıcı yüklemesini olduğundan daha fazla tartmamak için pencere genişliği ve ya da Breakpoints modülü medya sorgularıyla çalışan bir çözüm arıyorum . Ayrıca, Mobile Detect ile test ettiğim bir cihazdan almama konusunda karışık sonuçlar aldım, bu da güvenilir sonuçlar sağlayamazsa Browscap gibi işe yaramaz hale getiriyor.

Bazı tartışmalarda bazı sebeplerden dolayı Browscap'dan uzaklaşmak isteyen bazı insanlar var, bu nedenle Mobil Algılama'ya geçiliyor .

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.