Tôi thực sự đã chạm đến đáy của Google khi cố gắng tìm ra cách thêm một lớp css vào mỗi hàng của một khung nhìn. Thủ thuật là tôi cần lớp cho mỗi hàng được xác định động dựa trên một số dữ liệu từ nút mà chế độ xem lấy từ đó. Hàm rút gọn gàng cho nút này là -
function pgc_preprocess(&$variables) {
$node = $variables['node'];
if ($node->type == "event") {
$variables['event_class'] = '';
$num_trainers = $node->field_number_of_trainers[0]['value'];
$count = count($node->field_trainer);
if($count < $num_trainers) {
$variables['event_class'] = 'red';
} else {
$variables['event_class'] = 'green';
}
return $variables;
}
}
Mục đích của việc này là mã màu một sự kiện chưa có đủ người đăng ký. Sẽ có một danh sách các sự kiện trên trang nhất và tôi cũng cần chúng được mã hóa màu. Tôi thực sự hy vọng có một số giải pháp đơn giản dọc theo dòng -
function pgc_preprocess_views_view_unformatted(&$variables) {
// Magic here, preferably having something to
// do with the function I already wrote.
}
Chỉ cần thả <?php print $event_class ?>
vào xem .tpl không làm điều đó.