FOF30\Form\Field\Components::getOptions PHP Метод

getOptions() защищенный Метод

The manifest_cache is used to get the extension names, since JInstaller is also translating those names in stead of the name column. Else some of the translations fails.
С версии: 2.1
protected getOptions ( ) : array
Результат array An array of JHtml options.
    protected function getOptions()
    {
        $db = $this->form->getContainer()->platform->getDbo();
        // Check for client_ids override
        if ($this->client_ids !== null) {
            $client_ids = $this->client_ids;
        } else {
            $client_ids = $this->element['client_ids'];
        }
        $client_ids = explode(',', $client_ids);
        // Calculate client_ids where clause
        foreach ($client_ids as &$client_id) {
            $client_id = (int) trim($client_id);
            $client_id = $db->q($client_id);
        }
        $query = $db->getQuery(true)->select(array($db->qn('name'), $db->qn('element'), $db->qn('client_id'), $db->qn('manifest_cache')))->from($db->qn('#__extensions'))->where($db->qn('type') . ' = ' . $db->q('component'))->where($db->qn('client_id') . ' IN (' . implode(',', $client_ids) . ')');
        $components = $db->setQuery($query)->loadObjectList('element');
        // Convert to array of objects, so we can use sortObjects()
        // Also translate component names with JText::_()
        $aComponents = array();
        $user = $this->form->getContainer()->platform->getUser();
        foreach ($components as $component) {
            // Don't show components in the list where the user doesn't have access for
            // TODO: perhaps add an option for this
            if (!$user->authorise('core.manage', $component->element)) {
                continue;
            }
            $oData = (object) array('value' => $component->element, 'text' => $this->translate($component, 'component'));
            $aComponents[$component->element] = $oData;
        }
        // Reorder the components array, because the alphabetical
        // ordering changed due to the JText::_() translation
        uasort($aComponents, function ($a, $b) {
            return strcasecmp($a->text, $b->text);
        });
        return $aComponents;
    }