Mẫu phiếu lương html css

Phiếu lương hoặc phiếu lương là một hồ sơ tài liệu mà người sử dụng lao động đưa cho nhân viên mỗi khi họ nhận được tiền lương của họ. Phiếu lương chủ yếu thông báo cho nhân viên về tổng lương, các khoản khấu trừ đã thực hiện và số tiền lương ròng còn lại. Phiếu lương cũng cung cấp bằng chứng về thu nhập và bằng chứng về việc làm

Paysliper phù hợp với những người dùng khác nhau nhờ kiểu dáng bố cục tùy chỉnh, văn bản động và các trường có thể đáp ứng các nhu cầu khác nhau của họ. Một công ty sẽ chọn thứ đáp ứng nhu cầu của họ liên quan đến các mặt hàng được nhập vào các trường tương ứng, khả năng trình bày hoặc thậm chí là phong cách và sở thích của họ

Tải xuống hoặc tạo mẫu phiếu lương mẫu

lưới 1

Từ

Excel

Lưới 2

Từ

Excel

lưới 3

Từ

Excel

Lưới 4

Từ

Excel

Lưới 5

Từ

Excel

danh sách 1

Từ

Excel

danh sách 2

Từ

Excel

danh sách 3

Từ

Excel

danh sách 4

Từ

Excel

danh sách 5

Từ

Excel

Trình tạo phiếu lương cho phép bạn tạo phiếu lương trực tuyến miễn phí, hoàn toàn có thể tùy chỉnh để bao gồm thông tin công ty và thông tin chi tiết của từng nhân viên

Hệ thống quản trị nội dung hay còn được gọi là hệ thống quản trị nội dung hoặc Hệ thống quản lý nội dung [CMS] là phần mềm để tổ chức và tạo môi trường cộng tác thuận lợi nhằm mục đích xây dựng hệ thống tài liệu và các loại nội dung

Ghi chú

Tham khảo thêm tại Wikipedia

Có rất nhiều CMS nền tảng nổi tiếng và phổ biến hiện nay như Wordpress, Magneto [hiện là Adobe Commerce], Joomla,… Và Odoo cũng phát triển một CMS nền tảng riêng với đầy đủ các tính năng, được tích hợp trong hai mô-đun . Chỉ với các thao tác kéo thả, người dùng có thể dễ dàng tạo ra một trang web trong vài phút. Tuy nhiên để thêm các tính năng mới cho giao diện thì lại không dễ dàng như vậy. Trong phần này, chúng ta cùng nhau tìm hiểu cách tạo ra một trang web có tính tương tác cao

Các chủ đề sẽ được cập nhật ở phần này¶

  • Quản lý tài sản tĩnh .

  • Thêm CSS và JavaScript cho Trang web .

  • Tạo mới và tùy chỉnh QWeb mẫu .

  • Quản lý điều hướng động .

  • Cung cấp đoạn mã tĩnh cho người dùng .

  • Cung cấp đoạn mã động cho người dùng .

  • Nhập thông tin của người dùng từ trang web .

  • Quản lý các SEOL tùy chọn .

  • Quản lý sơ đồ trang web của trang web .

  • Lấy thông tin quốc gia của người dùng truy cập trang web .

  • Theo dõi hoạt động tiếp thị .

  • Quản lý website nhiều trang .

  • URL điều hướng cũ .

  • Quản lý xuất bản cho các bản ghi liên quan tới trang web .

Quản lý tài sản tĩnh¶

Giống như hầu hết các trang web hiện nay, việc quản lý các nội dung tĩnh [nội dung tĩnh] rất quan trọng trong việc mang đến cho người dùng một trải nghiệm mượt mà. Khi trang web được tải dữ liệu, các tệp tĩnh sẽ tạo ra các yêu cầu riêng biệt đến máy chủ, lượng yêu cầu càng nhiều trang web sẽ tải càng chậm. Odoo cũng giải quyết công việc này với cách phát triển riêng của họ

Điểm khác biệt trong cách quản lý tài sản tĩnh của Odoo¶

Một trường hợp biến phổ biến là khi chúng ta muốn tải một vài nội dung nhưng không muốn tải toàn bộ nội dung lên trang web. Các tài sản này thuộc về các mô-đun khác nhau và không chia sẻ mã giống nhau. Nên việc tải nội dung sẽ gặp khó khăn trong Odoo

Để giải quyết tình trạng tải quá nhiều tài sản không cần thiết, Odoo sử dụng một khái niệm gọi là Gói tài sản - gói tài sản. Nhiệm vụ của các gói này là kết hợp tất cả các tệp JavaScript và CSS trong một tệp và giảm kích thước của tệp này. Các tệp JavaScript và CSS khi kết hợp sẽ xóa các nhận xét, khoảng trống thừa, giúp thu nhỏ kích thước tệp và tăng tốc độ tải của trang

Bằng cách này, AssetsBundle không chỉ tập hợp các tệp mà còn được đóng gói với nhiều tính năng

Odoo sẽ quản lý các tài sản tĩnh này thông qua lớp AssetsBundle có thể tìm thấy trong đường dẫn

/odoo/addons/base/models/assetsbundle.py

Một số Gói nội dung được sử dụng trong Odoo

  • trang web. tài sản_chung. Bao gồm các tiện ích cơ bản cho các ứng dụng như JQuery, Underscore. Js, Phông chữ Tuyệt vời,…

  • trang web. tài sản_phụ trợ. Được sử dụng trong phần phụ trợ của Odoo, bao gồm các chế độ xem, tiện ích trường,…

  • trang web. tài sản_frontend. Được sử dụng trong phần giao diện người dùng của Odoo

  • trang mạng. tài sản_editor và web_editor. ghi chú mùa hè. Gói này chứa các mã của tính năng chỉnh sửa và kéo-thả của Trang web

  • trang web. report_assets_common. Gói này sẽ tải cấu trúc cục bộ của báo cáo được sinh ra thông qua báo cáo QWeb

Ghi chú

Một số gói được sử dụng cho các ứng dụng cụ thể. điểm bán hàng. tài sản, khảo sát. Survey_assets, mass_mailing. layout và website_slides. slide_embed_assets

điều chỉnh tài sản¶

Thông thường, để bổ sung thêm các tài sản, chúng tôi sẽ đặt tệp JS, CSS, SCSS,. to true bundle to select

Ví dụ. bạn muốn tệp CSS của mình được áp dụng cho các mô-đun của Odoo, bạn cần phải đặt tệp CSS vào web. tài sản_chung

Trong một số trường hợp nhất định, chúng tôi sẽ phải tạo ra một AssetsBundle hoàn toàn mới. Và chúng ta hoàn toàn có thể làm được điều đó

Dưới đây, chúng tôi sẽ cùng tạo một Gói tài sản mới

Bước 1

Tạo một mẫu QWeb mới và thêm các tệp JS, CSS, SCSS của bạn vào tệp này


   
   
   

Bước 2

Tại mẫu QWeb mà bạn muốn sử dụng gói mới, hãy sử dụng t-call-assets


...
   
      
      
   
...

Ghi chú

Thêm một gói mới nhất khi thực hiện. Bạn cần phải làm điều này khi muốn phát triển Trang/Ứng dụng mà không muốn sử dụng các tính năng của Odoo CMS

