Joomla.it Forum
Non solo Joomla... => Sviluppo => : 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!!
-
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????
-
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.
-
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;
-
Ok, allora metti [RISOLTO] all'inizio del titolo del tuo primo post, grazie della collaborazione.