web-dev-qa-db-fra.com

Obtenir le nom de champ K2 Extra à l'aide d'un identifiant

Je construis un module qui lit les paramètres des champs K2 supplémentaires de la page en cours et les utilise pour charger des modules.

J'ai chargé avec succès l'élément de la page actuelle, mais le tableau "extra_fields" ne contient pas le nom du champ supplémentaire. C'est structuré comme ça:

extra_fields {
    [0]=> { "id"=>"5", "value"=>"Field 1 Value" }
    [1]=> { "id"=>"6", "value"=>"Field 2 Value" }
    [2]=> { "id"=>"7", "value"=>"Field 3 Value" }
}

Les variables "id" correspondent aux identifiants de champ supplémentaires, mais je ne sais pas comment y accéder depuis mon module. Je suppose que cela impliquera de les faire traverser la base de données en utilisant leur identifiant, mais je ne sais pas comment le faire.

2
Obscerno

Les champs supplémentaires sont enregistrés au format JSON, vous devez donc:

$arrExtraFields = json_decode($extra_fields);

Une fois que vous avez cela, vous devrez parcourir le tableau $arrExtraFields et puis interrogez la table #__k2_extra_fields (par exemple. SELECT name FROM #__k2_extra_fields WHERE id='the-current-id';) afin d’obtenir le nom du champ supplémentaire actuel (par id).

2
itoctopus