Mẹo

Odoo sẽ chỉ tạo ra các Tài nguyên một lần. Với những thay đổi trong quá trình phát sinh sẽ cần phải khởi động lại máy chủ. Để tránh việc này, bạn hãy thêm –dev xml vào dòng lệnh. Điều này sẽ giúp các tài sản được tải lại ngay lập tức mà không cần khởi động lại máy chủ

Ở chủ đề tiếp theo, chúng ta sẽ cùng tìm hiểu cách thêm tệp JS/CSS tùy chỉnh vào một gói có sẵn

Thêm CSS và JavaScript cho trang Website¶

Trong chủ đề này, chúng ta sẽ cùng tìm hiểu cách thêm CSS và JavaScript vào website

tổng quan¶

Chúng ta sẽ tạo một mô-đun hoàn toàn mới có tên là giáo dục

Ghi chú

Bạn có thể tìm thấy cách tạo mô-đun mới với dòng lệnh tại tại đây .

Because will must add files JS/CSS/SCSS Dẫn đến việc chỉnh sửa trên trang web, nên chúng ta cần thêm trang web vào tệp __manifest__. py as after

...
'depends': ['base', 'website'],
...

Các bước thực hiện¶

Bước 1

Tạo một mẫu tệp. xml trong các lượt xem thư mục và thêm một mẫu trống bên dưới


   
      
         
      
   

[Đừng quên thêm tệp này trong __manifest__. py]

Bước 2

Thêm đường dẫn tham chiếu của các tệp JavaScript và CSS vào mẫu trên mẫu




Bước 3

Thêm đoạn mã CSS vào static/src/css/education_style. css

body main {
   background: rgb[171,214,153];
   background: linear-gradient[30deg, rgba[171,214,153,1] 50%, rgba[255,226,106,1] 100%];
}

Bước 4

Thêm đoạn mã SCSS vào static/src/css/education_style. scss

$edu-text-color: #FFFFFF;

footer.o_footer {
   color: $edu-text-color;
}

Bước 5

Thêm đoạn mã JavaScript vào /static/src/js/education. js

________số 8

Khởi động máy chủ và cập nhật mô-đun, bạn sẽ nhận được trang web mới với giao diện màu sắc và thông báo như hình bên dưới

Ảnh 14. 1 - Website sau khi được thêm file JavaScript, SCSS, CSS

Ghi chú

Odoo cải thiện hiệu năng bằng cách tải JavaScript tối thiểu cho người dùng. Tất cả các tệp JavaScript sẽ được tải chậm cho đến khi trang được tải hết

Tạo mới và tùy chỉnh Mẫu QWeb¶

Trong chủ đề này, chúng tôi sẽ bổ sung giao diện cho trang web, hiển thị các khóa học và thông tin tương ứng cho khóa học trên trang web với QWeb Template

Các bước thực hiện¶

Để có thể thực hiện các thao tác tại chủ đề này, chúng ta có thể sử dụng lại ví dụ từ chủ đề Thêm CSS và JS cho trang web

Bước 1

Thêm bộ điều khiển vào tệp bộ điều khiển/chính. py as bottom

from odoo import http
from odoo.http import request


class Main[http.Controller]:
   @http.route['/course', type='http', auth="user", website=True]
   def course[self]:
      return request.render[
         'education.course', {
            'courses': request.env['course'].search[[]],
         }]

Ghi chú

Tham số website=True giúp trang web Hỗ trợ đa ngôn ngữ, đồng thời cải thiện việc hiển thị các ngoại lệ một cách trực quan

Bước 2

Thêm mẫu mới vào chế độ xem/mẫu tệp. xml như bên dưới [nhớ rằng hãy thêm lượt xem/mẫu. xml vào tệp kê khai]


   
   
   

0

Bước 3

Trọng website. bố trí thêm đoạn mã hiển thị các khóa học như bên dưới


   
   
   

1

Bây giờ, bạn hãy khởi động máy chủ và truy cập vào đường dẫn http. // máy chủ của bạn-url. 8069/khóa học để nhìn thấy kết quả

Ảnh 14. 2 - Giao diện của các khóa học sau khi hoàn thành các bước trên.

Active mode¶

QWeb là một công cụ tạo mẫu cơ bản được sử dụng trong Odoo. Nó là một công cụ tạo XML mẫu và được sử dụng với mục đích chính là tạo ra các thành phần và trang cho HTML

Ở bước 1, chúng ta có bộ điều khiển có thể tùy chỉnh các giá trị. Những giá trị này sẽ được truyền từ bộ điều khiển tới bản mẫu của QWeb

Ở những bước tiếp theo, chúng ta tạo ra một mẫu đặt tên là khóa học được sử dụng để tạo mã HTML khi hiển thị danh sách các khóa học. Tất cả các phần mã này được đặt trong thẻ t với thuộc tính t-call. Khi t-call được gọi, Odoo sẽ hiển thị trang web với trang web mẫu. bố cục và chèn nội dung của chúng ta vào bên trong mẫu này

Với cách này, chúng ta sẽ có một trang web Odoo đầy đủ. menu, footer và tính năng chỉnh sửa trang mà không lặp lại mã ở tất cả các trang

Một số chỉ thị của mẫu QWeb [Chỉ thị mẫu] được sử dụng trong ví dụ trên

t-foreach¶

Khi cần làm việc với các tập bản ghi, mẫu QWeb cung cấp cho chúng ta một cơ chế để lặp lại các bản ghi có trong một tập bản ghi. Ví dụ


   
   
   

2

Will was render to the đoạn mã như bên dưới


   
   
   

3

trường t¶

Khi sử dụng trường t, người dùng có thể thay đổi nội dung của thẻ bằng trường t trong chế độ chỉnh sửa [chế độ chỉnh sửa]. Khi lưu lại, dữ liệu sẽ được cập nhật trong cơ sở dữ liệu. Tuy nhiên, chỉ với những người dùng có quyền [permission] mới có thể sử dụng tính năng này

Ghi chú

Điểm khác biệt giữa t-esc và t-field là trường t-trường hiển thị dữ liệu dựa trên ngôn ngữ của người dùng, trong khi t-esc hiển thị dữ liệu [giá trị thô] từ trong cơ sở dữ liệu

cuộc gọi t¶

Khi phát triển một ứng dụng lớn, việc quản lý các mẫu càng trở nên khó khăn. Và việc chia nhỏ để quản trị cần thiết để việc phát triển trở nên hiệu quả hơn. Ngoài ra, việc chia nhỏ các mẫu giúp bạn có thể sử dụng lại mã của mình bằng lệnh t-call. ví dụ


   
   
   

4

Tham khảo thêm¶

Để thiết kế QWeb Templates một cách hiệu quả không phải là một công việc đơn giản. Ngoài những phần đã được đề cập đến trong ví dụ trên còn có thể sử dụng chế độ xem kế thừa để tùy chỉnh các mẫu đã có. Các chỉ thị mẫu khác mà Odoo mang đến có thể liệt kê dưới dạng liệt kê

  • t-att và t-attf. Chỉ thị có thể giúp đặt giá trị động [giá trị động] cho các thuộc tính

  • t-nếu. Chỉ thị có chức năng tương đương với câu lệnh nếu trong python

