Yêu cầu Jan 18th, 2021 2:37 p.m. 409 0 6
  • 409 0 6
+1

Multiple Laravel theme

Chia sẻ
  • 409 0 6

🔴 Xin chào m.n!

Hiện mình đang thay đổi giao diện cho website, về chức năng thì giao diện cũ và mới là như nhau. Trong quá trình thay đổi giao diện, có tạo ra file css để ghi đè và thay đổi các element ở view.

🔸 Giờ mình muốn dùng multiple, nghĩa là nếu khách hàng chọn giao diện mới thì sẽ cho họ dùng. Còn với khách hàng không chọn vẫn dùng đc giao diện cũ.

🔸 Rất mong được m.n trợ giúp hoặc cho keyword để tìm hiểu. Có demo thì càng tốt ạ. Cảm ơn nhiều!

6 CÂU TRẢ LỜI


Đã trả lời Jan 18th, 2021 4:29 p.m.
+2

Về cách implement bằng Laravel thì mình ko rõ, nhưng giải pháp chung đối với trường hợp sử dụng nhiều file CSS thì mình thường thấy như sau:

  • File CSS 1 chứa theme cũ
  • File CSS 2 chứa theme mới
  • Bọc một class ngoài cùng cho file CSS 2, ví dụ:
.custom-theme body { }
.custom-theme section { }
.custom-theme .header { }
...
  • Xử lý event switch giao diện đơn giản chỉ cần thêm class .custom-theme vào thẻ body hoặc root nào đó là được.
Chia sẻ
Avatar My Name @Devsuccess
Jan 18th, 2021 5:39 p.m.

Cảm ơn b đã bình luận. Vấn đề nếu chỉ có css tác động lên theme thì có thể check dc, nhưng ngoài css ra thì tất các view đều đã tác động và sửa lên các element để thay đổi cả layout.

Laravel không biết có cho multiple theme không??

Jan 19th, 2021 5:57 a.m.

@Devsuccess Như bạn Khang nói là mình thấy ổn đó, bạn có thể chia sẻ cụ thể hơn về bài toán của bạn được ko? Vì cái theme mà mọi người đang hiểu là kiểu như đổi tone màu của website, font chữ, cỡ chữ... ý là đổi style thôi chứ bố cục vẫn giữ nguyên.

Avatar My Name @Devsuccess
Jan 19th, 2021 6:33 a.m.

Cảm ơn b đã quan tâm, của mình cụ thể là như sau:

  • Project của mình hiện đang hoạt động với giao diện cũ trên nhánh master ở gitlab.
  • Vẫn với project đó mình có thay đổi giao diện ở một nhánh mới trên git gồm: File css mới thay đổi để ghi đè các css cũ, thay đổi về bố cục layout, thay đổi về element trong html ở view.

Vấn đề giờ mình muốn đó là: Sẽ multiple theme, tức là sử dụng 2 theme hoạt động cùng một lúc tùy thuộc vào người dùng lựa chọn kiểu như facebook chọn giao diện mới khi sử dụng ở thời gian đầu, về sau nếu oke thì mình mới chuyển hoàn toàn sang giao diện mới đề dùng.

++ Lưu ý là project này đã có cả tính năng và logic đang hoạt động r.

Đã trả lời Jan 19th, 2021 4:43 a.m.
+2

Mình cảm thấy tốt nhất là làm ra 2 bộ views riêng biệt. Muốn chỉnh sửa, thêm bớt gì cũng dễ dàng hơn.

Chia sẻ
Avatar My Name @Devsuccess
Jan 19th, 2021 6:34 a.m.

Đúng rồi b, mình đang làm như vậy là lưu trên 2 nhánh khác nhau ở git. Giờ làm sau để trên môi trường production, sẽ cho người dùng sử dụng giao diện tùy vào lựa chọn của khách hàng.

Avatar Phùng Ngọc Lan @ngoclanbaby86
Jan 19th, 2021 1:17 p.m.

Tôi cũng đang làm theo cách này, quản lý view/css/js = thư mục đánh theo tên là đc mà.

Đã trả lời Jan 19th, 2021 6:01 a.m.
+2

@Devsuccess Như bạn Khang nói là mình thấy ổn đó, bạn có thể chia sẻ cụ thể hơn về bài toán của bạn được ko? Vì cái theme mà mọi người đang hiểu là kiểu như đổi tone màu của website, font chữ, cỡ chữ... ý là đổi style thôi chứ bố cục vẫn giữ nguyên.

Nếu bài toán của bạn cấp độ cao hơn đó là đổi cả layout hiển thị các kiểu thì mình bạn có thể tách hẳn mỗi theme của bạn thành từng folder với gồm các file blade riêng rẽ. Hoặc kết hợp cả hai gồm cách thay theme theo CSS và cả render view blade riêng.

Chia sẻ
Đã trả lời Jan 19th, 2021 12:12 a.m.
+1

Theo mình thì còn tùy vào độ phức tạp của giao diện nữa.

Ví dụ nếu giờ bạn chỉ là muốn thay đổi số cột, chuyển sidebar từ trái qua phải, ... thì có thể tạo ra nhiều file css. Mỗi lần đổi theme thì sẽ link file css tương đương

Còn nếu giữa các theme khác nhau quá nhiều, thì mình nghĩ bạn nên tạo ra nhiều view, người dùng chọn view nào thì bạn trả về view đó

Chia sẻ
Avatar My Name @Devsuccess
Jan 19th, 2021 8:38 a.m.

Theme của mình đã phức tạp ở việc tạo css mới để ghi đè css cũ, thay đổi layout và có tạo ra hai nhánh ở git để quản lý rồi, giờ mình chỉ muốn là laravel có hỗ trợ multiple theme ở trong thư mục resources, tạo 2 view và control nó dc k?

Đã trả lời Jan 19th, 2021 1:47 p.m.
+1

cách đây tầm 3 năm mình có làm 1 con yêu cầu như bạn, khi đó mình dùng package này nhé :3 bạn có thể tìm hiểu, hoặc tìm các package liên quan https://github.com/FaCuZ/laravel-theme

Chia sẻ
Đã trả lời Jan 28th, 2021 8:36 a.m.
0

Vấn đề multiple theme này mình dùng Reactjs làm Frontend thì xử lý rất đơn giản (các component library đều hỗ trợ vụ này hoặc tự code tay ko khó), còn nếu dùng Laravel thì bó tay.

Chia sẻ
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí