2013-01-07 15 views
8

Im useing Joomla 2.5, e voglio creare un tipo di campo modulo personalizzato that stored in the same module.Come creare un tipo di campo modulo personalizzato in un modulo?

Nella XML:

<fieldset name="basic" addfieldpath="/modules/mod_royalslider/fields"></fields> 
     <fieldset name="basic"> 
      <field name="title" type="City" label="anythging" description="" /> 
     </fieldset> 
</fields> 

Nel file /modules/mod_royalslider/fields/city.php

<?php 
// Check to ensure this file is included in Joomla! 
defined('_JEXEC') or die('Restricted access'); 

jimport('joomla.form.formfield'); 

class JFormFieldCity extends JFormField { 

    protected $type = 'City'; 

    // getLabel() left out 

    public function getInput() { 
      return '<select id="'.$this->id.'" name="'.$this->name.'">'. 
        '<option value="1" >New York</option>'. 
        '<option value="2" >Chicago</option>'. 
        '<option value="3" >San Francisco</option>'. 
        '</select>'; 
    } 
} 

per ora mostrami errore , quando mai rimuovo <fieldset name="basic" addfieldpath="/modules/mod_royalslider/fields"></fields>

l'errore gon e e il campo disply come un campo di testo.

risposta

12

Hai dimenticato di specificare modelli nel addfieldpath

<fields name="params"> 
    <fieldset name="basic" addfieldpath="/modules/mod_royalslider/models/fields"> 

     <field name="title" type="City" label="anythging" description="" /> 

    </fieldset> 
</fields> 

Basta mettere la cartella campi all'interno della cartella modelli e metti il ​​percorso come sopra.

+0

Non funzionato. Tuttavia, è un percorso alla fine ho spostato il file php sullo stesso percorso. Qualsiasi corpo ha un file open source! – alnassre

+0

@alnassre Ho aggiornato il codice prova questo. – Toretto

+1

Worked = D Hoooray – alnassre

1

È solo che utilizzando il codice che hai dato, facile:

<fields> 
     <fieldset name="basic" addfieldpath="/modules/mod_royalslider/fields"> 
      <field name="title" type="City" label="anythging" description="" /> 
     </fieldset> 
</fields> 
+0

Lo sto già usando, ma mostra erroe – alnassre

1

Usa addfieldpath all'interno di campi come ::

<fields name="params" addfieldpath="/modules/mod_royalslider/models/fields" > 

     <fieldset name="basic"> 

     <field name="title" type="City" label="anything" description="" /> 

     </fieldset> 
</fields> 
-1

è possibile provare a utilizzare questo codice. questo lavoro nel mio

<fieldset addfieldpath="/modules/mod_royalslider/models/fields" name="basic"> 

    <field name="title" type="City" label="anything" description="" /> 

</fieldset> 
Problemi correlati