Ngoài ra bạn có thể tham khảo thêm các nguồn khác

  • Bootstrap. Bạn nên sử dụng Boostrap cho việc thiết kế giao diện trở nên mạch lạc hơn Boostrap Docs

  • Kế thừa chế độ xem trong Odoo. Chế độ xem phụ trợ

  • Các kiến ​​thức về bộ điều khiển và định tuyến. Phát triển máy chủ web

Quản lý điều hướng động¶

Ở chủ đề trước, chúng ta đã học cách bổ sung và tùy chỉnh một mẫu QWeb mới. Nhưng vẫn còn một số điều chưa được hoàn thiện tại trang web của chúng ta

  • Khi nhấn vào nút Start Learning, chúng ta vẫn chưa đặt đường dẫn cho từng khóa học

  • Ảnh cho từng khóa học chưa được lưu trữ riêng biệt

Trong chủ đề này, chúng ta cùng nhau tìm hiểu cách bổ sung các URL cho từng khóa học hay còn gọi là quản lý các điều hướng động [Quản lý các tuyến đường động]

Các bước thực hiện¶

Chúng ta vẫn sử dụng ví dụ từ chủ đề trước với khóa học mô hình. Vui lòng thêm vào mô hình hai trường mới như bên dưới


   
   
   

5

Bước 1

Add a new direction [route] to file controllers/main. py as bottom


   
   
   

6

Bước 2

Thêm một mẫu mới dành cho khóa học_detail để hiển thị chi tiết của khóa học vào các mẫu tệp. xml as bên dưới


   
   
   

7

Bước 3

Thêm đường dẫn động cho ảnh của khóa học và chi tiết khóa học vào khóa học mẫu trong các mẫu tệp. xml as bên dưới


   
   
   

8

Cuối cùng, cập nhật lại giáo dục mô-đun, máy chủ khởi động và truy cập vào đường dẫn http. // máy chủ của bạn-url. 8069/course to see results

Ảnh 14. 3 - Giao diện của các khóa học sau khi hoàn thành các bước trên và thêm ảnh khóa học.

Ảnh 14. 4 - Giao diện của chi tiết các khóa học sau khi hoàn thành các bước trên và thêm mô tả khóa học.

Active mode¶

Tương tự như chủ đề trước, chúng ta thêm một lộ trình để điều hướng đến trang chi tiết của các khóa học. Nhưng ở đây là một tuyến đường năng động

Odoo sẽ sinh ra một dạng URL /course/course. id and render to course/1, match with id of the record has in model course. Khi URL này được truy cập, Odoo sẽ tìm nạp bản ghi khóa học đó và đưa vào hàm course_detail[] dưới dạng một tham số. Sau đó sẽ hiển thị mẫu course_detail với tham số được truyền vào

Ở các bước tiếp theo, chúng tôi xây dựng một mẫu QWeb để hiển thị ra trang chi tiết khóa học và thêm các điều hướng động vào nút Bắt đầu học và ảnh của từng khóa học

Ghi chú

Odoo sử dụng thư viện werkzeug để xử lí các request HTTP. Bạn có thể thấy ở cú pháp /course/ trong ví dụ trên. Bạn có thể điều hướng bằng những cách khác:

  • /page/

  • /page/

  • /pages/

  • /pages//

Bạn có thể tham khảo thêm tại đây về các tuyến đường với thư viện werkzeug

Cung cấp các đoạn trích tĩnh cho người dùng¶

tổng quan¶

Odoo mang đến một tính năng đặc biệt trong trình chỉnh sửa trang web, đó là người dùng có thể kéo thả các khối [khối mã] vào trong trang web và chỉnh sửa chúng nếu cần thiết. Các khối này là các đoạn mã sau [đoạn mã đã đóng gói]. Có nhiều loại đoạn nhưng có thể phân thành hai loại chính

  • đoạn mã tĩnh. Cố định và không thay đổi cho đến khi người dùng muốn tùy chỉnh chúng

  • đoạn trích động. do sự thay đổi dữ liệu trong cơ sở dữ liệu và thay đổi khi giá trị của bản ghi thay đổi

Trong chủ đề này, chúng ta sẽ tìm hiểu cách tạo ra một đoạn trích tĩnh

Các bước thực hiện¶

Trong chủ đề này, chúng ta cùng tạo ra một đoạn trích nhỏ với nội dung là bài học trong khóa học. Bố cục của đoạn trích bài học sẽ sử dụng Đối tượng phương tiện Boostrap để hiển thị hình ảnh và nội dung một cách rút gọn. Chúng ta vẫn sử dụng ví dụ từ những chủ đề trước với khóa học mô hình

Bước 1

Thêm tệp mới có tên lượt xem/s_course_lessons. xml as bên dưới, đồng thời bổ sung tệp này vào tệp kê khai


   
   
   

9

Bước 2

Trong tệp views/s_course_lessons. xml, tạo một mẫu mới có tên là Course Lessons và id=”s_course_lessons”


...
   
      
      
   
...
0

Mẹo

Luôn dùng thẻ

để snippet tránh lỗi no location to drop-in

Bước 3

Tạo một tập tin mới có tên views/snippets. xml, thêm mã đoạn như bên dưới vào trong tệp và thêm tệp này vào bảng kê khai


...
   
      
      
   
...
1

Bước 4

Thêm ảnh của đoạn trích và ảnh bài học vào trong đường dẫn /education/static/src/img/. Khởi động lại server và mở edit-mode trong website bạn sẽ thấy kết quả như bên dưới. Đoạn trích có thể kéo-thớt, chỉnh sửa ngay trên trang web giao diện

Ảnh 14. 5 - Giao diện của đoạn trích trong chế độ Website Editor.

Active mode¶

Sau khi tạo ra một Mẫu QWeb ở bước 1 và bước 2 để hiển thị thông tin các bài học, chúng tôi sẽ thêm đoạn trích mới vào danh sách đoạn trích của Odoo. Lúc này bạn sẽ cần kế thừa trang web. đoạn trích

Ghi chú

trang mạng. đoạn trích là một mẫu chứa các đoạn mã cơ bản và bạn có thể khám phá rất nhiều đoạn mã có sẵn của Odoo tại tệp /addons/website/views/snippets/snippets. xml

Trong chế độ chỉnh sửa trang web, các đoạn trích sẽ được chia thành từng phần dựa trên công dụng của chúng. Ở trong ví dụ này, chúng tôi thêm đoạn mã mới vào phần Cấu trúc thông qua thẻ xpath. Thuộc tính t-snippet và t-thumbnail sẽ cung cấp thông tin của đoạn trích bao gồm ID XML của mẫu QWeb và ảnh hiển thị của đoạn trích để thêm vào danh sách các đoạn mã đã có

Tùy chọn đoạn trích [một số lựa chọn cho đoạn trích] Hỗ trợ các thuộc tính như loại trừ dữ liệu, thả xuống gần dữ liệu và thả vào dữ liệu để xác định xem đoạn mã này sẽ được đặt ở vị trí nào khi kéo-thả

Sự thật

Đoạn mã tĩnh đơn giản chỉ là một mã HTML khối

Cung cấp đoạn trích động cho người dùng¶

Trong chủ đề này, chúng ta cùng nhau tìm hiểu cách tạo ra một đoạn trích động

