it-swarm-vi.com

Bố cục mô-đun mặc định không được vinh danh trong quản trị viên (khi thêm mô-đun)

Tôi đã nhận thấy rằng với Joomla 3, bất kỳ mô-đun nào có nhiều hơn một bố cục (trong thư mục tmpl) và trong .xml có bố cục mặc định được chọn

thí dụ:

<field name="layout" type="modulelayout"
label="JFIELD_ALT_LAYOUT_LABEL"
description="JFIELD_ALT_MODULE_LAYOUT_DESC"
default="mylayout" />

Khi thêm mô-đun vào quản trị, nếu tôi chuyển đến tab Nâng cao để kiểm tra/chọn "Bố cục thay thế", nó sẽ hiển thị bảng chữ cái đầu tiên và không phải là mặc định được chỉ định trong xml!

Đây có phải là do một số thay đổi theo cách tôi nên xác định mặc định?

Hoặc nó có liên quan đến một lỗi?

5
jackJoe

Dựa trên việc nhìn vào mã của modulelayout.php tập tin, có vẻ như bạn có thể phải mở đầu tên bố cục bằng _:. Vì vậy, trường xml của bạn sẽ trông như thế này:

<field name="layout" type="modulelayout"
label="JFIELD_ALT_LAYOUT_LABEL"
description="JFIELD_ALT_MODULE_LAYOUT_DESC"
default="_:mylayout" />

Tôi thấy trong tệp nó đặt tùy chọn chọn như sau:

$groups['_']['items'][] = JHtml::_('select.option', '_:' . $value, $text);

Đây là, tôi đoán, được sử dụng để phân biệt nó với các tệp có cùng tên chính xác trong mẫu (dưới dạng ghi đè). Những người sẽ được mở đầu bằng tên mẫu, dựa trên mã này:

$groups[$template->element]['items'][] = JHtml::_('select.option', $template->element . ':' . $value, $text);

Tôi không biết nếu điều này thực sự được ghi nhận ở một nơi khác. Nhưng để vui hơn, hãy thử đọc mã tại libraries/legacy/form/field/modulelayout.php. Nó không quá điên rồ. :)

3
David Fritsch