Làm cách nào để chèn mã php php mã vào bên trong tệp kê khai .xml của mô-đun Joomla?


7

Tôi muốn tại bộ trường của một mô-đun j Joomla để lặp lại một tùy chọn với một số kết quả được tìm nạp từ db của tôi:

<config>
<fields name="params">
<fieldset name="basic">
<field>
<?php

$db =& JFactory::getDBO();
$query = $db->getQuery(true);
$query->select('*');
$query->from('#__menu_types'); 

$db->setQuery($query);
$options = $db->loadObjectList();
echo "<select>";
echo "<option value=''>select a category</option>";
foreach($options as $row) { 

   echo "<option value='" . $row->id ."'>" . $row->title . "</option>";

   }
   echo "</select>";
?>
</field>
</fieldset>

Tôi biết rằng mã này hoàn toàn sai (chỉ đăng nó để cho bạn thấy những gì tôi muốn làm), nhưng tôi đã tìm kiếm các mô-đun làm điều gì đó tương tự và tôi phát hiện ra rằng họ không sử dụng mã php trong xml.

Vì vậy, tôi đoán có một cách khác, nhưng tôi không thể tự hiểu, vì tôi hoàn toàn mới đối với sự phát triển của Joomla và Joomla.

Cảm ơn trước.

Câu trả lời:


5

Thử cái này ,

Thông thường Joomla cung cấp tất cả các loại thành phần chính theo cách có thể truy cập XML.

Ví dụ: bạn cần thả xuống danh mục biểu ngữ chỉ cần sử dụng như dưới đây.

<field
                    name="catid"
                    type="category"
                    extension="com_banners"
                    label="JCATEGORY"
                    multiple="true" size="5"
                    default=""
                    description="Your desc" >
                    <option value="">JOPTION_ALL_CATEGORIES</option>
                </field> 

Đối với các loại nội dung, bạn có thể thử một cái gì đó như com_contentthay vì com_banners. kiểm tra thực đơn của bạn quá, tôi không chắc có sẵn hay không.

Nếu không có thì Joomla cũng cung cấp tùy chọn khác để ghi SQLvào XMLtệp.

một cái gì đó như dưới đây.

<field name="myfield" type="sql" default="10" label="Select an article" query="SELECT id, title FROM #__content" key_field="id" value_field="title" required="true">
<option value="">Please select your option</option>
</field>

biết thêm chi tiết có thể được tìm thấy ở đây .

Hy vọng nó giúp.


Để biết thêm các trường xml có thể được tìm thấy ở đây
Jobin Jose

1
Điều đó thực sự hữu ích, tôi chắc chắn rằng tôi sẽ không tìm thấy thứ gì đó phù hợp với tôi từ danh sách các thành phần bởi vì trong mô-đun của tôi, tôi muốn tìm nạp tất cả: menu, menu con, danh mục virtuemart, và nhiều hơn nữa vì vậy tôi đoán viết một truy vấn sẽ tốt hơn.

4

Tôi sẽ đề nghị xem qua http: //docs.j Joomla.org/Creating_a_custom_form_field_type Vì có vẻ như những gì bạn đang cố gắng đạt được. Mặc dù hướng dẫn có thể đề cập đến các thành phần, nhưng điều này cũng có thể hoạt động với các mô-đun, (tôi đã tự mình thử)

chỉ cần làm theo hướng dẫn nhưng thay vì đặt các tệp của bạn tại

/administrator/components/<name of your component>/models/fields/<name of your field>.php

Bạn nên đặt chúng tại

/modules/<name of your module>/models/fields/<name of your field>.php

CẬP NHẬT

Xem http://docs.j Joomla.org/Selecting_data_USE_JDatabase để biết cách lấy dữ liệu từ Cơ sở dữ liệu Joomla, sử dụng mã này trong mã bạn đã học được từ liên kết trước


Ok tôi đã thực hiện các bước và tôi lặp lại một lựa chọn với 3 tùy chọn như ví dụ, nhưng nó hoàn toàn khác nhau để trả về một lựa chọn với các giá trị được tìm nạp từ cơ sở dữ liệu. Tôi vẫn đang cố gắng tìm ra cách để làm điều đó

Cập nhật câu trả lời của tôi để phù hợp với nhu cầu của bạn hơn :)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.