Các bước thực hiện¶

Chúng ta vẫn sẽ sử dụng ví dụ từ chủ đề trước với khóa học người mẫu. Đoạn trích trong phần này sẽ là một slide các hình ảnh của khóa học. Bố cục của đoạn trích sẽ sử dụng bố cục Bootstrap Carousel

Bước 1

Thêm tệp mới có tên lượt xem/s_course_carousel. xml và thêm một mẫu s_course_carousel để hiển thị slide ảnh, đồng thời thêm tệp này vào trong bảng kê khai


...
   
      
      
   
...
2

Bước 2

Trong tập tin lượt xem/đoạn trích. xml thêm đoạn mã để hiển thị đoạn mã trên giao diện web ở phía dưới [đừng thêm ảnh hiển thị đoạn mã vào thư mục /static/src/img/]


...
   
      
      
   
...
3

Bước 3

Thêm tệp mới /static/src/snippets. js để có thể hiển thị ảnh mẫu silde như bên dưới


...
   
      
      
   
...
4

Bước 4

Thêm tệp /static/src/snippets. js vào trang web. tài sản_frontend để có thể tải tệp này lên trang web khi khởi động máy chủ. Tạo tệp mới có tên lượt xem/nội dung. xml and add to file manifest


...
   
      
      
   
...
5

Sau khi cập nhật mô-đun, bạn hãy khởi động máy chủ và sẽ thấy đoạn trích có tên Course Carousel như hình bên dưới

Ảnh 14. 6 - Giao diện của đoạn trích động trong chế độ Website Editor

Ảnh 14. 7 - Giao diện của đoạn trích sau khi thêm vào Trang web

Active mode¶

Tương tự như khi tạo một đoạn trích tĩnh, chúng ta cần tạo một mẫu để hiển thị giao diện cho đoạn trích. Ở ví dụ này, chúng ta sử dụng layout Carousel của Boostrap để có thể tạo nhanh một bố cục cục bộ cho slide ảnh như mong muốn của chúng ta.

Bước tiếp theo, chúng ta khai báo thông tin của đoạn trích mới vào trang web. đoạn trích để có thể hiển thị đoạn mã trên giao diện Trình chỉnh sửa trang web

Nhưng nếu dừng ở đây, chúng ta mới chỉ có khung cho một slide ảnh. Slide này đang hoàn toàn rỗng, không có dữ liệu. Do đó ở bước 3, chúng ta thêm một đoạn mã JavaScript để có thể lấy dữ liệu từ trong cơ sở dữ liệu và đưa vào các vị trí đã tạo sẵn ở mẫu

Để ánh xạ một đối tượng JavaScript sang các phẩn từ HTML, Odoo sử dụng PublicWidget trong đó có một thuộc tính quan trọng là bộ chọn. Thông qua bộ chọn, bạn có thể truyền dữ liệu đến các phần tử HTML nhờ bộ chọn CSS của các phần tử đó. Do đó, bạn sẽ cần các bộ chọn CSS để có thể tạo đích đến cho các dữ liệu từ cơ sở dữ liệu

Bạn có thể nhận thấy một phần mã của _rpc trong đoạn mã JavaScript trên. RPC [Cuộc gọi thủ tục từ xa] được gọi khi có yêu cầu từ phía máy khách về máy chủ. Ở đây, khi này. _rpc[] được gọi là nó cần các tham số truyền vào để thực hiện một phương thức ORM. Cụ thể là một lệnh tìm kiếm trong khóa học mô hình, lấy ra các dữ liệu về hình ảnh của các bản ghi và sắp xếp theo thứ tự được tạo gần đây. Chúng ta sẽ quay lại với phương thức _rpc khi thực hiện lệnh gọi RPC đến máy chủ

Cuối cùng, chúng ta thêm tệp JS vào gói trang web. tài sản_frontend

Ghi chú

Bạn có thể khám phá các tùy chọn đoạn trích trong tệp addons/website/static/src/js/editor/snippets. tùy chọn. js

Nhập thông tin của người dùng từ trang web¶

Trong quá trình phát triển Website, bạn cần phải tạo biểu mẫu để có thể lấy dữ liệu đã nhập của người dùng. Ở chủ đề này, chúng ta cùng tạo ra một trang HTML cho phép người dùng có thể thông báo lỗi về khóa học trên hệ thống

Chuẩn bị¶

Chúng ta sẽ tiếp tục sử dụng giáo dục mô-đun và cần phải thêm một mô hình mới để lưu trữ các vấn đề của khóa học được gửi từ người dùng

  • Thêm khóa học mô hình. phát hành và thêm một trường

    
    
    
    
    3 vào khóa học mô hình như bên dưới


...
   
      
      
   
...
6

  • Add group Course Issue to in backend view of course


...
   
      
      
   
...
7

  • Thêm quyền truy cập vào khóa học mô hình. phát hành vào ir. kiểu mẫu. truy cập. csv như bên dưới


...
   
      
      
   
...
8

Các bước thực hiện¶

Bước 1

Add new route to file main. py as bottom


...
   
      
      
   
...
9

Bước 2

Add a new template to file views/course_issue. xml as bottom

...
'depends': ['base', 'website'],
...
0

Bước 3

Thêm tiêu đề phần có điều kiện vào mẫu như bên dưới

...
'depends': ['base', 'website'],
...
1

Bước 4

Thêm phần để gửi báo lỗi vào template như dưới:

...
'depends': ['base', 'website'],
...
2

Cập nhật module giáo dục và truy cập đường dẫn /course/submit-issues để xem kết quả. Từ trang này, bạn có thể gửi vấn đề về khóa học. Sau khi nhấn nút gửi, bạn có thể tìm thấy các vấn đề về khóa học trong phụ trợ giao diện

Ảnh 14. 8 - Giao diện của trang báo lỗi khóa học.

Ảnh 14. 9 - Giao diện phụ trợ sau khi người dùng gửi vấn đề khóa học.

Active mode¶

Ở bước 1, chúng ta tạo ra một lộ trình để có thể gửi các vấn đề khóa học. Tham số




4 trong hàm



5 sẽ chấp nhận mọi tham số truy vấn trong URL. Nhờ đó, bạn có thể lấy dữ liệu đã được gửi từ tham số



4. Nếu chúng tôi tìm thấy dữ liệu trong



4, chúng tôi sẽ tạo ra một vấn đề mới trong khóa học mô hình. vấn đề và điều hướng người dùng đến trang thông báo lỗi với các tham số truy cập vẫn được giả định để người dùng nhận biết vấn đề của họ đã gửi thành công và có thể gửi vấn đề khác nếu như người dùng mong muốn

Ghi chú

Trong phần route, chúng ta sử dụng sudo[] để tạo vấn đề khóa học vì người dùng thông thường [khách truy cập] không có quyền truy cập vào khóa học mô hình. số báo

Ở các bước tiếp theo, chúng ta tạo mẫu cho trang vấn đề khóa học. Bạn sẽ thấy một phương thức có tên




8. Phương pháp này được sử dụng để tránh các kỹ thuật tấn công giả mạo yêu cầu xuyên trang [CSRF]. Đây là một kỹ thuật tấn công vào người dùng, dựa vào đó hacker có thể thực thi những thao tác phải yêu cầu sự chứng thực. Nếu bạn không sử dụng phương thức này trong biểu mẫu, người dùng sẽ không thể gửi các vấn đề về khóa học

Mẹo

Trong một số trường hợp, bạn có thể tắt




9 xác thực bằng cách đặt csrf=False trong route as after

@http. route[‘/url’, type=’http’,auth=”user”, website=True, csrf=False]

Mẹo

Bạn có thể hạn chế yêu cầu

body main {
   background: rgb[171,214,153];
   background: linear-gradient[30deg, rgba[171,214,153,1] 50%, rgba[255,226,106,1] 100%];
}
0 bằng cách bổ sung tham số
body main {
   background: rgb[171,214,153];
   background: linear-gradient[30deg, rgba[171,214,153,1] 50%, rgba[255,226,106,1] 100%];
}
1 như bên dưới

@http. route[‘/url’, type=’http’, method=’POST’ auth=”user”, website=True]

Quản lý tùy chọn SEO¶

Odoo cung cấp tính năng SEO cho các mẫu. Tuy nhiên, một số mẫu được sử dụng trong nhiều URL. Ví dụ, trong một cửa hàng trực tuyến, các trang được hiển thị với các mẫu giống nhau nhưng khác nhau về dữ liệu. Với những trường hợp như vậy, chúng ta sẽ phải xử lý SEO dữ liệu cho từng URL

Nếu như bạn đã cố gắng tùy chỉnh SEO trong Trang web cho từng khóa học, bạn sẽ nhận thấy khi thay đổi dữ liệu SEO cho một khóa học sẽ ảnh hưởng đến toàn bộ khóa học. Chúng ta sẽ giải quyết vấn đề đó trong phần này

Các bước thực hiện¶

Bước 1

Thêm kế thừa

body main {
   background: rgb[171,214,153];
   background: linear-gradient[30deg, rgba[171,214,153,1] 50%, rgba[255,226,106,1] 100%];
}
2 cho kiểu máy
body main {
   background: rgb[171,214,153];
   background: linear-gradient[30deg, rgba[171,214,153,1] 50%, rgba[255,226,106,1] 100%];
}
3 ở phía bên dưới

...
'depends': ['base', 'website'],
...
3

Bước 2

Thêm mã đoạn vào tuyến đường

body main {
   background: rgb[171,214,153];
   background: linear-gradient[30deg, rgba[171,214,153,1] 50%, rgba[255,226,106,1] 100%];
}
4 ở phía dưới

...
'depends': ['base', 'website'],
...
4

Cập nhật mô-đun giáo dục và thử thay đổi SEO trên từng khóa học, bạn sẽ thấy có sự khác biệt như bên dưới

Ảnh 14. 10 - SEO metadata default cho mọi URL về khóa học.

Ảnh 14. 11 - Siêu dữ liệu SEO sau khi được gắn cho từng URL.

Active mode¶

Để kích hoạt SEO trên từng bản ghi trong mô hình, bạn cần kế thừa vào lớp

body main {
   background: rgb[171,214,153];
   background: linear-gradient[30deg, rgba[171,214,153,1] 50%, rgba[255,226,106,1] 100%];
}
2. Điều này sẽ bổ sung một số trường và phương thức vào mô hình
body main {
   background: rgb[171,214,153];
   background: linear-gradient[30deg, rgba[171,214,153,1] 50%, rgba[255,226,106,1] 100%];
}
3, những trường và phương thức này được sử dụng để lưu trữ dữ liệu cho từng khóa học

Mẹo

Bạn có thể khám phá các lĩnh vực và phương pháp của

body main {
   background: rgb[171,214,153];
   background: linear-gradient[30deg, rgba[171,214,153,1] 50%, rgba[255,226,106,1] 100%];
}
2

at path after addons/website/models/website. py

Các đoạn code về SEO được viết trong

body main {
   background: rgb[171,214,153];
   background: linear-gradient[30deg, rgba[171,214,153,1] 50%, rgba[255,226,106,1] 100%];
}
8 và sẽ lấy toàn bộ các thông tin về SEO từ recordset đưa vào
body main {
   background: rgb[171,214,153];
   background: linear-gradient[30deg, rgba[171,214,153,1] 50%, rgba[255,226,106,1] 100%];
}
9. Do đó, ở bước 2, chúng ta truyền vào một đối tượng
body main {
   background: rgb[171,214,153];
   background: linear-gradient[30deg, rgba[171,214,153,1] 50%, rgba[255,226,106,1] 100%];
}
3 với khóa
body main {
   background: rgb[171,214,153];
   background: linear-gradient[30deg, rgba[171,214,153,1] 50%, rgba[255,226,106,1] 100%];
}
9, giúp
body main {
   background: rgb[171,214,153];
   background: linear-gradient[30deg, rgba[171,214,153,1] 50%, rgba[255,226,106,1] 100%];
}
8 lấy tất cả các thông tin SEO về khóa học. Nếu như bạn không đưa
body main {
   background: rgb[171,214,153];
   background: linear-gradient[30deg, rgba[171,214,153,1] 50%, rgba[255,226,106,1] 100%];
}
9 vào bộ điều khiển, thì bản ghi mẫu sẽ được truyền vào như
body main {
   background: rgb[171,214,153];
   background: linear-gradient[30deg, rgba[171,214,153,1] 50%, rgba[255,226,106,1] 100%];
}
9. Đó là lý do bạn có thể thấy các khóa học đều có dữ liệu SEO giống nhau

Ghi chú

Trong Odoo, bạn có thể thêm các thẻ tuỳ chỉnh cho OpenGraph và Twitter khi chia sẻ. Để thực hiện được điều này, bạn cần phải override lại

$edu-text-color: #FFFFFF;

footer.o_footer {
   color: $edu-text-color;
}
5 sau khi đã kế thừa
body main {
   background: rgb[171,214,153];
   background: linear-gradient[30deg, rgba[171,214,153,1] 50%, rgba[255,226,106,1] 100%];
}
2. Và khi chia sẻ URL của khoá học, bạn có thể thấy hình ảnh và các thông tin của khoá học trên nền tảng social media.

Quản lý sơ đồ trang web của trang web¶

Sơ đồ trang web [Sơ đồ trang web] là một thành phần quan trọng đối với bất kỳ trang web nào. Công cụ tìm kiếm sẽ sử dụng sơ đồ trang web để đánh chỉ mục cho các trang trong Trang web. Trong chủ đề này, chúng ta sẽ cùng tìm hiểu cách bổ sung trang của từng khóa học vào sơ đồ trang web

Bạn có thể kiểm tra sitemap hiện tại của website trên Odoo bằng cách truy cập đường dẫn /sitemap.xml. Và như bạn thấy nó không có các trang của khoá học.

Ảnh 14. 12 - Nội dung của sitemap. xml default in Odoo.

Các bước thực hiện¶

Bước 1

Nhập các phương thức dưới đây vào tệp chính. py

...
'depends': ['base', 'website'],
...
5

Bước 2

Thêm phương thức sitemap_course vào trường chính. py as bottom

...
'depends': ['base', 'website'],
...
6

Bước 3

Add sitemap_course vào tham số của route_detail

...
'depends': ['base', 'website'],
...
7

