cach dang ky m88 |

Tạo category, menu đa cấp với cấu trúc cây

Trong thực tế các lập trình viên thường phải sử dụng những kỹ thuật đệ qui mảng, database để xử lý category hay menu đa cấp, và các lập trình viên để biết được ưu điểm và nhược điểm của kỹ thuật này. Với kỹ thuật để qui để tạo category hay menu đa cấp thường rất dễ dàng xử lý bằng kỹ thuật nhưng nó bị hạn chế về tốc độ duyệt. Nếu dữ liệu của category hay menu trong database càng lớn thì tốc độ duyệt và hiển thị càng chậm.

Để khắc phục điều này thì hiện nay người ta thường dùng mô hình cây để lưu trữ category hay menu đa cấp vì khi duyệt, tìm kiếm và hiển thị category hay menu trên mô hình cây  rất nhanh và không phải sử dụng đến kỹ thuật đệ qui nên tốc độ của ứng dụng sẽ được cải thiện rõ rệt. Nhưng có một vài vấn đề phức tạp khi xây dựng cây làm các lập trình viên tốn rất nhiều thời gian để xử lý chính vì điều này nên hiện nay việc áp dụng cây là category đa cấp vẫn chưa được các lập trình viên sử dụng nhiều trong các ứng dụng thực tế.

Trong quá trình làm việc chúng tôi đã xây dựng một lớp để đáp ứng nhu cầu công việc của chúng tôi. Nay chúng tôi xin hướng dẫn và chia sẽ lớp xử lý cây (left-right) này đến cộng đồng lập tình hi vọng nó sẽ giúp ích cho các bạn trong quá trình làm việc.

Các chức năng chính của lớp xử lý cây left right (Nested_Set class) bao gồm:

Download mã nguồn của lớp Nested Set ở đây

Download mã nguồn giành cho Zend Famework

Download mã nguồn trong video


1.Thêm node mới: Thêm node vào bên phải (insertRight) , thêm node vào bên trái (insertLeft), thêm node vào sau một node nào đó (insertAfter), thêm node vào trước một node nào đó (insertBefore)

2.Di chuyển node:  Di chuyển node vào bên phải (moveRight) , di chuyển node vào bên trái (moveLeft), di chuyển node vào sau một node nào đó (moveAfter), di chuyển node vào trước một node nào đó (moveBefore)

3. Xóa node: Xóa một nhánh của cây (removeBranch), xóa một node của cây (removeOne)

4. Cập nhật thông tin của node

5. Sắp xếp lại thứ tự của các node

6. Hiển thị đường dẫn từ node con đến node cha (breadcrumbs)

7. Liệt kê danh sách theo giá trị của node cha và level

8. Tính tổng số node

9. Lấy thông tin node hiện thời, node cha, node anh em….

Và còn nhiều phương thức khác nữa…

Nhấn vào hình để xem chi tiết video

Phần 1: Thêm node mới vào cây

 

Phần 2: Di chuyển node trên cây

Phần 3: Cập nhật - xóa - duyệt cây - sắp xếp ...

Đây là một lớp được viết cho các lập trình viên PHP, trong thời gian sắp tới chúng tôi sẽ chuyển lớp này thành các lớp sử dụng trong lập trình Zend Framework và Joomla. Trong quá trình xây dựng lớp chắc sẽ có những thiếu sót, rất mong các bạn góp ý để chúng ta cùng hoàn thiện lớp xử lý cây (left-right) này hơn nữa để có thể chia sẽ rộng rãi đến cộng đồng lập trình viên Việt Nam.

Hi vọng video đem đến cho bạn nhưng thông tin hữu ích.

Thanh toán:

Trao đổi backlink :
thiet ke website binh duong | thiết kế web tại bình dương |

quang cao google tai binh duong | quang ba web o binh duong |