Back to top

Autore Topic: Recupero custom field in modulo  (Letto 1707 volte)

Offline Alberto Santini

  • Nuovo arrivato
  • *
  • Post: 6
    • Mostra profilo
Recupero custom field in modulo
« il: 21 Gen 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


Codice: [Seleziona]

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


// ect etc ...


c'è qualcuno che può darmi indicazioni?


GRAZIE!!

Offline Alberto Santini

  • Nuovo arrivato
  • *
  • Post: 6
    • Mostra profilo
Re:Recupero custom field in modulo
« Risposta #1 il: 22 Gen 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"


Codice: [Seleziona]

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


Offline marine

  • Team Joomla.it
  • Instancabile
  • *******
  • Post: 6314
  • Sesso: Maschio
    • Mostra profilo
Re:Recupero custom field in modulo
« Risposta #2 il: 22 Gen 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.

Offline Alberto Santini

  • Nuovo arrivato
  • *
  • Post: 6
    • Mostra profilo
Re:Recupero custom field in modulo
« Risposta #3 il: 22 Gen 2021, 13:33:17 »
Grazie e scusami ;-)


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


Utilizzando questa funzione:


Codice: [Seleziona]
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]
Codice: [Seleziona]
//set della variabile con l'id
 
$srcid = ['id'=>24, 'catid'=>5];


// recupero del valore del custom field


getJCFields($srcid, 9)->value;
 
« Ultima modifica: 22 Gen 2021, 13:35:41 da Alberto Santini »

Offline marine

  • Team Joomla.it
  • Instancabile
  • *******
  • Post: 6314
  • Sesso: Maschio
    • Mostra profilo
Re:Recupero custom field in modulo
« Risposta #4 il: 22 Gen 2021, 13:43:21 »
Ok, allora metti [RISOLTO] all'inizio del titolo del tuo primo post, grazie della collaborazione.

 



Web Design Bolzano Kreatif