it-swarm-eu.dev

Ricevi l'elemento com_contacts per ID?

Devo ottenere un oggetto com_contacts nello stesso modo di Joomla (quindi posso riutilizzare un modello per esempio). So di poter ottenere l'oggetto interrogando direttamente il database, ma questo non preparerà le cose nello stesso modo in cui Joomla das in com_content.

Posso ottenere contatti per categoria id bene con:

require_once JPATH_SITE . '/components/com_contact/helpers/route.php';
JLoader::import('joomla.application.component.model');
JModelLegacy::addIncludePath(JPATH_SITE . '/components/com_contact/models', 'ContentModel');
$categoryModel = JModelLegacy::getInstance('Category', 'ContactModel', array('ignore_request' => true));
$categoryModel->setState('category.id', 53);
$categoryModel->setState('list.ordering', 'a.name');
$categoryModel->setState('list.direction', 'asc');
$categoryModel->setState('filter.published', 1);
$contacts = $categoryModel->getItems();
echo '<pre><tt>';print_r($contacts[0]);

Come posso ottenere un articolo di contatto dal suo ID articolo?

TIA!

1
Marcel

Per ottenere un singolo contatto per ID, utilizzare Modello di contatto:

JModelLegacy::addIncludePath(JPATH_SITE . '/components/com_contact/models', 'ContactModel');
$model = JModelLegacy::getInstance('Contact', 'ContactModel', array('ignore_request' => true));
$model->setState('contact.id', $contactId);
$model->setState('params', $params);
$contact = $model->getItem();

Dove $contactId è l'ID del contatto e $params è il parametro. I param devono essere un oggetto Registro. È possibile creare un nuovo oggetto Registro o utilizzare parametri app/componenti, a seconda delle esigenze:

use Joomla\Registry\Registry;
$params = new Registry;

o

$params = JFactory::getApplication()->getParams();

o

use Joomla\CMS\Component\ComponentHelper;
$params = ComponentHelper::getParams('com_contact');
1
Sharky