Quản lý các khối trong một chủ đề đáp ứng


15

Lúc đầu tôi chỉ bắt đầu một chủ đề đáp ứng dựa trên Omega, tập trung vào bố cục di động.

Có một số khối nhất định có thể được coi là quá 'nặng' để bao gồm bố cục trên thiết bị di động và các khối khác sẽ cần được giới thiệu cụ thể cho bố cục đó (menu giảm nước, thanh người dùng giảm âm, v.v.).

Tôi có thể dễ dàng ẩn các khối không mong muốn trên bố cục di động bằng CSS và bao gồm các khối dành riêng cho thiết bị di động trên bố cục mặc định và ẩn các khối đó (vì vậy chúng chỉ hiển thị cho thiết bị di động), nhưng đó có vẻ là một cách suy nghĩ ngược nó Nếu các khối không được hiển thị, chi phí bổ sung mà chúng phải chịu sẽ thực sự không được chấp nhận (đặc biệt là xem xét số lượng truy vấn db bổ sung mà nội dung trong các khối ẩn sẽ thêm vào).

Tôi nghĩ rằng phải có một cách sạch đẹp để ngăn chặn quá trình ra quyết định chặn ngay từ đầu trong quá trình xây dựng trang và loại trừ / bao gồm các khối dựa trên một số phát hiện os, nhưng tôi đang vẽ trống về cách có thể khả thi.

Tôi cũng sẽ đưa ra một thực tế rằng Varnish đang chạy trước trang web này, điều này sẽ khiến mọi thứ trở nên thú vị hơn :)

Có các mô-đun / chiến lược đã biết ngoài kia có thể giúp với điều này không?

Tôi nên nói thêm rằng việc sử dụng mô-đun Bối cảnh không phải là một tùy chọn vì trang web đã được hỗ trợ đầy đủ và việc chuyển nó vào Ngữ cảnh sẽ là một công việc lớn vào thời điểm này.


4
Tôi sẽ không có câu hỏi đã sử dụng Bảng điều khiển và một plugin truy cập tác nhân người dùng có liên quan. Bối cảnh có thể có thể làm tương tự, nhưng như bạn đã nói, đó không phải là một lựa chọn. Tất nhiên có khả năng khủng khiếp của eval: tăng khả năng hiển thị của khối, nhưng ... Mặt khác, với Varnish ở phía trước, các truy vấn db bổ sung mà các khối này thực hiện, có thể không phải là vấn đề?
Letharion

@Letharion Vâng đó là suy nghĩ, hãy để Varnish loại bỏ sự căng thẳng. Trang web có vài trăm nghìn người dùng hoạt động và Varnish chỉ tham gia vào lưu lượng truy cập ẩn danh. Chúng tôi sẽ chơi với ESI khá sớm nhưng thậm chí sau đó tôi có thể nghĩ ra các vấn đề ... từ quan điểm SEO, việc đánh dấu thêm / menu sẽ rất nặng nề và có thể gây nhầm lẫn, chưa kể trọng lượng thêm (không cần thiết) trên các trang cho người dùng di động. Đó là một khó khăn!
Clive

1
Có lẽ thêm một trình xử lý khối thông minh hơn (Bảng / Ngữ cảnh / khác) vào các trang nặng nhất, để bạn có thể nhận được một số lợi ích từ nó mà không cần phải làm lại toàn bộ trang web?
Letharion

1
Tôi không đồng ý rằng nó làm cho câu hỏi trở nên ngu ngốc, hoặc thay đổi hoàn toàn trò chơi. Varnish có thể được cấu hình để xử lý vấn đề một cách độc đáo, nó sẽ không biết làm thế nào với cấu hình bên ngoài.
Letharion

2
@Clive: có một câu nói cũ: "Không có câu hỏi ngu ngốc nào, chỉ có một câu trả lời ngu ngốc!" ;-)
AjitS

Câu trả lời:


4

chặn quá trình ra quyết định chặn ngay từ đầu trong quá trình xây dựng trang và loại trừ / bao gồm các khối dựa trên một số phát hiện os

Varnish đang chạy trước trang web này

Như đã lưu ý trong các nhận xét đã có, điều này yêu cầu bạn định cấu hình véc ni để không chỉ lưu vào bộ đệm yêu cầu, mà còn thay đổi tùy theo tác nhân người dùng. Có một ví dụ có liên quan trong wiki vecni, VCLExampleN normalizeUserAgent .

Khi yêu cầu thực sự xuất hiện trên trang web, bạn cần xác định khối nào sẽ hiển thị và không hiển thị. Tôi sẽ xem xét nó không ít hơn một thảm họa để làm điều này với eval , vì vậy các tùy chọn phổ biến nhất còn lại sau đó là Ngữ cảnhBảng điều khiển .

Với các trang web đã được xây dựng. làm lại tất cả các trang / vị trí khối với một trong hai mô-đun có thể không phải là một tùy chọn, nhưng với một trình lược tả và áp dụng 80-20 , có thể tăng hiệu suất đáng kể chỉ bằng cách làm lại các trang cụ thể.


