Joomla.it Forum

Non solo Joomla... => Sviluppo => : Alberto Santini 21 Jan 2021, 19:03:51

: Recupero custom field in modulo
: Alberto Santini 21 Jan 2021, 19:03:51
Salve a tutti


Sto sviluppando un modulo per renderizzare alcuni dati.
Questo modulo lo rendo visualizzabile in una determinata pagina sulla quale ho definito il valore di custom field


Non riesco a recuperare tale valore utilizzando i metodi che ho trovato in rete ... tipo


:

JLoader::register('FieldsHelper', JPATH_ADMINISTRATOR . '/components/com_fields/helpers/fields.php');


// ect etc ...


c'è qualcuno che può darmi indicazioni?


GRAZIE!!
: Re:Recupero custom field in modulo
: Alberto Santini 22 Jan 2021, 10:36:39
Mi spiego meglio e più semplicemente.


- Ho un campo "custom field text" che compilo per ogni pagina di una categoria
- Un modulo che viene renderizzato in quelle pagine


Mi serve recuperare nel template del modulo il "custom field" inserite della pagina in cui lo faccio visualizzare.


Utilizzando questo metodo non riesco a recuperare nulla ... ho printato e mi da tutto "zero"


:

JLoader::register('FieldsHelper', JPATH_ADMINISTRATOR . '/components/com_fields/helpers/fields.php');


$fields = $item->jcfields ?: FieldsHelper::getFields($context, $item, true);
    foreach($fields as $field){
        if ($field->value){
            $item->fields[$field->name] = $field;
        }
    }


echo $item->fields['my-field-name']->value;


Cosa sto sbagliando????

: Re:Recupero custom field in modulo
: marine 22 Jan 2021, 12:01:34
Cosa sto sbagliando? ???
Per prima cosa stai sbagliando sezione del forum, ti sposto nella sezione "sviluppo".
Per cortesia poni maggiore attenzione nella scelta della giusta sezione, un forum ordinato è più fruibile e più facilmente navigabile da partre di tutti, grazie della collaborazione.
: Re:Recupero custom field in modulo
: Alberto Santini 22 Jan 2021, 13:33:17
Grazie e scusami ;-)


cmq ho trovato la soluzione che può essere di aiuto ad altri.


Utilizzando questa funzione:


:
function getJCFields($srcId, $fieldId=null, $dbfields=null, $context=null) { if( is_null($context) ) $context = 'com_content.article'; if( is_array($srcId) || is_object($srcId) ) { JLoader::register('FieldsHelper', JPATH_ADMINISTRATOR.'/components/com_fields/helpers/fields.php'); $jfields = FieldsHelper::getFields($context, $srcId, true); } else if( is_int($srcId) ) { if( is_null($dbfields) ) $dbfields = 'id,label,value,item_id'; $db = JFactory::getDbo(); $db->setQuery(' SELECT '.$dbfields.' FROM #__fields LEFT JOIN #__fields_values ON #__fields.id = #__fields_values.field_id WHERE context = "'.$context.'" AND #__fields_values.item_id = '.$srcId.' AND #__fields.state = 1 '); $jfields = $db->loadObjectList(); } $fieldval=[]; foreach($jfields as $val) { $fieldval[$val->id] = (object)['label'=>$val->label,'value'=>$val->value]; } $fval = $fieldval; if( !is_null($fieldId) ) { $fval = $fieldval[$fieldId]; } return $fval; }[color=var(--black-800)]e il rcupero del custom field[/color][/font]
:
//set della variabile con l'id
 
$srcid = ['id'=>24, 'catid'=>5];


// recupero del valore del custom field


getJCFields($srcid, 9)->value;
 
: Re:Recupero custom field in modulo
: marine 22 Jan 2021, 13:43:21
Ok, allora metti [RISOLTO] all'inizio del titolo del tuo primo post, grazie della collaborazione.