Как вставить «php-код» внутри файла манифеста .xml модуля Joomla?

Я хочу, чтобы на полевом поле модуля joomla был эхо вариант с некоторыми извлеченными результатами из моего db:

<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>

Я знаю, что этот код полностью ошибочен (просто выложил его, чтобы показать вам, что я хочу делать), но я уже искал модули, которые делают что-то подобное, и я узнал, что они не используют PHP-код внутри xml ,

Итак, я думаю, есть другой способ, но я не могу понять сам по себе, так как я совершенно не знаком с разработкой Joomla и Joomla.

Спасибо в Advance.

8 голосов | спросил IseNgaRt 6 42014vEurope/Moscow11bEurope/MoscowThu, 06 Nov 2014 12:26:52 +0300 2014, 12:26:52

2 ответа


5

Попробуйте это,

Обычно Joomla предоставляет все основные категории компонентов в доступном формате XML.

Например, для раскрывающегося списка категории баннеров нужно просто использовать, как показано ниже.

<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> 

Для категорий контента вы можете попробовать что-то вроде com_content вместо com_banners. проверьте также свое меню, я не уверен, что это доступно или нет.

Если это не так, Joomla предлагает еще один вариант написания SQL в файлах XML.

что-то вроде ниже.

<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>

более подробную информацию можно найти здесь .

Надеюсь, что это поможет.

ответил Jobin Jose 6 42014vEurope/Moscow11bEurope/MoscowThu, 06 Nov 2014 14:15:42 +0300 2014, 14:15:42
4

Я бы предложил взглянуть на http://docs.joomla.org/Creating_a_custom_form_field_type Поскольку это похоже на то, чего вы пытаетесь достичь. Хотя руководство может ссылаться на компоненты, это также может работать с модулями (я сам это пробовал)

просто следуйте руководству, но вместо размещения файлов

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

Вы должны поместить их в

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

ОБНОВЛЕНИЕ

См. http://docs.joomla.org/Selecting_data_using_JDatabase способы получения данных из Joomla Database, используйте это в коде, который вы узнали из предыдущей ссылки

ответил Epodax 6 42014vEurope/Moscow11bEurope/MoscowThu, 06 Nov 2014 12:42:20 +0300 2014, 12:42:20

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132