Cập nhật mô-đun để áp dụng thay đổi. Tệp sơ đồ trang web. xml được sinh ra và lưu trữ trong Tệp đính kèm. And file will be sinh back after the best time interval. Để thấy được kết quả của các bước trên, bạn cần phải xóa tệp sơ đồ trang web đã có trong Tệp đính kèm. Please access Setting. Kỹ thuật. Cấu trúc cơ sở dữ liệu. Tệp đính kèm, tìm kiếm sơ đồ trang web và xóa tệp. Bây giờ hãy truy cập URL /sitemap. xml và bạn sẽ thấy các trang khóa học đã được thêm vào sơ đồ trang web

Ảnh 14. 13 - Nội dung của sitemap. xml sau khi đã hoàn tất các bước trên.

Active mode¶

Ở bước đầu tiên, chúng ta nhập một vài phương thức vào bộ điều khiển, trong đó

  • $edu-text-color: #FFFFFF;
    
    footer.o_footer {
       color: $edu-text-color;
    }
    
    7 dược sử dụng để tạo ra một URL thân thiện dựa trên tên của bản ghi

  • $edu-text-color: #FFFFFF;
    
    footer.o_footer {
       color: $edu-text-color;
    }
    
    8. được sử dụng để tạo tên miền dựa trên tuyến đường và chuỗi truy vấn

Ở bước tiếp theo, chúng ta thêm một chức năng

$edu-text-color: #FFFFFF;

footer.o_footer {
   color: $edu-text-color;
}
9. Chức năng này được gọi mỗi khi sơ đồ trang web được sinh ra. Trong lúc thực thi, nó sẽ nhận vào ba tham số. ________ 80 - môi trường trong Odoo, ________ 81 - quy tắc của bộ định tuyến và
odoo.define['education', function [require] {
   var core = require['web.core'];
   alert[core._t['This is a test notification']];
   return {}
}];
2 - chuỗi truy vấn. Trong chức năng này, chúng ta sẽ tạo miền với
$edu-text-color: #FFFFFF;

footer.o_footer {
   color: $edu-text-color;
}
8. Sau đó, chúng ta sẽ sử dụng tên miền này để tìm kiếm các bản ghi của
body main {
   background: rgb[171,214,153];
   background: linear-gradient[30deg, rgba[171,214,153,1] 50%, rgba[255,226,106,1] 100%];
}
3, tên của các bản ghi này sẽ được sử dụng để sinh ra URL nhờ
$edu-text-color: #FFFFFF;

footer.o_footer {
   color: $edu-text-color;
}
7

Cuối cùng, đưa

$edu-text-color: #FFFFFF;

footer.o_footer {
   color: $edu-text-color;
}
9 vào sitemap tham số trong route Chi tiết khóa học

Nhận thông tin quốc gia của người dùng truy cập trang web¶

Odoo CMS có hỗ trợ tính năng tích hợp cho GeoIP

Ghi chú

GeoIP là một phương pháp xác định vị trí địa lý của thiết bị đầu cuối máy vi tính, di chuyển kết nối internet bằng cách xác định địa chỉ IP của thiết bị đầu tiên cuối cùng

Trong topic này chúng ta cùng tìm hiểu cách ẩn số khóa học dựa theo quốc gia của người truy cập trang web thông qua địa chỉ IP

Để chuẩn bị cho các bước tiếp theo, chúng ta sẽ sử dụng lại ví dụ từ chủ đề trước về giáo dục mô-đun. Bạn cần phải tải về cơ sở dữ liệu của GeoIP, sau đó gán cơ sở dữ liệu đó vào trong dòng lệnh như bên dưới

...
'depends': ['base', 'website'],
...
8

Mẹo

Một số cơ sở dữ liệu về GeoIP

  • Định vị địa lý IP. io [API và Cơ sở dữ liệu]

  • API định vị địa lý IP trừu tượng [chỉ API]

  • Cơ sở dữ liệu GeoLite2 của Maxmind [API & Cơ sở dữ liệu]

  • IP2Location Lite

  • ip2c. tổ chức

  • GeoIP Nekudo

  • API IP

Các bước thực hiện¶

Bước 1

Add field

odoo.define['education', function [require] {
   var core = require['web.core'];
   alert[core._t['This is a test notification']];
   return {}
}];
7limited_country_ids into model
body main {
   background: rgb[171,214,153];
   background: linear-gradient[30deg, rgba[171,214,153,1] 50%, rgba[255,226,106,1] 100%];
}
3 as the bottom

...
'depends': ['base', 'website'],
...
9

Bước 2

Thêm trường giới hạn quốc gia_ids vào chế độ xem biểu mẫu của

body main {
   background: rgb[171,214,153];
   background: linear-gradient[30deg, rgba[171,214,153,1] 50%, rgba[255,226,106,1] 100%];
}
3 như bên dưới


   
      
         
      
   

0

Bước 3

Cập nhật phần mã trong bộ điều khiển / khóa học để giới hạn chế độ khóa học theo quốc gia như bên dưới


   
      
         
      
   

1

Cập nhật giáo dục mô-đun để áp dụng những thay đổi trên. Thêm quốc gia của bạn vào trường quốc gia giới hạn chế độ của khóa học và thử truy cập vào URL /khóa học của khóa học để xem kết quả. Các khóa học bị giới hạn chế độ sẽ không được hiển thị trên web

Cảnh báo

Các bước thực hiện bên trên sẽ không thể hoạt động trên máy chủ cục bộ. Bởi vì với máy chủ cục bộ, bạn sẽ lấy được địa chỉ IP cục bộ, nhưng địa chỉ này không liên hệ đến quốc gia nào. Điều đó cần phải thực hiện trên máy chủ được lưu trữ. Bạn cũng cần phải cấu hình NGINX để phù hợp với ví dụ trên

Active mode¶

Ở một bước và hai bước, chúng tôi thêm vào mô hình

body main {
   background: rgb[171,214,153];
   background: linear-gradient[30deg, rgba[171,214,153,1] 50%, rgba[255,226,106,1] 100%];
}
3 và chế độ xem biểu mẫu của trường
odoo.define['education', function [require] {
   var core = require['web.core'];
   alert[core._t['This is a test notification']];
   return {}
}];
7 giới hạn_quốc gia_ids, để người dùng có thể chỉnh sửa quốc gia hạn chế của khóa học. Nếu GeoIP và NGINX được cấu hình đúng, Odoo sẽ thêm GeoIP vào yêu cầu. phiên họp. geoip và bạn có thể lấy được mã quốc gia từ đó

Ở bước thứ ba, chúng tôi đã tìm nạp mã quốc gia từ GeoIP, theo sau là bộ bản ghi của quốc gia dựa trên country_code. Sau khi lấy được thông tin quốc gia của người dùng, chúng ta sẽ lọc khóa học với tên miền là các quốc gia có giới hạn chế độ

Mẹo

Nếu bạn không có máy chủ thật và bạn muốn thử các bước trên, bạn có thể thêm mã quốc gia mặc định vào bộ điều khiển như sau

country_code = yêu cầu. phiên họp. geoip và yêu cầu. phiên họp. geoip. lấy[‘mã_quốc_gia’] hoặc ‘VN’

Theo dõi hoạt động tiếp thị¶

