%PDF- %PDF-
Direktori : /home/lightco1/www/components/com_projectmanager/models/fields/ |
Current File : /home/lightco1/www/components/com_projectmanager/models/fields/foreignkey.php |
<?php /** * @version CVS: 1.0.0 * @package Com_Projectmanager * @author Sandeep <> * @copyright Copyright (C) 2016. All rights reserved. * @license */ defined('JPATH_BASE') or die; jimport('joomla.form.formfield'); /** * Supports a value from an external table * * @since 1.6 */ class JFormFieldForeignKey extends JFormField { /** * The form field type. * * @var string * @since 1.6 */ protected $type = 'foreignkey'; private $input_type; private $table; private $key_field; private $value_field; /** * Method to get the field input markup. * * @return string The field input markup. * * @since 1.6 */ protected function getInput() { // Assign field properties. // Type of input the field shows $this->input_type = $this->getAttribute('input_type'); // Database Table $this->table = $this->getAttribute('table'); // The field that the field will save on the database $this->key_field = (string) $this->getAttribute('key_field'); // The column that the field shows in the input $this->value_field = (string) $this->getAttribute('value_field'); // Initialize variables. $html = ''; // Load all the field options $db = JFactory::getDbo(); $query = $db->getQuery(true); $query ->select( array( $db->quoteName($this->key_field), $db->quoteName($this->value_field) ) ) ->from($this->table); $db->setQuery($query); $results = $db->loadObjectList(); $input_options = 'class="' . $this->getAttribute('class') . '"'; // Depends of the type of input, the field will show a type or another switch ($this->input_type) { case 'list': default: $options = array(); // Iterate through all the results foreach ($results as $result) { $options[] = JHtml::_('select.option', $result->{$this->key_field}, $result->{$this->value_field}); } $value = $this->value; // If the value is a string -> Only one result if (is_string($value)) { $value = array($value); } elseif (is_object($value)) { // If the value is an object, let's get its properties. $value = get_object_vars($value); } // If the select is multiple if ($this->multiple) { $input_options .= 'multiple="multiple"'; } else { array_unshift($options, JHtml::_('select.option', '', '')); } $html = JHtml::_('select.genericlist', $options, $this->name, $input_options, 'value', 'text', $value, $this->id); break; } return $html; } /** * Wrapper method for getting attributes from the form element * * @param string $attr_name Attribute name * @param mixed $default Optional value to return if attribute not found * * @return mixed The value of the attribute if it exists, null otherwise */ public function getAttribute($attr_name, $default = null) { if (!empty($this->element[$attr_name])) { return $this->element[$attr_name]; } else { return $default; } } }