it-swarm.dev

Come inserire "codice php" all'interno del file manifest .xml di un modulo Joomla?

Voglio sul campo di un modulo joomla fare eco un'opzione con alcuni risultati recuperati dal mio 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>

So che questo codice è completamente sbagliato (appena pubblicato per mostrarti cosa voglio fare), ma ho già cercato moduli che fanno qualcosa di simile e ho scoperto che non usano il codice php all'interno di xml.

Quindi immagino che ci sia un altro modo, ma non riesco a capire da solo, poiché sono completamente nuovo nello sviluppo di Joomla e Joomla.

Grazie in anticipo.

7
IseNgaRt

Prova questo ,

Normalmente Joomla fornisce tutte le principali categorie di componenti in modo XML accessibile.

Ad esempio: è necessario il menu a discesa della categoria banner, utilizzare semplicemente come di seguito.

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

Per le categorie di contenuti puoi provare qualcosa come com_content invece di com_banners. controlla anche il tuo menu, non sono sicuro che sia disponibile o meno.

In caso contrario, Joomla offre un'altra opzione per scrivere SQL in XML file.

qualcosa come sotto.

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

maggiori dettagli sono disponibili qui .

Spero che sia d'aiuto.

5
Jobin Jose

Suggerirei di dare un'occhiata a http://docs.joomla.org/Creating_a_custom_form_field_type Dal momento che sembra quello che stai cercando di ottenere. Mentre la guida potrebbe riferirsi ai componenti, questo può funzionare anche con i moduli, (l'ho provato da solo)

segui semplicemente la guida ma invece di posizionare i tuoi file su

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

Dovresti metterli a

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

[~ ~ #] aggiornamento [~ ~ #]

Vedi http://docs.joomla.org/Selecting_data_using_JDatabase per i modi per recuperare i dati dal database Joomla, usali nel codice che hai appreso dal link precedente

4
Epodax