Lợi tức đầu tư [ROI] làm một khái niệm quan trọng trong bất kỳ mô hình kinh doanh nào. Chỉ số ROI cho chúng ta biết về hiệu quả hay khả năng tạo ra lợi nhuận trong các khoản đầu tư. Nó được tính toán dựa trên số tiền đầu tư và lợi nhuận nhờ khoản đầu tư đó, được biểu thị dưới dạng phần trăm. Đặc biệt, việc đầu tư trong quảng cáo [advertise] có thể được theo dõi thông qua UTM trong Odoo. UTM [Urchin Tracking Module] là một chuỗi nhỏ được thêm vào URL của đối tượng mà bạn muốn theo dõi và nó có thể giúp bạn theo dõi các chiến dịch, nguồn và phương tiện của đối tượng trên đó. Trong chủ đề này, chúng tôi sẽ bổ sung thêm UTM cho các vấn đề được tạo cho từng khóa học

Các bước thực hiện¶

Để thực hiện ví dụ trong chủ đề này, chúng ta tiếp tục sử dụng lại mô-đun giáo dục

Bước 1

Thêm mô-đun utm vào phần phụ thuộc của tệp chính. py


   
      
         
      
   

2

Bước 2

Kế thừa utm. mixin cho model

body main {
   background: rgb[171,214,153];
   background: linear-gradient[30deg, rgba[171,214,153,1] 50%, rgba[255,226,106,1] 100%];
}
3 as bottom


   
      
         
      
   

3

Bước 3

Thêm trường campaign_id vào chế độ xem dạng cây của

body main {
   background: rgb[171,214,153];
   background: linear-gradient[30deg, rgba[171,214,153,1] 50%, rgba[255,226,106,1] 100%];
}
3 ở phía bên dưới


   
      
         
      
   

4

Cuối cùng, hãy cập nhật giáo dục mô-đun để áp dụng thay đổi

Để kiểm tra tính năng UTM, bạn cần thực hiện theo các bước sau

  • Trong Odoo, UTM sẽ được xử lý dựa trên cookie và một số trình duyệt không hỗ trợ cookie với localhost, do đó nếu bạn muốn kiểm tra trên localhost, hãy truy cập ví dụ với URL. http. //127. 0. 0. 1. 8069

Mặc dù vậy, theo dõi UTM sẽ ngăn chặn những người bán hàng [nhân viên bán hàng]. Do đó, bạn hãy đăng nhập với tư cách là người dùng cổng thông tin

  • Truy cập vào URL http. //127. 0. 0. 1. 8069/course/submit_issues?utm_campaign=sale

  • Gửi bản báo lỗi khóa học và kiểm tra bản báo lỗi đó ở giao diện phụ trợ. Bạn sẽ thấy kết quả như bên dưới

Ảnh 14. 14 - Chiến dịch được thêm vào bản báo lỗi ghi khóa học sau khi người dùng gửi thông báo lỗi.

Active mode¶

UTM trong Odoo có ba trường kèm theo

  • from odoo import http
    from odoo.http import request
    
    
    class Main[http.Controller]:
       @http.route['/course', type='http', auth="user", website=True]
       def course[self]:
          return request.render[
             'education.course', {
                'courses': request.env['course'].search[[]],
             }]
    
    4. trường
    from odoo import http
    from odoo.http import request
    
    
    class Main[http.Controller]:
       @http.route['/course', type='http', auth="user", website=True]
       def course[self]:
          return request.render[
             'education.course', {
                'courses': request.env['course'].search[[]],
             }]
    
    5 với mẫu
    from odoo import http
    from odoo.http import request
    
    
    class Main[http.Controller]:
       @http.route['/course', type='http', auth="user", website=True]
       def course[self]:
          return request.render[
             'education.course', {
                'courses': request.env['course'].search[[]],
             }]
    
    6, được sử dụng để theo dõi các chiến dịch khác nhau, ví dụ như Mùa hè hoặc Giáng sinh

  • from odoo import http
    from odoo.http import request
    
    
    class Main[http.Controller]:
       @http.route['/course', type='http', auth="user", website=True]
       def course[self]:
          return request.render[
             'education.course', {
                'courses': request.env['course'].search[[]],
             }]
    
    7. trường
    from odoo import http
    from odoo.http import request
    
    
    class Main[http.Controller]:
       @http.route['/course', type='http', auth="user", website=True]
       def course[self]:
          return request.render[
             'education.course', {
                'courses': request.env['course'].search[[]],
             }]
    
    5 với model
    from odoo import http
    from odoo.http import request
    
    
    class Main[http.Controller]:
       @http.route['/course', type='http', auth="user", website=True]
       def course[self]:
          return request.render[
             'education.course', {
                'courses': request.env['course'].search[[]],
             }]
    
    9, được sử dụng để theo dõi các nguồn truy cập vào trang web, ví dụ như qua các công cụ tìm kiếm như Google, Bing,… hoặc các tên miền khác

  • 
       
       
       
    
    
    00. trường
    from odoo import http
    from odoo.http import request
    
    
    class Main[http.Controller]:
       @http.route['/course', type='http', auth="user", website=True]
       def course[self]:
          return request.render[
             'education.course', {
                'courses': request.env['course'].search[[]],
             }]
    
    5 với model
    
       
       
       
    
    
    02, được sử dụng để theo dõi các phương tiện truyền thông đa phương tiện khác nhau như. email, banner quảng cáo,…

Để có thể sử dụng UTM, bạn cần chia sẻ URL trên các phương tiện truyền thông có định dạng như


   
      
         
      
   

5

Khi người dùng truy cập trang web từ bất kỳ phương tiện nào, các thông số của UTM sẽ được tự động ghi lại vào cơ sở dữ liệu

Ghi chú

Bạn có thể tạo các chiến dịch, nguồn truy cập, phương tiện truyền thông mới bằng cách vào mô-đun Trình theo dõi liên kết -> UTM trong chế độ nhà phát triển

Quản lý nhiều trang website¶

Odoo hỗ trợ tích hợp cho nhiều trang web. Điều đó có nghĩa là cùng một phiên bản Odoo có thể chạy trên nhiều tên miền và sẽ hiển thị các bản ghi khác nhau. Trong chủ đề này, chúng ta sẽ ẩn đi các khóa học dựa trên từng trang web

Các bước thực hiện¶

Bước 1

Thêm trang web. đa. trộn vào phần kế thừa cho khóa học mô hình như bên dưới


   
      
         
      
   

6

Bước 2

Thêm trường website_id vào chế độ xem biểu mẫu của khóa học như bên dưới


   
      
         
      
   

7

Bước 3

sửa lại phần tên miền cho bộ điều khiển /khóa học như bên dưới


   
      
         
      
   

8

Bước 4

Nhập thư viện werkzeug và tùy chỉnh bộ điều khiển Course_detail như bên dưới


   
      
         
      
   

9

Cập nhật lại giáo dục mô-đun để áp dụng thay đổi. Để kiểm tra chức năng này, hãy đặt các trang web khác nhau cho từng trang web. Vui lòng mở URL /khóa học và kiểm tra danh sách khóa học. Để chuyển đổi giữa các trang web trong mô-đun Trang web, hãy sử dụng Trình chuyển đổi trang web để có thể xem kết quả

