it-swarm-vi.com

Hiệp hội thẻ cha mẹ bất ngờ

Tôi đang sử dụng 3.3.0 và bắt đầu chơi với các thẻ. Tôi đã nhận thấy rằng tất cả các thẻ được tạo gần đây đều có thẻ Joomla là cha mẹ của chúng. Khi tôi chỉnh sửa thẻ, menu kéo xuống Parent được đặt thành Không; tuy nhiên nếu tôi hủy xuất bản thẻ Joomla, thì các thẻ tiếp theo cũng sẽ không được công bố (và không thể được xuất bản cho đến khi tôi xuất bản thẻ Joomla). Đây có phải là hành vi dự kiến?


Một số ảnh chụp màn hình

Thành phần => Thẻ

Tôi đã không công bố thẻ Joomla cũng không công bố hầu hết các thẻ khác của tôi (kỳ lạ, không phải là Baking, mặc dù thẻ đó đã được thêm vào một thời điểm khác so với các thẻ khác, khiến tôi tin rằng có gì đó đã thay đổi trong lúc này). Nếu tôi nhấp vào trạng thái của SciLab, nó sẽ không thay đổi. Nếu tôi chuyển trạng thái của Joomla, tất cả (tiết kiệm cho Baking) sẽ làm theo.

enter image description here

Thành phần => Thẻ => SciLab

Không có cha mẹ được thiết lập. Ở đây tôi có thể xuất bản thẻ và dường như nó vẫn tồn tại cho đến khi tôi chuyển đổi thẻ Joomla; Joomla vẫn hành xử như cha mẹ.

enter image description here

Thành phần => Thẻ => Nướng

Tại sao nướng không chia sẻ số phận của tất cả các thẻ khác của tôi nằm ngoài tôi.

enter image description here


Đáp lại câu trả lời của @FFrewin

Đây là một ảnh chụp màn hình của bảng jos_tags của tôi. Dường như có vấn đề với các giá trị lft/rgt. Ngoài ra, Đường dẫn cho thấy Joomla là cha mẹ của tất cả các thẻ, mặc dù Baking không hành xử như thể nó có cha mẹ.

enter image description here

3
bobthechemist

Nếu không có bất kỳ hack nào khác trên mã ảnh hưởng đến các chức năng lưu của thành phần, thì vấn đề này khiến tôi nghĩ rằng có thể có gì đó bị rối trong Mô hình Nested Set trong bảng jos_tags .

Bạn sẽ cần kiểm tra các thẻ của mình db_table bằng một công cụ như phpmyAdmin , để xem về các giá trị đó và có thể nếu bạn cần tư vấn thêm, hãy đăng lên đây một ảnh chụp màn hình các cột bảng thẻ để điều tra thêm.

Để biết thêm thông tin, hãy kiểm tra bài viết rất hay này loại bỏ khái niệm Mô hình tập hợp lồng nha. Một đọc tốt cho tất cả mọi người.

Sơ đồ mô hình lồng nhau:

The Nested Set Model diagram


Bảng thẻ Joomla của bạn

Nhưng tóm lại, nếu tất cả các thẻ của bạn là những thẻ tôi nhìn thấy trong ảnh chụp màn hình, bạn sẽ thấy một cái gì đó tương tự như ảnh chụp màn hình tôi đăng ở đây.

Những gì bạn nên quan tâm hơn từ ảnh chụp màn hình của tôi là Parent_id (tất nhiên), các giá trị lft, rgt, level và path. right tags table for the question
[.__.] Vì bạn muốn tất cả các thẻ của mình là con của thẻ gốc (có nghĩa là không có thẻ nào khác làm cha mẹ), nên tất cả chúng phải được đặt thành level = 1 và Parent_id = 1. Đối với các giá trị lft và rgt, thì bạn tất cả các thẻ của bạn phải có số không chênh lệch lớn hơn 1, giữa các giá trị trái/phải của chúng, trong khi ROOT nên đặt giá trị lft thành 0 và bên phải được đặt thành số cao hơn của phép tính này: "(tổng số thẻ * 2 ) -1 ".

Nói chung, không có cách nào dễ dàng để giải quyết vấn đề này cho com_tags. Nếu điều đó xảy ra là bạn chỉ có một vài thẻ, thì bạn có thể chỉnh sửa các giá trị lft/rgt bằng tay (tất nhiên sau khi đã tính toán chúng). Nếu bạn có số lượng thẻ mở rộng, thì có lẽ bạn sẽ phải tìm cách viết một tập lệnh php, điều đó sẽ tính toán và thiết lập các giá trị đó một cách chính xác.

Hy vọng điều này sẽ giúp và sẽ không quá khó hiểu.

Để cụ thể hơn - hãy làm theo các bước sau:

Đặt ROOT lft/rgt 0-13, Joomla lft/rgt thành 1-2 nướng 3-4 và tiếp tục như vậy cho đến khi thẻ du lịch cuối cùng của bạn sẽ là 11-12. Cũng loại bỏ khỏi đường dẫn j Joomla và phần gạch chéo. Nhưng trong mọi trường hợp - trước tiên hãy sao lưu db của bạn.

2
FFrewin