Source for file components.php
Documentation is available at components.php
* @package FrameworkOnFramework
* @copyright Copyright (C) 2010 - 2013 Akeeba Ltd. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
// Protect from unauthorized access
require_once JPATH_LIBRARIES .
'/joomla/form/fields/list.php';
* Form Field class for FOF
* Components installed on the site
* @package FrameworkOnFramework
/** @var FOFTable The item being rendered in a repeatable form field */
/** @var int A monotonically increasing number, denoting the row number in a repeatable view */
* Method to get certain otherwise inaccessible properties from the form field object.
* @param string $name The property name for which to the the value.
* @return mixed The property value or null.
public function __get($name)
return parent::__get($name);
* Get the rendering of this field type for static display, e.g. in a single
* item view (typically a "read" task).
* @return string The field HTML
$class =
$this->element['class'] ?
' class="' . (string)
$this->element['class'] .
'"' :
'';
return '<span id="' .
$this->id .
'" ' .
$class .
'>' .
* Get the rendering of this field type for a repeatable (grid) display,
* e.g. in a view listing many item (typically a "browse" task)
* @return string The field HTML
$class =
$this->element['class'] ? (string)
$this->element['class'] :
'';
return '<span class="' .
$this->id .
' ' .
$class .
'">' .
* Get a list of all installed components and also translates them.
* 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
* @return array An array of JHtml options.
// Check for client_ids override
$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)
$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->loadObjectList('element');
// Convert to array of objects, so we can use sortObjects()
// Also translate component names with JText::_()
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))
'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
* Translate a list of objects with JText::_().
* @param array $item The array of objects
* @param string $type The extension type (e.g. component)
* @return string $text The translated name of the extension
* @see administrator/com_installer/models/extension.php
// Map the manifest cache to $item. This is needed to get the name from the
// manifest_cache and NOT from the name column, else some JText::_() translations fails.
foreach ($mData as $key =>
$value)
||
$lang->load("$item->element.sys", $source, null, false, true)
||
$lang->load("$item->element.sys", $source, $lang->getDefault(), false, false);
$text =
JText::_($item->name);
Documentation generated on Tue, 19 Nov 2013 14:56:26 +0100 by phpDocumentor 1.4.3