Joomla.it Forum
Joomla! 2.5 (versione con supporto terminato) => Joomla! 1.6/1.7/2.5 => : dazo 24 Aug 2010, 11:04:33
-
Ciao, ho trovato un bug in joomla 1.6 io non ho capito dove si deve segnalare nel sito del progetto quindi lo segnalo a voi nella speranza che possiate girare il bug al team di sviluppo di joomla. (Scusate se vi giro questa rogna però mi sembrava carino poter dare il mio piccolo aiuto )
Il bug è presente anche nella versione beta 8 e riguarda il sistema per creare form. In particolare groupedlist non funziona.
codice:
libraries/joomla/form/fields/groupedlist.php
righe del codice originale 94-97:
$tmp = JHtml::_('select.option',
($element['value']) ? (string) $element['value'] : JText::_(trim((string) $element)),
JText::_(trim((string) $element)), 'value', 'text',
((string) $element['disabled']=='true'));
sono sbagliate...
sarebbero da correggere in:
$tmp = JHtml::_('select.option',
($option['value']) ? (string) $option['value'] : JText::_(trim((string) $option)),
JText::_(trim((string) $option)), 'value', 'text',
((string) $option['disabled']=='true'));
Grazie.
-
ciao dazo,
grazie per la segnalazione.
Puoi essere più preciso? Quale problema viene generato? Come si può replicare il problema?
Quali operazioni è necessario eseguire in amministrazione di Joomla 1.6 Beta8 per replicare il problema e per testare così la tua soluzione?
-
Ok, sperò di riuscire ad essere chiaro :)
groupedlist serve per generare nei form liste a tendina con optiongroup (che sono i titoletti in grassetto dei <select> ). Ora, se proprio vogliamo essere pedanti sarebbe da segnalare l'inutilità di tale classe perché groupedlist permette anche di creare liste senza gli optiongroup per cui list (che è il comando per creare elenchi normali) diventa inutile.
Comunque se provi ad usarlo appaiono gli optiongroup ma non gli elenchi sottostanti (cioè i normali option)
Passo a fare un esempio:
senza riscrivere un'intero componente vediamo di modificare concact. Prima ti faccio un breve tutorial su come si usano i list di joomla (scusami in anticipo se sarò didascalico).
Apri joomla :) vai su concacts (menu Component/concacts) e poi new
(Joomla_1.6-Beta8-Full_Package/administrator/index.php?option=com_contact&view=contact&layout=edit)
Vediamo di aggiungere una voce al menu a tendina del quinto campo, cioè state.
Per farlo prendi l'xml di concact
\Joomla_1.6-Beta8-Full_Package\administrator\components\com_contact\models\forms\concact.xml
e aggiungi sotto la riga 54
<option value="3">test</option>
(per la precisione sotto a <option value="-2">JTRASHED</option> ma prima di </field>)
fai salva e aggiorna la pagina (se non appare nulla controlla che la cache sia disabilitata (menu site/global configuration, submenu -> System sulla destra trovi Cache e lo selezioni ad off).
torna su concacts new
(Joomla_1.6-Beta8-Full_Package/administrator/index.php?option=com_contact&view=contact&layout=edit)
e verifica che sia apparso dentro il menù a tendina di state la voce test.
Bene! ora proviamo ad aggiungere un optiongroup
in concact.xml
riga 47 aggiungi
<group label="pippo">
e a riga 58 (prima di </field>)
</group>
Insomma fai in modo che tutti gli option stiano dentro ad un tag <group>
se salvi con il il field type="list" non funziona (il menù a tendina diventa tutto vuoto)
se a riga 40 sostituisci type="list" con type="groupedlist"
(all'interno di <field id="published"...) vedrai che appare il grouplist, ma non le opzioni (ed ecco il bug).
Se correggi il file come ti ho segnalato in precedenza poi funziona :)
Ciao
Giulio
-
ho riletto la risposta che ti ho inviato e sono stato estremamente noioso e complicato.... scusa, scrivo la versione breve:
dentro:
\administrator\components\com_contact\models\forms\concact.xml
sostituisci da riga 38 a 56 con
<field id="published"
name="published"
type="groupedlist"
label="JGLOBAL_STATE"
description="JFIELD_PUBLISHED_DESC"
class="inputbox"
size="1"
default="1"
>
<group label="pippo">
<option value="1">
JPUBLISHED</option>
<option value="0">
JUNPUBLISHED</option>
<option value="2">
JARCHIVED</option>
<option value="-2">
JTRASHED</option>
<option value="-2">
test</option>
</group>
</field>
vai su l'amministrazione dentro i contatti fai nuovo e nella tendina del quinto campo (state) non appaiono le opzioni.
se cambi il codice con quello che ti ho inviato almeno a me funziona
-
ok, ho iniziato a capire qualcosa, ma non molto.
Forse è meglio che la segnalazione la apri tu:
http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemBrowse&tracker_id=8103