Điều đó thực sự rất thú vị cảm ơn. Trang web đang được đề cập là trên Pantheon vì vậy tôi không nghĩ việc định cấu hình Varnish là một tùy chọn, nhưng điều này đã biến thành một câu hỏi chung chung hơn 'làm thế nào để làm điều này theo lý thuyết' vì vậy điều này rất hữu ích
Clive

Pantheon cho phép bạn thiết lập cookie STYXKEY (đến cuối helpdesk.getpantheon.com/customer/portal/articles/425726 ) và chúng cho phép bạn phân đoạn những gì Varnish lưu trữ / phục vụ cho người dùng anon.
Jimajamma

Hoàn toàn cách nhau trên tiền thưởng này, tôi muốn chia nó giữa cả hai câu trả lời nhưng cuộc sống không phải là loại đó. Hệ thống đã chọn Chapabu's để đưa tiền thưởng cho, vì vậy, con bọ nhỏ màu xanh lá cây sẽ đến với bạn của bạn :)
Clive

10

Tôi không thể đi sâu vào nhiều chi tiết, vì tôi đã không sử dụng một trong hai mô-đun từ lâu (Tôi xây dựng tất cả các trang web của mình với Ngữ cảnh từ đó và tôi đã không nhận phản hồi về thứ mà tôi chưa xây dựng cho trong khi đó, vì vậy tôi chưa gặp vấn đề này trước đây), nhưng tôi nghĩ bạn sẽ có thể kết hợp một thứ gì đó với Công cụ và không gian di động.

Không gian

Spaces là một mô-đun API nhằm mục đích làm cho các tùy chọn cấu hình thường chỉ có sẵn ở cấp độ trang web để có thể định cấu hình và ghi đè bởi các "khoảng trắng" riêng lẻ trên trang web Drupal. Nó đã được mô tả là:

  • Một cách để làm cho một trang web Drupal hoạt động như một số trang web
  • Một cách để cung cấp các Nhóm hữu cơ hoặc trang chủ đầy đủ tính năng có thể định cấu hình hơn nhiều
  • API tổng quát cho cấu hình theo ngữ cảnh

Công cụ di động

Mô-đun Công cụ Di động cung cấp cho các nhà phát triển Drupal một số công cụ để hỗ trợ điều chỉnh trang web của bạn dựa trên thiết bị của khách truy cập.

Trang dự án cho MT nói rằng nó chưa sẵn sàng để sản xuất, đây có thể là một vấn đề - nó phụ thuộc vào thời điểm cập nhật lần cuối, vì lần cam kết cuối cùng là trong tháng này.

*BIÊN TẬP

TÔI HOÀN TOÀN GIỚI THIỆU VỀ NÀY!

Duyệt web

Browsecap cung cấp một phiên bản cải tiến của hàm get_browser () của PHP.

Khối trình duyệt

Khối trình duyệt thêm các tùy chọn hiển thị để chặn cài đặt cấu hình để cho phép bạn ẩn hoặc hiển thị các khối trong thiết bị di động.

Browsecap không phụ thuộc vào thiết lập máy chủ của bạn, nhưng nếu bạn có thể sử dụng nó thì mô-đun thứ hai cung cấp cho bạn các cài đặt hiển thị thêm cho mỗi khối trên trang chỉnh sửa khối.

nhập mô tả hình ảnh ở đây


Khối trình duyệt có vẻ rất hứa hẹn, tôi sẽ kiểm tra trong vài ngày tới và cho bạn biết
Clive

Rất tiếc, điều này hoàn toàn tránh xa tôi, xin lỗi vì tiền thưởng một nửa!
Clive

0

bạn có thể sử dụng hỗ trợ trình duyệt chéo jQuery để có độ phân giải màn hình:

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

Thêm tập lệnh PHP đơn giản để hiển thị cài đặt của khối liên quan.


Cảm ơn, nhưng điều đó không có nghĩa là chuyển đổi toàn bộ trang web để sử dụng AJAX cho các khối? Tôi đang tìm cách làm phía máy chủ này nếu có thể
Clive

0

Bạn có thể sử dụng Khối phát hiện di động nhưng hiện tại tôi đang tìm giải pháp hoạt động với độ rộng cửa sổ và AdaptiveThemehoặc truy vấn phương tiện mô-đun Breakpoint để không sao chép mã đó và cân nhắc tải xuống của người dùng cuối. Tôi cũng đã có kết quả hỗn hợp với Phát hiện di động không chọn trên một thiết bị mà tôi đã thử nghiệm, điều này làm cho nó khá vô dụng như Browsecap nếu nó không thể cung cấp kết quả đáng tin cậy.

Một số cuộc thảo luận có một số người muốn thoát khỏi Browsecap vì lý do này hay lý do khác, do đó chuyển sang Phát hiện di động .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.