Ảnh 14. 15 - Giao diện phụ trợ của module Giáo dục khi thêm trang web cho từng khóa học.

Ảnh 14. 16 - Truy cập vào URL /khóa học với trang web. Trang web của tôi 2 để hiển thị danh sách các khóa học.

Active mode¶

Ở bước đầu, chúng ta thêm trang web. đa. hỗn hợp. Đây là lớp có chức năng xử lý nhiều trang web cho mô hình. Đi theo trang web của lớp. đa. mixin là trường website_id dùng để xác định bản ghi sẽ được gắn cho bất kỳ trang web nào

Ở bước ba, chúng ta tùy chỉnh tên miền để tìm danh sách khóa học. yêu cầu. trang mạng. website_domain[] sẽ trả về tên miền đã được lọc bởi các khóa học không được gắn cùng trên một trang web

Ghi chú

Chúng ta sẽ gặp trường hợp muốn ghi được hiển thị ở tất cả các tên miền. Chúng ta có thể xử lý lý do bằng cách không đặt giá trị cho trường website_id trong phần phụ trợ

Nếu như bạn muốn ghi chú ở bước cuối, chúng ta thêm




4 vào bộ điều khiển. Mục đích là bởi vì nếu không có tham số này, thì

   
   
   

04 và

   
   
   

05 sẽ không chấp nhận các tham số truy vấn. Khi chúng ta chuyển đổi giữa các trang web sẽ dẫn đến lỗi

Điều hướng URL cũ¶

Khi bạn chuyển hệ thống hoặc trang web đã có sang trang web Odoo, bạn phải điều hướng các URL cũ sang URL mới. Với điều hướng thích hợp, toàn bộ bảng xếp hạng SEO của bạn sẽ được chuyển sang trang mới. Trong chủ đề này, chúng ta sẽ tìm hiểu cách điều hướng URL cũ sang URL mới trong Odoo

Các bước thực hiện¶

Chúng ta hãy giả định rằng bạn đang có một trang web và muốn chuyển trang web đó về Odoo. Tại trang web cũ, các khóa học được liệt kê tại URL /course-list. Bây giờ, chúng ta sẽ thêm quy tắc điều hướng trong Odoo để điều hướng URL /course-list tới URL /course mới

Bước 1

Bật chế độ người phát triển [chế độ nhà phát triển]




0

Bước 2

Open Website. Cấu hình. chuyển hướng

Bước 3

Click Create to add a new rule

Bước 4

Nhập giá trị vào biểu mẫu. Trong mục URL từ, nhập /course-list và trong mục URL tới, nhập /course

Bước 5

Select Action with value 301 Đã di chuyển vĩnh viễn

Bước 6

Save back write. Sau khi điền đầy đủ thông tin ở các bước, bạn sẽ thấy như hình bên dưới

Ảnh 14. 17 - Tạo quy tắc điều hướng cho URL cũ.

Active mode¶

Điều hướng trang trong Odoo được thực hiện một cách đơn giản như các bước trên. Có một số tùy chọn điều hướng mà Odoo cung cấp

  • 404 không tìm thấy. this option is used if you want return message 404 Not Found on URL old

  • 301 Đã di chuyển vĩnh viễn. lựa chọn này sẽ điều hướng các URL cũ tới các URL mới vĩnh viễn. Với kiểu này, tất cả các bảng xếp hạng SEO sẽ được chuyển về các URL mới

  • 302 tạm thời di chuyển. hãy chọn lựa chọn này, hướng URL cũ tới URL mới tạm thời. Sử dụng tùy chọn này khi bạn muốn điều hướng tới các URL mới trong khoảng thời gian định trước và bảng xếp hạng SEO sẽ không chuyển về các URL mới

  • Chuyển hướng 308/Viết lại. Với tùy chọn này, bạn có thể thay đổi/ghi lại URL cũ thành URL mới

Bạn có thể bật/tắt quy tắc điều hướng với trường Đang hoạt động. Bạn cũng có thể sử dụng trường Website khi sử dụng tính nắng nhiều trang web

Quản lý xuất bản cho các bản ghi liên quan tới trang web¶

Trong quá trình kinh doanh, có một số trường hợp bạn cần phải cho phép/thu hồi quyền truy cập trang của người dùng thông thường [người dùng công cộng]. Ví dụ: trong thương mại điện tử, bạn sẽ ra mắt sản phẩm/thu hồi sản phẩm dựa trên số lượng sản phẩm hiện có

Trong chủ đề này, chúng tôi sẽ tìm cách giúp bạn xuất bản/không xuất bản[xuất bản/hủy xuất bản] khóa học với người dùng thông thường

Ghi chú

Trong các routes /course và /course/, bạn sẽ thấy tham số


   
   
   

06. Hãy thay đổi

   
   
   

07 để người dùng thông thường có thể truy cập vào các URLs trang web.

Các bước thực hiện¶

Chúng ta vẫn sẽ tiếp tục sử dụng các ví dụ ở chủ đề trước với giáo dục mô-đun

Bước 1

Add


   
   
   

08 into model
body main {
   background: rgb[171,214,153];
   background: linear-gradient[30deg, rgba[171,214,153,1] 50%, rgba[255,226,106,1] 100%];
}
3 as the bottom




1

Bước 2

Thêm một quy tắc bản ghi vào tệp giáo dục/an ninh/quy tắc. xml as bên dưới. Sau đó hãy thêm tệp này vào bảng kê khai




2

Cập nhật giáo dục mô-đun để áp dụng các thay đổi trên. Bây giờ, bạn có thể xuất bản/không xuất bản khóa học trên trang web bằng cách tắt/bật ngay trên trang web thanh công cụ

Ảnh 14. 18 - Chuyển đổi giữa xuất bản/không xuất bản trong trang web.

Active mode¶

Khi thêm


   
   
   

08 vào phần kế thừa của mô hình
body main {
   background: rgb[171,214,153];
   background: linear-gradient[30deg, rgba[171,214,153,1] 50%, rgba[255,226,106,1] 100%];
}
3, ở bước này sẽ bổ sung các trường và phương thức cần thiết để xuất bản và hủy xuất bản khóa học. Khi đó, bạn có thể thấy một nút chuyển đổi trạng thái ở trang chi tiết khóa học

Ghi chú

Chúng ta gửi bản ghi của khóa học như một

body main {
   background: rgb[171,214,153];
   background: linear-gradient[30deg, rgba[171,214,153,1] 50%, rgba[255,226,106,1] 100%];
}
9 từ lộ trình chi tiết khóa học. Không có điều này, bạn sẽ không thể thấy nút xuất bản/hủy xuất bản trên trang chi tiết khóa học

Bước tiếp theo, chúng ta thêm một

odoo.define['education', function [require] {
   var core = require['web.core'];
   alert[core._t['This is a test notification']];
   return {}
}];
1 để có thể cho phép người dùng truy cập thông thường vào các URL khóa học. Bạn có thể tìm hiểu thêm về

   
   
   

14 trong Quyền truy cập bảo mật .

Như vậy chúng ta học được cách làm chủ các tính năng nổi bật trong Odoo CMS. Odoo cung cấp cho người dùng và lập trình viên một trải nghiệm thân thiện trong môi trường phát triển Website

Chủ Đề